diff --git a/.changeset/fuzzy-flowers-joke.md b/.changeset/fuzzy-flowers-joke.md new file mode 100644 index 000000000..52c59cf0d --- /dev/null +++ b/.changeset/fuzzy-flowers-joke.md @@ -0,0 +1,6 @@ +--- +'@signalwire/webrtc': minor +'@signalwire/core': minor +--- + +Expose the `sendDigits` function for Video RoomSession object diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index d1b6ba74d..5c3cd9782 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -133,6 +133,17 @@ export interface BaseConnectionContract< */ setLocalStream(stream: MediaStream): Promise + /** + * Send DTMF + * @param {string} dtmf + * + * @example + * ```typescript + * room.sendDigits('1') + * ``` + */ + sendDigits(dtmf: string): Promise + /** @internal */ stopOutboundAudio(): void /** @internal */ diff --git a/packages/webrtc/src/BaseConnection.ts b/packages/webrtc/src/BaseConnection.ts index f217645e7..edcce7e30 100644 --- a/packages/webrtc/src/BaseConnection.ts +++ b/packages/webrtc/src/BaseConnection.ts @@ -909,14 +909,17 @@ export class BaseConnection } } - /** @internal */ - dtmf(dtmf: string) { + async sendDigits(dtmf: string) { const rtcPeerId = this.callId if (!rtcPeerId) { throw new Error('Invalid RTCPeer ID to send DTMF') } const message = VertoInfo({ ...this.dialogParams(rtcPeerId), dtmf }) - this.vertoExecute({ message, callID: rtcPeerId, node_id: this.nodeId }) + await this.vertoExecute({ + message, + callID: rtcPeerId, + node_id: this.nodeId, + }) } /** @internal */