Hack Together The Ultimate Phone System With OpenVBX

Dave Drager 04-10-2010

<firstimage=”//”>virtual phone systemEven with much business activity moving over to the internet, a phone system is still an essential business component for many companies. Moving traditional telecommunications services into the future, companies like Twilio have been springing up.


These services are basically ‘phone systems in the cloud’ – they allow incoming and outgoing calls and text messaging via an interface for programmers called an API. While very flexible and powerful (you can see the full capabilities on their site), I haven’t seen an ‘easy’ way to replace the traditional full featured phone system – until now.

OpenVBX is an open sourced PBX phone system which is hosted on any LAMP (Linux-Apache-MySQL-PHP) based website. Some have compared it to Google Voice 6 Cool Things You Can Do With Google Voice What is Google Voice? Here are the basics of Google Voice and all of its coolest features that you need to start using. Read More but I believe it is actually much different and more powerful because it is so customizable. Out of the box OpenVBX supports Twilio’s protocols only – and that is what I will base my how-to below on.

However, since it is open sourced it is trivial to update the code to work with other providers such as Teleku or anyone else who has an API compatible with Twilio’s Markup Language. I hope to see a standard emerge which would allow OpenVBX to be compatible with any number of telecommunication providers.

Installing OpenVBX

The first step to installing OpenVBX is to download the source code and upload it to your web hosting provider. Bring up the URL you installed it to and you will be able to see if your web host is compatible with the OpenVBX software.

In my case I needed to change the permissions of the config and upload directories to 777 to make them writable for the web server. Other than that my web hosting configuration was compatible.


Next you will need to configure your database with the options from your web hosting provider, and enter some more details about the email address the system should use and also the initial user login information.

The final information you will need to add is the Account SID (Security Identifier) and Token (Password) from the Twilio main Dashboard. These tie your OpenVBX install with your Twilio account, or if you have modified the code to work with another API you would need to enter your information from there.

ip phone systems

After this process you should have completed the install and be forwarded to the login screen. Login with the information you just used. The first stop is adding a telephone number that you want the system to call to.


ip phone systems

This number will be used throughout the system. Make sure to add any other phone numbers that you might want your system to call including any landlines, cell phones, Skype or SIP numbers. This is where things get fun!

Setting Up Call Flows

ip phone system

The OpenVBX call “flows” setup is ingenious. It allows you to specify what you want to happen when a phone call comes in, in any number of situations.


The basic options are a call menu (press 1 for…), dial a number, send to voicemail, conference call, say a greeting, send an SMS or hangup. These flows operate depending on how you want the customer to proceed after they call or text into your number. For example if you want them to press a number to dial a certain extension, you select the Menu box on the right and drag it over to the left. It will then open that panel and prompt you to enter:

  • The greeting you want to tell people when they call in.
  • The numbers you want to allow them to press.
  • The action you want to happen when they press that number.
  • What should happen if they press an invalid option or nothing at all.

ip phone system

ip phone system

From there, you can build out a menu system or have it perform any number of actions. One example is that you can have a voicemail box or simply a greeting or message that you want to say to them.


Messages to callers can be entered in a number of ways. The first is that you can simply type the text in and it will be converted to voice by computer. The voice isn’t exactly natural but I found it sufficient to get your message across. The other options are uploading an mp3, recording via microphone on the computer or having the system call you to record a message over the phone.

One awesome part about the OpenVBX system is that there are a number of community written plugins available to extend the system even more.

virtual phone system


The OpenVBX system is, in a word, awesome. It basically puts the power of a traditional phone system onto a website and into the ‘cloud’. The web hosting provider does not have to do anything special as the system is compatible with most normal web hosting accounts. The one downside to this is that if your website goes down, then your phone system would go down too. For this reason I would recommend keeping the software on a separate hosting account on a different server to make sure sure there is continuity of service if your website goes down.

If you are a small to medium sized business, or a person who just wants to hack together a cool project which uses Twilio or other compatible phone/sms system, OpenVBX is a great solution to get started. It makes setting up such a virtual phone system a cinch and the flexibility it empowers you with is impressive. Give it a try today!

Let us know what sort of interesting problems you have solved with it or if you know of any alternative software that might be helpful to readers!

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Toll Free Numbers
    November 29, 2010 at 6:12 am

    Great post about one of the best open-source VBX software.

  2. andrewwatson
    October 8, 2010 at 5:13 am

    I wrote a few plugins for OpenVBX (more coming) that interact with Notifo, Foursquare (when it's up....), Chirbit and Check them out here:

  3. andrewwatson
    October 8, 2010 at 3:13 am

    I wrote a few plugins for OpenVBX (more coming) that interact with Notifo, Foursquare (when it's up....), Chirbit and Check them out here:

    • Dave Drager
      October 8, 2010 at 10:39 am

      These look great! How does the Foursquare one interact with Twilio?

      • andrewwatson
        October 11, 2010 at 1:30 pm

        sorry for not replying sooner! The OpenVBX plugin architecture interfaces with Twilio, passes data about the incoming call like caller id to my plugin which then communicates with Foursquare and produces TwiML that gets sent back to Twilio by the OpenVBX framework.

  4. Anonymous
    October 5, 2010 at 12:25 am

    How do the incoming calls get routed to OpenVBX?

    • Dave Drager
      October 5, 2010 at 2:44 pm

      Incoming calls will contact your OpenVBX install to see how they should proceed. So yes, they do get routed to OpenVBX.

      • Anonymous
        October 6, 2010 at 12:00 am

        Who facilitates that? Is that the functionality of Twilio?

        • Dave Drager
          October 6, 2010 at 12:03 am

          Correct. An incoming call goes: General phone system -> Twilio -> Your OpenVBX (decides what to do) -> Twilio -> Phone # you specify.

      • andrewwatson
        October 11, 2010 at 1:32 pm

        Well, incoming calls are handled by Twilio's stack running on their EC2 instances. Twilio then makes HTTP calls to your app for instructions - it just happens that in this case OpenVBX is the app that gets those HTTP connections. OpenVBX doesn't actually interface with the "phone system" at all, just with Twilio.

  5. Fran Cisco
    October 4, 2010 at 10:46 pm

    i dont think regular people will be running lamps-

    i need a client that would be used as my "pots" it routes it to my laptop instead of it ringing on the physical phone

    how come telcos dont switch to digital voip , instead of using all the bandwith for analog.

    • Peter
      October 4, 2010 at 11:41 pm

      @Fran - "how come telcos dont switch to digital voip " It's only the part from your local CO to your location that is analog. Once it reaches the local CO and goes out onto the backbone it is digital VOIP.

  6. samaparicio
    October 4, 2010 at 10:07 pm

    For people interested in getting a system like OpenVBX but who want a solution out of the box, you may find the Ringio Virtual PBX a good fit.

  7. Anonymous
    October 4, 2010 at 8:07 pm

    For people interested in getting a system like OpenVBX but who want a solution out of the box, you may find the Ringio Virtual PBX a good fit.