diff -Nurp -x .svn a/channels/chan_sip.c b/channels/chan_sip.c --- a/channels/chan_sip.c 2009-09-15 12:21:38.284506385 -0400 +++ b/channels/chan_sip.c 2009-09-15 12:24:21.095528125 -0400 @@ -24228,9 +24228,11 @@ static struct sip_peer *build_peer(const peer->transports |= SIP_TRANSPORT_UDP; else if (!strncasecmp(trans, "tcp", 3)) peer->transports |= SIP_TRANSPORT_TCP; - else if (!strncasecmp(trans, "tls", 3)) + else if (!strncasecmp(trans, "tls", 3)) { peer->transports |= SIP_TRANSPORT_TLS; - else + peer->addr.sin_port = 0; + peer->socket.port = 0; + } else ast_log(LOG_NOTICE, "'%s' is not a valid transport type. if no other is specified, udp will be used.\n", trans); if (!peer->default_outbound_transport) { /*!< The first transport listed should be default outbound */