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​
Collecting a PIN with keypad input from the user, then waiting for a result before proceeding with the next instructions.
import { Voice } from "@signalwire/realtime-api";
const client = new Voice.Client({
project: "<project-id>",
token: "<api-token>",
topics: ["office"],
});
const call = await client.dialPhone({
from: "+YYYYYYYYYY",
to: "+XXXXXXXXXX",
});
// start Collect
const collect = await call.collect({
digits: {
max: 5,
digitTimeout: 4,
terminators: "#*",
},
});
await call.playTTS({
text: "Please enter your PIN",
});
const { digits } = await collect.ended();
console.log("PIN collected:", digits);
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"
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"
Methods​
ended​
â–¸ ended(): Promise<CallCollect>
- See CallCollect for more details.
Returns a promise that is resolved only after this collect finishes (or is stopped).
Returns​
Promise<CallCollect>
- See CallCollect for more details.
Example​
const collect = await call.collect({
digits: {
max: 4,
digitTimeout: 10,
terminators: "#",
},
partialResults: true,
sendStartOfInput: true,
});
await collect.ended();
startInputTimers​
â–¸ startInputTimers(): Promise<CallCollect>
- See CallCollect for more details.
Start the initialTimeout
timer on an active collect.
Returns​
Promise<CallCollect>
- See CallCollect for more details.
Example​
const collect = await call.collect({
digits: {
max: 4,
digitTimeout: 10,
terminators: "#",
},
partialResults: true,
sendStartOfInput: true,
startInputTimers: false,
});
// You can add some logic before starting input timers.
await collect.startInputTimers();
stop​
â–¸ stop(): Promise<CallCollect>
- See CallCollect for more details.
Stops the collect session.
Returns​
Promise<CallCollect>
- See CallCollect for more details.
Example​
const collect = await call.collect({
speech: {
endSilenceTimeout: 2,
speechTimeout: 10,
language: "en-US",
hints: ["sales", "support", "representative"],
},
partialResults: true,
sendStartOfInput: true,
});
await collect.stop();