aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-11 00:52:22 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-11 00:52:22 +0000
commitefc2cd60b5916ab78d4d81f6635ad0d69d2ec166 (patch)
tree55a304478053703ef086593fe54114ae1669b819 /channels
parent2d879ddafe341664a0bc4c0810d9f419b00e42f9 (diff)
Merged revisions 181032-181033 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r181032 | mmichelson | 2009-03-10 19:46:47 -0500 (Tue, 10 Mar 2009) | 19 lines Merged revisions 181029,181031 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r181029 | mmichelson | 2009-03-10 19:30:26 -0500 (Tue, 10 Mar 2009) | 9 lines Fix incorrect tag checking on transfers when pedantic=yes is enabled. (closes issue #14611) Reported by: klaus3000 Patches: patch_chan_sip_attended_transfer_1.4.23.txt uploaded by klaus3000 (license 65) Tested by: klaus3000 ........ r181031 | mmichelson | 2009-03-10 19:32:40 -0500 (Tue, 10 Mar 2009) | 3 lines Remove unused variables. ........ ................ r181033 | mmichelson | 2009-03-10 19:49:00 -0500 (Tue, 10 Mar 2009) | 3 lines Add missing comment that quotes RFC 3891 ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@181034 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 176a80193..1bdb58506 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11092,6 +11092,21 @@ static struct sip_pvt *get_sip_pvt_byid_locked(const char *callid, const char *t
(With a forking SIP proxy, several call legs share the
call id, but have different tags)
*/
+
+ /* RFC 3891
+ * > 3. User Agent Server Behavior: Receiving a Replaces Header
+ * > The Replaces header contains information used to match an existing
+ * > SIP dialog (call-id, to-tag, and from-tag). Upon receiving an INVITE
+ * > with a Replaces header, the User Agent (UA) attempts to match this
+ * > information with a confirmed or early dialog. The User Agent Server
+ * > (UAS) matches the to-tag and from-tag parameters as if they were tags
+ * > present in an incoming request. In other words, the to-tag parameter
+ * > is compared to the local tag, and the from-tag parameter is compared
+ * > to the remote tag.
+ *
+ * Thus, the totag is always compared to the local tag, regardless if
+ * this our call is an incoming or outgoing call.
+ */
if (pedanticsipchecking && (strcmp(fromtag, sip_pvt_ptr->theirtag) || (!ast_strlen_zero(totag) && strcmp(totag, ourtag))))
match = 0;