From 094db82a734d9a7df6d13048d3d2dccea5cb9779 Mon Sep 17 00:00:00 2001 From: Scott Griepentrog Date: Fri, 8 Nov 2013 23:07:50 +0000 Subject: chan_sip: keep same local (from) tag for outgoing register requests For outbound register requests the tag on the From line was updated every 20 seconds prior to a successful registration and also once for each registration renewal. That behavior can possibly cause the registration to be denied because of the different tag, and is not aligned with the intention of RFC 3261 8.1.3.5 "... request constitutes a new transaction and SHOULD have the same value of the Call-ID, To, and From of the previous request...". This updates chan_sip to have a field to keep the local tag in the registration structure and use that tag for registration requests where the callid is also unchanged. (closes issue ASTERISK-12117) Reported by: Pawel Pierscionek Review: https://reviewboard.asterisk.org/r/2988/ ........ Merged revisions 402604 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 402605 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 402606 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@402607 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/sip/include/sip.h | 1 + 1 file changed, 1 insertion(+) (limited to 'channels/sip') diff --git a/channels/sip/include/sip.h b/channels/sip/include/sip.h index 342c87b36..524d4e32d 100644 --- a/channels/sip/include/sip.h +++ b/channels/sip/include/sip.h @@ -1390,6 +1390,7 @@ struct sip_registry { AST_STRING_FIELD(md5secret); /*!< Password in md5 */ AST_STRING_FIELD(callback); /*!< Contact extension */ AST_STRING_FIELD(peername); /*!< Peer registering to */ + AST_STRING_FIELD(localtag); /*!< Local tag generated same time as callid */ ); enum ast_transport transport; /*!< Transport for this registration UDP, TCP or TLS */ int portno; /*!< Optional port override */ -- cgit v1.2.3