[Users] query on openser
Vivek Bhat
vigibi at yahoo.com
Thu Jul 20 19:30:50 CEST 2006
Hi Norman,
Thanks for your response. It is working now.
I tried to understand how avp_subst() works. How
avp_subst() gets the correct string in s:match in the
example below? What is "\1" token doing here? Could
you please explain? I read the openser module
document, but could not understand either :-)
Thanks,
Vivek
--- Norman Brandinger <norm at goes.com> wrote:
> Hi Vivek,
>
> Below is an example that appears to solve your
> problem.
>
> Note that the regular expression in the avp_subst()
> statement was made
> specifically for this example. Based on your
> example, the "needle"
> that is being matched is preceded by an underscore.
> If this can ALWAYS
> be guaranteed then you shouldn't have a problem
> using this regular
> expression. If the haystack has some other known
> pattern that a regular
> expression can be used to match, then all you have
> to do is create
> another regular expression and drop it into the
> example below.
>
> avp_write("7267261000", "$avp(s:needle)");
>
>
avp_write("<sip:termdoneatscsf_7267261000 at test.com;lr>",
>
> "$avp(s:haystack)");
>
>
avp_subst("$avp(s:haystack)/$avp(s:match)","/<sip:.*_(.*)@(.*)>/\1/");
>
> xlog("L_NOTICE", "needle=($avp(s:needle))
> haystack=($avp(s:haystack))
> match=($avp(s:match))\n");
>
> if
> (avp_check("$avp(s:needle)","eq/$avp(s:match)/g")) {
> xlog("L_NOTICE", "Match found\n");
> } else {
> xlog("L_NOTICE", "Match not found\n");
> }
>
> Regards,
> Norm
>
>
> Vivek Bhat wrote:
> > Hi,
> >
> > I have installed openser v1.1.0 on Linux system.
> >
> >
> > I have problem checking if "Route" header contains
> the
> > "username" of Req-URI as below:
> >
> > Req-URI will be like "sip:7267261000@<domain>"
> > and Route header will be like
> > "<sip:termdoneatscsf_7267261000@<domain>;lr>
> >
> > # To get the RURI I did like this
> > avp_write("$ru/username", "$avp(UNAMEOFRURI)");
> > avp_print();
> >
> > # To get the Route Header, I did like this
> > avp_write("$hdr(Route)", "$avp(ROUTEUSERNAME)");
> > avp_print();
> >
> > Now, what is the best way to check if
> > $avp(ROUTEUSERNAME) contains $avp(UNAMEOFRURI)?
> >
> > I tried as below, and it gives error "regexp
> requires
> > string value"
> >
> >
>
if(avp_check("$avp(UNAMEOFRURI)","re/$avp(ROUTEUSERNAME)/gi"))
> > {
> >
> > log(1, "Usernames of RURI is found inside Route
> > header.");
> > } else
> > {
> > log(1, "Usernames of RURI is NOT found inside
> Route
> > header.");
> >
> > }
> >
> > Instead of avp_check, I tried to use search as
> below:
> > if(search("^(Route):.*$ru/username.*"))
> > {
> > log(1, "Usernames of RURI is found inside
> > Route header.");
> > }
> >
> > But, it didn't work either.
> >
> > Please suggest what is the best method to do this?
> >
> > Thanks,
> > Vivek
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam
> protection around
> > http://mail.yahoo.com
> >
> > _______________________________________________
> > Users mailing list
> > Users at openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
> >
> >
> >
> >
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the sr-users
mailing list