recordingStatusCallback URL when a recording's state changes, so you can download or process the audio as soon as it's ready.<Record> verb, on <Dial record=…>, or on a call/number via the API:123456<Response> <Record recordingStatusCallback="/webhooks/recording" recordingStatusCallbackMethod="POST" recordingStatusCallbackEvent="in-progress completed absent" /> </Response>
| Event | When it fires |
in-progress | Recording started. |
completed | Recording finished and is available (default). |
absent | Recording was requested but no audio was captured. |
| Parameter | Type | Description |
RecordingSid optional | string | Unique identifier for the recording. |
RecordingStatus optional | string | in-progress, completed, or absent. |
RecordingUrl optional | string | URL to fetch the recording audio. |
RecordingSource optional | string | RecordVerb, DialVerb, Conference, etc. |
CallSid optional | string | The call that was recorded. |
AccountSid optional | string | Your account SID. |
RecordingChannels optional | string | Number of channels (1 mono, 2 dual/stereo). |
RecordingTrack optional | string | inbound, outbound, or both. |
123RecordingSid=RE2e9f6b3c&RecordingStatus=completed &RecordingUrl=https%3A%2F%2Fvoice.ruut.chat%2F2010-04-01%2FAccounts%2FAC…%2FRecordings%2FRE2e9f6b3c.mp3 &RecordingSource=DialVerb&CallSid=CA…&RecordingChannels=2
12345const payload = parseWebhook(req.body); if (payload.RecordingStatus === "completed") { console.log(`Recording ready: ${payload.RecordingSid}`); console.log(`Download: ${payload.RecordingUrl}`); }