From: Marc Olivier Chouinard Date: Sat, 26 Mar 2011 14:20:06 +0000 (-0400) Subject: mod_callcenter: Temporary fix for some race condition with loopback agent. Need... X-Git-Tag: v1.2-rc1~120^2~5^2~82 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=608b9abd5a719f546b594a400f5ae8d720d6d7e1;p=thirdparty%2Ffreeswitch.git mod_callcenter: Temporary fix for some race condition with loopback agent. Need to find the root cause of this problem --- diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c index b8c5eede74..6f74d3ade9 100644 --- a/src/mod/applications/mod_callcenter/mod_callcenter.c +++ b/src/mod/applications/mod_callcenter/mod_callcenter.c @@ -1449,8 +1449,10 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa /* Loopback special case */ if (other_loopback_leg_uuid) { - switch_core_session_t *other_loopback_session = switch_core_session_locate(other_loopback_leg_uuid); - if (other_loopback_session) { + switch_core_session_t *other_loopback_session = NULL; + + switch_yield(20000); // Wait 20ms for the channel to be ready + if ((other_loopback_session = switch_core_session_locate(other_loopback_leg_uuid))) { switch_channel_t *other_loopback_channel = switch_core_session_get_channel(other_loopback_session); const char *real_uuid = switch_channel_get_variable(other_loopback_channel, SWITCH_SIGNAL_BOND_VARIABLE);