diff --git a/packages/core/src/types/voiceCall.ts b/packages/core/src/types/voiceCall.ts index a0163d171..3ad1d6147 100644 --- a/packages/core/src/types/voiceCall.ts +++ b/packages/core/src/types/voiceCall.ts @@ -227,6 +227,24 @@ export type VoiceCallPromptMethodParams = SpeechOrDigits & { initial_timeout?: number partial_results?: boolean } +export type VoiceCallPromptAudioMethodParams = SpeechOrDigits & + Omit & { + volume?: number + initial_timeout?: number + partial_results?: boolean + } +export type VoiceCallPromptRingtoneMethodParams = SpeechOrDigits & + Omit & { + volume?: number + initial_timeout?: number + partial_results?: boolean + } +export type VoiceCallPromptTTSMethodParams = SpeechOrDigits & + Omit & { + volume?: number + initial_timeout?: number + partial_results?: boolean + } type TapCodec = 'OPUS' | 'PCMA' | 'PCMU' interface TapDeviceWS { type: 'ws' @@ -435,6 +453,15 @@ export interface VoiceCallContract { params?: VoiceCallRecordMethodParams['audio'] ): Promise prompt(params: VoiceCallPromptMethodParams): Promise + promptAudio( + params: VoiceCallPromptAudioMethodParams + ): Promise + promptRingtone( + params: VoiceCallPromptRingtoneMethodParams + ): Promise + promptTTS( + params: VoiceCallPromptTTSMethodParams + ): Promise // TODO: add derived prompt methods tap(params: VoiceCallTapMethodParams): Promise tapAudio(params: VoiceCallTapAudioMethodParams): Promise diff --git a/packages/realtime-api/src/voice/Call.ts b/packages/realtime-api/src/voice/Call.ts index 2dee67104..6d71e5772 100644 --- a/packages/realtime-api/src/voice/Call.ts +++ b/packages/realtime-api/src/voice/Call.ts @@ -18,6 +18,9 @@ import { VoiceCallRecordMethodParams, CallingCallCollectEventParams, VoiceCallPromptMethodParams, + VoiceCallPromptAudioMethodParams, + VoiceCallPromptRingtoneMethodParams, + VoiceCallPromptTTSMethodParams, EventTransform, toLocalEvent, toExternalJSON, @@ -551,6 +554,34 @@ export class CallConsumer extends AutoApplyTransformsConsumer((resolve, reject) => { if (!this.callId || !this.nodeId) {