]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9083 [mod-sofia] Pass On SIP headers from leg A to B
authorGiacomo Vacca <gv@rtcsoft.net>
Mon, 18 Apr 2016 08:59:54 +0000 (10:59 +0200)
committerGiacomo Vacca <gv@rtcsoft.net>
Tue, 19 Apr 2016 08:28:12 +0000 (10:28 +0200)
src/mod/endpoints/mod_sofia/sofia.c
src/mod/endpoints/mod_sofia/sofia_glue.c

index ad65d7f5544e516301fd7ead4d5ed8fc35e74210..f86b79fd1a1858c4b31345a53732f6896c2face7 100644 (file)
@@ -10558,7 +10558,7 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
                                switch_channel_set_variable(channel, "sip_geolocation_error", un->un_value);
                        } else if (!strcasecmp(un->un_name, "userLocation")) {
                                switch_channel_set_variable(channel, "sip_user_location", un->un_value);
-                       } else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2) || !strcasecmp(un->un_name, "User-to-User")) {
+                       } else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2) || !strcasecmp(un->un_name, "User-to-User") || !strncasecmp(un->un_name, "On", 2)) {
                                if (!zstr(un->un_value)) {
                                        char new_name[512] = "";
                                        int reps = 0;
index f4e3396bdadbfb605ff70d19a6f4f5f67fe32639..010098f07ca7e6d05ab76cba6c84035721498fd5 100644 (file)
@@ -644,7 +644,7 @@ void sofia_glue_set_extra_headers(switch_core_session_t *session, sip_t const *s
        }
 
        for (un = sip->sip_unknown; un; un = un->un_next) {
-               if ((!strncasecmp(un->un_name, "X-", 2) && strncasecmp(un->un_name, "X-FS-", 5)) || !strncasecmp(un->un_name, "P-", 2)) {
+               if ((!strncasecmp(un->un_name, "X-", 2) && strncasecmp(un->un_name, "X-FS-", 5)) || !strncasecmp(un->un_name, "P-", 2) || !strncasecmp(un->un_name, "On", 2)) {
                        if (!zstr(un->un_value)) {
                                switch_snprintf(name, sizeof(name), "%s%s", prefix, un->un_name);
                                switch_channel_set_variable(channel, name, un->un_value);