I seem to be able to solve this problem by looking at ruri for the request. Besides checking the callid, I also compare the current ruri and existing ruri to see if it is indeed the same call.
Thanks for leading me the right direction.
Richard
-----Original Message----- From: Bogdan-Andrei IANCU [mailto:iancu@fokus.fraunhofer.de] Sent: Tuesday, October 05, 2004 11:08 PM To: Richard Cc: serusers@lists.iptel.org Subject: Re: [Serusers] loop call with asterisk
Hi Richard,
I guess it's a very thin line between a loop and a spiral. They are very similar (even impossible to tell the difference from SIP point of view), but first is harmful and the second useful :-). I haven't went through the RFC, but IMHO is tricky for UAS detect properly a loop - I guess that's way everybody relies on MAX_FORWARD to end potential loops. So, depends a lot of what * consider a loop (how exactly does this) - because, as you said, all important hdrs are the same. Btw, is at least RURI changing between outgoing and returning call ( on *) ? The worst solution will be insert a very simple B2BUA in the middle to change at least some tags. But is ugly :-(
regards, Bogdan
Richard wrote:
Hi,
I am trying to use * as a PSTN gateway. When a call comes in from PSTN,
it
is forwarded to ser. If for some reason (e.g. call being forwarded back
to
PSTN), ser will just do a record route and send it back to *. When * gets this call, it thinks it is a loop and drop the call. I know that this question has been raised before. I'd like to see, just from sip
respective,
what's the theoretical way to solve it? Since all major fields are the
same,
e.g. fromuri, touri, cseq, callid, what is the right way to detect loop
in
SIP in this case? Btw, cisco router doesn't have this problem.
Thanks, Richard
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers