[Kamailio-Users] avpops OR sqlops

alex pappas rebel.pappas at gmail.com
Mon Dec 21 23:03:08 CET 2009


Guys thank you very much for all your answers. It is a very educational
process writing and reading from the users list.
For new people in kamailio like myself , the users list is the best way to
learn AFTER reading the official documentation.

Thank you once again

P.S. For the records I'm attaching the script i wrote to implement the
portability
Cheers
Alex

The scenario is that we expect calls from customers which we route through a
special prefix that they are sending us. For some customers we terminate
ported numbers and for others not.That depends on the contract they have.
Anyway the script which i will test heavily tomorrow:

>From the prefix to domain translation i  expect back a value string with 4
numbers separated from dot's .
10.1.1.5
number called 1001 210XXXXXXX   1001=cust prefix and 210XXXXXX number

$var(dial_grp) = 10 the dialplan group in the dialplan query next one.values
.0-100
$var(check_p) = 1 if we want to check number for portability . values 0-1
$var(term_p) = 1 if the number is ported if we want to terminate it anyway.
values  0-1
$var(num_pr) = 4  this is the prefix(number of digits we want to remove
before the checking of portability)
if(prefix2domain("2", "0")) {

                $var(dial_grp)  = $(rd{s.select,0,.}{s.int});
                $var(check_p) = $(rd{s.select,1,.}{s.int});
                $var(term_p)   = $(rd{s.select,2,.}{s.int});
                $var(num_pr)  = $(rd{s.select,3,.}{s.int});

                $rU = $(rU{s.substr,$var(num_pr),0}); # we cat the prefix
here

 if($var(check_p)==1){

       sql_query("ca", "SELECT prefix FROM ported WHERE phonenumber='$rU'",
"ra");
       $rU = '' + $dbr(ra=>[0,0]) + $rU;

       if($var(term_p)==0){
                                  xlog("alx ------- We dont terminate this
ported number!!!! ----------");
                                  sl_send_reply("503","Congestion");
                                  exit;

                                }
        sql_result_free("ra");

   }






On Mon, Dec 21, 2009 at 10:51 PM, Alex Balashov
<abalashov at evaristesys.com>wrote:

> On 12/21/2009 03:50 PM, Henning Westerholt wrote:
>
>> On Mon, December 21, 2009 5:37 pm, Alex Balashov wrote:
>>
>>> Try:  if(is_avp_set("$avp(s:lnp_prefix)"))
>>>
>>
>> Hey Alex,
>>
>> also possible is to use it: if (! $avp(s:lnp_prefix)) which is shorter and
>> don't rely on the avpops module to test for null. (In sr the "defined"
>> operator can be used for the same purpose.
>>
>
> I thought that would evaluate the numerical expression value of the AVP,
> not whether it is null?
>
>
> --
> Alex Balashov - Principal
> Evariste Systems
> Web     : http://www.evaristesys.com/
> Tel     : (+1) (678) 954-0670
> Direct  : (+1) (678) 954-0671
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20091222/672dc000/attachment.htm>


More information about the sr-users mailing list