I don't know if there was a response to this.

Wei BJ Lu wrote:

> Thanks for your helpful input. It's much clear to me now.
> Would you please confirm my understanding as following:
> 
> Proxy:  1. forward all 1xx responses


Not 100, only 101-199.


>         2. if a 2xx arrives, forward it, CANCEL all other branches,
>            drop all non 2xx final responses already received


Yes.


>         3. if no 2xx received, pick the best among all 3xx/4xx/5xx/6xx
>            responses and forward to UAC


Yes.


>         4. if final responses arrives after a 2xx is forwarded
>            (this is caused by CANCEL and the response cross on the wire),
>            send ACK for non-2xx and forward 2xx to UAC


Yes.


>         5. proxy could add To tag to responses generates by its own


Yes. Another way to think about it is this. A proxy can always fork 
another branch to ITSELF, respond to that branch with any response it 
likes with any tag. Then, it receives that response from itself, chooses 
that response as the best, and forwards it upstream.


> 
> UAC:    1. create dialog when receives state-invoking provisional response
>            (e.g 180), if receives several provisional responses with
>            different To tag, multiple dialogs will be created


Yes.


>         2. non-2xx final response arrives when all the dialogs in 1xx
> state,
>            terminate all dialogs, the transaction is finished


You still need to ACK the non-2xx, and the transaction hangs around for 
retransmits, but otherwise yes.


>         3. 2xx response arrives on one dialog when all the dialogs in 1xx
> state,
>            a timer starts to make sure all the other dialogs will terminate
>            after some time and no 2xx arrives on them


Yes.


>         4. if another 2xx arrives on another dialog before the timer
> triggers,
>            the UAC is free to keep multiple dialogs going or it could send
> BYE
>            on it after ACK the 2xx


Yes.


>         5. it's impossible for multiple non-2xx final responses reach UAC
> since
>            the proxy will only pick the best one among them


Yes. It could happen under conditions where a forking proxy fails 
mid-transaction, but it is not normal operation.


>         6. it's impossible for a non-2xx final responses reach UAC after
> UAC
>            receives a 2xx since all the non-2xx final responses are eaten
> by
>            the proxy after 2xx arrives at proxy


Yes.

-Jonathan R.



-- 
Jonathan D. Rosenberg, Ph.D.            72 Eagle Rock Avenue
Chief Scientist                         First Floor
dynamicsoft                             East Hanover, NJ 07936
[EMAIL PROTECTED]                 FAX: (973) 952-5050
http://www.jdrosen.net                  PH:  (973) 952-5000
http://www.dynamicsoft.com

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

Reply via email to