Posts Tagged ‘ata’

Grandstream ATA ultimate dial plan string

Unlike plain old telephone service, the ATA that links your home phone to the VoIP provider must know when you’re done before attempting to dial the numbers you’ve entered. Therefore, all ATAs have a setting called “Dial Plan” (or somethings Dial String) in order to analyze the digits typed, and make the appropriate decisions for dialing.

By default, an ATA will simply wait until the user doesn’t add new numbers for a few seconds, and then dial that. There’s a few problems with that:

  • Always have to wait for that timeout period before actually making the call.
  • If you make a pause mid-typing, it will try to dial that, and then you have to start over.
  • All special numbers (311, 511, 811…) won’t work. Even 911 might not work if the VoIP provider did not implement it.

For all those reasons, I have spent some time to create a very practical dial plan. It’s particularly helpful for residents of Quebec (and Montreal) because certain services (x-1-1) are rerouted to the actual phone number of these services. Therefore, with this dial plan, I can reach:

  • 311: Montreal City
  • 411: A free phone directory service (800-555-1212)
  • 511: Quebec 511 line (transports)
  • 811: Health Line (Info-Santé)

Note that I’m using this with FreePhoneLine, so they already cover the 911 services. If your provider doesn’t link emergency services to 911, you can add a section to call your local emergency services. To get the number, just call your local police station at their non-emergency line, and simply ask for a number to reach them from “internet telephone” or something. They might have to search for it as it is quite unusual.

For GrandStream ATA devices:
{911|<311=5148720311>|<411=18005551212>|<511=18883550511>|<811=18003613977>|x11|*xx|[2-9]xxxxxxxxx|1xxxxxxxxxx|011xxxxxxxxxxxx.|^1900x.|^1976x.}
For Linksys ATA devices:
(911S0|<311:5148720311>S0|<411:18005551212>S0|<511:18883550511>S0|<811:18003613977>S0|x11S0|*xxS0|[2-9]xxxxxxxxxS0|1xxxxxxxxxxS0|011xxxxxxxxxxxx.|1900x.!|1976x.!)
Explanation of this dial string:
  • 911S0| Emergency service provided by my VoIP provider. Dial immediately.
  • <311:5148720311>S0| Montreal’s information line, dial immediately.
  • <411:18005551212>S0| Phone directory services, dial immediately.
  • <511:18883550511>S0| Quebec 511 service, dial immediately.
  • <811:18003613977>S0| Quebec Info-Santé, dial immediately.
  • x11S0| Any other x-1-1 number not covered above will be dialed anyway, so that if my VoIP provider implements them in the future, they’ll work.
  • *xxS0| All star-x-x numbers are dialed. Obvious case is voicemail *98, but certain features could be supported too.
  • [2-9]xxxxxxxxxS0| All north american ‘”local” numbers, dialed immediately. This covers all free areas where my line has access to.
  • 1xxxxxxxxxxS0| All of north america in long-distance (+1). Make sure you have a long distance plan to call those!
  • 011xxxxxxxxxxxx.| International calls. Requires a minimum of 12 digits, preceded by 011. No immediate dial because the length is unknown.
  • 1900x.!| BLOCK all 1-900 pay numbers.
  • 1976x!| BLOCK all 1-976 numbers.
Important details:
Grandstream uses the caret (^) for blocking, Linksys uses the exclamation (!)
Grandstream uses the equal (=) for remapping numbers, Linksys uses colon (:)
Linksys supports immediate dial (S0), Grandstream does not.
Grandstream uses accolades around the string { } while Linksys uses parenthesis ( )
Many thanks to Netphone Directory for a their explanations on Dial Plan constructions.

Installing Grandstream HT502 ATA with FreePhoneLine.ca SIP account

I recently discovered the great services over at freephoneline.ca. As their name implies, it’s a free phone line. The trick? It’s a voice-over-IP provider that pays for its service via extras to the service, like multiple phone numbers, international long distance plans, etc. The base phone service, however, is free. Free after you pay for initial setup, of course, but free after that.

Once the account activated, I found an inexpensive ATA (Analog Telephone Adapter) to bring this internet telephone service to my actual telephones in my house, in order to fully replace Bell (bye bye Bell!) This set me off another 45$, or barely more than a month of Bell service anyway. The one I got is Grandstream HT502, for 45$. I’ve been told this is one of the most stable and reliable units. Furthermore, this unit can actually manage 2 lines simultaneously, so if I ever want a second SIP account, this device would support it directly.

Here’s a mini-install guide, or rather, the steps I just took to install a brand new Grandstream HT502 ATA with my FreePhoneLine account.

The HT502, when left unchecked, wants to become your network router. It could replace our typical Linksys routers and whatnot, but honestly, I want my devices to do the thing they’re built for only, and have each do its own job. Therefore, I will not use mt 502 as a router or NAT, which changes a few things from how they explain it in the manual.

  1. I connected the WAN port to my network, like any other device in my home. I will not use the LAN port.
  2. I plugged in a phone in port #1, dialed * * *, and then followed the guide to put the unit in DHCP so that my router controls the IP allocation, and to get the MAC address. Nota: Since it’s not really a switch with 2 ports, the 502 has actually two network cards in it, and therefore, two MAC addresses. The LAN port has the MAC address that is printed on the label, and is the same as you get form the voice menus. The WAN port has the MAC address of the LAN one, +1. If it’s a letter, then it goes up one (A -> B, etc). Since they’re given in pairs, LAN will have an odd ending one (or A, C, E) and WAN will have even number (or B, D, F).
  3. After turning DHCP on, I logged into my Linksys (with Tomato firmware) and setup a DHCP static IP for this device. Go in Basic, then Static DHCP. Use the MAC address from the +1 strategy explained in the nota above because we want the MAC of the WAN port.
  4. While I’m in the Tomato firmware, let’s also forward ALL ports that may be used by the VoIP adapter. Go in Port Forwarding, then Basic.
  5. There’s Quality of Service we could setup here to guarantee that the VoIP application has upmost priority for traffic on my internet line, but we’ll do that in another post.
  6. Reboot the HT502 adapter, and open a browser to the configuration page: http://192.168.0.150 (the IP I gave it). Default password is “admin”
  7. Go in Basic Seetings. Only thing to change here is to set Device Mode to Bridge. Why? This will disable all NAT functions of this router, and will prevent it from trying to reroute traffic left and right.
  8. Go in Advanced Settings and write a new admin password. This device controls your phone and, as such an important part of your house/life, shouldn’t be left with default “please hack me” passwords.
  9. Go in FXS port 1, and set it up just like this (don’t forget your own account number and password, of course):

Well, that’s it! I made calls, used DTMF to check my voicemail and confirm the tones work. I received a call as well (from my cellphone). Everything works out fine.

Note that, above, I picked codec G729 which is the indicated choice of FPL. Also the Dial Plan (call string) cannot be read completely in the screenshot, but it’s what’s been said several times in this thread, which is:

{911|[2-9]xxxxxxxxx|1xxxxxxxxxx|011xxxxxxxxxxxx.|*98|[6-7]x*xxxxxxxxxxx.}

Hope this helps someone!

Note that I’ve shared this guide with the customer forums at FreePhoneLine.ca

Edit: I’ve tweaked the Dial Plan in this post.