]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3951 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 7 Jan 2013 18:36:53 +0000 (12:36 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 7 Jan 2013 18:36:58 +0000 (12:36 -0600)
src/mod/endpoints/mod_sofia/mod_sofia.c

index c21eec08c9593e673c1a54b95e527de94313e4ac..c03c3d8bae594d178aebeb3a40c114da9369dd2f 100644 (file)
@@ -2551,6 +2551,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
                break;
        case SWITCH_MESSAGE_INDICATE_DEFLECT:
                {
+                       char *extra_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_HEADER_PREFIX);
                        char ref_to[1024] = "";
                        const char *var;
 
@@ -2560,7 +2561,9 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
                        } else {
                                switch_set_string(ref_to, msg->string_arg);
                        }
-                       nua_refer(tech_pvt->nh, SIPTAG_REFER_TO_STR(ref_to), SIPTAG_REFERRED_BY_STR(tech_pvt->contact_url), TAG_END());
+                       nua_refer(tech_pvt->nh, SIPTAG_REFER_TO_STR(ref_to), SIPTAG_REFERRED_BY_STR(tech_pvt->contact_url),
+                                               TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)),
+                                               TAG_END());
                        switch_mutex_unlock(tech_pvt->sofia_mutex);
                        sofia_wait_for_reply(tech_pvt, 9999, 10);
                        switch_mutex_lock(tech_pvt->sofia_mutex);