Hello everybody,
I have questions about a forking proxy. This scenario is my head and I can't solve it.
|---------------------> UAS
UAC ------------> Proxy |
|---------------------> UASA UAC is generating an INVITE with a Via branch xyz, a from tag x and an empty to tag. The proxy has now information that the AOR is registered twice and sends to both an INVITE - parallel. Now both send back a 180 Ringing. What happens now? Will the proxy recognize that this situation is dangerous and generate a CANCEL for one UAS? Or will the proxy send both provisional responses to the UAC? Which one will build a dialog? Both have set a to tag (a and b). Now I have two dialogs but only one state machine. Is this possible? Or the first Ringing has a dialog and the second, what happens with the second Ringing? And imagine, both UAS will response with a 200 OK to the same time. A 200 OK is end-to-end. The proxy can't do anything for this situtation. It is not allowed that a proxy generates a BYE but the proxy has the information about two INVITEs, the UAC only about one INVITE. Now the first 200 OK is received by the UAC. The state machine is destroyed and the ACK is genearted by the core. The second 200 OK is received, but the state machine is gone? What's now? Will the UAC send an ACK and then a BYE?
If there is a mistake in my thinking and the proxy will recognize that its server transaction to the UAC has a dialog after the first 180 Ringing and will cancel the second, what will happen if both UAS, sends a fast response without a provisional response.
How plays a dialog with the transaction identifier together? How does a dialog know which transaction belongs to itself? You know what I mean? First the dialog without to tag, then a 200 OK with to tag (dialog id), transation ends, new transaction ACK sends, Session, new transaction, BYE will send - only with one dialog. The whole time in my logic I thought that one dialog many transactions, for every transaction one state machine, with the exception of an ACK for an 200 OK.
There is an answer in the RFC which says that first 200 OK will be handled and the second 200 OK will retransmission.17.3.8 and 18.1.1. It's going about multicast but this situation is a little bit differenter. In this situation the UAC doesn't know that it is possible to get two 200 OK through forking.
I hope that I didn't confuse you and the answers are easier as the questions.
Thank you in advance who can solve this situation.
Markus Hofmann
_______________________________________________ Sip-implementors mailing list [EMAIL PROTECTED] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
