diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 93912fc0b053d99719a289e370408e2260aceaaf..12d5944ba3b791630bbbf0c97daa5526a6c19ff0 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -10545,7 +10545,9 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char * /* Set transport and port so the correct contact is built */ p->socket.type = r->transport; - p->socket.port = htons(r->portno); + if (r->transport == SIP_TRANSPORT_TLS || r->transport == SIP_TRANSPORT_TCP) { + p->socket.port = sip_tcp_desc.local_address.sin_port; + } /* check which address we should use in our contact header