detect_machine
A detection method that combines AMD (Answering Machine Detection) and fax detection.
Detect whether the user on the other end of the call is a machine (fax, voicemail, etc.) or a human.
The detection result(s) will be sent to the specified status_url as a POST request and will also be saved in the
detect_result variable.
Properties
detect_machine
An object that accepts the following properties.
detect_machine.detect_message_end
If true, stops detection on beep / end of voicemail greeting.
detect_machine.detectors
Comma-separated string of detectors to enable. Valid Values: amd, fax
detect_machine.end_silence_timeout
How long to wait for voice activity to finish (in seconds).
detect_machine.initial_timeout
How long to wait for initial voice activity before giving up (in seconds).
detect_machine.machine_ready_timeout
How long to wait for voice activity to finish before firing the READY event (in seconds).
detect_machine.machine_voice_threshold
The number of seconds of ongoing voice activity required to classify as MACHINE.
detect_machine.machine_words_threshold
The minimum number of words that must be detected in a single utterance before classifying the call as MACHINE.
detect_machine.status_url
The HTTP(S) URL to deliver detector events to. Learn more about status callbacks.
detect_machine.timeout
The maximum time to run the detector (in seconds).
detect_machine.tone
The tone to detect. Only the remote side tone will be received. (CED or CNG) Used for fax detection.
detect_machine.wait
If false, the detector will run asynchronously and status_url must be set. If true, the detector will wait for detection to complete before moving to the next SWML instruction.
Variables
The following variables are available after the detect_machine method is executed and detection is complete.
You can reference these variables in your SMWL script utilizing the ${variable} syntax.
detect_result
The result of detection.
detect_machine_beep
Whether a beep was detected. true if detected.
detect_ms
The number of milliseconds the detection took.
StatusCallbacks
A POST request will be sent to status_url with a JSON payload like the following:
event_type
The type of event, always calling.call.detect for this method.
event_channel
The channel for the event, includes the SWML session ID.
timestamp
Unix timestamp (float) when the event was generated.
project_id
The project ID associated with the call.
space_id
The Space ID associated with the call.
params
An object containing detection-specific parameters.
params.control_id
The control ID for this detect operation.
params.detect
Detection result details (see subfields below).
detect.type
The type of detection. Valid values: machine or fax.
detect.params.event
The detection result. Valid values: HUMAN, MACHINE, READY, NOT_READY, UNKNOWN, finished.
detect.params.beep
Present and set to true when a beep was detected. Absent when no beep has been detected.
params.call_id
The call ID.
params.node_id
The node handling the call.
params.segment_id
The segment ID for this part of the call.