Jo Hornsby wrote:

>> In this example, the INVITE and all responses, regardless of which UA
>> (UA1 or UA2) sent them, will be part of one call leg (CL0).
> 
> 
> Uh.  I'd be careful here.  More they're part of one transaction.
> Call Legs are spawned by 2xxs.

Where is it stated that call legs are only spawned by 2xxs?

> 
>> If sent, the CANCEL (to UA1) will be part of another call leg (CL1),
>> and any subsequent transactions to UA2 will be part of yet another
>> call leg (CL2).
> 
> 
> No.
> 
> There will be no CANCEL to UA1.  UA0 sends out a CANCEL corresponding
> to its request; if it sent out a CANCEL with a UA1's tag in it, then
> this CANCEL would not be related to any other request (since it would
> not match the original INVITE), and thus UA0 would see a 481.

I think you are right. I was wrong in my original posting that UA0 sent 
out CANCEL to UA1. In fact, CANCEL should have Call-ID, To, From, and 
CSeq (numeric) fields identical to the initial INVITE. Also, the CANCEL 
must not use the Contact contained in 180 tag=1. Rather, it must follow 
the same path as INVITE, in which case it would have been sent to PS. 
Bis-02 further states that a proxy that receives a CANCEL forwards it to 
all branches with pending requests. And in my example, there was none 
from PS point of view. So, CANCEL will do no good. 

My question will be solved if we can convince ourselves that only 2xxs 
spawn call legs. In this case, UA0 just ignores 180 tag=1. However, if 
1xx responses can also create call legs, then I believe UA0 still has a 
transaction that is pending.

Regards,

Shan Lu

NexTone Communications



_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to