Random header image...

Using the Linksys SPA-3102 as a VOIP ATA

by weave on March 12, 2009

In other blog entries I’ve been discussing a larger project of setting up a personal Voice over IP (VOIP) Asterisk server using the Linksys SPA-3102 VOIP gateway device.

An ATA (Analog Telephone Adapter) allows one to use old fashioned phones on a voice over IP network, or you can just use IP phones. An ATA like the SPA-3102  does not have to connect to an Asterisk PBX though. In a simple form, it can connect to any SIP VOIP provider for cheap Internet calls.   This is the same idea as other Internet phone plans like Vonage, Comcast, and Verizon, but you pay for only what you use, which can be as low as $0.00 a month.

The downside of all of this is, it takes a little more work to get a solution like this working in your own home.  This blog post will detail below what you have to do to get an ATA  to allow your regular phones in your home to work with a VOIP provider. It will concentrate on a pure VOIP set up. That is, where no regular old landline is available.

Is it right for you?

Typical VOIP Internet phone plans offer unlimited domestic (and some international) calls where going raw with a VOIP provider will mean you pay per minute — even on what you consider to be local calls.

Let’s face it, people love unlimited plans. They are predictably priced, but often not the best deal. Take Vonage, for example.  It cost $25/month for their unlimited plan which includes a phone number to call you on.  Gizmo5 — a VOIP provider costs 1.9 cents a minute for U.S. calls and if you want a dial-in number for people to call you, it’s $35.00 a year.  But to break even on Vonage (compared to Gizmo) you’d have to make over 1,160 minutes of outgoing calls a month (I’m including the dial-in number cost). If you don’t make nearly that many calls, it’s a waste. Plus Vonage requires a two year contract. With Gizmo5, if you don’t make any outgoing calls that month, you don’t pay a cent.

Gizmo5 is considered pricey by users of VOIP. Some sites, like voipraider.com claim to allow 5,000 outgoing minutes a month FOR FREE.

Another big consideration is emergency 911 calls are not going to work with this.

Let me make that clearer: No 911 calls. None. Zip. Nada. Zilch. Use your mobile phone to call 911 if you have to.

Also, if all you want is an ATA the SPA-3102 is overkill for you. A better choice is a Linksys SPA-2102 which allows two different phones to use it and two different VOIP accounts. That means if you get a two-line cordless multiple set phone and combine the two ports on the SPA-2102 into one line into the cordless phone basestation you effectively have a two line system throughout your house.

In other words, if you want to ditch your landline and go all VOIP, then the SPA-2102 is a better bet. If you want to be able to have your phones fall back to your landline if the power goes out or your Internet goes down, the SPA-3102 is your best bet.

Basic Wiring Details

Most older houses have their phone jacks wired in a daisy-chain fashion. The outside line comes into the house somewhere and snakes through the walls from one plug to the other. If you want an ATA to service all phones in the house you need to insert it somewhere before the first jack.  Or you could forget that mess and just plug the ATA device into one of the phone jacks (near an Internet connection) and plug a multi-station cordless phone base station into the ATA. Then all of your cordless phones go through the ATA device. Problem solved.

So the ATA would use two connections. One phone cord from the “phone” (not line) jack to your cordless base station, and an ethernet cable connected from the “Internet” jack into your Internet router or switch.

What to do when you screw things up

You can reset the SPA-3102 back to factory defaults by using a simple analog phone connected to the phone port, which I had to do the first time I did this because I changed the IP on the device and didn’t enable WAN management.

To reset it, connect a phone to the phone jack, pick up. You’ll hear a fast busy (if not configured to connect to an outside service yet) or a dial tone. In either case, press four asterisk (star) symbols on the phone (****) and then dial 73738# and wait for the voip chick to ask you to confirm reset by pressing 1.

Hence, don’t worry about making a mistake. You can always easily start from scratch using this procedure.

Initial Configuration

First thing you need to do is hook it up to your network and turn on the power. The device should come up with an IP address of Browse to with a browser on your same network. If that does not work, your internal network is probably not on the same “subnet” scheme. Either change your computers IP address to something compatible, like and try again, unplug your computer from the main network and run a patch cable from the computer to the Network port of the adapter, or change the IP address on the adapter.  There are multiple ways to do the latter. A somewhat easy way to do it if you have a router already that hands out IP addresses, is to change it to use DHCP.  To do so, pick up a phone you have plugged into the device, dial **** and then at the voice prompt, dial 101# and then when prompted, dial 0. At the next prompt for a command, dial 732668# to reboot it. When it comes up, dial **** again, then 110# to hear the IP address it received, then use your browser to bring up the configuration page.

Click the “admin login” link and then in the Router tab, Wan Setup, set a static IP if you want. DNS settings should be set to match what your ISP uses. To find that out, run the cmd “ipconfig /all” in Windows or on the Mac go into System Preferences, Network, find the active “connected” port, click it, then click Advanced,  and finally DNS to see what entries there are for your local network (or open Terminal in the Utilities folder and type “cat /etc/resolv.conf”)

