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: [email protected] > 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 >>> [email protected] >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >> >> >> > ------------------------------------------------------------------------ > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Bogdan-Andrei Iancu OpenSIPS Bootcamp 15 - 19 November 2010, Edison, New Jersey, USA www.voice-system.ro _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
