Why am I getting the wrong call progress result back?
Traditional Call Progress (which is used when you set the DialMode to AnalyzeCall) uses the first few seconds of audio to determine if what answers is a human or a machine. If there is solid audio in the first few seconds then the call progress engine will likely determine that it is a machine. This is because answering machines usually play a longer message such as "Hi this is John, please leave a message after the tone", or "You have reached the Sprint Mailbox of John Doe". What this means is that call progress may return back Machine Detected if you answer the call and there is a lot of background noise. Conversely, if your answering machine message is very short call progress may detect that it is a human detected when in actuality it is a machine. This is obviously oversimplified, you will want to read the HMP Elements - Call Analysis Features for a better understanding.
In our testing, we've only been able to achieve about 90% accuracy using traditional call progress. This is why we've created the beep detector. The idea behind the beep detector is that you begin playing a message immediately after the call connects. If a beep was never detected then you can assume that it was a human. If you detect a beep, then that means that it was answering machine, and you can begin playing your message again. In our testing this proved to be about 98.5% accurate. To use the beep detector you will want to view this article:
Modify Call Progress
We feel that far and away the most accurate solution is to use the Beep Detector. However, perhaps your situation doesn't allow you to use the Beep Detector and instead you need to use traditional call progress. We provide various settings that allow you to adjust how call progress performs. You'll want to review the document: HMP Elements - Call Analysis Features
You can then modify how Calll progress performs, by adding those settings. For example:
myOverrides.Add("vadlengthms", "600"); // Default of 600ms of silence after voice detection is considered human. myOverrides.Add("machinelengthms", "1500"); // If continuous voice reaches 1500ms then it is a machine. (Default)
If you have any questions, feel free to contact email@example.com.