Skip to main content

Answer Machine Detection

  • How accurate is machine detection? What can I do to increase its accuracy?

    We detect voicemail using heuristic algorithms that are based on the tone of voice, the speed of spoken words, and other factors. This detection usually takes three to five seconds with an accuracy of 60-75%, on par with the industry standards. 

    You can enable AMD at Plivo using our outbound call API with the machine_detection and machine_detection_time parameters. For more information, see our outbound call API page.

    To increase the accuracy of the machine detection, set up the machine detection method as asynchronous and increase the wait time. Use machine_detection_time: the time allotted to analyze if the call has been answered by a machine. It should be an integer >= 2000 ms and <= 10000 ms. The default value is 5000 ms. 

  • How do I change the call flow once a call is answered by a machine?

    The machine_detection parameter in the outbound call API can tell you when a call is answered by a machine or human.

    To change the call flow when a machine is detected

    Make sure the “Machine_detection” parameter is set to “true”. If a machine is detected during the call. and machine_detection is set to true, the machine parameter will be sent to the answer_url, hangup_url, or any other URL that is invoked by the call.

    To hang up the call when a machine is detected

    Set the “Machine_detection” parameter is set as “hangup”. If a machine is detected during the call and machine_detection is set to hang up, the call hangs up immediately and a request is made to the hangup_url with the machine parameter set to true.

  • What is the difference between synchronous and asynchronous machine detection?

    Synchronous and asynchronous are types of machine detection that are used on a call depending on the use case.

    Synchronous machine detection

    The “machine _detection” and “machine_detection_url” parameters come hand-in-hand with the answer machine detection. When the machine detection is defined either as true or hang up and if the machine_detection_url is not defined in the outbound call API, then the method of detection that will be executed is synchronous. 

    Note: This method is used when the initiator of the call is more than 50% sure that a machine is answering the call.

    Asynchronous machine detection

    Thee method of detection that will be executed is asynchronous when the machine detection is defined either as true and if the machine_detection_url is defined with a different call flow (e.g., to trigger a transfer a call API) in the outbound call API. 

    Note: This method is used when the initiator of the call is not sure if a machine or a human is answering the call. 

    For further reading

    Please refer to these guides for more detail. 

    https://www.plivo.com/docs/api/call/#asynchronous-machine-detection

    https://www.plivo.com/docs/getting-started/machine-detection/

  • What different types of machine detection does Plivo support?

    We support two types of machine detection.

    Synchronous machine detection  

    Once the machine is detected, the call will either hang up or proceed as per the URL that is invoked by the call (e.g., answer_URL, action, callback, hangup, etc.). For example, if the machine_detection parameter is set to "TRUE" and the machine is detected at the beginning of the call, the URL that is invoked by the call (answer_url, hangup_url, etc) will be "POSTED" with the machine_detection parameter set to "TRUE".

    If the customer wants to change the call flow with respect to the machine detection status, the customer can give a condition. For example, if the machine_detection parameter is posted as “TRUE” in the answer_url then another set of XML will be fetched which will change the call flow.

    If you want to hang up the call when a machine is detected, set the machine_detection parameter to "hangup". The call will be hung up and also POST the machine_detection attribute set as "TRUE" to the hangup_url. If the machine_detection_url is not defined in the outbound call API, then the method of detection that will be executed is synchronous.

    Asynchronous machine detection

    Machine detection will take place in the background. The call flow can be changed as soon as the machine is detected.

    To use this method, set machine_detection_url parameter while firing the outbound call API. Plivo will detect a machine in the background and invoke the machine_detection_url with a set of parameters used to take the desired action. When the machine detection is defined as true and if the machine_detection_url is defined with different call flow (e.g., to trigger a transfer a call API) in the outbound call API, then the method of detection that will be executed is asynchronous. Based on the call flow, the action further is taken.

  • Can I find out whether a call was answered by a machine or a human?

    The machine_detection parameter in the outbound call API can tell you whether a call was answered by a machine or human. 

    Change the call flow when a machine is detected

    Set the “Machine_detection” to “true”. If a machine is detected during the call, and machine_detection is set to true, the machine parameter will be sent to the answer_url, hangup_url, or any other URL that is invoked by the call. 

    Hang up the call when a machine is detected:

    Set the “Machine_detection” to “hangup”. If a machine is detected during the call and machine_detection is set to hang up, the call hangs up immediately and a request is made to the hangup_url with the machine parameter set to true.

  • Getting started with answer machine detection

    1. Detecting voicemail

    Many companies detect voicemail by using a beep. We do not. Instead, Plivo detects voicemail using heuristic algorithms based on the tone of voice, the speed of spoken words, etc. This detection usually takes three to five seconds and usually has an accuracy of 60-75%, which is on par with the industry standards. You can enable AMD at Plivo using our outbound call API with machine_detection and machine_detection_time as parameters. Read more on our outbound call API page.

    2. Leaving the message after the beep

    The app can either leave a recording or connect to an agent, depending on whether you are using a human receiver or voicemail. Some systems trigger this hook based on a beep. We trigger it based on a certain silence threshold – this has given us better results. The minSilence parameter is useful for leaving a message. It will pause further execution of the call until there is defined silence as per the threshold.