Setting Up a Virtual Phone System With a Little Help From Some Friends
Twilio's cloud-based communications platform allows anyone with rudimentary Web-development knowledge to build a voice and SMS text application. An API, client, and various XML and other helper code is available that lets you build in PHP, C# and more.
The basic concept behind all Twilio cloud telephony applications is that a user calls or texts a Twilio-provided number; Twilio then sends a request based on that call to your developed application; your application receives the request and sends XML to Twilio; Twilio then runs the instructions and interfaces with the caller. Twilio makes money selling you the pay-as-you go inbound and outbound calls, texts and numbers.
Applications can include transcription, conferencing, voice calls confirming orders, appointment reminders, customer support and so on. Examples include pizza ordering apps and calendar reminders via phone.
Hidden away on Twilio's website is OpenVBX, a Google Voice-like open source Web-based business phone system you can deploy and play around with to get a feel for cloud telephony.
Open an Account
Browse to the Twilio website and open an account. Twilio will give you a US$30 credit, which will be plenty to get started with. Then click on the upgrade option to add a credit card. This unlocks certain features.
Validate a number, like your cellphone, for use as a caller ID by following the instructions on the Dashboard Web page.
Install the System
Browse to the OpenVBX website and download the current OpenVBX zipped file to your local machine.
Set up a website for your phone system. I use the free ones that come with Go Daddy domain registration for these kinds of development projects. In this case, set up a Linux rather than Windows website. You'll need a hosting account where you can set up a MySql 5.0 or higher database too.
Unzip the files and then FTP the files on your local machine to the website root and set up a database there. The database should be created with full permissions allocated to a user.
If You Have Trouble
Visit the forums if you have problems. I got a PHP White Screen of Death and then a "No input file specified" error when I tried to browse to the website to complete the installation. This was caused by a quirk in Go Daddy that was documented in the forums.
Applying the fixes there still caused a fail, so I asked for help on the forum and a Twilio representative got back to me within a few hours and offered some tweaks for the config.php and .htaccess files -- that got everything running.
Complete the Install
Browse to the website you configured and complete the installation process. OpenVBX will check if the server is configured correctly and offer suggestions if it isn't. Many of these configurations are optional and relate to caching and speeding things up, so don't worry about them initially.
Proceed with the installation wizard by adding the database configuration, including name, user and so on. Leave the Hostname as "Hostname" unless your Web hosting requires something different -- watch out for databases located off-webserver because they will require a specific host name.
Enter the account logins you created from the first step. You'll also need the Twilio security identifier (SID) and unique Auth Token which are listed on the account dashboard. Then fill out your return email address for account notifications like voice mails.
Create an OpenVBX administrator account -- this is distinct from your Twilio account.
Click on "Launch OpenVBX" and choose "Numbers" and "Get a Number." This costs $1 per month, and will come out of your trial balance, even though you've upgraded. So remember to cancel it when you're done.
Click on "Call" and enter a phone number that you'd like to call. Allow the Adobe Flash Player Settings dialog to access your PC's multimedia gear, and close the dialog.
Make a Test call. If it fails -- as mine did -- and you hear the announcement "could not validate request," go into the "Settings" section of OpenVBX and click on the "Update" button in the "Twilio Account" tab. The failure is related to the SID not being verified and seems to be a common problem, according to the forums.
Create a new Flow. A Flow is the act of controlling what happens on a call, like call forwarding, playing audio to the caller, and so on. I created a Flow that reads stored text like a robot and then hangs up. The call starts, the text I saved is read, and then the call is ended. Save the Flow and close it.
Allocate the Flow to the phone number you bought in the "Number" tab and then test by dialing the number that you bought. The action from the Flow will occur. Flows can include such things as dialing numbers, sending to voice mail, playing MP3 files, and so on.
Tip: Be sure to disable the automatic credit card charging functionality in the Twilio account if you don't want to exceed your $30 free credit.
Want to Ask a Tech Question?
Is there a piece of tech you'd like to know how to operate properly? Is there a gadget that's got you confounded? Please send your tech questions to me, and I'll try to answer as many as possible in this column.
And use the Talkback feature below to add your comments!