*** id: b1c81d9d-fc9c-48f9-92de-6194ca657314 title: promptRingtone slug: /node/reference/voice/call/prompt-ringtone description: promptRingtone method for the Call class. max-toc-depth: 3 ---------------- [callprompt-onstarted]: /docs/server-sdk/v4/node/reference/voice/call-prompt#onstarted [callprompt]: /docs/server-sdk/v4/node/reference/voice/call-prompt [collectdigitsconfig]: /docs/server-sdk/v4/node/reference/voice/types#collectdigitsconfig [collectspeechconfig]: /docs/server-sdk/v4/node/reference/voice/types#collectspeechconfig [ringtonename]: /docs/server-sdk/v4/node/reference/voice/types#ringtonename ### promptRingtone * **promptRingtone**(`params`): `Promise`\<[`CallPrompt`][callprompt]> Play a ringtone while collecting user input from the call, such as `digits` or `speech`. #### Parameters Object containing the parameters for prompting the user for input while playing a ringtone. The name of the ringtone. See [`RingtoneName`][ringtonename]. Configuration for collecting digits. You must either set this, or `speech`. See [`CollectDigitsConfig`][collectdigitsconfig]. Configuration for collecting speech. You must either set this, or `digits`. Pass an empty object to use the default configuration. See [`CollectSpeechConfig`][collectspeechconfig]. Duration of ringtone to play in seconds. Defaults to 1 ringtone iteration. Initial timeout in seconds. Volume value between -40dB and +40dB where 0 is unchanged. Callback to listen for events. List of prompt events can be found [here][callprompt]. Example event: [`onStarted`][callprompt-onstarted]. #### Returns `Promise`\<[`CallPrompt`][callprompt]> A promise that resolves to a [`CallPrompt`][callprompt] object that you can use to view the current state and results of the `prompt` session. #### Examples **Digits Example** In this example, we dial a phone number and prompt for `digits` while playing a ringtone in the background. After the digits are entered or a timeout occurs, the prompt session will end and return the digits results, and the call will hangup. ```js import { SignalWire } from "@signalwire/realtime-api"; const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" }) const voiceClient = client.voice; // Listen for incoming calls await voiceClient.listen({ topics: ["office"], onCallReceived: async (call) => { console.log("Call received"); // Answer the call call.answer(); // Play TTS on the call await call.promptRingtone({ name: "it", duration: 10, digits: { max: 5, digitTimeout: 5, terminators: "#*", }, listen: { onStarted: () => console.log("Prompt Ringtone started"), onFailed: () => console.log("Prompt Ringtone failed"), onUpdated: (event) => console.log("Prompt Ringtone updated", event.result), onEnded: (event) => { console.log("Prompt Ringtone ended", event.result); // Hangup the call call.hangup(); } } }).onStarted(); } }); ``` **Speech Example** In this example, we dial a phone number and prompt for `speech` while playing a ringtone in the background. After the ringtone ends, we hangup the call. ```js import { SignalWire } from "@signalwire/realtime-api"; const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" }) const voiceClient = client.voice; // Listen for incoming calls await voiceClient.listen({ topics: ["office"], onCallReceived: async (call) => { console.log("Call received"); // Answer the call call.answer(); // Play TTS on the call await call.promptRingtone({ name: "it", duration: 10, speech: { model: "enhanced.phone_call" }, listen: { onStarted: () => console.log("Prompt Ringtone started"), onFailed: () => console.log("Prompt Ringtone failed"), onUpdated: (event) => console.log("Prompt Ringtone updated", event.result), onEnded: (event) => { console.log("Prompt Ringtone ended", event.result); // Hangup the call call.hangup(); } } }).onStarted() } }); ```