Hello,

Iñaki Baz Castillo wrote:
> 2008/10/2, Dmitry Akindinov <[EMAIL PROTECTED]>:
>>> For me this means that, in RFC 3261, Contact must be present in a 2xx
>>> to an INVITE.
>>>
>>  Yes, but according to this table it's optional for 1xx. And 3262 does not
>> update that, though with reliable 1xx the Contact is more likely to be
>> needed to address the PRACK.
> 
> Yes, but RFc3261 updates the 1xx behaviour when it clearly says:
> 
> RFC 3262:
> ------------------------------------------------------
> 
>  4 UAC Behavior
> 
>    The provisional response ***MUST establish a dialog*** if one is not yet
>   created.
> -------------------------------------------------------
> 
> And note that for a dialog to be established it's needed a remote
> target (not the initial RURI).

Yes, this is exactly how we get the idea of SIP dialogs, including the 
early ones. And that's why we want to avoid programming workarounds in 
our code particularly for this situation - because we believe that a 1xx 
without the Contact URI but requesting reliable handling is wrong. It's 
also not right even when reliable handling is not requested, but that 
does not hit us that bad :-)

> So, it's true that RFC 3262 doesn't update the table, but note that
> "Contact" just would be required if the 1xx includes a "Require:
> 100rel",

That's something we kept saying to the vendor for several month already.

> so there is no need to update that table. In any case RFC
> 3262 could add:
> 
>      Header field          where   proxy ACK BYE CAN INV OPT REG
>      ___________________________________________________________
>      Contact                 R            o   -   -   m   o   o
>      Contact                1xx           -   -   -   o    -   -
>      Contact         1xx + 100rel     -   -   -   m   -   -
>      Contact                2xx           -   -   -   m   o   o
>      Contact                3xx     d    -   o   -   o   o   o
>      Contact                485           -   o   -   o   o   o

It could, but it does not, unfortunately.

> Well, as you say life would be better if RFC 3262 says that, but
> however this is implicit by the above phrase "The provisional response
> ***MUST establish a dialog*** if one is not yet created".

Well, here we have a chain of reasoning (early dialog is created -> 
PRACK is sent within a dialog -> as an in-dialog request it should be 
addressed to RURI -> RURI should have been sent with 1xx -> RURI is 
required) versus the simple and short reference to tables in rfc3262 and 
3261 not marking the Contact header as required. And for some it's hard 
to follow these chains.

Thank you very much  for your comments. I've sent the link to the list 
archive with this discussion to the vendor. I hope this will move the 
scales and they fix their SIP implementation.

-- 
Best regards,
Dmitry Akindinov


_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to