]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3558 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 12 Sep 2011 19:26:42 +0000 (14:26 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 12 Sep 2011 19:26:42 +0000 (14:26 -0500)
src/mod/endpoints/mod_sofia/sofia.c

index 6b5e18ec58dab16b996128282f29eaa23749388a..ef65a7ce95b088dbfa89e5b8d7921e580d9e726e 100644 (file)
@@ -5281,6 +5281,9 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                break;
        case nua_callstate_completing:
                {
+                       const char *invite_full_from = switch_channel_get_variable(tech_pvt->channel, "sip_invite_full_from");
+                       const char *invite_full_to = switch_channel_get_variable(tech_pvt->channel, "sip_invite_full_to");
+
                        if (r_sdp && sofia_test_flag(tech_pvt, TFLAG_3PCC_INVITE) && !sofia_test_flag(tech_pvt, TFLAG_SDP)) {
                                sofia_set_flag(tech_pvt, TFLAG_SDP);
 
@@ -5304,12 +5307,18 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                                const char *invite_route_uri = switch_channel_get_variable(tech_pvt->channel, "sip_invite_route_uri");                  
 
                                nua_ack(nh, 
-                                               TAG_IF(!zstr(invite_full_via), SIPTAG_VIA_STR(invite_full_via)),
-                                               TAG_IF(!zstr(invite_route_uri), SIPTAG_ROUTE_STR(invite_route_uri)),
-                                               TAG_END());
+                                       TAG_IF(invite_full_from, SIPTAG_FROM_STR(invite_full_from)),
+                                       TAG_IF(invite_full_to, SIPTAG_TO_STR(invite_full_to)),
+                                       TAG_IF(!zstr(invite_full_via), SIPTAG_VIA_STR(invite_full_via)),
+                                       TAG_IF(!zstr(invite_route_uri), SIPTAG_ROUTE_STR(invite_route_uri)),
+                                       TAG_END());
                                                
                        } else {
-                               nua_ack(nh, TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END());
+                               nua_ack(nh, 
+                                       TAG_IF(invite_full_from, SIPTAG_FROM_STR(invite_full_from)),
+                                       TAG_IF(invite_full_to, SIPTAG_TO_STR(invite_full_to)),
+                                       TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), 
+                                       TAG_END());
                        }
                }
                goto done;