]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add user_via to ack in case with track calls
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 7 Mar 2012 21:40:55 +0000 (15:40 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 7 Mar 2012 21:41:02 +0000 (15:41 -0600)
src/mod/endpoints/mod_sofia/sofia.c

index 9d4fce66db7d58c0e5b7051462a5ddba41d523f3..2cab2095e7dfbc65bc14ada4027471770f81abd1 100644 (file)
@@ -5696,11 +5696,13 @@ 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(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());
+                                               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_IF((zstr(tech_pvt->user_via) && !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,