My partner and I recently purchased a condo in a high-rise building. The door phone (also known as a buzzer, intercom or Enterphone) at the front entrance of the building connects to the landline phone wiring in each unit. When a visitor enters the code listed next to our names on the panel, our landline phone rings. After confirming the identity of the caller, we can unlock the entrance door by pressing a touch-tone button.
Of course, we don’t actually subscribe to landline phone service, what with it being 2019 and all. Fortunately, the door phone still works even with the phone service disconnected. However, it does mean that we need to keep a landline phone around that can’t actually make calls, and we don’t have any way to accept deliveries when we aren’t at home.
What if I could somehow hook the phone line up to the internet and forward these door phone calls to our cell phones? Thus begins the adventure…
An internet search led me to this Reddit post which informed me that I would need a SIP phone adapter with an FXO port. Looking to do this on the cheap, I went to eBay and bought a “Linksys” SPA3000 for about $25 USD. 
Having received the hardware, the next step was to sign up with a SIP provider. I had heard good things about VoIP.ms, and so far my experience has been overwhelmingly positive. (Sign up with my affiliate link and receive a $10 bonus credit when you fund your account and place your first call!)
For the minimum functionality of making VoIP calls and forwarding the door phone to our cell phones, we pay only $0.25 per month plus about $0.01 per minute of usage. We are however spending an additional $2.35 per month to add the ability to receive calls and to dial 911 in an emergency ($0.85 for the phone number and a $1.50 e911 regulatory fee).
The rest of this post will document the process I went through to set up the SPA3000 with VoIP.ms. The exact steps will vary if you choose a different SIP adapter or provider, but this should at least provide a starting point.
Connect the Ethernet jack on the SPA3000 to your internet router, the Line jack to the phone jack in the wall and plug your phone in to the Phone jack. Once you have signed up for your VoIP.ms account, make a note of your six digit SIP/IAX Main Username and choose a nearby server from here. With this information in hand, follow the instructions at the VoIP.ms wiki article for setting up the Cisco SPA2100, which is also applicable for the SPA3000.
At this point we have completed the setup for making outgoing calls on the landline phone. You can dial
4443 on your landline to check your connectivity. If you haven’t already, now would be a good time to fund your VoIP.ms account.
Next, you need to create a subaccount in the VoIP.ms admin panel. This subaccount will be used for routing the incoming calls from the door phone. The username of your subaccount will be the six digit username of your main account, followed by an underscore, followed by a name of your choosing. (I used “enterphone”.)
Once you’ve done that, create a Call Forwarding entry for each cell phone number to be called when the door phone rings. Then, create a Ring Group and add each of the Call Forwarding entries to it. You should also add your Main Account if you want the door phone to ring your landline phone as well. Note: if you just want the door buzzer to ring one cell phone, skip the Ring Group and just create one Call Forwarding entry.
Our last task in the VoIP.ms portal is to to create a Virtual SIP Number using the three-digit suffix of your choice (I used “000”). Configure the Routing on this DID to use the Ring Group you created previously (or the Call Forwarding entry if you are just routing to one cell phone). Select the same Point of Presence server you chose when you set up the SPA3000.
Finally, go back to the web admin interface of the SPA3000 and click on the PSTN Line tab. You’ll notice the settings here are similar to the ones you saw on the Line 1 tab. Repeat the setup you performed from Step 4 of the wiki article with the following changes:
- For the Display Name, choose something like “Enterphone”
- The username and password are the ones for the subaccount you created (e.g.
- Set Dial Plan 8 to
1xxxxxxxyyyis your Virtual SIP Number (the x’s are your Main Username and the y’s are the three-digit suffix you chose).
- Set PSTN Caller Default DP to
- Set PSTN Answer Delay to
- Remember to click Submit All Changes at the bottom of the page
And that’s it! Bring your cell phone to the entrance of your building and try buzzing yourself in.
Some other tasks you may want to complete once everything else is set up:
- Set a password on the User and Admin accounts in the SPA3000’s web interface.
- You may want to turn on the option on your Ring Group entries requiring the answering party to press 1 to accept the call. This will prevent someone’s cell phone voice mail from grabbing the call if their phone is off or out of range.
- If you want to be able to receive calls on your landline phone, order a Local Number DID and assign it to your main account. Optionally add on voicemail and e911.
Disclosure: I may receive a commission on purchases made from links in this post.
 FXO, as I learned from this article, stands for “Foreign eXchange Office”. It is the port that receives the analog line from the telephone company (or in our case, the door phone). Contrast with FXS, which stands for “Foreign eXchange Subscriber”, which is the port that provides the analog line. ¶
 The Virtual DID is $0.25 per month and incoming usage is $0.004 per minute. Per minute rates on outgoing calls to North American destinations range from $0.0052 (Canada value route) to $0.01 (USA premium route). Call forwarding is billed at the sum of the incoming and outgoing rates, but calls within the VoIP.ms network are free so for our purposes the incoming usage rate does not apply, only outgoing usage. ¶
 This section was adapted from this article on Cisco’s site. The
(S0<:1xxxxxxxyyy) string is called a Dial Plan. The syntax is documented at this VoIP.ms wiki article and some examples can be found in this article on the Linksys site. This Dial Plan implements a “hot line” function which initiates a call to the supplied number as soon as the line is taken off hook, rather than waiting for DTMF tones. ¶