promptAudio

View as Markdown

promptAudio

  • promptAudio(params): Promise<CallPrompt> - See CallPrompt for more details.

Play an audio while collecting user input from the call, such as digits or speech.

Parameters

NameTypeDescription
paramsObject-
params.digits?CollectDigitsConfigConfiguration for collecting digits. You must either set this, or speech.
params.speech?CollectSpeechConfigConfiguration for collecting speech. You must either set this, or digits. Pass an empty object to use the default configuration.
params.initialTimeout?numberInitial timeout in seconds. Default is 4 seconds.
params.urlstringHTTP(s) URL to an audio resource to play.
params.volume?numberVolume value between -40dB and +40dB where 0 is unchanged. Default is 0.

Returns

Promise<CallPrompt> - See CallPrompt for more details.

Examples

Prompting for digits and waiting for a result:

1const prompt = await call.promptAudio({
2 url: "https://cdn.signalwire.com/default-music/welcome.mp3",
3 digits: {
4 max: 5,
5 digitTimeout: 2,
6 terminators: "#*",
7 },
8});
9const { type, digits, terminator } = await prompt.ended();

Prompting for speech and waiting for a result:

1const prompt = await call.promptAudio({
2 url: "https://cdn.signalwire.com/default-music/welcome.mp3",
3 speech: {
4 endSilenceTimeout: 1,
5 speechTimeout: 60,
6 language: "en-US",
7 hints: [],
8 },
9});
10const { type, text, terminator } = await prompt.ended();

Prompting for speech and listening for results using the events:

1call.on("prompt.started", (p) => {
2 console.log("prompt.started", p.id);
3});
4call.on("prompt.updated", (p) => {
5 console.log("prompt.updated", p.id);
6});
7call.on("prompt.failed", (p) => {
8 console.log("prompt.failed", p.id, p.reason);
9});
10call.on("prompt.ended", (p) => {
11 console.log(prompt.ended, p.id, p.text);
12});
13
14const prompt = await call.promptAudio({
15 url: "https://cdn.signalwire.com/default-music/welcome.mp3",
16 speech: {},
17});