Paul Kyzivat wrote:
Then the issue is that *someone else* (who Gao has had occasion to do
interop testing with) is claiming that there is a different, yet
legitimate, interpretation of the exiting text. Namely:
- *if* the UAC receives SDP in an unreliable response before
receiving it in a reliable response, it MUST begin to use it
in the same way that it would use it if it had been received
in a reliable response,
- the UAC MUST (or SHOULD?) consider this SDP to be "the answer",
and hence it MAY send another offer, even before receiving
another copy of that answer SDP in a *reliable* response.
- still it MUST ignore SDP in subsequent responses to the
INVITE.
If so, then the question comes down to:
Is this alternate interpretation a valid and legitimate interpretation
of the existing text, or not?
I agree that this is a fair question to ask, and I am not yet settled on
an answer to it.
I am approaching this in the manner of a mathematical proof by
contradiction: If this alternative interpretation leads to some sort of
inconsistency, then it is not valid. If we can find no inconsistencies,
then it is a valid interpretation. And if it is, then the text is
ambiguous and will require normative changes to fix.
I have now found the contradiction I was looking for:
If the UAC thought that receipt of the unreliable response with SDP
meant it could now send another offer, in what message could it send
that offer? The only messages where it could include an offer are:
- an INVITE. But it is forbidden from sending another INVITE until
the current INVITE transaction is complete.
- an UPDATE. But RFC 3311 says
o If the UPDATE is being sent before completion of the initial
INVITE transaction, and the initial INVITE contained an offer,
the UPDATE can contain an offer if the callee generated an
answer in a reliable provisional response, and the caller has
received answers to any other offers it sent in either PRACK or
UPDATE, and has generated answers for any offers it received in
an UPDATE from the callee.
(note that this language itself is non-normative and is justified as
a corollary of 3261.)
This rules out sending the new offer in an UPDATE.
- a PRACK. But a PRACK can only be sent in response to a reliable
provisional. The assumption here is that the answer has not been sent
in a reliable provisional yet. So the PRACK would only be an option
if a reliable provisional *without* SDP was sent after sending an
answer in an unreliable provisional. This is a very weird case.
- in a response. But the only case where an offer is permitted in a
response is in the response to INVITE, which isn't a possibility here.
I think the above is enough to debunk this interpretation.
Thanks,
Paul
_______________________________________________
Sipping mailing list https://www.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@xxxxxxxxxxxxxxx for questions on current sip
Use sip@xxxxxxxx for new developments of core SIP