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

Reply via email to