[asterisk-commits] oej: branch oej/sip-fork-support r227416 - /team/oej/sip-fork-support/channels/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Nov 3 14:36:26 CST 2009
Author: oej
Date: Tue Nov 3 14:36:22 2009
New Revision: 227416
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=227416
Log:
First try.
Modified:
team/oej/sip-fork-support/channels/chan_sip.c
Modified: team/oej/sip-fork-support/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/sip-fork-support/channels/chan_sip.c?view=diff&rev=227416&r1=227415&r2=227416
==============================================================================
--- team/oej/sip-fork-support/channels/chan_sip.c (original)
+++ team/oej/sip-fork-support/channels/chan_sip.c Tue Nov 3 14:36:22 2009
@@ -4800,7 +4800,7 @@
if (pedanticsipchecking) {
/* In principle Call-ID's uniquely identify a call, but with a forking SIP proxy
- we need more to identify a branch - so we have to check branch, from
+
and to tags to identify a call leg.
For Asterisk to behave correctly, you need to turn on pedanticsipchecking
in sip.conf
@@ -4841,6 +4841,15 @@
} else if (totag[0]) { /* Both have tags, compare them */
if (strcmp(totag, p->tag)) {
found = FALSE; /* This is not our packet */
+ }
+ }
+ /* If this is an INVITE, check if the request URI is the same as the one in the found dialog. If not, it's not the same. */
+ if (found && req->method == SIP_INVITE) {
+ if (strcmp(req->rlPart2, p->initreq.rlPart2)) {
+ found = FALSE; /* The URI's are not the same */
+ if (option_debug > 4) {
+ ast_log(LOG_DEBUG, "= Being pedantic: Forked call - two branches hitting us at the same time - This URI %s - Other URI %s\n", req->rlPart2, p->initreq.rlPart2);
+ }
}
}
if (!found && option_debug > 4)
More information about the asterisk-commits
mailing list