> 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
