]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10369: [freeswitch-core] Preserve original progress time when getting more than one
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 6 Jun 2017 14:08:09 +0000 (09:08 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 6 Jun 2017 14:08:09 +0000 (09:08 -0500)
src/switch_channel.c

index 39f86d838cef7214d453684ed8de86bcae89754e..4cbe5890c7ed95b41fc5c5b82662d7ad37808b1f 100644 (file)
@@ -3331,9 +3331,11 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_ring_ready_value(swi
                                if ((other_session = switch_core_session_locate(channel->caller_profile->originator_caller_profile->uuid))) {
                                        switch_channel_t *other_channel;
                                        other_channel = switch_core_session_get_channel(other_session);
-                                       if (other_channel->caller_profile) {
+                                       switch_mutex_lock(other_channel->profile_mutex);
+                                       if (other_channel->caller_profile && !other_channel->caller_profile->times->progress) {
                                                other_channel->caller_profile->times->progress = channel->caller_profile->times->progress;
                                        }
+                                       switch_mutex_unlock(other_channel->profile_mutex);
                                        switch_core_session_rwunlock(other_session);
                                }
                                channel->caller_profile->originator_caller_profile->times->progress = channel->caller_profile->times->progress;