“The dialplan isn’t working!” Four words that increase your stress without telling you anything useful. In the last couple of weeks, though, I’ve heard it a couple of times. Both times it was the same cause, so I thought I’d tell you about it.
You can’t leave people hanging in an IVR (Interactive Voice Response). Silence is bad practice in writing dialplans, just like it’s bad in radio. But, it’s easy to miss some of the points where silence gets introduced.
Web services: these always take time to finish. In your testing, they may finish instantly. In production, the network may get stressed. Your database might get overloaded. Your provider does something with DNS (Domain Name Service). Your web service takes 30 seconds, or worse, times out after a couple of minutes. Unless you’ve specifically set an audio file to play in the background or enabled music on hold, your caller hears silence. “The dialplan isn’t working!”
Menu prompts: usually you’ll background an audio file while waiting for input. Asterisk lets you pick a prompt, and have it repeat if the option selected is incorrect. Sometimes, though, you’ll have a file that has to be played to the end then allow an option. If you don’t set a sound file with your menu selection after that, though, the person may select an option they think is valid, then hear silence and an eventual hangup. “The dialplan isn’t working!”
Other applications: another example is the administrative login for the MeetMe conferencing system. If the conference requires an admin to enter before it starts, and there’s nobody else in the conference when the admin arrives, there is no audio prompt. In that case, the admin sits in silence. “The dialplan isn’t working!”
It’s vital that you examine your dialplan to look for opportunities for silence to enter your dialplan. Then you test and test some more. You can’t wait for a network issue to delay your webservice and have all your callers abandon the call before they get through to an agent. Your dialplan builder should have the ability to add audio at the right spot, or do error checking, or play music in cases where there’s no other audio. Take advantage of that.