[OpenSER-Devel] pua module - R-URI of requests within a dialog

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Feb 5 16:24:55 UTC 2008


Hi Marco,

Actually the proper section from RFC3261 that really nails down my 
previous statement is this one:

<SNAP>

12.2 Requests within a Dialog

   Once a dialog has been established between two UAs, either of them
   MAY initiate new transactions as needed within the dialog.  The UA
   sending the request will take the UAC role for the transaction.  The
   UA receiving the request will take the UAS role.  Note that these may
   be different roles than the UAs held during the transaction that
   established the dialog.

   Requests within a dialog MAY contain Record-Route and Contact header
   fields.  However, these requests do not cause the dialog's route set
   to be modified, although they may modify the remote target URI.
   Specifically, requests that are not target refresh requests do not
   modify the dialog's remote target URI, and requests that are target
   refresh requests do.  For dialogs that have been established with an
   INVITE, the only target refresh request defined is re-INVITE (see
   Section 14).  Other extensions may define different target refresh
   requests for dialogs established in other ways.

      Note that an ACK is NOT a target refresh request.

   Target refresh requests only update the dialog's remote target URI,
   and not the route set formed from the Record-Route.  Updating the
   latter would introduce severe backwards compatibility problems with
   RFC 2543-compliant systems.

</SNAP>


So, shortly, re-INVITEs may change the targets (via new contact). This 
actually have a deep implication of several openser modules that deal 
with dialogs:
    presence / pua
    dialog

Best regards,
Bogdan


Marco Happenhofer wrote:
> Hi Bogdan,
>
> I can not agree with your interpretation. Because the route header does not contain the final destination. 
> And the last hop could not be able to resolve the destination.
>
> The Contact header in the SIP Messages is the remote target URI, to which the sender has to address his message.
>
> According to section 8.1.1.8 of RFC3261:
>    The Contact header field provides a SIP or SIPS URI that can be used
>    to contact that specific instance of the UA for subsequent requests.
>
>
> According to section 12.2.1.1 of RFC3261:
>    The UAC uses the remote target and route set to build the Request-URI
>    and Route header field of the request.
>
> I think both parties of a dialog have to learn the remote target URI (from the Contact header) and use them for further requests
> as Request URI.
>
>
>
>
> Bogdan-Andrei Iancu schrieb:
>   
>> Hi Reinhold,
>>
>> But the first SUBSCRIBE establish the route set (RRs + contacts) which 
>> do not change across a dialog. So all NOTIFYs and SUBSCRIBEs within 
>> that dialog must follow the initial route set and not to try to change 
>> it.
>>
>> If for whatever reasons the route set needs to be changed, a new 
>> dialog must be created.
>>
>> Regards,
>> Bogdan
>>
>> Reinhold Buchinger wrote:
>>     
>>> But the API of the pua module does not provide a possibility to 
>>> update the contact. Can this be changed?
>>>
>>> Regards,
>>> Reinhold
>>>
>>> Klaus Darilion schrieb:
>>>  
>>>       
>>>> Yes it should
>>>>
>>>> Reinhold Buchinger schrieb:
>>>>    
>>>>         
>>>>> Hi,
>>>>>
>>>>> The pua module takes care of refreshing subscriptions. But 
>>>>> shouldn't the R-URI of the SUBSCRIBE request within a dialog
>>>>> be set to the URI provided in the Contact header filed of received 
>>>>> NOTIFY requests (as EyeBeam does, for instance)?
>>>>>
>>>>> Thank you.
>>>>>
>>>>> Best regards,
>>>>> Reinhold
>>>>>
>>>>>           




More information about the Devel mailing list