Calling
Play a prompt and wait for input. The input can be received either as digits from the keypad, or from speech, or both depending on what properties are set.
An object that accepts the following properties.
Either a playable sound or an array of playable sounds
Volume gain to apply to played URLs. Allowed values from -40.0 to 40.0.
Voice to use with say: for text to speech
Language to use with say: for text to speech
Gender to use with say: for text to speech
Number of digits to collect
Digits that terminate digit collection
Time in seconds to wait for next digit
Time in seconds to wait for start of input
Max time in seconds to wait for speech result
Time in seconds to wait for end of speech utterance
Language to detect speech in
Expected words to match
The engine selected for speech recognition. The engine must support the specified language. Valid values: Google, Google.V2, Deepgram. Default is not set (SignalWire picks the engine).
HTTP or HTTPS URL to deliver prompt status events. Learn more about status callbacks.
By default, only digit input via keypad is enabled. When at least one speech input based parameter
is set (speech_timeout, speech_end_timeout, speech_language or speech_hints), speech input is
enabled and digit input is disabled.
To enable speech and digit based input collection at once, set at least one speech input parameter
and at least one digit input based parameter (max_digits, terminators, digit_timeout, and initial_timeout).
Audio file from a URL
To play an audio file from the web, simply list that audio’s URL.
Specified audio file should be accessible with an HTTP GET request.
HTTP and HTTPS URLs are supported. Authentication can also be set in the url in the format of username:password@url.
Example: https://cdn.signalwire.com/swml/audio.mp3
Ring
To play the standard ringtone of a certain country, use ring:[duration:]<country code>.
The total duration can be specified in seconds as an optional second parameter. When left unspecified,
it will ring just once. The country code must be specified. It has values like us for United States, it for Italy.
For the list of available country codes, refer to the
supported ringtones section below. For example:
ring:us - ring with the US ringtone once
ring:3.2:uk - ring with the UK ringtone for 3.2 seconds
Speak using a TTS
To speak using a TTS, use say:<text to speak>. When using say, you can optionally set say_voice, say_language and
say_gender in the play or prompt properties. For the list of useable voices and languages,
refer to the supported voices and languages section below.
Silence
To be silent for a certain duration, use silence:<duration>. The duration is in seconds.
Read by the method:
To learn more about the supported voices and languages, please visit the Supported Voices and Languages Documentation.
failed, no_input, match_speech, match_digits, or no_match.A POST request will be sent to status_url with a JSON payload like the following:
The type of event. Always calling.call.collect for this method.
The channel for the event, includes the SWML session ID.
Unix timestamp (float) when the event was generated.
The project ID associated with the call.
The Space ID associated with the call.
An object containing prompt-specific parameters.
The call ID.
The node handling the call.
The control ID for this prompt operation.
The collection result details.
The type of input collected. Valid values: digit, speech, no_input, no_match, start_of_input, finished, error.
The DTMF digits collected (when type is digit).
The terminator digit that ended collection (when type is digit).
The recognized speech text (when type is speech).
The speech recognition confidence score (when type is speech).
Whether this is the final result in a continuous collect session. Only present when partial_results is enabled. true indicates collection has ended; false indicates more results may follow.
The current collection state. Only present when continuous collect is enabled. Valid values: collecting, finished, error.
Digit input:
Speech input:
The play method also has examples related to playing sounds from URLs. The
interface for playing sounds for play and prompt is identical.
In this case, the URL listed in transfer will be sent an HTTP POST request
with all the out variables (like prompt_value) already set. For
more details on this behavior, refer to transfer
statement’s documentation.