]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix Registration Failure When A Peer And TLS Are Used
authorMichael L. Young <elgueromexicano@gmail.com>
Mon, 5 Aug 2013 20:17:44 +0000 (20:17 +0000)
committerMichael L. Young <elgueromexicano@gmail.com>
Mon, 5 Aug 2013 20:17:44 +0000 (20:17 +0000)
If a peer is used in a register line and TLS is defined as the transport, the
registration fails since the transport on the dialog is never set properly
resulting in UDP being used instead of TLS.

This patch sets the dialog's transport based on the transport that was defined
in the register line.  If the register line does not specify a transport, the
parsing function for the register line always defaults back to UDP.

(closes issue ASTERISK-21964)
Reported by: Doug Bailey
Tested by: Doug Bailey
Patches:
    asterisk-21964-set-reg-dialog-transport.diff
by Michael L. Young (license 5026)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@396240 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 64798b0c7d054fb8e8f9848fb25e72b8443e78c5..323422ddc4e39c491d9202e781832c77cc788650 100644 (file)
@@ -13816,6 +13816,8 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
                        append_history(p, "RegistryInit", "Account: %s@%s", r->username, r->hostname);
                }
 
+               p->socket.type = r->transport;
+
                /* Use port number specified if no SRV record was found */
                if (!ast_sockaddr_isnull(&r->us)) {
                        if (!ast_sockaddr_port(&r->us) && r->portno) {