[asterisk-dev] Working in useful examples... and freenum/e.164 dialing in extensions.conf.example

Klaus Darilion klaus.mailinglists at pernau.at
Fri Dec 18 13:50:32 CST 2009

John Todd wrote:
> On Dec 16, 2009, at 8:22 AM, Klaus Darilion wrote:
>> Philip A. Prindeville schrieb:
>>> I've recently decided to spend idle cycles while waiting for various
>>> Astlinux platform builds to complete on making the contents of
>>> asterisk/config a little more complete, a little more useful, a
>>> little more real-world...
>>> I started looking at the possibility of taking JTodd's ISN Freenum
>>> cookbook example and updating it:
>>> http://freenum.org/cookbook/#ASTERISK_CONFIG
>>> but ran into some problems having to do with the following:  we use
>>> SIP handsets in house, and those operate in the redfish-solutions.com
>>> domain... but anonymous SIP (freenum) calls coming in off the
>>> internet would also be in the same domain.  I can't figure out how to
>>> separate calls in the same domain (but from different endpoints) in
>>> two different contexts.
>> Are you using different contexts? Usually, for your local attached SIP
>> handsets, you have in sip.conf one peer/friend definition per SIP
>> device, and use the context= option to handle calls from these  
>> devices.
>> Further, the sip.conf has a context defined in the general section -
>> this one will be used for the unauthenticated incoming ENUM calls:
>> e.g. sip.conf:
>> [general]
>> context=fromInternet
>> ...
>> [ext001]
>> type=peer
>> context=fromLocalSipPhone
>> ...
>> [ext002]
>> type=peer
>> context=fromLocalSipPhone
>> ...
>> then in extensions.conf you have (pseudo-code):
>> [toPstn]
>> exten => 00........Dial(DAHDI.....)
>> [toLocalSipPhones]
>> exten => 001,1,Dial(SIP/ext001)
>> exten => 002,1,Dial(SIP/ext002)
>> [fromLocalSipPhone]
>> include => toPstn
>> include => toLocalSipPhones
>> [fromInternet]
>> include => toLocalSipPhones
>> regards
>> klaus
>>> And unfortunately, doc/ doesn't cover sip.conf, nor does the Asterisk
>>> Reference Manual cover it in much detail... except for a couple of
>>> related topics (shared line appearances and dahdi integration, I
>>> think).
>>> So if anyone can contact me and work off-line on getting a reasonably
>>> useful and real-world applicable example working, I'll file a
>>> documentation defect and push for getting this checked in (as I did
>>> for a few other examples).
>>> Thanks,
>>> -Philip
> Philip, Klaus -
>    Bringing in "anonymous" SIP calls into the dialplan is somewhat  
> challenging if you need to know from where they're originating.  One  
> solution I have seen for this is to differentiate based on the SIP  
> identity that is dialed.  The beauty of the ISN (aka: Freenum) dialing  
> method is that it uses the basics of ENUM, which include the ability  
> to create a regular expression that ultimately is what is passed to  
> the far-end receiver of a call request.
>    For instance, if your ISN is 1234*256, and you have this regular  
> expression as the wildcard for your ITAD 256 in the freenum.org tables:
>    !^\\+*([^\\*]*)!sip:\\1 at loligo.com!
>    ....then the final resulting URI that the REMOTE server would use  
> would be sip:1234 at loligo.com.
> Now, I've seen some people who have modified their regular expressions  
> a bit so that they put a "prefix" in front of all of the SIP URIs that  
> are formed by remote servers in the case of Freenum/ISN lookups, in  
> order to differentiate where their calls are coming from.  They create  
> something like this for their NAPTR regular expression in the  
> Freenum.org wildcard table for their ITAD, or in their own DNS if  
> they're delegating the zone to themselves:
>    !^\\+*([^\\*]*)!sip:\\1-freenum at loligo.com!
> ...which for the ISN of 1234*256 would create a SIP URI of sip:1234-freenum at loligo.com 
> .  At that point, all of the anonymous SIP calls are received by the  
> loligo.com server (for both Freenum/ISN as well as normal SIP URI  
> calls) and _all_ of those calls go to a single context.   Within that  
> context, string-matching is trivially used to chop up the ${EXTEN} and  
> then perform actions and re-route the calls to different places within  
> the dialplan.  Here's an example:

Hi John!

Unfortunately I'm not familiar with ITAD and ISN (only with ENUM). But I 
think there is a generic problem - the RURI is "user-provided" data and 
thus 0% trustworthy. The caller can send you calls with any prefix, 
regardless if the call was really routed via freenum, ENUM ....

As long as unauthenticated incoming calls are allowed, IMO there is no 
use of applying different routing to them, as we do not have a reliably 
method to find out where the come from or how they were routed (as they 
are unauthenticated).


> [anonymous-sip]
> ; Do something with the full strings that contain "-freenum" as a  
> suffix with
> ; four-digit numeric prefixes.
> ;
> exten => _XXXX-freenum,1,Echo(Freenum.org call received!)
> ;
> ; Now, take only the first four digits of the ${EXTEN}, stripping off
> ; the "-freenum" suffix, and pass the call to my main context.
> ;
> exten => _XXXX-freenum,n,Goto(my-main-context,1,${EXTEN:0:4})
> ;
> ;
> exten => _XXXX,1,Echo(Normal four-digit call received!)
> exten => _XXXX,n,Goto(my-main-context,1,${EXTEN})
> ;
> ; end
> Also, see ITADs 674 and 260 for slightly different further examples.  
> (dig @anyns.pch.net NAPTR
> Now, to kind of swing this back around to a -dev question instead of  
> just a -users question (or even a question more appropriate for the  
> Freenum/ISN mailing list (isn-discuss-request at freenum.org)) let's see  
> what we should do for examples.   Should a more full-fledged Freenum  
> example set exist in the sip.conf file and in extensions.conf?  I'm  
> uncertain that most people actually want to differentiate between  
> normal inbound numeric SIP URI dialing and Freenum.org-originated  
> dialing, so this doesn't seem like much of a win in either place.   
> There is a strong disincentive to turn OFF anonymous SIP dialing as  
> the default, since apparently that is too sharp a knife to offer to  
> new users who may not quite know the implications if including  
> contexts into their anonymous inbound SIP contexts.  So is a better  
> example warranted on the Asterisk configurations, or is this really  
> something I should put on my freenum.org hat for and get off my  
> comfortable chair and get better examples on the dusty freenum.org site?
> JT
> ---
> John Todd                       email:jtodd at digium.com
> Digium, Inc. | Asterisk Open Source Community Director
> 445 Jan Davis Drive NW -  Huntsville AL 35806  -   USA
> direct: +1-256-428-6083         http://www.digium.com/
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev

More information about the asterisk-dev mailing list