[OpenSER-Users] Routing Logic

Iñaki Baz Castillo ibc at in.ilimit.es
Tue May 13 15:55:10 CEST 2008


El Tuesday 13 May 2008 15:40:25 VoIP Forums www.Go4Calls.com escribió:
> Hi Friends,
>
> I have the following route plan in my openser.cfg all blocks are working
> well instead of 800800.
>
> if (uri=~"sip:800800[1-9][0-9]+ at .*") {
>                     rewritehostport("officePBX-IP:5060");
>                     route(1);
>                     exit;
>  } else if ($(rU{s.len})>=8) {
>                     rewritehostport("MyPSTNprovider-IP:5061");
>                     route(1);
>                     exit;
>   }else{
>
>                 lookup("location");
>                 route(1);
>                 exit;
>    };
>
>
> When i am trying to call 800800 the error message appearing is "513 Message
> too big"

It's completely logical. You are not matching 800800 in the above "if" except 
in "else".

The first "if" matches uri's with username:
  800800[1-9][0-9]+
This is: 800800 + a digit + a (digit pr more)
So 800800 is not matched there.

Finally it's taken by "else" clausule in which you do a "lookup" (that will 
not success so the URI will remain being "800800 at ..." and you do a "route(1)" 
(probably a t_relay()) so it will leave the host and by DNS return to it 
again and again =>  513 "Message too big" since each loop a "Record-Route" 
and "Via" header is added and the size increased.




-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the sr-users mailing list