[asterisk-commits] file: trunk r104085 - in /trunk: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Feb 25 10:18:47 CST 2008
Author: file
Date: Mon Feb 25 10:18:46 2008
New Revision: 104085
URL: http://svn.digium.com/view/asterisk?view=rev&rev=104085
Log:
Merged revisions 104084 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r104084 | file | 2008-02-25 12:16:13 -0400 (Mon, 25 Feb 2008) | 6 lines
If a resubscription comes in for a dialog we no longer know about tell the remote side that the dialog does not exist so they subscribe again using a new dialog.
(closes issue #10727)
Reported by: s0l4rb03
Patches:
10727-2.diff uploaded by file (license 11)
........
Modified:
trunk/ (props changed)
trunk/channels/chan_sip.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=104085&r1=104084&r2=104085
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Mon Feb 25 10:18:46 2008
@@ -17392,6 +17392,18 @@
}
if (!req->ignore && !resubscribe) { /* Set up dialog, new subscription */
+ const char *to = get_header(req, "To");
+ char totag[128];
+
+ /* Check to see if a tag was provided, if so this is actually a resubscription of a dialog we no longer know about */
+ if (!ast_strlen_zero(to) && gettag(req, "To", totag, sizeof(totag))) {
+ if (req->debug)
+ ast_verbose("Received resubscription for a dialog we no longer know about. Telling remote side to subscribe again.\n");
+ transmit_response(p, "481 Subscription does not exist", req);
+ p->needdestroy = 1;
+ return 0;
+ }
+
/* Use this as the basis */
if (req->debug)
ast_verbose("Creating new subscription\n");
More information about the asterisk-commits
mailing list