[SR-Users] Problem Storing USRLOC Additional Attributes

Daniel-Constantin Mierla miconda at gmail.com
Thu Jul 2 18:12:09 CEST 2015


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




More information about the sr-users mailing list