[SR-Users] Multiple OR into a if

Daniel-Constantin Mierla miconda at gmail.com
Thu Feb 5 11:52:03 CET 2015


Hello,

I give it a try and I get the message from:

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

which is the only one that is true in this case. Don't you get it?

Btw, I noticed a space after @ in $tu, is it from the message or because
you crafted the message for mailing list?

Cheers,
Daniel

On 05/02/15 11:28, Igor Potjevlesch wrote:
>
> 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]
>     *Envoyé :* mardi 27 janvier 2015 16:03
>     *À :* miconda at gmail.com <mailto: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>;tag=f15e211394273201512715012\r\n
>
>      
>
>     Regards,
>
>      
>
>     Igor.
>
>      
>
>     *De :*Igor Potjevlesch [mailto:igor.potjevlesch at gmail.com]
>     *Envoyé :* mardi 27 janvier 2015 15:55
>     *À :* miconda at gmail.com <mailto: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] *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[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" || $tu=~"^sip:0033" ||
>         $tu=~"^sip:0[1-9]{9}" || $tu=~"^sip:\+33 <sip:%5C+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
>
>         sr-users at lists.sip-router.org <mailto:sr-users at lists.sip-router.org>
>
>         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://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150205/e0cb579b/attachment.html>


More information about the sr-users mailing list