I’m always looking at ways to run the house more economically. I was already using TekSavvy for home phone, but my average bill was still around $40 then, and that was just for visual call waiting, and $0.03/minute long distance. I was curious about switching to VoIP, and specifically, voip.ms, so I decided to give it a try.
Initially, I thought I’d like to keep my POTS line around, just in case the quality was poor, or there were problems. To hook VoIP into your home phone system, you’ll need an ATA, or a PC running PBX software like Asterisk with an FXS-capable card.
I opted for an ATA, as these are usually mass produced and self contained. This would get me something affordable, and easily replaceable.
I originally ordered a Linksys PAP2-NA from eBay. In hindsight, it would have been better to avoid this step. A lot of the ATAs listed on eBay that are listed as UNLOCKED, are in fact, LOCKED. That means they’ve been provisioned to only work with one provider, usually Vonage. I’m sure there are work-arounds, but you might as well buy a real unlocked ATA at retail and save yourself the hassle.
Reviews for both the Linksys PAP2T-NA and the Linksys SPA2102 were both favourable. There is some confusion as to whether the PAP2T-NA can handle 2x g729 calls at once. There is no confusion regarding the SPA2102, so I opted for that device. The SPA2102 also includes routing capabilities, but they are not great. You can set the device to be just an ATA, and not an ATA+router. Newegg‘s price is okay, and so is Amazon‘s.
Another option worth considering if you are a hacker, or open source aficionado would be the fully open IP0X, which “runs Asterisk and uClinux on a powerful embedded Blackfin processor”. I’ll probably look into it when time/budget allows.
Getting started with voip.ms
You need to create an account with voip.ms. Go to their website, and follow the directions/form.
You will need to order a DID (incoming phone number), and associate it to your account (or put a Port request in if you are switching you phone number over right away). There are various parameters that you can configure on the DID, depending on your preferences. I set the routing via SIP to my main account, and my point of presence to Toronto. The other settings are optional (like fail-over, caller id, etc).
From there, if you want two outgoing lines (no charge!), you can create a sub account. This will let you have two outgoing calls from your house at once, taking full advantage of the two phone ports on the SPA2102. They can have the same number show up on Caller ID, so people you call won’t know that you are calling from the second line.
Configuring the SPA2102
Some basic changes were required to be made to the default configuration of the SPA2102. Since it is a router, it is running a DHCP server on the LAN port by default. You may want to connect your PC directly to this LAN port when doing your initial config.
I’ve noticed the stock firmware has been really old on any units I’ve purchased. I’d advise downloading, and installing the latest firmware for the SPA2102 before you get too far. You may need a Microsoft windows machine to use their firmware update utility. I used my Windows 2000 VM. I haven’t tried it under wine.
I’d suggest the following changes to the ATA (click on Admin Login and Advanced):
Router/WAN Primary NTP Server: 0.ca.pool.ntp.org (or your local timeserver) Secondary NTP Server: 1.ca.pool.ntp.org Enable WAN Web Server: yes Router/LAN Networking Service: Bridge LAN IP Address: (same as WAN) Enable DHCP Server: no Voice/SIP RTP Packet Size: 0.020 Voice/Regional Time Zone: GMT-05:00 Block CID Act Code: *81 Block CID Per Call Act Code: *67 Block CID Deact Code: *82 Block CID Per Call Deact Code: *68 Daylight Saving Time Rule: start=3/8/7/2:0:0;end=11/1/7/2:0:0;save=1 Voice/LINE 1/2 Nat Keep Alive: Yes Nat Mapping/Traversal: Yes Network Jitter Level: medium (using qos, and teksavvy is pretty good) Proxy: toronto.voip.ms Register Expires: 120 Display Name: (Caller name as you'd like caller id to display) User ID: XXXX, Subaccount (for line 2) Password: YYYY Preferred Codec: G729a (you can use G711u if quality is more important than bandwidth) Dial Plan: (<:1905>[2-9]xxxxxx|1[2-9]xx[2-9]xxxxxxS0|[2-9]xx[2-9]xxxxxxS0|*xx|*xx.|11|822|4443|4747|0|00|[2-9]xxxxxx|1[2-9]xx[2-9]xxxxxxS0|4XXX|xxxxxxxxxxxx.)
You will probably set a static IP on the WAN side to a real LAN address on your LAN, and also the default gateway to the correct default gateway. Once you saved these changes, you should be able to plug the ATA into your LAN via the Internet port on the back of the ATA. Use your browser to reconnect to the new static IP you’ve assigned to the WAN.
Configuring Your Router
You will want to enable QoS on your router, if it supports it. The configurations are different for each one, but in principle, you want the traffic to and from the ATA to have the highest priority. You’ll probably also want to forward UDP ports 5060, and 5061 to the ATA.
At this point, the ATA should be registered with voip.ms, and you can plug a phone into the back of the ATA, and dial out from either line.
Using VOIP while POTS is still active
As I mentioned, I wanted to keep my POTS line around to test to ensure the VoIP was satisfactory. I called TekSavvy, and had them enable call forwarding (can take some days). I ordered a temporary DID from voip.ms.
Once everything was ready, I dialed *72 and then my new DID, on my POTS-connected phone, and hung up. I called my home number, and sure enough, the phone attached to the ATA rang.
I have DSL on my POTS line as well. Fortunately, I switched to a much simplified wiring setup when I prepped my line for DSL. It was simply a matter of disconnecting my POTS splitter from my home line, and also disconnecting the second line (orange pair) from outside. I whipped up a cable to go from the two phone jacks on the ATA to the first and second line in my house, and punched it in.
I was now using VoIP for all incoming and outgoing calls. One thing to note that is probably important, at this point there was no 911 availability on my home phone, since it was all VoIP and I was playing some games with Caller ID + call forwarding to make it look like I was calling from my POTS line.
Cutting Over Fully
After a few months, I was satisfied that the VoIP was more than sufficient to replace my home phone. I decided to take the plunge. It was now much more important that my Internet didn’t go down; that would also affect phone service too. I didn’t want any confusion to happen with Bell because I’m using TekSavvy for home phone + Internet, and there is such a potential for problems (i.e. Bell’s problems), so I decided to order a second dry-loop DSL.
I switched my main Internet over to the dry-loop, and then put a Porting request in to voip.ms for my home phone number. After the port was complete (7 days), I called TekSavvy to ensure that my home phone, and old DSL account was cancelled.
I switched my VoIP account so that my POTS DID was pointed to my main account, and deleted my temporary DID. From there, I was able to activate 911 service.
Useful Star Codes
The ATA has a number of star codes that you may wish to dial to enable the various features:
- Caller ID Activate Code: *65
- Call Waiting Activate Code: *56
- Call Waiting Caller ID Activate Code: *25
You will need to enable these features on each of the two lines on the ATA separately. To dial the codes, simply pick up, dial, and wait for a second dial tone. Hang up when you hear it.
Caller ID Activate will tell the ATA to do Caller ID lookups. Doing the Call Waiting codes will give you visual call waiting.
I’m now running on pure VoIP for several months, and I’m very pleased with the service. We had some routing issues calling a Rogers home phone, but I put in a ticket, and things seem to have been resolved. My dry-loop DSL is more expensive than just DSL, but with my average monthly phone bill at $8, I still save around $23 per month.
I’d recommend going to VoIP to anyone, especially if you already have a cell phone. Home phone quickly becomes less important then.