[SR-Users] Problem Storing USRLOC Additional Attributes

Luca Mularoni luca.mularoni at gmail.com
Thu Jul 2 23:09:15 CEST 2015


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

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


More information about the sr-users mailing list