From: Anthony Minessale Date: Mon, 5 Jun 2017 19:20:21 +0000 (-0500) Subject: FS-10369: [freeswitch-core] Preserve original progress time when getting more than... X-Git-Tag: v1.8.0~470 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3af93449b02eaa91fe65853dfbe798425243d30b;p=thirdparty%2Ffreeswitch.git FS-10369: [freeswitch-core] Preserve original progress time when getting more than one #resolve --- diff --git a/src/switch_channel.c b/src/switch_channel.c index 44ed2ee685..613956b40d 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -3323,9 +3323,8 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_ring_ready_value(swi switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, switch_channel_get_uuid(channel), SWITCH_LOG_NOTICE, "Ring-Ready %s!\n", channel->name); switch_channel_set_flag_value(channel, CF_RING_READY, rv); - - if (channel->caller_profile && channel->caller_profile->times) { - switch_mutex_lock(channel->profile_mutex); + switch_mutex_lock(channel->profile_mutex); + if (channel->caller_profile && channel->caller_profile->times && !channel->caller_profile->times->progress) { channel->caller_profile->times->progress = switch_micro_time_now(); if (channel->caller_profile->originator_caller_profile) { switch_core_session_t *other_session; @@ -3339,8 +3338,8 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_ring_ready_value(swi } channel->caller_profile->originator_caller_profile->times->progress = channel->caller_profile->times->progress; } - switch_mutex_unlock(channel->profile_mutex); } + switch_mutex_unlock(channel->profile_mutex); if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_PROGRESS) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event);