Taming Yahoo’s DialPad Service for Use with Asterisk: Here’s How

dialpadIn our unending quest to find the best and cheapest VoIP providers that work reliably with Asterisk, today we turn our attention to dialpad, a company which recently was acquired by Yahoo! As it turns out, that may not be a good thing for Asterisk lovers, but it was probably a pretty good day for the dialpad owners. For those that don’t know, dialpad offers the least costly (aka cheapest) unlimited U.S. and Canada outbound residential VoIP service on the planet: $11.99 a month for all you can eat with no hidden fees or add-on’s. For those that enjoy legal mumbo jumbo, if you review their Terms of Service, you’ll see lots of language that looks vaguely familiar to what you’ll find in the BroadVoice language minus the $100 penalties which BroadVoice lawyers seem to have concocted on their very own.

It used to be you could subscribe to dialpad and had your choice of a Sipura SPA-2000 ATA or a softphone client. Since the Yahoo purchase, the ATA option has quietly disappeared even though (to date) they still are supporting customers with ATA’s. Yahoo apparently wants dialpad to integrate a softphone into their instant messenger service to compete with Skype. Skype is free so you do the math. What does all this have to do with Asterisk, you might be asking. Well, plenty. As long as there is an ATA configuration floating around, we can usually look at the settings and make the service work equally well with Asterisk. And it turns out that is still the case with dialpad. Just don’t expect it to last forever… but, you’ve heard that advice with other providers as well so welcome to the VoIP rollercoaster. And, for those who care, Dialpad’s terms of service don’t (yet) prohibit use of a PBX. Didn’t know you were going to have to go back to law school just to use your damn Asterisk server at home, did you?

So how do we get dialpad to work with Asterisk? Well, first you sign up for the service. That gets you an account with a username and password. Then you’ll need a quick lesson in how to install the G.729 codec for Asterisk. This is the codec that dialpad uses for communications so you have to use it at your end, too. Otherwise, you get a fast busy every time you connect through dialpad. Unless water torture is your thing, you have to pay for G.729, but it’s only $10 for one simultaneous connection which is what you get with dialpad anyway. Once we get G.729 working, you add a trunk for dialpad and then integrate dialpad into your outbound dialplans. And presto, dialpad works!

Before we begin, let me take my obligatory moment to again rail against VoIP providers who are so short-sighted that they don’t see the Golden Opportunity they are missing by not supporting Asterisk directly. Asterisk users are pioneers. VoIP users are either pioneers … or idiots. Which would you rather deal with? Asterisk users have money. Almost half of American families with median incomes over $150,000 a year and residential broadband service also have some type of PBX in their homes! Skype is free and competing with free isn’t a big money-maker. So why is it that most VoIP providers can’t figure the rest of this out for themselves? Beats me.

Signing Up for dialpad Service. To get a dialpad account, just visit their web site and make a selection. The only real deal is the all-you-can-eat U.S. and Canada dialpadUSA plan for $11.99, and you have to live in the U.S. or Canada to subscribe. Remember, too, that this is for residential use only. The rest of the offerings are reasonable but not the best deals available compared to providers such as Voxee and BroadVoice which we previously have covered. Don’t bother to download the softphone client. We won’t be using it. Just write down your username and password. That’s what we’ll be needing to connect through Asterisk.

Installing the G.729 Codec for Asterisk. The G.279 codec is used to reduce the bandwidth necessary to process voice calls. Instead of 64Kbps of data for a voice call, G.729 stuffs the call into 8Kbps. What MP3 did for music, G.729 does for voice calls. To install the G.729 codec, you first need to download the version that matches the processor in your Asterisk box. There are codecs available for both Linux and FreeBSD systems here. You’ll also need to download the registration utility. If you’re using Asterisk@Home, you’ll need the glibc_2.3 utility available here. If you don’t know what version of glibc is running on your Asterisk server, go to a command prompt and type ldd –version. Note: There should be two dashes before the word “version.” Now that you’ve downloaded codec_g729a.so, you’ll need to copy it to /usr/lib/asterisk/modules on your Asterisk server while logged in as root. Next, copy the register program to any convenient place on your Asterisk server, e.g. /tmp will do. Modify the permissions for the register program so that it is executable: chmod a+x register. Now pay your $10 and wait for your registration key to be emailed to you. When you get the key, go to your Asterisk server and issue the following command from the directory where you placed the register program: ./register G729-1234ABCD substituting your actual key for G729-1234ABCD. Your Asterisk server must have Internet access to complete the registration process. Once you get a message that the registration was successful, restart Asterisk, and you’re in business: amportal stop then amportal start. Finally, note that the G.729 registration is locked to the MAC addresses of the network cards in your Asterisk server. If you change NICs, you’ll need to reregister the G.729 codec. You get two bites at the apple without contacting Digium for a new code.

