[Serusers] enum and lcr

Klaus Darilion klaus.mailinglists at pernau.at
Mon Apr 25 18:57:46 CEST 2005


Iqbal wrote:
> Hi
> 
> I was trying to set this up and realised I dont have a IP route :-) its 
> the default one, never really thought of having a IP route , hence what 
> would logix like this work
> 
> 
> if (!enum_query("e164.arpa") && !enum_query("e164.info") && 
> !enum_query("freenum.org")) {
>    route(PSTN)
> }


This may cause unpredictable behaviour, as you never know how the if 
statement is processed internally. (which lookup will be the first one)

regards,
klaus

regards,
klaus

> 
> This seems to say that if its not present in any goto pstn...although I 
> have got my logix mixed up in the past ;-)
> 
> Iqbal
> Klaus Darilion wrote:
> 
>> Iqbal wrote:
>>
>>> Hi
>>>
>>> I am having a little difficulty in setting up enum lookups.
>>>
>>> When a call comes in for a number prefixed with 00, for enum i would 
>>> really have to replace this with a + prefix since enum requires that, 
>>> however if this is done then I have problems with the lcr table and 
>>> my prefixes, since they all are without + sign hence if no enum found 
>>> I need to strip the plus off again before I pass it on to my pstn 
>>> gateway.
>>>
>>> I was attempting to do something like this..would it be correct
>>>
>>> if (uri=~"^sip:00[0-9]*@")
>>> { strip(2); prefix("+");
>>>
>>> };
>>> # So now we have the + sign in front
>>>
>>> if (uri=~"^sip:\+[0-9]*@") {
>>> log(1, "+ International number detected\n");
>>>
>>> if (!enum_query("e164.arpa") || !enum_query("e164.info")) {
>>
>>
>>
>> One of the enum queries will always be FALSE, thus the condition is 
>> always true! Try instead:
>>
>> if (enum_query("e164.arpa")) {
>>     log(1,"ENUM found in public ENUM");
>>     route(IP)
>> } else if (enum_query("e164.info")) {
>>     log(1,"ENUM found in private ENUM");
>>     route(IP)
>> } else if (enum_query("freenum.org")) {
>>     log(1,"ENUM found in freenum");
>>     route(IP)
>> } else {
>>     log(1,"No ENUM, route to PSTN");
>>     route(PSTN)
>> }
>>
>>
>>> strip(1);
>>> route (8); # normal pstn
>>> };
>>>
>>> else {
>>> route(1); # e164 result };
>>>
>>>
>>> Problem is, whatif results were present in both trees, would that be 
>>> a problem. Also if the e164 message works, I guess then you dont 
>>> really need to do anything since its just goes out on SIP.
>>>
>>> Iqbal
>>>
>>> _______________________________________________
>>> Serusers mailing list
>>> serusers at lists.iptel.org
>>> http://lists.iptel.org/mailman/listinfo/serusers
>>>
>>>
>>
>>
>> .
>>
> 
> 




More information about the sr-users mailing list