提交 91d405a2 authored 作者: Anthony Minessale's avatar Anthony Minessale

call recovery_track on recovering channels once the recovery has completed and…

call recovery_track on recovering channels once the recovery has completed and fix race condition with repeated recovery
上级 b6566b83
...@@ -6134,7 +6134,6 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status ...@@ -6134,7 +6134,6 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
extract_header_vars(profile, sip, session, nh); extract_header_vars(profile, sip, session, nh);
extract_vars(profile, sip, session); extract_vars(profile, sip, session);
switch_core_recovery_track(session);
switch_channel_clear_flag(tech_pvt->channel, CF_RECOVERING); switch_channel_clear_flag(tech_pvt->channel, CF_RECOVERING);
} }
......
...@@ -1990,6 +1990,10 @@ SWITCH_DECLARE(void) switch_channel_clear_flag(switch_channel_t *channel, switch ...@@ -1990,6 +1990,10 @@ SWITCH_DECLARE(void) switch_channel_clear_flag(switch_channel_t *channel, switch
switch_core_session_wake_video_thread(channel->session); switch_core_session_wake_video_thread(channel->session);
} }
if (flag == CF_RECOVERING && !channel->hangup_cause) {
switch_core_recovery_track(channel->session);
}
} }
......
...@@ -48,6 +48,8 @@ static void switch_core_standard_on_init(switch_core_session_t *session) ...@@ -48,6 +48,8 @@ static void switch_core_standard_on_init(switch_core_session_t *session)
switch_channel_set_state(session->channel, CS_ROUTING); switch_channel_set_state(session->channel, CS_ROUTING);
} }
} }
switch_channel_clear_flag(session->channel, CF_RECOVERING);
} }
static void switch_core_standard_on_hangup(switch_core_session_t *session) static void switch_core_standard_on_hangup(switch_core_session_t *session)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论