Wizworks

DIY, Technology, Imagination

  • 95.1FM The Mothership
  • HOME
  • PROJECTS
    • Ammo Can Hotspot
    • DLNA Network Media Player
    • Free TV
    • Home Automation
    • LED Kitchen Makeover
    • Misc Wireless
    • PBX for the home
    • Power Supply
  • RESOURCES
    • Blameless Bittorrent
    • FSK RADIOS
    • Ham Radio – D-Star
    • Single Board Computers
    • Streaming Radio Feeds
  • RADIO STATION – K1WIZ
  • Contact

PBX for the home

PBX FOR THE HOME

You may not know it but you may have used a PBX (Private Branch eXchange) at one time or another.  You might even use one at work on a daily basis.  A PBX is like a mini phone company central switching office.  In a typical telephone switching office, your calls are connected by computer automatically, based on the number you dial.  A PBX is like having your own private automated telephone switching office.  PBX systems are responsible for routing calls in the following way:

  • station to station – When you dial a co-worker in the same building or within a local campus
  • station to public phone network (PSTN – Public Switched Telephone Network)
  • PSTN to internal station
  • station to station intercom calls
  • calls between satellite offices are also processed by PBX systems and are able to send calls over private circuits or packet networks (like VOIP)

A typical PBX is setup and works like the following diagram:

PBX topography

In this example, the PBX is a server that is responsible for processing calls between various telephone endpoints in and out of the system via either old copper POTS (Plain Old Telephone Service) lines or calls could be processed via a VOIP trunk to an IP based service provider.  In my system, I use a company called Broadvoice to terminate my calls in and out of the PBX server in my network.  Broadvoice is very inexpensive and they have competitive BYOD (Bring Your Own Device) plans that allow unlimited calling to anywhere in the USA & Canada for under $20/month!  Broadvoice also supports Asterisk (the open source technology behind the PBX I built) and when you configure Asterisk to the Broadvoice service, you can have up to FOUR simultaneous calls over the IP Trunk connection with them!  That means that I can be on the phone, my wife can be on another call from another station, and a 2 other calls can also use the same number for in/outbound calls.   It’s a sweet deal!  Broadvoice also supports E-911 so if you have a child or elderly person in your house, you can setup your account with them to feature your physical address so that emergency services can be quickly dispatched to your house should the need arise.

Here’s a look at the dashboard on my PBX.  I have setup my PBX software to run in a VirtualBox headless virtual machine.  The reason I did this is because I periodically backup the VM and this way I can run the VM on any other hardware if the primary hardware fails.  This arrangement allows me to quickly recover from a catastrophic hardware failure.  VirtualBox is a former Sun Microsystems product and is now owned by Oracle.  Fortunately, Oracle still provides VirtualBox for free.  A look at the dashboard:

pbx-dashboard

You can see this when you first login to the admin account and from here you can easily see the health status of your PBX.  There are LOTS of applications on the PBX that you can use.  You can setup extensions, set ring groups, wakeup calls, voice mail boxes for each extension, etc:

applications

The PBX will also process faxes (inbound and outbound) and will convert received faxes to a PDF file and send to an email address of choice (use the same number for both voice and fax operations!).  Clearly, this has HUGE benefits for business and home users as you only need one phone number for both:

fax

I have used the FAX functionality from time to time and it works quite well.  These days however, most of the time, you can email scanned documents and any option to FAX is becoming increasingly rare.  It is nice to know that we have the capability if ever needed though.  In addition to some of the applications I’ve just talked about, the PBX software also has some great administrative tools for managing the PBX and reviewing call history through the CDR (Call Detail Record) for looking up call history for internal and external calls processed:

CDR

Obviously I have redacted the telephone numbers for privacy reasons.  But you get the idea of how it works.   You can search for any calls ever made on the system.  It is a legal record of call activity that can mirror your phone company’s CDR.  You also have access to the CLI console of the PBX via the web UI, which is great for diagnostics and troubleshooting in a pinch:

CLI

Because this is a software PBX, there are no longer any needs for expensive telephone interconnect cards or CSU/DSU interfaces (although if you had a need, such items are available for Asterisk).  These days, you can generally connect your PBX to the rest of the world via a feature called Trunks.  Trunks are what we call the main lines of egress and ingress to your PBX.  Without a trunk, you can’t process calls to the PSTN and you would only be able to do station to station calls.  A PBX is far more useful when we have a trunk connection to the outside world.  In my implementation, I use an IP trunk to connect to Broadvoice so that Broadvoice can process call termination and origination for my public phone number.  When anyone calls that number, they are greeted with the IVR (Interactive Voice Response) menu which allows them to “Press 1 for John, Press 2 for Katherine, etc…”.  Likewise, when I dial a standard 10 digit number in the form of 617.555.2323, my PBX is setup to route 10 or more dialed digits to my trunk which then passes them on to Broadvoice.  Broadvoice then connects the call on behalf of my PBX server and opens the line.  We configure a trunk easily within the web UI:

trunks

Of course, just like with an office PBX, each extension on our system has its own voicemail box.  This allows flexibility on how messages are delivered and ensure that voice messages are distributed to the right person.  No more worrying about missed messages because someone forgets to tell you who called or a message that was left for you.  The system handles all this, allowing others to go on about life uninterrupted.  The PBX has an admin console to manage the voicemail facility:

vm1

Here’s a view of the extensions on our system.  With a PBX, you are free to create as many extensions as you like.  In our use, we have a remote extension in the Philippines which allows us to reach family overseas without having to pay for expensive international calling rates.  Our relatives in the Philippines can also dial us either by using the 3 digit extension number or by dialing our cellphones for free using the 10 digit number.  This scheme truly and legally bypasses expensive international rates.  A look at the extensions setup screen:

extensions

For callers that are external to the system, how do you route calls to the right person?  We use an IVR (Interactive Voice Response) menu to drive call routing.  Based on the caller’s selections, we can tell the PBX where to send the call.  It’s like having a full time receptionist at your beck and call 24/7:

IVR

One really cool aspect of having a PBX is the end of shouting through the house.  Because we have Cisco 7960 phones in each room, we can use a house-wide intercom via the PBX to talk to other in the house that may be on different floors or in different rooms.  When my wife is exercising in the attic studio, and I’m in the living room, I don’t have to go up 3 floors to the attic to ask her a question or to get her attention by shouting up the stairs.   I can easily dial the phone in the studio and the phone will auto-answer and I can talk directly to her via the speaker on the phone.  She doesn’t have to stop what she’s doing and pick up the phone either, all she has to do is answer back.  It truly is great for keeping the peace in our household and saving many footsteps.  Many times, the Cisco 7960 series IP phones can be had inexpensively on ebay and can be powered directly from an 802.3af compliant PoE switch. (such as a used 3750 or 2960-S, whichever your budget allows):

cisco7960

Last but not least, because I travel quite a bit overseas, having access to USA numbers without expensive roaming or toll rates, I can fire up the free Linphone app (Apple & Android) and provision an extension on the Linphone softphone app.  This allows me to be “in system” so that I can leverage the communication power tools and flexibility my PBX affords me.  I can call home for free with just a 3 digit call or call any USA/Canada number for free while visiting other countries, and best of all, because I’m placing calls through the PBX, nobody would know I’m out of town because the callerID sent out would be that of my house phone number!  Perfect if you have landscapers, or others that you don’t want to know you are away!  Because I’m a T-Mobile customer and T-Mobile offers unlimited global data, I can use Linphone abroad anytime, and anywhere (here you can see I’m roaming on Vodafone UK and running Linphone to make a call):

linphone2 linphone

  • What are you looking for?

  • Here’s What’s Happening

    • From CSV to JSON using PHP November 30, 2021
    • Mic McCloud – A Cloud Microphone November 22, 2021
    • Setting up Liquidsoap for AAC+ streaming November 4, 2021
    • Recycling Swap October 23, 2021
    • DIY High Power Smart Switch October 2, 2021
    • DDNS script using Cloudflare October 1, 2021
    • Create your own WiFi QR Code September 29, 2021
    • How to tell when your school is watching you at home September 24, 2021
    • Garage Door Operation June 29, 2021
    • FM / Raspberry Pi Translator May 27, 2021
    • Smart Solar Powered Landscape Lighting May 1, 2021
    • Streaming Municipal Services March 29, 2021
  • Galactic Archives

    • November 2021 (3)
    • October 2021 (3)
    • September 2021 (2)
    • June 2021 (1)
    • May 2021 (2)
    • March 2021 (1)
    • February 2021 (1)
    • December 2020 (2)
    • September 2020 (1)
    • July 2020 (1)
    • June 2020 (1)
    • October 2019 (1)
    • July 2019 (1)
    • June 2019 (1)
    • January 2019 (1)
    • December 2018 (2)
    • August 2018 (1)
    • July 2018 (1)
    • January 2018 (1)
    • November 2017 (1)
    • October 2017 (2)
    • September 2017 (1)
    • January 2017 (1)
    • December 2016 (1)
    • November 2016 (1)
    • September 2016 (1)
    • August 2016 (1)
    • July 2016 (1)
    • May 2016 (1)
    • March 2016 (3)
    • November 2015 (1)
    • October 2015 (2)
    • July 2015 (1)
    • March 2015 (6)