Shan
I think that it is not UA0's responsibility to CANCEL forked branches after
receiving final response from one branch.
It is up to the proxy to CANCEL INVITEs sent to other branches if 200 final
response is received from one branch. Since the proxy knows that both
branches have responded, there should be no issues of sending CANCEL, in
this scenario.

 -----Original Message-----
From:   [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]  On Behalf Of Shan Lu
Sent:   Friday, May 04, 2001 2:30 PM
To:     [EMAIL PROTECTED]
Subject:        [Sip-implementors] Forking question

Hi,

Have the following question on forking. The configuration is simple: UA0
sends INVITE which is forked by proxy server PS to two different UAs:
UA1 and UA2. The message flow is like this:

1. UA0 initiates INVITE
2. PS forks INVITE to UA1 and UA2
3. Both UA1 and UA2 responds with 180. UA1 has To tag=1 and UA2 has To
tag=2. These two responses are forwarded by PS back to UA0
4. UA1 sends 4xx or 6xx response. PS ACKs the response.
5. UA2 sends 200 response. PS forwards 200 to UA0.
6. UA0 ACKs the 200 response. The ACK is forwarded by PS to UA2.
7. UA0 CANCELs 180 to UA1. Because UA0 doesn't know UA1 has already sent
final response. And let's further assume that PS does not record-route
and hence does not see the CANCEL.
8. UA1 responds with 481 Transaction Does Not Exist  to the CANCEL from UA0.

Question: what is UA0 supposed to do? It still hasn't received final
response for tag=1. Does it wait for the transaction to time out? What
should be the right behavior?

Regards,

Shan Lu

NexTone Communications

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

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

Reply via email to