I recently had a requirement come up for a web application involving communicating a certain set of information over the telephone and receiving a response from the party on the other end acknowledging receipt of that information. I looked into various possibilities, the main one being Asterisk “the world’s leading open source PBX” (according to their website) however that would have involved a reasonably amount of setup in terms of the server, a VoIP provider, and actually getting TTS (Text to Speech) working using e.g. Festival.
I therefore started looking into alternatives, and came across the following:
I chose CDYNE Phone Notify, it basically provides a VoiceXML type service however it does not use the VXML standard.
See below for some of the advantages, disadvantages, and other things to note that I found when testing it out and integrating it into a PHP based web application:
- Straight forward to interface with via SOAP (I used PHPs standard SOAP extension).
- Easy to code scripts ranging from the simple to the more advanced.
- Advanced script can be interactive and dynamic, taking user input via DTMF, sending it to a server you specify via HTTP and then proceeding with the script depending on the response received from the server.
- Range of voice languages, ages, genders available.
- Retries calls automatically up to 3 times.
- Debugging via email containing log of what happened via the call.
- Possible to change voices, voice speed, and insert pauses as and when required during a call.
- Handles inbound calls*
- Can transfer calls back to the PSTN depending on user input*
- Possible to download converted TTS MP3 file*
- Can record speech over the phone*
* Not features I had a need for / tested.
- Charge is made even if calls are not successful, i.e. recipient does not answer (a limited number of retries are however available at no extra charge).
- I have heard more realistic TTS sounding voices, and eventually went with a US voice because they seemed clearer / easier to understand than any of the UK voices available, rates are reasonable / inline with other VoIP providers for the UK.
- They operate a payment system whereby your credit card is billed depending on your usage at the end of each month. This opens up the possibility of an application e.g. getting stuck in a loop and this resulting in a very large bill at the end of the month. A pre pay system would avoid this. However apparently they do monitor accounts for out of the ordinary usage levels.
Other things to note:
- Surcharge for international calls, as it is a US based service (however this is somewhat to be expected).
- Wiki contains all the documentation you need however it could be organised in a way that makes it easier to fine.
- Documented commands “StatusChangePostUrl” “MaxCallLength” do not seem to work when specified on the “NotifyPhoneAdvanced” SOAP call, only when specified on the script as “~SetVar(maxcallseconds|60)~” and “~\StatusChangePostURL(example.com)~”.
Overall although it has some disadvantages I was impressed with the features available from the CDYNE Phone Notify service and the ease at which they can be utilised in PHP.