Hi Robert,
Thanks for your reply.
Let me elaborate the problem further.
Proxy1 is a Call State full proxy.
INVITE Flow:
UA1 ---> Proxy 1 ---> Proxy 2 --> Proxy 1 --> UA3
|
| ----> UA 2
So when UA 2 accepts the call, Proxy 1 tries to CANCEL the other forked
Location by sending the CANCEL to Proxy 2. Since Proxy 2 sent the INVITE
to Proxy 1 previously it will sends the CANCEL to Proxy 1 again, which
Proxy 1 should send it to UA3 to CANCEL the Invite transaction at UA3.
CANCEL Flow:
Proxy 1 ---> Proxy 2 --> Proxy 1 ---X--- UA3
Proxy 1 sends the CANCEL to Proxy 2, which respond with 200 OK to Proxy
1.
Proxy 2 then sends the CANCEL to Proxy 1, however Proxy 1 fails to
detect it as a Spiral Request.
Hence pass this INVITE to application sitting on SIP stack at Proxy 1
statelessly even though Proxy1
is call statefull.
Regards
Ashish
-----Original Message-----
From: Robert Sparks [mailto:[email protected]]
Sent: Wednesday, December 24, 2008 11:50 AM
To: Ashish Dobhal
Cc: [email protected]
Subject: Re: [Sip-implementors] How to detect Spiral scenario in Case of
CANCEL .
See responses inline:
On Dec 23, 2008, at 11:31 PM, Ashish Dobhal wrote:
> Hi All,
>
> I have a query related to Spiral Scenario for CANCEL which is a hop
> by hop request.
>
>
>
> Scenario:
>
> User Agent 1(UA1) Forward the INVITE to PROXY1. PROXY1 forked it to 2
> locations UA2 and PROXY2.
>
> PROXY2 Forwards the INVITE to PROXY1 again (INVITE is a Spiral request
> on Proxy 1).
>
> Proxy1 forwards it to UA3.
>
> UA3 and UA2 ringing and 180 received by Proxy1. UA2 picks Up the call
> and sends 200 OK to Proxy1.
>
>
>
> Proxy1 Generates CANCEL for other Location (in our Case Proxy2) and
> forwards to Proxy2.
>
> Proxy2 responses with 200 OK (as CANCEL is hop by hop request) to
> Proxy1
> and forwards the CANCEL to
>
> Proxy1 for forwarding CANCEL to UA3.
>
>
>
>
>
> Question:
>
> How will PROXY1 will come to know that CANCEL received from PROXY2 is
> for Spiral request
The single Via in the CANCEL will match the topmost Via from the INVITE
> and
>
> it should be forwarded to UA3.
CANCEL is never forwarded (at least by transaction stateful proxies)
As you note above, CANCEL is hop-by-hop.
The information in the response-context matching that Via branch
parameter will determine whether your PROXY1 will
do anything based on having received that CANCEL.
If that doesn't answer your question, please restate it.
>
>
>
>
>
>
> Thanks and Regards
>
> Ashish
>
>
>
> _______________________________________________
> Sip-implementors mailing list
> [email protected]
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors