I worked from home for a few years. It was a great experience as I was able to tune my work habits to extract the most productive hours out of a day. An unfortunate downside was how often my home phone would ring and completely destroy my flow. I had played with Asterisk, the open source PBX (i.e. phone system) in another venture I was involved with where several people working at different locations needed to answer the same 1-800 number. If my home phone would ring into an Asterisk server I would be able to filter out unwanted calls and auto-dialers.
My previous Asterisk experience was using the Trixbox distribution (originally called Asterisk@Home). It is essentially a Redhat Linux distro with a bunch of additional packages installed. The 1-800 number was provided by what you would call a SIP Trunk provider. Connectivity to the SIP trunk provider was done over the internet. There are some issues with dealing with NATed IP addresses and SIP but I had an external IP address so I was able to do a 1:1 NAT with my firewall to the server running Trixbox.
My existing phone number is actually provided by a national cable company that also provides my Internet access. I wanted to keep my number but didn’t want to play around with number portability. I guess it is possible in some cases to move your phone number from one provider to another but last I checked it was a terrible time consuming process. Keep my existing number and plumbing the phone line into a server would be a better solution and allow me to skip the number portability headaches. Had I not cared about my number a SIP trunk provider would have provided me with several advantages, like being able to place multiple calls at once or run a conference bridge with multiple people dialed in.
Last year I went through a ‘server consolidation’ project at my house that saw the recycling of 9 old crappy desktops with a new Intel I7 box with 20GB of RAM running virtual machines. Unfortunately this meant that if I wanted to keep my existing home phone number I couldn’t use a PCI adapter card to tie into my existing POTS provider. The virtual machine wouldn’t be able to see the card. Fortunately I was able to pick up a Linksys SPA3102 online for less than a PCI card. It is a VOIP device that allows SIP and POTS connectivity. Using this how-to I was able to get my newly installed AsteriskNow virtual machine dialing and answering my regular phone line. People who call my house are now prompted with a “You have reached the home of Stan Carney, if you would like to speak to him please dial 100.” It plays the message 3 times a few seconds apart then hangs up on the caller if they don’t dial 100.
An added advantage of having an Asterisk server at home is using a VOIP client, like Zoiper, installed my laptop so I can answer and place calls when away from home. Zoiper also makes an iPhone application. By setting up a ring group containing all extensions, incoming calls that pass my dial 100 test cause my cordless phones as well as my cell phone and laptop to ring. Asterisk also emails me MP3’s for the people who call my landline, dial extension 100 and leave me a message. At a later date I can still add a SIP trunk provider with a local number in say, Hong Kong if I wanted to.