From: Anthony Minessale Date: Wed, 23 Jul 2008 21:11:42 +0000 (+0000) Subject: dont send sipfrag to cisco they hate it X-Git-Tag: v1.0.1~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=41e3e7a81c8c2ad94f5cc059d4908ec178aae20a;p=thirdparty%2Ffreeswitch.git dont send sipfrag to cisco they hate it git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9146 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index dad12ea8e1..b97c97fea7 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2134,6 +2134,11 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, status = 180; } + if (channel && (status == 180 || status == 183 || status == 200) && + sip && sip->sip_user_agent && sip->sip_user_agent->g_string && switch_channel_test_flag(channel, CF_OUTBOUND)) { + switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string); + } + if (channel && (status == 180 || status == 183) && switch_channel_test_flag(channel, CF_OUTBOUND)) { const char *val; if ((val = switch_channel_get_variable(channel, "sip_auto_answer")) && switch_true(val)) { @@ -3652,6 +3657,14 @@ static void sofia_info_send_sipfrag(switch_core_session_t *aleg, switch_core_ses char message[256] = ""; if (aleg && bleg && switch_core_session_compare(aleg, bleg)) { + switch_channel_t *channel = switch_core_session_get_channel(bleg); + const char *ua = switch_channel_get_variable(channel, "sip_user_agent"); + + if (ua && switch_stristr("cisco", ua)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "If you were using some other phone besides a Cisco, we would have updated the caller id display on your phone for you!\n"); + return; + } + a_tech_pvt = (private_object_t *) switch_core_session_get_private(aleg); b_tech_pvt = (private_object_t *) switch_core_session_get_private(bleg);