[OpenSIPS-Users] Runtime avp substitution

Paul Smith Paul.Smith at ClarityTele.com
Thu Sep 23 14:46:23 CEST 2010


Hi Bodgan,
Mainly matching, to allow me to verify that a customer owns the CLI he 
is presenting.

Ideally I was thinking substitution as I can then add as well in one 
operation.. but I can do that as 2 separate operations.

So... how can I do a dynamic match using an account specific pattern?

pseudo code would be:
if $(preferred cli) matches $(customer regexp from database) {
    $callerid=$(customer cli prefix) + $(preferred cli)
}
else {
    $callerid=$(customer default cli)
}

The bit I am struggling with is the operation to match a dynamic variable.

Thanks
Paul

Bogdan-Andrei Iancu wrote:
> Hi Paul,
>
> you need a substitution, replacement or simply matching ?
>
> Regards,
> Bogdan
>
> Paul Smith wrote:
>   
>> Hi Bogdan,
>> Thanks for the reply.  I am using dialplan module for mangling the 
>> dialled number to local valid service codes and e164 destinations.
>>
>> I was hoping to use a simple field in the usr_preferences or 
>> substitution table to hold a substitution pattern for each user's 
>> verified callerid (P-Preferred-Identity) ranges.
>>
>> I'll have to have a think about how to use dialplan to do this, and 
>> still keep my simple user provisioning gui...
>>
>>
>>
>> *Paul Smith | Technical Director | Clarity Telecom*
>> Number One, Lanyon Quay, Belfast, BT1 3LG
>> Phone: 	0800 91 21 000 | 1800 855 111
>> FAX: 	0800 91 21 999 | 1800 855 112
>> Email: 	Paul.Smith at ClarityTele.com
>> Web: 	http://www.ClarityTele.com
>>
>>
>>
>> Bogdan-Andrei Iancu wrote:
>>     
>>> Hi Paul,
>>>
>>> have you looked at dialplan module ? 
>>>        http://www.opensips.org/html/docs/modules/1.6.x/dialplan.html
>>>
>>> The subst-like funcs in script do not support dynamic patterns..
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Paul Smith wrote:
>>>   
>>>       
>>>> How can I do a regular expression substitution on an avp where the 
>>>> pattern is loaded from the user subsrciption or usr_preference table?
>>>>
>>>> For example I need to limit callerid presented to a pre-determined range 
>>>> owned by my customer, and perform substitution eg add a prefix.  If a 
>>>> UAC sets P-Preferred-identify to 1234 and I have a usr_preference to 
>>>> match any 4 digit caller starting with 1, and prefix with 789 then 
>>>> callerid should be set to 7891234
>>>>
>>>> I have in mind something like:
>>>>
>>>> In my database I set the expression for  $avp(s:expcallerid) for this 
>>>> user to "/1.{3}/789\1/i"
>>>> then in my dialplan I want to match and substitute the 
>>>> Preferred-Identity to form the $avp(s:callerid) and then set 
>>>> P-Asserted-Identity
>>>>
>>>> xlog("dialled number = $rU");
>>>> xlog("callerid barring requested by device = $avp(s:clir)");
>>>> xlog("callerid preferred set by device = $pU");
>>>> xlog("callerid expression for this user = $avp(s:expcallerid)");
>>>> xlog("default callerid for this user = $avp(s:defcallerid)");
>>>>
>>>> $avp(s:callerid)=$avp(s:defcallerid);
>>>> if($avp(s:clir)){
>>>>        # user has restricted callerid
>>>>         $avp(s:callerid)="Anonymous";
>>>> } else if($pU) {
>>>>       # UAC device has set preferred callerid
>>>>       $avp(s:callerid)=pU;
>>>>       if(avp_subst("$avp(s:callerid)",$avp(s:expcallerid)) ){
>>>>             xlog("preferred callerid matched callerid expression");
>>>>       } else {
>>>>            xlog("preferred callerid rejected, using default");
>>>>            $avp(s:callerid)=$avp(s:defcallerid);
>>>>       }
>>>> } else {
>>>>       #use default callerid
>>>>       $avp(s:callerid)=$avp(s:defcallerid);
>>>> }
>>>>
>>>> I get the error
>>>> Sep 22 12:30:21 [6253] CRITICAL:core:yyerror: parse error in config 
>>>> file, line 518, column 44-45: bad arguments for command <avp_subst>
>>>>
>>>> which I think means that avp_subst is expecting a static regular 
>>>> expression in the script, whereas  I want a user variable as the regular 
>>>> expression.
>>>>
>>>> Is there another way to look at the problem? Have I missed something 
>>>> obvious (again)?
>>>>
>>>> Thanks
>>>> Paul
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.opensips.org
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>   
>>>>     
>>>>         
>>>   
>>>       
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>   
>>     
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20100923/797526a7/attachment.htm 


More information about the Users mailing list