mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-25 12:10:18 +00:00
fix issues with heartbeat in bypass media mode
This commit is contained in:
parent
bcc2aa9899
commit
d171e156d7
@ -1526,7 +1526,7 @@ SWITCH_DECLARE(void) switch_core_session_sched_heartbeat(switch_core_session_t *
|
||||
{
|
||||
|
||||
switch_core_session_unsched_heartbeat(session);
|
||||
session->track_id = switch_scheduler_add_task(switch_epoch_time_now(NULL), sch_heartbeat_callback, (char *) __SWITCH_FUNC__,
|
||||
session->track_id = switch_scheduler_add_task(switch_epoch_time_now(NULL) + session->track_duration, sch_heartbeat_callback, (char *) __SWITCH_FUNC__,
|
||||
switch_core_session_get_uuid(session), 0, strdup(switch_core_session_get_uuid(session)), SSHF_FREE_ARG);
|
||||
}
|
||||
|
||||
@ -1538,17 +1538,20 @@ SWITCH_DECLARE(void) switch_core_session_enable_heartbeat(switch_core_session_t
|
||||
seconds = 60;
|
||||
}
|
||||
|
||||
|
||||
session->read_frame_count = (session->read_impl.actual_samples_per_second / session->read_impl.samples_per_packet) * seconds;
|
||||
session->track_duration = seconds;
|
||||
|
||||
if (switch_channel_test_flag(session->channel, CF_PROXY_MODE)) {
|
||||
if (switch_channel_test_flag(session->channel, CF_PROXY_MODE) ||
|
||||
switch_true(switch_channel_get_variable_dup(session->channel, "bypass_media", SWITCH_FALSE, -1)) ||
|
||||
switch_true(switch_channel_get_variable_dup(session->channel, "bypass_media_after_bridge", SWITCH_FALSE, -1))) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "%s using scheduler due to bypass_media mode\n",
|
||||
switch_channel_get_name(session->channel));
|
||||
switch_core_session_sched_heartbeat(session, seconds);
|
||||
return;
|
||||
}
|
||||
|
||||
session->read_frame_count = (session->read_impl.actual_samples_per_second / session->read_impl.samples_per_packet) * seconds;
|
||||
|
||||
|
||||
switch_core_session_unsched_heartbeat(session);
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "%s setting session heartbeat to %u second(s).\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user