[SR-Users] Multiple OR into a if

Igor Potjevlesch igor.potjevlesch at gmail.com
Thu Feb 5 11:28:34 CET 2015


Hello Daniel,

 

Sorry, I was thinking that I have already replied with the result of this
required test.

So, I tried with single condition. All fail (xlog with != is printed) with
Request-URI and To-URI which looks like this: 0[0-9]{9}@sip.domain.tld
<mailto:%7b9%7d at sip.domain.tld> :

 

        if ($rU=~"^33") {

                xlog("L_WARN","RU=33\n");

        } else {

                xlog("L_WARN","RU!=33\n");

        }

 

        if ($rU=~"^0033") {

                xlog("L_WARN","RU=0033\n");

        } else {

                xlog("L_WARN","RU!=0033\n");

        }

 

        if ($rU=~"^0[1-9]{9}") {

                xlog("L_WARN","RU=06\n");

        } else {

                xlog("L_WARN","RU!=06\n");

        }

 

        if ($rU=~"^\+33") {

                xlog("L_WARN","RU=+33\n");

        } else {

                xlog("L_WARN","RU!=+33\n");

        }

 

        if ($tu=~"^sip:33") {

                xlog("L_WARN","TU=33\n");

        } else {

                xlog("L_WARN","TU!=33\n");

        }

 

        if ($tu=~"^sip:0033") {

                xlog("L_WARN","TU=0033\n");

        } else {

                xlog("L_WARN","TU!=0033\n");

        }

 

        if ($tu=~"^sip:0[1-9]{9}") {

                xlog("L_WARN","TU=06\n");

        } else {

                xlog("L_WARN","TU!=06\n");

        }

 

        if ($tu=~"^sip:\+33") {

                xlog("L_WARN","TU=+33\n");

        } else {

                xlog("L_WARN","TU!=+33\n");

        }

 

An example of a log in reply_route:

 

time=[Thu Feb  5 11:11:07 2015] call id=[4Yir4nAmR7] call seq=[21] contact
header=[<sip:0612345678 at A.B.C.D:5060>] from
uri=[sip:0987654321 at sip.domain.tld] from tag=[tZ-n7k92e] request's
method=[INVITE] request's uri=[<null>] to uri=[sip:0612345678@
sip.domain.tld] to tag=[a94c095b773be1dd6e8d668a785a9c84e15e43ea] sip
message id=[1] process id=[14037] ip source=[A.B.C.D] flags=[2], TU!=06

 

I'm agree with you: in the case of REPLY, the Request-URI is null but To URI
should match.

 

Thank you in advance for your help. 

 

Regards,

 

Igor.

 

De : Daniel-Constantin Mierla [mailto:miconda at gmail.com] 
Envoyé : mardi 3 février 2015 12:40
À : Igor Potjevlesch; 'Kamailio (SER) - Users Mailing List'
Objet : Re: [SR-Users] Multiple OR into a if

 

Hello,

I was traveling and had no time for it.

Anyhow, you compare $rU, which is request uri username -- the address in the
first line of SIP requests. In the onreply_routes the SIP reply is processed
and $rU is not a valid value.

I also asked you to see if you can break the expression into multiple IF
with a single condition to see which one fails -- ie., change from:

if (exp1 || exp2 || ...) {
}

into

if(exp1) {
}

if(exp2) {
}

...

and put log messages to see which one is true or false.

Cheers,
Daniel

On 03/02/15 12:03, Igor Potjevlesch wrote:

Hello Daniel,

 

Do you had the opportunity to look at this?

I was thinking to try with () between each test?

 

Thank you!

 

Regards,

 

Igor.

 

De : Igor Potjevlesch [ <mailto:igor.potjevlesch at gmail.com>
mailto:igor.potjevlesch at gmail.com] 
Envoyé : mardi 27 janvier 2015 16:03
À :  <mailto:miconda at gmail.com> miconda at gmail.com; 'Kamailio (SER) - Users
Mailing List'
Objet : RE: [SR-Users] Multiple OR into a if

 

The To header looks like this (in compact form):

 

t: < <sip:0123456789 at sip.domain.tld>
sip:0123456789 at sip.domain.tld>;tag=f15e211394273201512715012\r\n

 

Regards,

 

Igor.

 

De : Igor Potjevlesch [ <mailto:igor.potjevlesch at gmail.com>
mailto:igor.potjevlesch at gmail.com] 
Envoyé : mardi 27 janvier 2015 15:55
À :  <mailto:miconda at gmail.com> miconda at gmail.com; 'Kamailio (SER) - Users
Mailing List'
Objet : RE: [SR-Users] Multiple OR into a if

 

Hello Daniel,

 

Just to let you, it's in MANAGE_REPLY. Is that make any difference?

 

Regards,

 

Igor.

 

De : sr-users [ <mailto:sr-users-bounces at lists.sip-router.org>
mailto:sr-users-bounces at lists.sip-router.org] De la part de
Daniel-Constantin Mierla
Envoyé : mardi 27 janvier 2015 10:32
À : Kamailio (SER) - Users Mailing List
Objet : Re: [SR-Users] Multiple OR into a if

 

Hello,

can you paste here the SIP message (or at least the To header and request
URI) for such case? I would like to reproduce.

Also, you can try removing components of the expression in the second IF one
by one to see where it breaks.

Cheers,
Daniel

On 27/01/15 09:45, Igor Potjevlesch wrote:

Hello,

 

I'm very disappointed because of the following behaviour:

 

     if ($tu=~"^ <sip:0> sip:0[1-9]{9}") {

            [
]

            In that case, Kamailio returns TRUE because the instructions in
the block are executed.

        }

 

     if ($rU=~"^33" || $rU=~"^0033" || $rU=~"^0[1-9]{9}" || $rU=~"^\+33" ||
$tu=~"^ <sip:33> sip:33" || $tu=~"^ <sip:0033> sip:0033" || $tu=~"^ <sip:0>
sip:0[1-9]{9}" || $tu=~"^ <sip:%5C+33> sip:\+33" ) {

[
]

In that case, Kamailio should return FALSE because the instructions in the
block are not executed.

        }

 

Am I missed something regarding 'OR' ?

 

Regards,

 

Igor.

 

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
 <mailto:sr-users at lists.sip-router.org> sr-users at lists.sip-router.org
 <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

 

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda>  -
http://www.linkedin.com/in/miconda





-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150205/4a0a55b0/attachment.html>


More information about the sr-users mailing list