No subject


Fri Mar 15 02:20:01 CDT 2013


{noformat}
register => tls://dbt:1234@dbt

[dbt]
type=peer
host=192.168.88.44
username=dbt
defaultuser=dbt
secret=1234
transport=tls
context=doug
disallow=all
allow=ulaw
directmedia=no
{noformat}


Error encountered:
{noformat}
[Jun 26 10:43:47] ERROR[9054]: chan_sip.c:5342 create_addr_from_peer: 'UDP' is not a valid transport for 'dbt'. we only use 'TLS'! ending call.
[Jun 26 10:43:47] WARNING[9054]: chan_sip.c:13524 transmit_register: Probably a DNS error for registration to dbt at dbt, trying REGISTER again (after 20 seconds)
{noformat}


If I make the following change, the register statement succeeds:

{noformat}
--- channels/chan_sip.c	(revision 392897)
+++ channels/chan_sip.c	(working copy)
@@ -13484,7 +13484,11 @@
 			ast_log(LOG_WARNING, "Unable to allocate registration transaction (memory or socket error)\n");
 			return 0;
 		}
-
+		if (SIP_TRANSPORT_TLS == r->transport || SIP_TRANSPORT_TCP == r->transport ) {
+			p->socket.type = r->transport;
+		}
+
{noformat}

This occurs both in 1.8.15-cert2 and in the tip of the 1.8 branch. 

  was:

I am using 1.8.15-cert2 and have been testing some TLS functionality.  When I set a register statement that specifies TLS and uses the peer name as the target address in the register statement, I get an error and the register request never goes out.

The problem occurs due to a create_addr failing in transmit_register due to an allocated dialog's socket being set to UDP while the sip_registry indicates only TLS transport.

The register statement works if I explicitly specify the IP address in the sip.conf register statement.



More information about the asterisk-bugs mailing list