Hack Together The Ultimate Phone System With OpenVBX

Ads by Google

openvbx   Hack Together The Ultimate Phone System With OpenVBXEven 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 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.

Ads by Google

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.

openvbx1   Hack Together The Ultimate Phone System With OpenVBX

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.

openvbx2   Hack Together The Ultimate Phone System With OpenVBX

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.

openvbx3   Hack Together The Ultimate Phone System With OpenVBX

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

openvbx4   Hack Together The Ultimate Phone System With OpenVBX

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.

openvbx11   Hack Together The Ultimate Phone System With OpenVBX

openvbx12   Hack Together The Ultimate Phone System With OpenVBX

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.

openvbx6   Hack Together The Ultimate Phone System With OpenVBX

Conclusion

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!

Ads by Google

The comments were closed because the article is more than 180 days old.

If you have any questions related to what's mentioned in the article or need help with any computer issue, ask it on MakeUseOf Answers—We and our community will be more than happy to help.

14 Comments -

Anonymous

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.

samaparicio

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.

Fran Cisco

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

@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.

Anonymous

How do the incoming calls get routed to OpenVBX?

Dave Drager

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

Anonymous

Who facilitates that? Is that the functionality of Twilio?

Dave Drager

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

andrewwatson

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.

andrewwatson

I wrote a few plugins for OpenVBX (more coming) that interact with Notifo, Foursquare (when it’s up….), Chirbit and MyCaption.com. Check them out here: http://www.twilio.com/gallery/developers/Andrew-Watson-1

Dave Drager

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

andrewwatson

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.

andrewwatson

I wrote a few plugins for OpenVBX (more coming) that interact with Notifo, Foursquare (when it’s up….), Chirbit and MyCaption.com. Check them out here: http://www.twilio.com/gallery/

Toll Free Numbers

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