Revision
15448
Author
brian
Date
2009-11-12 09:25:13 -0600 (Thu, 12 Nov 2009)

Log Message

 missing port 

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_sla.c (15447 => 15448)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_sla.c	2009-11-12 15:17:45 UTC (rev 15447)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_sla.c	2009-11-12 15:25:13 UTC (rev 15448)
@@ -154,6 +154,8 @@
 	char *sla_contact = NULL;
 	char network_ip[80];
 	int network_port = 0;
+	char port_str[25] = "";
+
 	sofia_transport_t transport = sofia_glue_url2transport(sip->sip_contact->m_url);
 
 	sofia_glue_get_addr(nua_current_request(nua), network_ip,  sizeof(network_ip), &network_port);
@@ -217,10 +219,15 @@
 			*p++ = '\0';
 		}
 	}
+
+	switch_snprintf(port_str, sizeof(port_str), ":%ld", sofia_glue_transport_has_tls(transport) ? profile->tls_sip_port : profile->sip_port);
+
 	if (sofia_glue_check_nat(profile, network_ip)) { 
-		sla_contact = switch_mprintf("<sip:%s@%s;transport=%s>", profile->sla_contact, profile->extsipip, sofia_glue_transport2str(transport));
+		sla_contact = switch_mprintf("<sip:%s@%s%s;transport=%s>", profile->sla_contact, profile->extsipip,
+									 port_str, sofia_glue_transport2str(transport));
 	} else {
-		sla_contact = switch_mprintf("<sip:%s@%s;transport=%s>", profile->sla_contact, profile->sipip, sofia_glue_transport2str(transport));
+		sla_contact = switch_mprintf("<sip:%s@%s%s;transport=%s>", profile->sla_contact, profile->sipip,
+									 port_str, sofia_glue_transport2str(transport));
 	}
 
 	nua_respond(nh, SIP_202_ACCEPTED, SIPTAG_CONTACT_STR(sla_contact), NUTAG_WITH_THIS(nua),