]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
missing port
authorBrian West <brian@freeswitch.org>
Thu, 12 Nov 2009 15:25:13 +0000 (15:25 +0000)
committerBrian West <brian@freeswitch.org>
Thu, 12 Nov 2009 15:25:13 +0000 (15:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15448 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia_sla.c

index 1fee96437b445b5f938c0974c5308c82bd408777..bbd7e8543954fdbd3b53234e3f749a8dbf68a164 100644 (file)
@@ -154,6 +154,8 @@ void sofia_sla_handle_sip_i_subscribe(nua_t *nua, const char *contact_str, sofia
        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 @@ void sofia_sla_handle_sip_i_subscribe(nua_t *nua, const char *contact_str, sofia
                        *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),