avp

View: New views
3 Messages — Rating Filter:   Alert me  

avp

by Anders-26 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,

Here I am - back with more "Kamailio 101"-questions! ;-)

I need to strip the first character from the uri and write this to the
'acc' table. What I'm doing so far in kamailio.cfg is:

modparam("acc", "db_extra", "............., $avp(s:user_ip_tag)");

So I've added the avp-thing in that line. And independently I've
created a new column in the 'acc' table called "user_ip_tag".

If the above is correct, my next step is to write something to this
variable. In the routing, I have this:

        if (uri=~"^sip:[1-9]00*")
                {

do_something_here_to_take_first_character_of_the_uri_and_put_to_avp...but_how?
                        strip(1);
                }

What I want to do, is to take the 1-9 digit, if it starts with that
and has to zeroes after, and put that to the avp - and the strip it
off before I move on in the routing.

Yes, I have browsed the documentation, but I'm not sharp enough to
understand it, it seems. (or alternatively, the documentation is not
made for beginners).

Thanks!

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@...
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users

Re: avp

by Alex Balashov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Anders,

The strip() and prefix() core functions operate on the Request URI,
which can be accessed via the pseudovariable $ru.  Its user part is
$rU, the domain part is $rd, and the port is $rp.  To copy the user
part of the Request URI into an AVP after manipulation, you can simply
assign its current value:

    $avp(s:user_ip_tag) = $rU;

I'm guessing this (user part) is what you intended to do.

However, it is not necessary to import data into the Request URI for
purposes of manipulation.  Kamailio has something called transformations:

    http://www.kamailio.org/dokuwiki/doku.php/transformations:1.5.x

For your purposes, you may think of these as something kind of like
object-oriented string manipulation functions.  These can operate on
any scalar string value, e.g.

   $(avp(s:user_ip_tag){s.len})
   $avp(s:user_ip_tag) = $(rU{s.substr,1,5});

In order to obtain the data you want you can simply use those.

Cheers,

-- Alex

Anders wrote:

> Hi all,
>
> Here I am - back with more "Kamailio 101"-questions! ;-)
>
> I need to strip the first character from the uri and write this to the
> 'acc' table. What I'm doing so far in kamailio.cfg is:
>
> modparam("acc", "db_extra", "............., $avp(s:user_ip_tag)");
>
> So I've added the avp-thing in that line. And independently I've
> created a new column in the 'acc' table called "user_ip_tag".
>
> If the above is correct, my next step is to write something to this
> variable. In the routing, I have this:
>
> if (uri=~"^sip:[1-9]00*")
> {
>
> do_something_here_to_take_first_character_of_the_uri_and_put_to_avp...but_how?
> strip(1);
> }
>
> What I want to do, is to take the 1-9 digit, if it starts with that
> and has to zeroes after, and put that to the avp - and the strip it
> off before I move on in the routing.
>
> Yes, I have browsed the documentation, but I'm not sharp enough to
> understand it, it seems. (or alternatively, the documentation is not
> made for beginners).
>
> Thanks!
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users@...
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


--
Alex Balashov - Principal
Evariste Systems
Web     : http://www.evaristesys.com/
Tel     : (+1) (678) 954-0670
Direct  : (+1) (678) 954-0671

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@...
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users

Re: avp

by Anders-26 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Alex,

That's great, got it working - thanks a lot!

//Anders


On Mon, Nov 9, 2009 at 8:41 AM, Alex Balashov <abalashov@...> wrote:

> Anders,
>
> The strip() and prefix() core functions operate on the Request URI, which
> can be accessed via the pseudovariable $ru.  Its user part is $rU, the
> domain part is $rd, and the port is $rp.  To copy the user part of the
> Request URI into an AVP after manipulation, you can simply assign its
> current value:
>
>   $avp(s:user_ip_tag) = $rU;
>
> I'm guessing this (user part) is what you intended to do.
>
> However, it is not necessary to import data into the Request URI for
> purposes of manipulation.  Kamailio has something called transformations:
>
>   http://www.kamailio.org/dokuwiki/doku.php/transformations:1.5.x
>
> For your purposes, you may think of these as something kind of like
> object-oriented string manipulation functions.  These can operate on any
> scalar string value, e.g.
>
>  $(avp(s:user_ip_tag){s.len})
>  $avp(s:user_ip_tag) = $(rU{s.substr,1,5});
>
> In order to obtain the data you want you can simply use those.
>
> Cheers,
>
> -- Alex
>
> Anders wrote:
>
>> Hi all,
>>
>> Here I am - back with more "Kamailio 101"-questions! ;-)
>>
>> I need to strip the first character from the uri and write this to the
>> 'acc' table. What I'm doing so far in kamailio.cfg is:
>>
>> modparam("acc", "db_extra", "............., $avp(s:user_ip_tag)");
>>
>> So I've added the avp-thing in that line. And independently I've
>> created a new column in the 'acc' table called "user_ip_tag".
>>
>> If the above is correct, my next step is to write something to this
>> variable. In the routing, I have this:
>>
>>        if (uri=~"^sip:[1-9]00*")
>>                {
>>
>>
>> do_something_here_to_take_first_character_of_the_uri_and_put_to_avp...but_how?
>>                        strip(1);
>>                }
>>
>> What I want to do, is to take the 1-9 digit, if it starts with that
>> and has to zeroes after, and put that to the avp - and the strip it
>> off before I move on in the routing.
>>
>> Yes, I have browsed the documentation, but I'm not sharp enough to
>> understand it, it seems. (or alternatively, the documentation is not
>> made for beginners).
>>
>> Thanks!
>>
>> _______________________________________________
>> Kamailio (OpenSER) - Users mailing list
>> Users@...
>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
> --
> Alex Balashov - Principal
> Evariste Systems
> Web     : http://www.evaristesys.com/
> Tel     : (+1) (678) 954-0670
> Direct  : (+1) (678) 954-0671
>

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@...
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users