[asterisk-dev] strange spiral handling in chan_sip
NeoTel Lists
MailingLists at neotel.at
Mon Feb 2 09:14:52 CST 2009
Hi Klaus, Mark!
I agree with Klaus, that the request should be handled as a new request.
For that I made the attached patch based on
http://bugs.digium.com/view.php?id=13630
This patch is for the 1.6.0.5, but should work for 1.4.23 as well.
Any suggestions welcome.
The idea behind: If the request has no to-tag and we are really
pedantic, let's check the Request URI, too, and, if different put her
into routing again. In my opinion the CallID as a single check for
dialog matching is very poor. See chan_sip.c:6070 ff. in find_call().
br
Walter
> -----Original Message-----
> From: asterisk-dev-bounces at lists.digium.com
> [mailto:asterisk-dev-bounces at lists.digium.com] On Behalf Of
> Mark Michelson
> Sent: Wednesday, January 14, 2009 4:33 PM
> To: Asterisk Developers Mailing List
> Subject: Re: [asterisk-dev] strange spiral handling in chan_sip
>
> Klaus Darilion wrote:
> > Hi!
> >
> > I just found this text in chan_sip which describes how
> spirals will be
> > handled:
> >
> > /* This is a spiral. What we need to do is to just change
> the outgoing
> > INVITE
> > * so that it now routes to the new Request URI. Since we
> created the
> > INVITE ourselves
> > * that should be all we need to do.
> > */
> >
> >
> > IMO this is wrong. If a message spirals back to Asterisk
> this means that
> > Asterisk should handle it as it a totally new request -
> newer it should
> > influence the outgoing request.
> > I observed (1.4.22) real bogus behavior that Asterisk sends a new
> > outgoing INVITE with increased CSeq (looks like a reINVITE)
> and also it
> > try to lookup the userpart (instead of the hostpart) of the
> received
> > spiraled request.
> >
> >
> > Here is the received spiraled request:
> >
> > <--- SIP read from 111.11.11.90:5060 --->
> > INVITE sip:8604+4369911161122 at example.at;transport=UDP SIP/2.0
> > Record-Route: <sip:111.11.11.90;lr;ftag=as5764a3a4
> > at=yes;x-nt-gw=0>
> > Via: SIP/2.0/UDP 111.11.11.90;branch=z9hG4bKdfe1.f9c82eb2.0
> > Via: SIP/2.0/UDP
> 111.11.11.65:5084;branch=z9hG4bKdhEr6TTK465LvdH;rport=5084
> > Via: SIP/2.0/UDP 111.11.11.90;branch=z9hG4bKdfe1.e9c82eb2.0
> > Via: SIP/2.0/UDP
> 22.22.222.183:5060;branch=z9hG4bK52f281cb;rport=5060
> > From: <sip:072062007301 at example.foobar.at>;tag=as5764a3a4
> > To: <sip:8604+4369911161122 at example.foobar.at>
> > Call-ID: 7ee2bd3a6aea62ff7e40db6e0c385e54 at example.foobar.at
> > CSeq: 103 INVITE
> > Max-Forwards: 67
> > Supported: replaces
> > Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY
> > Contact: <sip:example.orig at 22.22.222.183>
> > Content-Length: 306
> > Content-Type: application/sdp
> > Record-Route: <sip:111.11.11.65:5084;lr>
> > Record-Route: <sip:111.11.11.90;lr;ftag=as5764a3a4
> >
> >
> > from logfile:
> >
> > [Jan 14 15:08:26] DEBUG[15909] chan_sip.c: Potential spiral
> detected.
> > Original RURI was sip:8604+4369911161122 at example.foobar.at,
> new RURI is
> > sip:8604+4369911160036 at example.at;transport=UDP
> > [Jan 14 15:08:26] WARNING[15909] chan_sip.c: No such host:
> > 8604+4369911161122
> >
> >
> > regards
> > klaus
>
> Hi Klaus,
>
> If you look at issue 13630 on the bugtracker
> (http://bugs.digium.com/view.php?id=13630), you'll find a
> patch attached which
> should cause behavior to be better. The patch treats a
> suspected spiral the same
> way we handle a 302 redirect, meaning that Asterisk will
> start a new call to the
> new RURI. The patch isn't completely refined yet (e.g. it
> doesn't handle the
> promiscredir setting in sip.conf) but it is a step in the
> right direction.
>
> The patch that I am referring to is an attachment called
> 13630_temporary.patch.
> If you want to skip the step of browsing the issue tracker,
> you can wget the
> patch directly with this URL:
> http://bugs.digium.com/file_download.php?file_id=20433&type=bug
>
> Mark Michelson
>
> >
> > _______________________________________________
> > --Bandwidth and Colocation Provided by http://www.api-digital.com--
> >
> > asterisk-dev mailing list
> > To UNSUBSCRIBE or update options visit:
> > http://lists.digium.com/mailman/listinfo/asterisk-dev
>
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 13630_temporary.1.6.neotel.patch
Type: application/octet-stream
Size: 2793 bytes
Desc: 13630_temporary.1.6.neotel.patch
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20090202/15517682/attachment.obj
More information about the asterisk-dev
mailing list