Adding the dialpad Trunk. Fire up your web browser and point it at your Asterisk@Home server now. Go to AMP->Setup->Trunks and choose Add SIP Trunk. You can leave the CallerID field blank since you set this on the dialpad site. For maximum channels, enter 1. For the Dial Rules, enter the following:

1+NXXNXXXXXX
1NXXNXXXXXX

In the Outgoing Settings, name the Trunk: dialpad. For the Peer Details, enter the following substituting your own username and password where necessary. The only trick here is that we’re going to tell dialpad that we’re a Sipura ATA device instead of an Asterisk server just to avoid anyone at dialpad getting their panties in a wad if Asterisk PBX entries started appearing in the dialpad log files. Right now dialpad doesn’t block Asterisk devices but who knows what the future holds so we’ll just masquerade as the device the dialpad service already supports and avoid any future problems.

allow=g729
canreinvite=no
disallow=all
fromuser=yourusername
host=66.35.222.58
insecure=very
secret=yourpassword
type=peer
useragent=Sipura/SPA2000-2.0.9(d)
username=yourusername

Leave the Incoming Settings section blank since we won’t be receiving calls from dialpad. For the Registration string, enter the following using your username and password: yourusername:yourpassword@66.35.222.58. Now save your entries and then click the red bar to restart Asterisk. Almost done.




Adjusting Your Dialplans To Support dialpad. If you’re using the Outbound Dialplans that we’ve built in the last few episodes, then it’s a simple matter to move dialpad up this list of priorities. Using AMP->Setup, click the Outbound Routing tab and then select each of the following routes: Local, Tollfree, and US. For each route, add a new Trunk Sequence by clicking the Add button and choose SIP/dialpad. Then move it to the top of your Trunk Sequence list for each route to make it your first outbound dialing priority. Save your changes and restart Asterisk.

Making a Test Call Using dialpad. To be sure everything is working swimmingly, start up Asterisk in interactive mode using the Command Line Interface (CLI) so that you can actually watch what’s happening when calls are placed and received. This works best if you connect to your Asterisk server through SSH from a Mac or PC. SSH comes with every Mac and the syntax is simple: ssh root@AsteriskIPaddress. If you’re still chained to Microsoft, download Putty from the Mother Country, and you can do the same thing using a Windows machine. Once you’re logged in as root, issue the following command: asterisk -r. Quit ends your Asterisk CLI session, and exit logs you out of your SSH session. Now issue the command: set verbose 5 to get maximum information. Now place a U.S. long distance call and watch what happens. You should see something similar to the following which shows that the call was placed using the new dialpad trunk:

– Called dialpad/16785551212
– SIP/dialpad-a47a is making progress passing it to SIP/101-d762
– SIP/dialpad-a47a answered SIP/101-d762

Call Quality with dialpad. Now that we have everything working, you’re probably asking, “Well, How Is It?” On a scale of 1 to 10, we give dialpad sound quality a 5. This is always a subjective thing, but there seem to be considerably more echoing calls, calls without sound at one end, and other annoyances that remind you of the snowy television era. Your mileage may vary, of course, depending upon where you are and who you’re calling. Just keep in mind that dialpad doesn’t have a trial period, and they don’t give refunds so you’ll end up spending $11.99 for the experiment, whether it works out or not. Instant messaging isn’t the same technology as voice calls and, if the voice calls are managed similarly to Yahoo’s IM traffic using the same type servers and bandwidth management techniques, that would probably account for the mediocre voice quality, but the price is right.

Coming Attractions. If you’ve already got dialpad or BroadVoice service, then enjoy the rest of your current month subscription using Asterisk, but start lacing up your switching shoes. If you’re new to VoIP, we’d recommend you pass on dialpad despite the price. We’ll have a rock-solid performer for you next week for $3 more with real Asterisk support and unlimited U.S. residential calling plus two free incoming DID’s from any of the blue states shown on the U.S. map (inset). For all the poor BroadVoice users out there, you’ll finally have something to cheer about. And this provider offers simultaneous outbound calling at no extra cost! Are you listening Teenagers of America? It’s all backed by a company with in-depth Asterisk know-how which doesn’t mean you can bug them to death for $14.95 a month, but it does assure all of us that the Asterisk@Home configuration we lay out is one which has passed their scrutiny with flying colors. The good news for businesses is that these folks know their stuff and have an infrastructure to assure that your communications system remains rock-solid reliable … even with VoIP. They’ll even preconfigure phones for you. And it all runs on the best fiber backbone in the country. Last but not least, the dialpad and BroadVoice (obnoxious) terms of service will be just a bit of ancient history once we introduce this provider so I can take off my legal eagle thinking cap for a while. Did we mention their calls sound better than Ma Bell?

Also coming soon, we’ll cover Digium’s S101I, affectionately known as the IAXy√¢‚Äû¬¢ Version 2, a NAT-transparent, FXS device providing a POTS telephone interface to your Asterisk PBX using an IAX connection. The real beauty of the IAXy is that you can travel with it and never again have to worry about firewalls, NAT, and STUN servers. Just open one UDP port, and you’re done. Remote access to your Asterisk@Home server from anywhere on the planet becomes a one-minute drill instead of a nightmare. For parents bankrupted by college kids’ cell phone bills, the IAXy is the perfect addition for that college dorm room or apartment.

Oldies But Goodies. There are numerous additional articles in this Asterisk HOW-TO series to keep you busy. You can read all of them by clicking here and scrolling down the page. We recommend reading the articles from the bottom up so that the learning curve is less painful. Enjoy!

Free U.S. Calls with Asterisk: Here’s How

It’s Birthday Week at Nerd Vittles and, as you’ve come to expect, we do things a little differently around here. We like to savor birthdays for a whole week (sometimes more) and, to celebrate, we have a special gift for you: a tip on how to make free long distance calls in the United States using your new, free Asterisk server.

In our column last week, you learned how to configure and reconfigure Asterisk to take advantage of the best communications deals in the marketplace. And today we have a deal you can’t refuse: free calls to anywhere in the United States using the newest IAX2-compatible provider on the block, GoIAX.com. Just sign up for a free account with your email address and a password of your choice, add a trunk using the Asterisk Management Portal (AMP) or Asterisk@Home, make a minor adjustment in your Outbound Routing, and start dialing for free. Will it last? Probably not. But who cares? It’ll work for a while, and then something else will come along. So enjoy it while you can and … Happy Birthday!

NOTE: The GoIAX service is temporarily restricted to toll-free calls only. See their web site for current status updates.

Adding the GoIAX Trunk with AMP. Using your web browser pointed to your Asterisk server, go to AMP->Setup->Trunks->Add New IAX2 Trunk. Fill in the Outbound CallerID with the GoIAX phone number you were provided when you registered. For Outgoing Dialing Rules, use the following:

1+NXXNXXXXXX
1NXXNXXXXXX

In Outgoing Settings, use goiax for the Trunk Name and the following for the Trunk Details substituting your own GoIAX phone number and password:

allow=gsm
auth=md5
disallow=all
host=server1.goiax.com
secret=yourpassword
type=peer
username=878201234567

For Incoming Settings, use iax.goiax.com for the USER Context and the following for the USER Details substituting your own GoIAX phone number and password. NOTE: If you have signed up for a DID number from GoIAX, then you’ll need to rename your USER context from iax.goiax.com to your GoIAX account number, not your DID number. E.g. 878201234567.

allow=gsm
auth=md5
context=from-pstn
disallow=all
host=server1.goiax.com
secret=yourpassword
type=friend
username=878201234567

For the Registration String, use the following with your GoIAX phone number and password: 878201234567:yourpassword@server1.goiax.com. Now Save your changes and click the Red Bar to restart Asterisk.

Adjusting Outbound Routing for Free U.S. calls. Last week, we made Voxee.com our top priority for outbound long distance calls since they provided penny-a-minute calls within the U.S. This week we want to move them down a notch since we have a new provider that’s free. In Asterisk-speak, we want to make goiax our first priority for outbound U.S. long distance calls and move Voxee down to the second spot. If GoIAX stops working, Asterisk will automatically route the calls to Voxee without any user intervention. Here’s how.

Go to AMP->Setup->Outbound Routing and click on the US route which we created last week. It should show a Trunk Sequence of IAX2/voxee, then IAX2/teliax, and then SIP/pstn if you have a PSTN (POTS) line. Just click on the pull-down beside each trunk and substitute IAX2/goiax as your #0 choice, IAX2/voxee as your #1 choice, and IAX2/teliax as your #2 selection. Click the Add button and insert SIP/pstn as your #3 pick. Click Submit Changes and then the Red Bar to restart Asterisk.

That’s it. You’re done in just a couple of minutes. All future U.S. long distance calls will be routed out using your new Outbound US dial plan.




Making a Test Call Using GoIAX. To be sure everything is working swimmingly, start up Asterisk in interactive mode using the Command Line Interface (CLI) so that you can actually watch what’s happening when calls are placed and received. This works best if you connect to your Asterisk server through SSH from a Mac or PC. SSH comes with every Mac and the syntax is simple: ssh root@AsteriskIPaddress. If you’re still chained to Microsoft, download Putty from the Mother Country, and you can do the same thing using a Windows machine. Once you’re logged in as root, issue the following command: asterisk -r. Quit ends your Asterisk CLI session, and exit logs you out of your SSH session. Now issue the command: set verbose 5 to get maximum information. Now place a U.S. long distance call and watch what happens. You should see something similar to the following which shows that the call was placed using the new goiax trunk:

– Called goiax/12345678910
– Call accepted by 204.13.233.114 (format gsm)
– Format for call is gsm
– IAX2/goiax/1 is ringing

For those that would prefer a long-term player to handle your long distance calling and don’t mind paying a little, we’ll have another suggestion for you later this week. With this provider, you get unlimited residential calling to anywhere in the U.S. and Canada for only $11.99 a month. That’s less than half the cost of most of the all-you-can-eat plans including Vonage. And, it’s roughly the same cost as BroadVoice’s in-state calling plan after adding all of BroadVoice’s hidden fees. Even though Asterisk isn’t directly supported by the provider, we’ll walk you through setting up the service to work reliably with Asterisk. Can you say Yahoo! In the meantime, there are numerous additional articles in this Asterisk HOW-TO series to keep you busy for a few days. You can read all of them by clicking here and scrolling down the page.

Save Millions on VoIP Costs: Here’s How

Lesson #6: In the VoIP Wild West, don't believe every flashing sign that you see or every headline that you read. But rest assured, the Federal Trade Commission will be coming to your rescue ... some day.

And, yes, this is the sixth article in our Asterisk@Home series, and we will show you how to save some money on your current phone bills using Asterisk Dial Plans, but maybe not quite millions. Everything in this article applies to anyone using Asterisk@Home or a pure Asterisk PBX with the Asterisk Management Portal (AMP). Read the first five parts (I, II, III, IV, and V), and then you'll be ready to continue on here.

Perhaps the greatest feature of Asterisk@Home is the ease with which you can automatically route outgoing calls based upon the number dialed. And you can do it with or without dialing prefixes such as dialing 8 or 9, and then a 1, and then an area code, and then a phone number. You can use this dialing plan intelligence to route specific types of calls to different VoIP providers thereby taking advantage of cost savings offered by the different providers. For example, Voxee.com has a 1.1¢ per minute rate for calls within the United States with 6 second billing increments. And Free World Dialup (FWD) has free outgoing calls to 800 numbers in the United States. In addition to worldwide calling plans, BroadVoice also has a $9.95 in-state residential calling plan that hopefully will prove to be less controversial than their worldwide plans. It provides unlimited (sort of) in-state calling. The "sort of" is a warning that BroadVoice recently inserted an asterisk (Unlimited*) after all of their so-called Unlimited Dialing Plans despite their continuing ads to the contrary (inset). In the fine print, BroadVoice indicates that they now can retroactively determine that you are not using the plans as they intended them to be used. It's still a bit of a mystery as to what the BroadVoice formula is; however, you are forewarned to be prepared for a legal battle if you exceed their undisclosed calling thresholds. When your international calling gets into the thousands (not billions) of minutes, expect to be converted to a business plan where you'll be billed by the minute at prevailing rates.

Voxilla ad for BroadVoiceHere's the actual text of their Terms and Conditions. On the Voxilla forums, some customers report being "converted" to business accounts merely for calling their girlfriends too frequently. Compare that conduct to the ad now running on Voxilla (see inset) and judge for yourself. Suffice it to say, if you take BroadVoice's bait and attempt to use a billion minutes, you should fully expect a bill for millions of dollars rather than the $19.95 advertised price. Bottom Line: If you choose BroadVoice, protect yourself after signing up by switching to a prepaid debit card with no more than a three-month cash balance: $66.50.

You agree that if BroadVoice determines in its sole discretion that you have used the Service, and/or anyone else has used the Service for any activities and purposes prohibited by this section it may immediately charge you BroadVoice's higher rates for its Business service for all periods, including past periods, in which you use, or used, the Service for such prohibited activities together with a US$100.00 administrative fee for same, and that BroadVoice may immediately charge such amounts on your credit card.

The AMP Approach to Dialing Plans. There are, of course, about A Billion ways to set up Asterisk dialing plans, too. We'll provide one approach that works. When we're finished, you'll have a VoIP dial plan that provides toll-free calling to millions of phone numbers, free calling to anyone in your state, and penny-a-minute long distance calls within the United States with billing increments of six seconds. The total monthly cost is $9.95 plus however many penny-a-minute U.S. long distance calls you make. International savings are equally remarkable. Suffice it to say, you can call Paris, London, Hong Kong, and Tokyo for less than 2¢ a minute with numerous VoIP providers. Check the Voxilla forums for the best current deals. You, of course, can take what you learn here today and embellish these dial plans to meet your unique circumstances. But, we're getting ahead of ourselves. First, you need to know a bit about how Asterisk@Home and especially the Asterisk Management Portal (AMP) process outgoing calls. It's quite different than the pure Asterisk way of doing things so, if you plan to use AMP or Asterisk@Home which uses AMP, learn the AMP way of doing things. It's very powerful and downright easy once you get the hang of it. The only problem is that no one ever bothered to write down HOW ... until NOW!

When you dial a number, AMP compares the dialed number against the Dial Patterns you've set up in your AMP->Setup->Outbound Routing rules. When AMP finds the first matching dial pattern in any Route (going down the list of routes from top to bottom), it then looks there to see what your first Trunk Sequence priority is and applies the Outgoing Dial Rules for that trunk. You set these dial rules in AMP->Setup->Trunks by editing your Trunk configurations. The important point is that the Dial Pattern in your Outbound Routing rule gets processed first, and then the Dial Rules for the Trunk that will actually do the dialing are processed. If this Trunk isn't available for some reason, Asterisk repeats the process using your second Trunk Sequence priority, and so forth until all of the Trunk Sequences are exhausted or the call is successfully dialed. Let's walk through a good example which uses these configurations so you can see how to put one together and what goes where. You'll note that this sequence is exactly backwards from the way you configure new VoIP providers using AMP, i.e. you first set up the trunk and then the outbound rule to support the trunk. As unintuitive as it may appear, it really works quite well ... if you first sit down with a pencil and figure out what you're trying to do. It turns out that's pretty good advice for most programming tasks.




Since we know that FWD provides free outbound dialing for toll-free (800 number) calls, let's use FWD as our top Trunk Sequence priority for placing outbound 800 calls. You can't beat free! We'll assume you've already set up your free FWD account. If not, go here first. Now we want to create a FWD trunk entry using AMP->Setup->Trunks->Add IAX2 Trunk. IAX2 is the native protocol that Asterisk speaks so use it whenever you can to eliminate pesky NAT problems. Just be sure UDP port 4569 on your firewall is redirected to the internal IP address of your Asterisk server. Now back to AMP. In the General Settings, plug in a Caller ID entry, e.g. "DOE JOHN <695695>" where John Doe is your name and 695695 is your FWD number. FWD expects 800 number calls to be in the following format: *18002221212, but that isn't really the way you dial them since there isn't an asterisk on your phone. In the Outgoing Dial Rules for your FWD trunk, enter the following which tells Asterisk to add an asterisk (*) prefix before dialing 18xx calls or add 1 plus an asterisk (*) before dialing 8xx calls. This way FWD can correctly handle calls whether you dial 18002221212 or 8002221212 on your phone. The main point to remember here is that you use Trunk Dial Rules to reformat a dialed number into something the VoIP provider is expecting to see when the call arrives from your Asterisk server. And typically you use Outbound Dial Patterns to interpret the numbers dialed on a telephone instrument and to route the call accordingly. So here's the code for the Outgoing Dial Rules in your Trunk setup for FWD:

*+18XXNXXXXXX
*1+8XXNXXXXXX

Here's the rest of the code you'll need to make and receive calls using FWD. In the FWD Trunk's Outgoing settings, enter fwd for the Trunk Name, and enter the following for the Peer Details using your callerid, username, and password from FWD registration. WARNING: If you cut and paste code from these articles and the code contains quotation marks (such as below), be sure to replace the WordPress-inserted, front and back quotes with normal quotation marks, or you'll send Asterisk into the ozone.

allow=ulaw
auth=md5
callerid="DOE JOHN" <695695>
disallow=all
host=iax2.fwdnet.net
qualify=yes
secret=yourFWDpasswordhere
type=peer
username=695695

For your FWD Incoming Settings, name your User Context iaxfwd and enter the following for the User Details:

allow=ulaw
auth=rsa
context=fwd-in
disallow=all
inkeys=freeworlddialup
type=user

For the Registration String, enter 695695:yourpasswordhere@iax2.fwdnet.net using your actual FWD phone number and password. Now save your settings and click the Red Bar to restart Asterisk.

You'll note in the Incoming Settings above, we're using a special context to manage incoming FWD calls: fwd-in. So we need to add some code to process the incoming FWD calls at the bottom of the extensions_custom.conf file. Do that now before you forget it. Don't forget to plug in your own FWD phone number in each line below and then save your file by clicking the Update button. Here's the code to cut and paste:

[fwd-in]
exten => 695695,1,NoOp(Incoming call for FWD #695695)
exten => 695695,2,Goto(from-internal-custom,111,1)
exten => 695695,3,Hangup

The above code will assure that your incoming FWD calls are processed by the autoattendant we built last week just like your other incoming calls.

Now we're ready to add an Outbound Route for our toll-free calls. Choose AMP->Setup->Outbound Routing. In the Add Route screen, name your new route TollFree. For Dial Patterns, enter the following:

1800NXXXXXX
1822NXXXXXX
1833NXXXXXX
1844NXXXXXX
1855NXXXXXX
1866NXXXXXX
1877NXXXXXX
1888NXXXXXX
800NXXXXXX
822NXXXXXX
833NXXXXXX
844NXXXXXX
855NXXXXXX
866NXXXXXX
877NXXXXXX
888NXXXXXX

The above code covers all of the existing and planned toll-free area codes in the United States and will be triggered whenever you dial 1 and a matching 8XX area code or just 8XX and a 7-digit number. For the primary Trunk Sequence, choose IAX2/fwd. If you also have an SPA-3000 connected to a PSTN (POTS) line, click add and choose SIP/pstn for the second Trunk Sequence. Click Submit Changes to add the new Outbound Route. Use the Up arrow beside the TollFree Outbound Route to move it up your list of routes so that it is just above all of your other long distance routes. Otherwise, these calls would be processed by the first matching long distance route which would mean you'd have to pay for the call with most VoIP providers. Now click the red bar to restart Asterisk. Note that 10-digit 800 calls (i.e. without a 1) using your PSTN line will fail unless you add 1+NXXNXXXXXX to the Outgoing Dial Rules for your SIP/pstn Trunk. Once you get all the changes entered, make a test call to an 800 number after starting the Asterisk Command Line Interface (CLI) which we covered in the last article. Your output on the CLI screen should look something like the following. You'll note that the highlighted text shows the call was placed using the proper Outbound Trunk: IAX2/fwd.

-- Executing Dial("SIP/204-4c88", "IAX2/fwd/*18005551212") in new stack
-- Called fwd/*18005551212
-- Call accepted by 65.39.205.121 (format ulaw)
-- Format for call is ulaw

AsteriskImplementing Prefix Dialing. There's one more Dial Plan concept you need to get under your belt, and we can demonstrate it by designing an Outbound Route to actually place calls to others with FWD phone numbers. Then, for your homework, we'll leave it to you to design Dial Plans that allow you to place calls to other VoIP providers' customers with whom FWD has peering agreements. There's a long list of them here, and all of these calls are absolutely FREE to anywhere in the world. Another one that's not in the list is using FWD to call BroadVoice numbers: **282 + Area Code + Number. And you also can call FWD numbers from BroadVoice but there may be a charge depending upon your plan: 011+0+393+FWDnumber. Post a comment with a correct dial plan that provides access to all the peering agreement customers' numbers, and you may or may not (more likely) win a prize. We'll only publish correct answers so don't worry about being embarrassed by an incorrect suggestion.

Now, for the missing piece, we need another FWD dial plan that let's you force calls to go out through your FWD trunk. This comes in handy for other providers as well. For example, you might want to dial an 8 prefix to force a call to be sent out to Voxee or 9 to force a call to be sent out through your PSTN (home phone) line. We use 393 (FWD spelled with the phone keys) as a prefix to place FWD calls. All of their numbers have either 5 or 6 digits so the numbers you'd dial would be 393-12345 or 393-123456. What we want the Outbound Route to do is strip off the 393 and then send the call along to our IAX2/fwd trunk for processing. Use AMP->Setup->Outbound Routing and in the Add Route screen, fill in OutFWD as the Route Name. For the Dial Pattern, use 393|XXXX. and don't forget the trailing period. The period tells Asterisk to accept any number (but at least one more) digit following seven initial digits which begin with 393. The 393| expression tells Asterisk to look for a number beginning with 393 and then discard the 393 prefix before sending the call on to the outbound trunk. Note that this dial pattern will avoid interference with local phone numbers beginning with 393 of exactly seven digits ... for those of you that still have local 7-digit dialing. The reason is that you'll have to dial at least 8 digits for this dial plan to be triggered. For the Trunk Sequence, choose IAX2/fwd. Click the Submit Changes button and then move the OutFWD route to the top of your Outbound Routes list. We do this to assure that Asterisk always processes dialed calls beginning with 393 by first examining whether the call can be handled by FWD. Now click the red bar to restart Asterisk. You can try placing a call to yourself by dialing 393 plus your FWD phone number. If you want a test incoming call from elsewhere, go to the Free World Dialup site here and log in with your FWD phone number and password.

Using the samples above, you now should be able to structure a Dial Plan for your Asterisk server which takes maximum advantage of the strong points and cost savings offered by various VoIP providers. For example, our own Asterisk@Home server now has the following Outbound Routes in the following order (from top to bottom):

  • OutFWD ... 393 prefix routes calls to Free World Dialup trunk after stripping 393 prefix
  • OutVoxee ... 9 prefix routes calls to Voxee trunk after stripping 9 prefix
  • OutTeliax ... 8 prefix routes calls to Teliax trunk after stripping 8 prefix
  • OutBroadvoice ... 7 prefix routes calls to BroadVoice trunk after stripping 7 prefix
  • OutPSTN ... 5 prefix routes calls to PSTN trunk after stripping 5 prefix
  • Local ... 404, 678, 770, and 470 prefix routes local Atlanta calls first to BroadVoice trunk and then to PSTN trunk
  • Georgia ... Calls with Georgia area codes are routed first to BroadVoice trunk and then to Voxee trunk and then to Teliax
  • TollFree ... Calls with U.S. toll-free prefix are routed first to FWD trunk and then to PSTN trunk
  • US ... Calls with ten-digit numbers or calls with a 1 prefix and ten additional digits are routed first to Voxee trunk and then to Teliax trunk
  • Server2 ... Calls with a 4 prefix are routed to our secondary Asterisk server for processing
  • The real beauty of structuring a Dial Plan with AMP along the lines that we've shown above is that, when a new VoIP provider comes along with a more cost effective plan down the road, you can add a new trunk for that provider and, in under a minute, adjust the outbound routes of your Asterisk system to take maximum advantage of that provider's strong points. Thereafter, every call placed on your system will use the new Dial Plan without any further training of end-users and without any disruption in service. Try that on your $250,000 Nortel or AT&T system. We'll be talking about the last entry in a future column so stay tuned.

    Disclaimer: Some of what you've read above might be construed by some as legal advice. It's not. It's merely advice learned the hard way through the school of hard knocks. If it saves you some grief or some money, great! But, if you need or want legal advice, hire a lawyer. Remember, you get what you pay for ... and you haven't paid us a dime.

    Finally, we're really sorry if we misled you with our headline. We really didn't mean it. Don't expect to ever hear that from a VoIP provider! And, yes, there are numerous additional articles in this series. You can read all of them by clicking here.

    WordPress Themes