From: Anthony Minessale Date: Wed, 4 Nov 2009 16:46:17 +0000 (+0000) Subject: fix dest parser to not hit false positive X-Git-Tag: v1.0.6~1512 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72a8ae5c52467672a469abbcad47ac4ed55f33ab;p=thirdparty%2Ffreeswitch.git fix dest parser to not hit false positive git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15350 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 2dc54d22bb..6b2e221187 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -3069,12 +3069,18 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session switch_channel_set_variable(nchannel, "sip_destination_url", tech_pvt->dest); dest_num = switch_core_session_strdup(nsession, dest); - if ((p = strchr(dest_num, ':'))) { - dest_num = p + 1; - if ((p = strchr(dest_num, '@'))) { - *p = '\0'; + if ((p = strchr(dest_num, '@'))) { + *p = '\0'; + + if ((p = strrchr(dest_num, '/'))) { + dest_num = p + 1; + } else if ((p = (char *)switch_stristr("sip:", dest_num))) { + dest_num = p + 4; + } else if ((p = (char *)switch_stristr("sips:", dest_num))) { + dest_num = p + 5; } } + caller_profile = switch_caller_profile_clone(nsession, outbound_profile); caller_profile->destination_number = switch_core_strdup(caller_profile->pool, dest_num);