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