prepared by: Joseph Sheedy, Velotron Heavy Industries
last update: 2009-09-10, jls
This is a technical description of the solution provided to meet the requirements of The Corner project. The requirements necessitated an Interactive Voice Response (IVR) phone system which could be reached via a local or toll free number. This system plays back prerecorded messages and questions, and accepts user responses via touch tone (DTMF) signals. At specified points in the call tree, a user can leave voice messages of up to 2 minutes. These messages are then available to be played back over the phone system to future callers, and are also available on the web at http://www.23rdandunion.org.
The IVR system was implemented using PrettyMay Call Center (PMCC), a software application which provides traditional PBX services, using Skype as the carrier. PMCC is running at The Planet on a dedicated server running Windows Server 2003. All configuration was done over a Remote Desktop connection. PMCC's Inbound CallFlow was configured with the design included in this documentation, examples/the_corner_pmcc_call_flow_20090812.xml. A Skype account was set up with a paid SkypeIn local phone number. kall8 was used to provide a toll free number. Calls to the toll free number get routed to kall8, to skype, to a skype instance running on the hosted server, which is controlled by PMCC.
Skype requires access to an audio device, even though no audio signals are being routed in or out of the server in this configuration. To get around this, Virtual Audio Cable (VAC) is installed, which provides virtual audio devices which Skype can be configured to access. VAC version 4 was difficult to configure properly, so version 3 was installed with good results.
User messages were stored in the location configured in the inbound call flow. The website 23rdandunion.org is hosted on the same server as the rest of the application. The Apache HTTP server is running, and was configured to serve the mp3 directory via an Alias rule in httpd.conf. The web site was built using static html with some inline PHP code. It presented the user messages by scanning the directory for the appropriate messages for the page, and presenting them appropriately. Some example code is included here in examples/php_example.php.
A few support tasks ran in the background at frequent intervals via Windows Scheduled tasks. They are described below.