[SR-Users] Relaying message to Recent contact list...

Daniel-Constantin Mierla miconda at gmail.com
Fri Mar 23 11:40:32 CET 2012


Hello,

On 3/22/12 6:36 PM, Krishna Kurapati wrote:
> Thanks Daniel.
>
> I  found your posting four years ago about saving one contact per user
>
> http://lists.kamailio.org/pipermail/devel/2008-October/016273.html
>
> and used save("location", "0x04"). However, I noticed a problem with this.
> The contact is not storing in the memory. Whenever there is a 
> Reregistration
> happening, the contact is briefly not available for routing.
>
> Then I looked at the resgistrar code, I am befuddled.
>
> -- code snippet:
>
> /*! \brief
>  * Wrapper to save(location)
>  */
> static int w_save(struct sip_msg* _m, char* _d, char* _cflags)
> {
>         return save(_m, (udomain_t*)_d, ((int)(unsigned long)_cflags));
> }
>
> The string "0x04" looks like getting type-casted to long.
this is so called fixup mechanism in SER/Kamailio. At startup the 
parameters which come as char* from config are pre-compiled in various 
forms (in this case is an integer). At runtime, the config interpreter 
calls the function with the pre-compiled form of the parameter, thus the 
cast.

Look for save_fixup() function to understand better. Also, the devel 
guide on the net should have a section about this mechanism.

Cheers,
Daniel

>
> Krish Kura
>
>
> On Thu, Mar 22, 2012 at 11:11 AM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     if you don't use the other contacts, then might be simpler to just
>     store one contact per AoR (which will be from last registration)
>     -- see save(...) second parameter flags.
>
>     Don't remember by hart, but registrar or usrloc has a parameter to
>     control whether to add or not additional branches from a location
>     lookup - check the readmeas, but I am not sure the first result is
>     the most recent, you would have to test it or check the sources.
>
>     The last coming in my mind right now would be to program it in
>     config via reg_fetch_contacts() and $ulc(...).
>
>     Cheers,
>     Daniel
>
>
>     On 3/22/12 4:49 PM, Krishna Kurapati wrote:
>>     Hi,
>>
>>     I am trying to relay the message to the Registered user. However,
>>     I would like to relay only to a recent contact.
>>     In case, there are multiple contact, I do not want to relay to
>>     older contacts.
>>
>>     I am using t_relay() which is currently forking the request to
>>     all contacts.
>>
>>     Any other way to accomplish my need?
>>
>>     Thanks
>>     Krish Kura
>>
>>
>>     _______________________________________________
>>     SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>     sr-users at lists.sip-router.org  <mailto:sr-users at lists.sip-router.org>
>>     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>     -- 
>     Daniel-Constantin Mierla
>     Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
>     http://www.asipto.com/index.php/kamailio-advanced-training/
>
>

-- 
Daniel-Constantin Mierla
Kamailio Advanced Training, April 23-26, 2012, Berlin, Germany
http://www.asipto.com/index.php/kamailio-advanced-training/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120323/d09bc4ed/attachment.htm>


More information about the sr-users mailing list