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.