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();