[SR-Users] Problem Storing USRLOC Additional Attributes

Daniel-Constantin Mierla miconda at gmail.com
Fri Jul 3 13:32:31 CEST 2015


Hello,

hmm, can you print the xavps just after you added them before
save(location)? Trying to spot where the issue is, in storing inside
usrloc or outside in the xavp framework. There should be some function
to dump all xavps, iirc.

Cheers,
Daniel

On 02/07/15 23:09, Luca Mularoni wrote:
> Hi Daniel,
> yes, when I use db_mode 2 [1 not tested], after 'timer_interval'
> seconds (30s in my case),
> data are passed to location_attrs table (through insert query for
> first registration and then delete/insert for refresh)
> but just first and last attribute are passed (i.e. in db table I can
> find just first and last attribure for each |ruid).
>
> Regards
>
> Luca
>
> |
> Il 02/07/2015 18:12, Daniel-Constantin Mierla ha scritto:
>> Hello,
>>
>> when you use db_mode 1 or 2, do you see the values in location_attrs
>> database table?
>>
>> Cheers,
>> Daniel
>>
>> On 02/07/15 12:45, Luca Mularoni wrote:
>>> Hi All,
>>> I'm using kamailio 4.2.5 (compiled from source and aligned up to
>>> commit [00a36ae07c587992d6486277ce2e9ae6c009685f]).
>>> In order to enrich users data collected during registering phase, I
>>> would like to store them in USRLOC Additional Attributes
>>> through the use of 'xavp_contact' structure, but I'm having problems
>>> storing them.
>>> Below relevant chunks of config:
>>>
>>> ...
>>> # ----- usrloc params -----
>>> modparam("usrloc", "db_mode", 2)
>>> modparam("usrloc", "use_domain", 0)
>>> modparam("usrloc", "xavp_contact", "ulvals")
>>> ...
>>>
>>> route[REGISTRAR] {
>>>     ...
>>>     # Just an example
>>>     $xavp(ulvals=>A) = "A";
>>>     $xavp(ulvals[0]=>B) = "B";
>>>     $xavp(ulvals[0]=>C) = "C";
>>>     $xavp(ulvals[0]=>D) = "D";
>>>     ...
>>>     if (!save("location"))
>>>         sl_reply_error();
>>>     exit;
>>> }
>>>
>>> route[LOCATION] {
>>>     ...
>>>     if(!lookup("location") {
>>>         # Handle Failure
>>>         ...
>>>     }
>>>     # Print USRLOC Additional Attributes
>>>     # Just an Example
>>>     $var(i) = 0;
>>>     $var(N) = $branch(count);
>>>     while($var(i)<=$var(N)) {
>>>         xlog("LOC - [$var(i)] - A [$xavp(ulvals[$var(i)]=>A)]\n");
>>>         xlog("LOC - [$var(i)] - B [$xavp(ulvals[$var(i)]=>B)]\n");
>>>         xlog("LOC - [$var(i)] - C [$xavp(ulvals[$var(i)]=>C)]\n");
>>>         xlog("LOC - [$var(i)] - D [$xavp(ulvals[$var(i)]=>D)]\n");
>>>         $var(i) = $var(i) + 1;
>>>     }
>>>     ...
>>> }
>>>
>>> And this is the relevant chunk of syslog when a local subscriber is
>>> found in 'location' table:
>>> ...
>>> LOC - [0] - A [A]
>>> LOC - [0] - B [<null>]
>>> LOC - [0] - C [<null>]
>>> LOC - [0] - D [D]
>>> ...
>>>
>>> Summing up, it seems that when xavp structure is stored in memory,
>>> just first and last elementsare inserted.
>>> In real config I'm using more than 4 attributes and behaviour is the
>>> same: just first and last are stored.
>>> I've tried also with modparam("usrloc", "db_mode", 0) but the problem
>>> remains.
>>>
>>> Where I'm wrong in using this structure? Or it could be a bug?
>>>
>>> Thank You in advance for your help
>>>
>>> Luca Mularoni
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150703/3201194e/attachment.html>


More information about the sr-users mailing list