Documentation
Recording webhooks
Ruut Voice notifies your recordingStatusCallback URL when a recording's state changes, so you can download or process the audio as soon as it's ready.
Configure
Set the callback on the <Record> verb, on <Dial record=…>, or on a call/number via the API:
TwiMLxml
Events
| Event | When it fires |
|---|---|
in-progress | Recording started. |
completed | Recording finished and is available (default). |
absent | Recording was requested but no audio was captured. |
Payload
| 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. |
Example
Exampletext
RecordingSid=RE2e9f6b3c&RecordingStatus=completed
&RecordingUrl=https%3A%2F%2Fvoice.ruut.chat%2F2010-04-01%2FAccounts%2FAC…%2FRecordings%2FRE2e9f6b3c.mp3
&RecordingSource=DialVerb&CallSid=CA…&RecordingChannels=2
Handle it with the SDK
Examplets
const payload = parseWebhook(req.body);
if (payload.RecordingStatus === "completed") {
console.log(`Recording ready: ${payload.RecordingSid}`);
console.log(`Download: ${payload.RecordingUrl}`);
}
See Record & transcribe calls for the full recording workflow, including how to read back the transcript from the Recording resource.