> From: Iñaki Baz Castillo [[email protected]]
> 
> Hi, a proxy does parallel forking for an INVITE to leg A and B.
> 
> Later legA replies 480 so the proxy client transaction transitions to
> "completed" state and remains there for a while (a timer and so).
> 
> A few seconds later, leg B (which has not received or processed the
> CANCEL yet) replies 200. What should do the proxy? forward the
> request? or ignore it? I assume it must forward it without changing
> the client transaction to "accepted" state (RFC 6026) as it was
> already in "completed" state. If not, leg B will not receive and ACK
> for the 200 (the UAC would be responsible o sending such ACK followed
> by a BYE).

Uh, what?  There are multiple errors in your description.

If a proxy does parallel forking to two destinations, there are two
client transactions, one to A and one to B.

If A responds 480, then the client transaction for A goes to completed
state.  This client transaction sends ACK to A (because failure ACKs
are "handled hop-by-hop").  Of course, the client transaction for B
remains active, as B has not provided any response yet.

The proxy will not (normally) send a CANCEL to B, because A gave a
failure response.

If B now sends a 200 response, its client transaction will go to
accepted state.  The proxy will forward the 200 upstream to the UAC.
The UAC will send an ACK to B (because success ACKS are "handled
end-to-end").

Dale

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to