Ran into a question during negative testing, wanted to know if anyone has opinions
and/or remembers the reason for the following text in section 15 of RFC3261:
However, the callee's UA MUST NOT send a BYE on a confirmed dialog
until it has received an ACK for its 2xx response or until the server
transaction times out.
Example scenario is a call setup attempt through the following:
A -> P1 -> P2 -> P3 -> B
P1 and P3 are record routed, P2 is not. Invite with SDP is sent, 18x returned, then
P2 dies sometime during ringing but before answer. 200 with SDP is then returned
(completing offer/answer and thus creating a session and confirmed dialog) but can't
get to A because P2 is down. All retransmits of the 200 happen. B's server
transaction times out, so it sends BYEs to try to tear down the call. Since P2 was
not record routed, the BYEs make it to A who is not expecting a BYE during ringing.
Are any elements mis-behaving here?
The RFC text above seems to be designed to prohibit BYEs from being sent unless a
session is fully established, but also leaves it open to send one if the server
transaction times out waiting for an ACK. Anybody know why this is? What problems
would there be for a UAC getting a BYE for a ringing call?
A bit below the text noted above is this motivational text:
... For the callee's UA, it would typically imply a BYE;
presumably, when the user picked up the phone, a 2xx was
generated, and so hanging up would result in a BYE after the ACK
is received. This does not mean a user cannot hang up before
receipt of the ACK, it just means that the software in his phone
needs to maintain state for a short while in order to clean up
properly. ... As per the rules above, a BYE can't be sent.
This seems to conflict with the first text allowing a BYE to be sent when a server
transaction timeout occurs. What is allowed?
John Hearty
Level 3 Communications, Inc.
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors