Routing calls using a free international calling service

Business PBX Solutions
Provider Solution Details
3CX Software PBX for Windows
  • Windows Software Solution
  • Easy to Install and Manage
  • Auto Configures Phones & Trunks
  • Android, iOS, Windows & Mac clients
Details
Bicom VoIP Become an ITSP Now!
  • Become a serious competitor in VoIP Immediately
  • FULL Consultancy, Installation, Training & Support
  • Sell Hosted IP PBXs, Biz Lines, Call Centre
  • Turnkey Provisioning at your data center
Details
4PSA's VoipNow Cloud Communications Platform
  • Enjoy your custom licensing plan - Pay-As-You-Grow!
  • Your fastest go-to-market solution - from deployment to billing.
  • Professional support, training and knowledge base to help you grow your business
  • On your infrastructure or cloud-based, it's up to you.
Details
Recently a few services have popped up that allow "free" calls to various international points. There are all based in the U.S. state of Iowa, and the way they work is that you call a regular number in Iowa, wait for a prompt, then dial the number you want to call. As best anyone can determine, there must be some quirk in Iowa telecommunications law that allows them to charge higher than normal termination charges on connected calls, and they use VoIP to complete the calls, so they actually wind up making anywhere from a fraction of a cent to a few cents on each minute of use. If the Federal Communications Commission ever reforms the ridiculous compensation system we have here, these companies will probably be out of business overnight.

NOTE: on January 29, 2007 AT&T filed a lawsuit that "seeks to stop FuturePhone as well as the telcos who provide local infrastructure from continuing with their operations that use regulatory-fee arbitrage and VoIP to provide international calls for only the price of a long-distance call to Iowa." (quote from linked article). This has already resulted in some of these companies discontinuing or modifying their service.

For now, if you have "free" calling within the USA, and can place calls to the Iowa numbers that are still in operation, you can then get connected through to numbers in other countries, including Mexico (which is a fairly high cost call on many U.S. long distance plans) at no additional charge.

The challenge, then, is whether Asterisk/FreePBX can work in this manner. Assuming a user dials an international call to certain countries, select an outbound trunk (that allows completion of U.S. calls) and then do the following:

1) Connect to a particular U.S. number (NOT the number dialed by the user),
2) Wait for the other end to answer, then wait until it is ready to receive digits (a couple seconds timeout may work),
3) Send DTMF tones, possibly interspersed with waits, to the other end, representing the number the caller originally dialed, but the number MIGHT have to be massaged a bit. For example, if the caller is in a country where you dial 00+country code+number and the U.S. system expects 011+country code+number, you'd need to strip the "00" and add the "011." Also I believe one of the systems has an initial prompt that is something like "press 1 for English, press 2 for Spanish" so in some cases there may be a need to prepend additional digits and/or wait states.

Now, I have determined that it IS possible to have Asterisk send post-connect DTMF digits and waits. For example, if you were to add this to extensions_custom.conf in FreePBX or Trixbox:

exten => *20,1,Dial(Local/18005558355@outbound-allroutes,,D(wwwwww932))
exten => *20,2,Hangup

Assuming you had a route for U.S. 1-800 numbers, when the user dials *20 it would place a call to the "TellMe" service, then wait three seconds, then send DTMF for 932 ("WEA") which would take you directly to the WEAther forecast section (to further automate it for a particular location, you could add a few more waits - I've found that wwwwwwww is about right - after the 932, and then a five-digit U.S. zip code). The point is that the caller never hears the tones that are being sent because the audio path doesn't connect until after the digits have been sent (which would make this technique useful for sending account codes, etc.)

I will list a few of these "free" international call services below. Remember that the numbers you have to call are NOT toll free, so they are only "free" if you have unlimited U.S. calling, or are using a cell phone with "free" airtime, etc. Also, I have no connection to any of these companies, so I cannot say whether they might save the calling or called numbers for any reason - obviously if you are highly concerned about privacy of communications, you would want to investigate these services further before using them. Please note that the list of countries that can be called through each provider may change without notice.

  • FuturePhone.com - Web site now says, "THIS SERVICE IS NO LONGER AVAILABLE"
  • AllFreeCalls.net - free international calls to Argentina (some locations), Australia, Austria, Belgium, Brazil (Rio De Janerio), Canada, China, Christmas & Cocos Is., Cyprus, Denmark, France, Germany, Greece, Guam, Hong Kong, Hungary, Ireland, Israel, Italy, Mexico (some locations), Netherlands, Norway, Poland (Warsaw), Portugal, Russia (Moscow, St. Peterburg), Singapore, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, United Kingdom, and U.S.A. (including Hawaii, Puerto Rico). (Site now forwards to MAXRoam. --ryangard)
  • FreeCallsToMexico.com - free international calls to Mexico (Mexico City, Monterrey, Guadalajara), Canada, China, The UK, Singapore, Korea (Seoul), Hong Kong Mobile, Argentina (Buenos Aires) and Germany. (Forwards to a spam page. --ryangard)
  • Free Call Planet (formerly Call China For Free) - No longer free, now charges $19.95 per month.

Before you could make a transparent pass-thru to any of these services, you'd likely have to place a few manual test calls, listen to the prompts and find how what they want to have entered, and when. Still, for those that have high calling volumes to one of these countries, it might be worthwhile to figure out.

Alternately, if you have only one or two international numbers you call, you could simply create a custom extension for each of the numbers in extensions_custom.conf (as I did in the example above), and set up the DTMF string to insert the requisite waits and prompt responses, and then dial the number for your friend or relative, etc.

Here's a basic template for making a two-step dialing route and trunk. This will undoubtedly need some tweaking with regard to timeouts, etc. and it may not be the most efficient way to do this, but it should work in many situations:

Step 1: Make some test calls and note any required timeouts or additional digits


Make a few test calls and note any time delays, dialing prefixes or suffixes required, etc. For example, one service is said to require you to make a language selection, then wait a few seconds before dialing the number.

Step 2: Create a context in extensions_custom.conf


This is just a small four-line context that you will add at the bottom of extensions_custom.conf. The second line is for debugging/logging purposes only but if you remove it, don't forget to renumber the other lines. The third line is the real "meat" of the context. Your context should look like this:

[servicename]
exten => _X.,1,NoOp(Number originally dialed was ${EXTEN})
exten => _X.,2,Dial(Local/19995559999@outbound-allroutes,,D(wwwwww${EXTEN}))
exten => _X.,3,Hangup

"servicename" is just a name for your context that doesn't duplicate any other context name. Replace 19995559999 with the number you would dial from a local extension to access the international calling service. The wwwwww${EXTEN} means wait three seconds and then dial the number you want to call. That may need to be tweaked. For example, let's say that in your testing you found that you had to wait one second, dial either "1" or "2" to make a language selection, wait one more second, and then dial the number you want to call. In that case, you'd use ww1ww${EXTEN} (although I'd throw in an extra w or two in case the system is busy and a little slow on the uptake from time to time).

Step 3: Create a Custom Trunk in FreePBX


This is drop-dead simple (only wish it had been simple to figure out). Normally the only thing you will need to do here is create a new custom trunk and leave everything blank except the Custom Dial String field, which should look like this:

Local/$OUTNUM$@servicename

Note that "servicename" is the same context name you used in step 2 - the rest of the line can be copied and pasted verbatim. Although I haven't tried entering anything in any of the other trunk-specific fields, I would imagine that they could be used normally - for example, to strip or add prefixes from the dialed number. For example, if you're in a country where you dial 00 in front of an international call, and you're sending this to a U.S. based service, you'll want to strip the 00 and then add 011.

Step 4: Create an Outbound Route to send calls to your trunk.


When creating a route, about the only thing you will need to do is enter appropriate dial patterns that will be allowed to access the trunk you created in step 3. For example, if you are in the United States and you are using a service that allows calls to anywhere in the U.K., you'd simply put something like
01144.
as a dial pattern. Of course, the service you use may not allow calls to high-cost numbers (e.g. mobiles) so it may get more complicated. Creating dial plans is beyond the scope of this article, but just remember when you are finished with the dial plan to select your newly-created custom trunk at the bottom of the screen, and don't forget to click the red bar so all your changes take effect.





VoIP Free Calls

VoIP Free Calls Easy to use, no spyware no download.
Free Calls providers review. Compare free calls services to any country
Free VoIP International Calls Helps to reduce your calling expense.
VoIP Free Your ultimate VoIP guide.



A few caveats:


  • If you make any changes to extensions_custom.conf, don't forget to have FreePBX re-read the configuration files (this happens any time you click the red bar). (there is a custom file to do this)
  • Not all services will accept touch tones sent in this manner. If the touch tone signals are converted from digital to analog before they are received at the service (which should never happen in today's telephone system unless you are connecting your Asterisk box to an analog telephone line, but there are no guarantees), the tones may be received erratically. As far as I know, there is nothing that can be done about this. That's another reason for making a few test calls first - if you have touch tone reception problems when placing calls manually, automatic two-step calls probably won't work.
  • Don't use this method for placing high volumes of overseas calls unless you want your VoIP provider to decide they don't want you as a customer anymore, particularly if you're on a flat rate unlimited plan. While the calls are free to you, they may be costing your VoIP provider as much as around a nickel a minute to complete.

Futurephone specific comments on the above instructions:


NOTE ADDED FEBRUARY 9, 2007: Obviously these instructions will no longer work since Futurephone's service is no longer available. However for now these are being left in place as an EXAMPLE of how this type of service could be accessed. PLEASE DO NOT USE THE INSTRUCTIONS IN THIS SECTION, THEY WILL NOT WORK!!!

These comments are based on a very limited number of tests, therefore there is a big YMMV attached to these. Before using these instructions in any production environment, be sure to make enough test calls to assure yourself that they will work reliably enough for your needs. Note these instructions have not been endorsed in any way by Futurephone, and be aware that they could change their dialing requirements, or modify or discontinue the service without notice.

  • You must have a route and trunk that permits outgoing calls to the state of Iowa in the U.S.A., and that will pass outgoing tone dialing reliably (this was tested on a SIP connection to a provider and seemed to work well enough).
  • I found (during one test) that once a connection was made to the called party, any further attempt to send touch tones (as to an IVR at the distant end) didn't work, but that could have been an issue with the VoIP provider being used, or with Futurephone itself - I have no way of knowing. If it matters to you, you'll want to test to see if you can get touch tones to go through.
  • In steps 2 and 3, use "futurephone" in place of "servicename"
  • In step 2, use exten => _X.,2,Dial(Local/1712xxxxxxx@outbound-allroutes,,D(wwww1wwww${EXTEN})) as the third line in the context (check the Futurephone web page to make sure the number has not changed). Note I am allowing two second timeouts, which may or may not be sufficient in all cases (it may also be more than is really needed, but it's only worth fine-tuning if you make a lot of international calls).
  • In step 4, if you want to route all calls through Futurephone that can be sent through them, use the following Dial Patterns (N.B. These include area codes in Canada and other NANP areas that you may not want (because your usual provider completes calls to those areas) - see further instructions below this list. This list was based on information on the Futurephone web site found on January 16, 2007, but be aware that the list of places to which calls can be completed may change without notice.)

Note added January 16, 2007: When Futurephone first appeared, it worked fairly well. However, today when I made a test call, I got "We're sorry, this number is full - please try again later." Apparently this service has become too popular, and it's possible that FuturePhone may become a victim of its own success, so overloaded that it's impossible to use. You can always try one of the other services (of course the dial patterns below will not be valid for any other provider). I'm leaving the information up for the time being (just in case they add more capacity) but be aware that even a few seconds of wait time may not be sufficient now.

01123223.
011248.
011250.
01130.
01131.
01132.
01133.
01134.
011351.
011352.
011353.
011354.
011357.
01136.
011372.
011379.
01138118.
01138129.
01138138.
01138139.
011386.
01139.
01141.
011420.
01143.
01144.
01145.
01146.
01147.
01148.
01149.
0115072.
0115073.
011511.
01152222.
01152228.
01152229.
01152238.
01152243.
01152246.
01152271.
01152272.
01152311.
0115233.
01152378.
01152442.
01152443.
01152444.
01152449.
01152461.
01152462.
01152473.
01152477.
01152492.
0115255.
01152591.
01152595.
01152618.
01152664.
01152669.
01152722.
01152728.
01152735.
01152744.
01152771.
01152773.
01152777.
01152782.
01152783.
01152791.
0115281.
01152833.
01152844.
01152867.
01152868.
01152871.
01152899.
01152951.
01154.
0115511.
01155190.
01155191.
01155192.
01155193.
01155194.
01155195.
01155196.
0115521.
01155270.
01155271.
01155272.
01155273.
01155274.
01155275.
01155276.
0115531.
0115533.
0115541.
0115543.
0115544.
01155480.
01155481.
01155482.
01155483.
01155484.
01155485.
01155486.
0115551.
0115561.
0115562.
01155670.
01155671.
01155672.
01155673.
01155674.
01155675.
01155676.
01155710.
01155711.
01155712.
01155713.
01155714.
01155715.
01155716.
0115581.
0115585.
0115591.
01155982.
01155983.
01155984.
01155985.
01155986.
01156.
01158212.
01160.
01161.
01164.
01165.
01166.
0117098.
01173432.
01173472.
01174232.
01174732.
0117495.
0117496.
0117498.
0117499.
0117812.
0117813.
01178172.
01178442.
01178452.
01178462.
01179.
01182.
011852.
01186.
011880171.
0118802.
011880821.
011886.
01190212.
01190216.
011972.
0119821.
1204XXXXXXX
1226XXXXXXX
1250XXXXXXX
1289XXXXXXX
1306XXXXXXX
1403XXXXXXX
1416XXXXXXX
1418XXXXXXX
1438XXXXXXX
1450XXXXXXX
1506XXXXXXX
1514XXXXXXX
1519XXXXXXX
1604XXXXXXX
1613XXXXXXX
1647XXXXXXX
1671XXXXXXX
1705XXXXXXX
1709XXXXXXX
1778XXXXXXX
1780XXXXXXX
1787XXXXXXX
1807XXXXXXX
1819XXXXXXX
1867XXXXXXX
1869XXXXXXX
1902XXXXXXX
1905XXXXXXX
1939XXXXXXX

IF YOUR USUAL PROVIDER CAN COMPLETE CALLS TO CANADA, omit all the codes starting with "1" and ending with "XXXXXXX" (at the bottom of the list), with the following possible exceptions (depending on which of the following calls your usual provider will complete):

  • 1671XXXXXXX Guam (U.S.A. territory)
  • 1787XXXXXXX Puerto Rico (U.S.A. territory)
  • 1869XXXXXXX St. Kitts & Nevis
  • 1939XXXXXXX Puerto Rico (U.S.A. territory)



Created by: michigantelephone, Last modification: Fri 13 of Jul, 2012 (22:08 UTC) by freevoipcalls


Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+

Page Changes | Comments

 

Featured -

Search: