Ben,

It also applies to proxies. So if you have the following scenario:

UA->proxy
INVITE
Via: branch=b1

proxy->onwards
INVITE
Via: branch=b2
Via: branch=b1

then if UA sends CANCEL, it becomes

UA->proxy
CANCEL
Via: branch=b1

proxy->onwards
CANCEL
Via: branch=b2        <= Note: only 1 Via header here

When the proxy starts forking, each forwarded INVITE gets its own branch. So 
for two targets {A,B} it becomes:

proxy->onwards_A
INVITE
Via: branch=b2
Via: branch=b1

proxy->onwards_B
INVITE
Via: branch=b3
Via: branch=b1

A subsequent CANCEL must have matching top branch again, so <b2> towards A 
and <b3> towards B

Hope this clarifies,

jeroen


----- Original Message ----- 
From: "Ben Papworth" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, February 22, 2006 4:40 PM
Subject: [Sip-implementors] Stateful Proxies Forwarding CANCELs


> Hi,
>
> I'm currently writing a call stateful SIP proxy. I've got a question
> about how I should handle CANCELs...
>
> The SIP book (SIP: Understanding the Session Initiation Protocol) says
> that CANCELs should have the same branch id as the request that's being
> cancelled. Does this only apply to the UA that created the request and
> issued the CANCEL, or should intermediate proxies use the same branch id
> their via header for both the forwarded request and the forwarded CANCEL?
>
> This proxy may also be capable of forking requests at a later date. In
> this instance, is it desirable to use the same branch ids for requests
> and their CANCELs?
>
> Thanks for any help!
>
> Best Regards,
> Ben Papworth
>
>
>
> _______________________________________________
> 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