]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3933 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 23 Feb 2012 02:17:51 +0000 (20:17 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 23 Feb 2012 02:17:51 +0000 (20:17 -0600)
src/mod/endpoints/mod_sofia/sofia_glue.c

index 43de002cd436326f3b0104f31476266ab58917ee..26ddaef10a511df9cc879c1615eac389791c6e49 100644 (file)
@@ -2324,21 +2324,25 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
 
                if (!switch_channel_get_variable(channel, "presence_id")) {
                        char *from = switch_core_session_strdup(session, from_str);
-                       
+                       const char *s;
+
+                       if ((s = switch_stristr("<", from))) {
+                               from = (char *)s + 1;
+                       }
+
                        if (!strncasecmp(from, "sip:", 4)) {
                                from += 4;
                        }
 
-                       if (!strncasecmp(from, "sips:", 4)) {
+                       if (!strncasecmp(from, "sips:", 5)) {
                                from += 5;
                        }
 
-                       if ((p = strchr(from, ':')) || (p = strchr(from, ';'))) {
+                       if ((p = strchr(from, ':')) || (p = strchr(from, ';')) || (p = strchr(from, '>'))) {
                                *p++ = '\0';
                        }
                        
                        switch_channel_set_variable(channel, "presence_id", from);
-                       
                }
                
                if (!(tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL,