Interface NormalizedDtmfReceived

DTMF (Dual-Tone Multi-Frequency) digit received during a call.

DTMF events do NOT trigger a call state transition -- the call remains in its current state (typically listening or active). They are relayed as informational events so higher-level logic (e.g., IVR menus, PIN entry) can react to caller key-presses.

Delivery paths

All three carriers have webhook and media-stream DTMF paths. A webhook occurrence identity and a media-stream sequence belong to their own delivery channels; hosts choose one input path for an IVR action.

Example

if (event.kind === 'call-dtmf') {
console.log(`User pressed ${event.digit} for ${event.durationMs}ms`);
}
interface NormalizedDtmfReceived {
    eventId: string;
    providerCallId: string;
    timestamp: number;
    provider?: VoiceProviderName;
    providerRequestId?: string;
    kind: "call-dtmf";
    digit: string;
    durationMs?: number;
}

Hierarchy

  • NormalizedEventBase
    • NormalizedDtmfReceived

Properties

eventId: string

Provider-assigned event ID for idempotency.

providerCallId: string

Provider-assigned call ID.

timestamp: number

Unix timestamp (ms).

Provider namespace attached by stable carrier parsing.

providerRequestId?: string

Creation request identity when distinct from the actual call leg.

kind: "call-dtmf"
digit: string

The digit pressed by the caller.

Standard DTMF digits: '0'-'9', '*', '#'. Extended DTMF (rarely supported): 'A'-'D'.

durationMs?: number

How long the key was pressed in milliseconds, when the message carries it.

Most messages omit it: Twilio's documented media-stream dtmf message carries only the track and the digit, and Telnyx and Plivo webhook payloads typically omit it.