Author: anthm Date: Mon Nov 3 15:07:45 2008 New Revision: 10226 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c Log: follow on MODENDP-147 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c Mon Nov 3 15:07:45 2008 @@ -1205,7 +1205,7 @@ id = switch_mprintf("sip:%s@%s", sub_to_user, sub_to_host); contact = sofia_glue_get_url_from_contact(o_contact, 1); - if ((route = strstr(o_contact, ";fs_path=")) && (route = strdup(route + 9))) { + if ((route = strstr(contact, ";fs_path=")) && (route = strdup(route + 9))) { for (p = route; p && *p ; p++) { if (*p == '>' || *p == ';') { @@ -1225,10 +1225,23 @@ } } - if (!route_uri && strstr(o_contact, ";fs_nat")) { + if (!route_uri && strstr(contact, ";fs_nat")) { route_uri = contact; } + if ((p = strstr(contact, ";fs_"))) { + *p = '\0'; + } + + if (route_uri) { + while (route_uri && *route_uri && (*route_uri == '<' || *route_uri == ' ')) { + route_uri++; + } + if ((p = strchr(route_uri, '>'))) { + *p++ = '\0'; + } + } + nh = nua_handle(profile->nua, NULL, NUTAG_URL(contact), SIPTAG_FROM_STR(id), SIPTAG_TO_STR(id), SIPTAG_CONTACT_STR(h->profile->url), TAG_END()); nua_notify(nh,