]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
4569 tweaks
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 26 Jul 2012 21:47:50 +0000 (16:47 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 26 Jul 2012 21:47:50 +0000 (16:47 -0500)
src/mod/endpoints/mod_sofia/sofia.c

index 628bd81d1ffb04372f10351d13f9e7f1139c2a1b..4c9670f422346f257f5d1b0c953e69375234b630 100644 (file)
@@ -1222,7 +1222,11 @@ static void our_sofia_event_callback(nua_event_t event,
 
                                refer_to = sip_header_as_string(nua_handle_home(nh), (void *) sip->sip_refer_to);
                                if ((params = strchr(refer_to, ';'))) {
-                                       *params++ = '\0';
+                                       if (*refer_to == '<') {
+                                               *params++ = '\0';
+                                       } else {
+                                               *params++ = '>';
+                                       }
 
                                        if (!(method = switch_find_parameter(params, "method", NULL))) {
                                                method = strdup("INVITE");
@@ -1260,7 +1264,11 @@ static void our_sofia_event_callback(nua_event_t event,
                                switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Target-URI", "%s", refer_to);
                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Target-Extension", ref_to_user);
                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Request-Target-Domain", ref_to_host);
-                               switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Sender", "sofia/%s/%s", profile->name, referred_by);
+
+                               if (!zstr(referred_by)) {
+                                       switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Request-Sender", "sofia/%s/%s", profile->name, referred_by);
+                               }
+
                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_number", ref_by_user);
                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "var_origination_caller_id_name", ref_by_user);
                                switch_event_fire(&event);