diff options
author | Jonathan Rose <jrose@digium.com> | 2013-09-27 17:46:16 +0000 |
---|---|---|
committer | Jonathan Rose <jrose@digium.com> | 2013-09-27 17:46:16 +0000 |
commit | 7e2a72771dbd538d8c72865406ca5aabb883d9d9 (patch) | |
tree | 6958867c3df6be5b0ced0d64592c77715f8d9b93 /channels/sip/include/sip.h | |
parent | 7c796593d347210ec8da2ba80b4483d261ef8f05 (diff) |
chan_sip: Reject calls on 200 OKs if no SDP has been received
When Asterisk receives a 200 OK in response to an invite, that peer should have
sent an SDP at some point by then. If the channel has never received an SDP,
media won't have been set and the remote address won't be known. Endpoints in
general should not be doing this. This patch makes it so that Asterisk will
simply hang up a call if it sends a 200 OK at this point. So far this odd
behavior for endpoints has only been observed in tests which involved manually
created SIP transactions in SIPp.
(closes issue ASTERISK-22424)
Reported by: Jonathan Rose
Review: https://reviewboard.asterisk.org/r/2827/
........
Merged revisions 399939 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 399962 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 399976 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@399978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sip/include/sip.h')
-rw-r--r-- | channels/sip/include/sip.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/channels/sip/include/sip.h b/channels/sip/include/sip.h index c0704ec79..342c87b36 100644 --- a/channels/sip/include/sip.h +++ b/channels/sip/include/sip.h @@ -1019,6 +1019,7 @@ struct sip_pvt { AST_STRING_FIELD(rdnis); /*!< Referring DNIS */ AST_STRING_FIELD(redircause); /*!< Referring cause */ AST_STRING_FIELD(theirtag); /*!< Their tag */ + AST_STRING_FIELD(theirprovtag); /*!< Provisional their tag, used when evaluating responses to invites */ AST_STRING_FIELD(tag); /*!< Our tag for this session */ AST_STRING_FIELD(username); /*!< [user] name */ AST_STRING_FIELD(peername); /*!< [peer] name, not set if [user] */ |