Primary and Secondary NTP servers should be set to 0.pool.ntp.org and 1.pool.ntp.org

Ensure “Enable WAN Web Server” is set to yes.

Click the Voice tab, Regional, and set your timezone and — if in the U.S. — set the DST rule to reflect the DST changes in the U.S. started 2007 to:


Click the Voice tab and then System and you should really set a password. Then in the future to log on, type user for username and the password you choose.

Updating Firmware

An optional, but recommended step, is to update the firmware on the device. Go to www.linksys.com then find the support page, and search for SPA-3102 for firmware. The updater only runs on Windows and will require the IP address of the unit. Or you can install the firmware via a download, details in the admin manual.

Configuring for Gizmo5

Under the Voice tab, change the following settings.

Voice / SIP

  • Enable STUN
  • Stun server: stun01.sipphone.com

Voice / Line 1 / Proxy and Registration

  • Proxy: proxy01.sipphone.com

Voice / Line 1 / Subscriber Information

  • Display name: Gizmo (anything can go here)
  • User ID: Your 1747 Gizmo number assigned by them
  • Password: Your gizmo password

Dialing Patterns / Dial Plans

To place any call to the U.S. through Gizmo be sure to dial 1 then the area code and number for all calls, even your local calls.  For International calls, dial 00 then the country code, then the number. The adapter can be modified to do all sorts of tricks by manipulating its “call plan” string as well. Details are in the admin manual, but here’s some additional info.
Dial plans can be a bear to figure out, but are what provide great flexibility for your device. If you live in an area that uses the NANP (North American Numbering Plan), life is a lot easier for you. Phone numbers are fixed at 3 digits for area code, then seven for the phone number. In many countries, phone numbers can be variable length.
The default call plan for the Linksys devices is:
This is optimized for NANP. The pipe symbol (|) separates each part of the plan.  What the default plan does is:
  • Allow a * followed by any two digits
  • Allow calls to 311, 411, 611, or 911
  • Allow calls to 0 or 00
  • Allow calls to any 7 digit number starting with 2 through 9
  • Allow calls to any number starting with 1, followed by three digits, then any number in range 2-9, followed by six more numbers. If dialled, place call immediately (S0)
  • Allow any other calls of at least 12 digits (or more)
That’s a start, but let’s say we wanted to disallow any N11 calls (211, 311, etc, thru 911 — since 911 is not  supported by gizmo voip service). Just add a ! after the number. The dial plan would look like:

Important note: If you want to test 3 digit dialing, for the love of public safety, don’t practice using 911. Try 811 (Underground utility location service). So on that note, dialing 811 after this change should get an immediate fast busy. Those numbers are denied.

Dial plans can substitute dialed numbers with other digits. So let’s say you’re on a pure VOIP network (with no regular phone line fallback), and an emergency happens. You know your SIP provider can’t deal with a 911 call, but would a guest at your house know 911 won’t work?  Well, how about substituting a 911 dialed call with the number of your local police department?  Well you can with your dial plan, but what number to use?  Now that’s a tough one. My local police doesn’t publish a normal number for emergencies, so the only alternative is the non-emergency number. But at least it’s better than a panicked guest getting a fast busy.

So, let’s assume my local police non-emergency number is 302-555-1234, the dial plan could be modified to look like:


But again, a much better option is to use the SPA-3102′s ability to route calls to different outbound ports and keep a PSTN (public switched telephone network) line up for emergencies and local calls. I’ll handle how to do that in a future blog post and is what I recommend. Also, some VOIP providers *do* handle 911 calls, so whatever you subscribe to, be sure to find out ahead of time if they support 911 and if they do, ensure your address is correct with them so it can be transmitted to the 911 center if dialed. Just don’t assume they will do the right thing with 911 (or whatever the emergency number is in your own country).  Find out first!

So, hopefully you can see that a dial plan can give you a lot of flexibility.  Want to block 900 calls?  1900!, 976 calls? Use 1[2-9]xx976xxxx! Read the link to the forum post above for lots of examples and ideas!

{ 1 trackback }

Setup « Green Underground
July 13, 2009 at 21:57

{ 6 comments… read them below or add one }

D. Glassman April 17, 2009 at 00:06

Try using a 2 port gatekeeper that supports H.323 and SIP…about 100$

Ryan July 22, 2009 at 13:52

Reboot is: 732668

weave July 22, 2009 at 15:31

Thanks Ryan. I corrected the post.

Jared August 10, 2009 at 00:28

Since I have already purchased a 3102, is there a way to configure it so that it can receive and dial for two different VOIP accounts?

David Hilton January 18, 2010 at 21:57

A couple of things:
First, you can enable an access by dialing ****, 7932#, 1, 1.

Second, if you have fiddled around with nat settings on your router (like dd-wrt settings to improve performance with torrents), you may have to enable nat mapping/keepalive.

Brad Long January 28, 2011 at 16:21

I have a SPA-3102, and a SPA-941 IP phone. I have the SPA-3102 connected to an analog phone line. Is it possible to use the IP phone to make calls through the SPA-3102 without any VOIP service provider?


Leave a Comment

Previous post:

Next post: