This is usable if you have Juha Heinanen's patches (in "unstable" as of December 17, 2003) for multiple suffixes for ENUM lookups. This is a "temporary" hack until ENUM is rolled out globally (zzzzzz....)
If anyone has a +1-800 gateway (North America) that they would like to see added, please send me an NS PTR or NAPTR for it and we'll put it in place.
JT
At 5:10 PM +0100 1/8/04, Michael Haberler wrote:
Date: Thu, 08 Jan 2004 17:10:56 +0100 To: [snip] From: Michael Haberler mah@eunet.at Subject: freenum.org - free "global" 800 service based on infrastructure ENUM
Happy New Year!
You will recall we discussed setting up a little infrastructure ENUM trial project. We would populate freenum.org with NAPTR records pointing to local gateway operators willing to gateway "free" calls.
Ok, works for us now! Axel has completed the SIP express router setup for the at43 users, and Otmar has done the Asterisk part. The new enum module for SER is needed so arbitrary domain suffices can be used for lookup. A configuration snippet is attached. Any +43800 number listed in freenum.org (or wildcards for ranges) will be terminated via a local Asterisk gateway.
In simple words: add the below code between #start and #end and your users will be able to dial any Austrian +43 800 number. Try the nic.at number +43 800 888 888 to start with.
We encourage you to try this out with your SIP setup, and maybe you can contribute some local termination of 800 or other free numbers.
If you want to contribute termination, drop us a mail and we'll add the entries to freenum.org. Let us know before you inform a sizeable user base about this..
This rocks - it is the easiest way for global free numbers I've seen so far!
cheers,
-Michael
snippet from ser.cfg:
# catch voice:sip ENUM entries, only if PSTN not forced if (enum_query("e164.arpa.", "voice")) { if (is_uri_host_local()) { route(5); break; }; if (!t_relay()) { xlog("L_ERR", "%is [%Tf]: %rm %fu -> %ru [R4]: ENUM
destination: relaying failed\n"); sl_reply_error(); break; }; break; }; #start # look up freenum.org ENUM entries if (enum_query("freenum.org")) { if (!t_relay()) { xlog("L_ERR", "%is [%Tf]: %rm %fu -> %ru [R4]: freenum.org destination: relaying failed\n"); sl_reply_error(); break; }; xlog("L_ERR", "%is [%Tf]: %rm %fu -> %ru [R4]: freenum.org destination\n"); break; }; #end # nothing found, try PSTN if (method=="CANCEL" || method=="BYE" || method=="ACK") { xlog("L_INFO", "%is [%Tf]: %rm %fu -> %ru [R4]: just forwarding to PSTN"); rewritehostport("1.2.3.4:5060"); t_relay(); break; };