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.sm...@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@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

------------------------------------------------------------------------

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to