Skip to main content

CallCollect

Represents a current or past collect session in a call. You can obtain instances of this class by starting at Collect with the following method:

Example​

In this example, we collect digits from the caller. Once the collect session is ended, we print the collected digits and hangup the call.

import { SignalWire } from "@signalwire/realtime-api";

const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" })

const voiceClient = client.voice;

const call = await voiceClient.dialPhone({
from: "+YYYYYYYYYY",
to: "+XXXXXXXXXX",
});

// start Collect
await call.collect({
partialResults: true,
sendStartOfInput: true,
digits: {
max: 5,
digitTimeout: 4,
terminators: "#*",
},
listen: {
onStarted: async () => {
console.log("Collect started");
await call.playTTS({
text: "Please enter your PIN"
});
},
onInputStarted: () => {
console.log("Collect input started");
},
onUpdated: (collect) => {
console.log("Collect updated:", collect.digits);
},
onEnded: async (collect) => {
console.log("Collect ended:", collect.result);
console.log("PIN collected:", collect.digits);
call.hangup();
},
onFailed: () => {
console.log("Collect failed")
}
}
}).onStarted();

Properties​

confidence​

Confidence level for the speech recognition result (if type is "speech"), from 0 to 100. For example, 83.2.

Syntax: CallCollect.confidence()

Returns: number


digits​

The digits that have been collected (if type is "digit"). For example, "12345".

Syntax: CallCollect.digits()

Returns: string


id​

The unique id for this collect session.

Syntax: CallCollect.id()

Returns: string


reason​

Alias for type, in case of errors. Use this field to check the reason of the error.

Syntax: CallCollect.reason()

Returns: "no_match" | "no_input" | "error"


result​

A promise that resolves to the CallCollectResult object when the collect session is ended and the result is available.

Syntax: CallCollect.result()

Returns: CallCollectResult


terminator​

The terminator used to complete the collect (if type is "digit"). For example, "#".

Syntax: CallCollect.terminator()

Returns: string


text​

The text that has been collected (if type is "speech"). For example, "hello who's there".

Syntax: CallCollect.text()

Returns: string


type​

The type of this collect session.

Syntax: CallCollect.type()

Returns: "error" | "no_input" | "no_match" | "digit" | "speech" | "start_of_input"


state​

The state of this collect session. Only present when type is "speech" and the continuous parameter is set to true. Otherwise, the collect state is always "undefined".

Syntax: CallCollect.state()

Returns: "collecting" | "finished" | "error"


Methods​

ended​

â–¸ ended(): Promise<CallCollect>

Returns a promise that is resolved only after this collect finishes (or is stopped).

Returns​

Promise<CallCollect>

A promise that resolves to the CallCollect object when the collect session is ended.

Example​

const collect = await call.collect({
digits: {
max: 4,
digitTimeout: 10,
terminators: "#",
},
partialResults: true,
sendStartOfInput: true,
}).onStarted();
await collect.ended();

startInputTimers​

â–¸ startInputTimers(): Promise<CallCollect>

Start the initialTimeout timer on an active collect.

Returns​

Promise<CallCollect>

A promise that resolves to the CallCollect object when the collect session InputTimer is started.

Example​

const collect = await call.collect({
digits: {
max: 4,
digitTimeout: 10,
terminators: "#",
},
partialResults: true,
sendStartOfInput: true,
startInputTimers: false,
}).onStarted();
// You can add some logic before starting input timers.
await collect.startInputTimers();

stop​

â–¸ stop(): Promise<CallCollect>

Stops the collect session.

Returns​

Promise<CallCollect>

A promise that resolves to the CallCollect object when the collect session is stopped.

Example​

const collect = await call.collect({
speech: {
endSilenceTimeout: 2,
speechTimeout: 10,
language: "en-US",
hints: ["sales", "support", "representative"]
},
partialResults: true,
sendStartOfInput: true
}).onStarted();
await collect.stop();

Alias Types​

CallingCallCollectResult​

Ƭ CallingCallCollectResult: Promise<CallCollect>

The result of the collect session. Depending on the type of the collect session, the result will return different fields.

Digit Collect Results​

The result of a collect session when type is "digit".

Properties​

NameValueDescription
type"digit"The type of this collect session.
paramsObjectThe parameters of this collect session.
params.digitsstringThe digits that have been collected.
params.terminatorstringThe terminator used to complete the collect.

Speech Collect Results​

The result of a collect session when type is "speech".

Properties​

NameValueDescription
type"speech"The type of this collect session.
paramsObjectThe parameters of this collect session.
params.textstringThe text that has been collected.
params.confidencenumberThe confidence level for the speech recognition result.

Input Started Collect Results​

The result of a collect session when type is "input_started".

Properties​

NameValueDescription
type"input_started"The type of this collect session.

No Input Collect Results​

The result of a collect session when type is "no_input".

Properties​

NameValueDescription
type"no_input"The type of this collect session.

No Match Collect Results​

The result of a collect session when type is "no_match".

Properties​

NameValueDescription
type"no_match"The type of this collect session.

Error Collect Results​

The result of a collect session when type is "error".

Properties​

NameValueDescription
type"error"The type of this collect session.

Events​

onStarted​

â–¸ CallCollect.listen({ onStarted: Callback })

Emitted when the collect session is started. Your event handler will receive the CallCollect object.

Parameters​

NameTypeDescription
collectCallCollectThe collect object that emitted the event.

onInputStarted​

â–¸ CallCollect.listen({ onInputStarted: Callback })

Emitted when the collect session starts receiving input. Your event handler will receive the CallCollect object.

Parameters​

NameTypeDescription
collectCallCollectThe collect object that emitted the event.

onUpdated​

â–¸ CallCollect.listen({ onUpdated: Callback })

Emitted when the collect session is updated. Your event handler will receive the CallCollect object.

Parameters​

NameTypeDescription
collectCallCollectThe collect object that emitted the event.

onFailed​

â–¸ CallCollect.listen({ onFailed: Callback })

Emitted when the collect session fails. Your event handler will receive the CallCollect object.

Parameters​

NameTypeDescription
collectCallCollectThe collect object that emitted the event.

onEnded​

â–¸ CallCollect.listen({ onEnded: Callback })

Emitted when the collect session ends. Your event handler will receive the CallCollect object.

Parameters​

NameTypeDescription
collectCallCollectThe collect object that emitted the event.