Calls
Send call commands
Unified JSON-RPC style endpoint for executing call methods through command-based dispatch. Send a request with the appropriate command field to invoke the desired call operation. All async-safe RELAY methods can be sent through this endpoint without a WebSocket connection.
Supported Commands
Use one of the following commands in the command field of the request body to perform the corresponding action on an active call. For more details on each command, refer to the individual API reference documentation linked below.
| Command | Description |
|---|---|
| dial | Create and initiate a new outbound call |
| update | Modify an active call's dialplan in real-time |
| calling.end | Terminate an active call immediately |
| calling.transfer | Transfer a call to a new destination (SIP URI, phone number, or inline SWML) |
| calling.disconnect | Disconnect bridged calls without hanging up either leg |
| calling.play | Play audio, TTS, silence, or ringtone to a call |
| calling.play.pause | Pause active playback |
| calling.play.resume | Resume paused playback |
| calling.play.stop | Stop active playback |
| calling.play.volume | Adjust playback volume |
| calling.record | Start recording a call |
| calling.record.pause | Pause active recording |
| calling.record.resume | Resume paused recording |
| calling.record.stop | Stop active recording |
| calling.collect | Collect DTMF or speech input |
| calling.collect.stop | Stop active collection |
| calling.collect.start_input_timers | Start input timers on active collect |
| calling.detect | Start a detector (answering machine, fax, or digit) |
| calling.detect.stop | Stop active detector |
| calling.tap | Tap call audio to an RTP or WebSocket endpoint |
| calling.tap.stop | Stop active tap |
| calling.transcribe | Start background transcription of a call |
| calling.transcribe.stop | Stop active transcription |
| calling.stream | Stream call audio to a WebSocket endpoint |
| calling.stream.stop | Stop active stream |
| calling.denoise | Start noise reduction on a call |
| calling.denoise.stop | Stop noise reduction |
| calling.ai_hold | Place an AI call on hold |
| calling.ai_unhold | Resume an AI call from hold |
| calling.ai_message | Inject a message into an active AI conversation |
| calling.ai.stop | Stop an active AI session |
| calling.live_transcribe | Start, stop, or summarize real-time transcription |
| calling.live_translate | Start, stop, summarize, or inject real-time translation |
| calling.send_fax.stop | Stop active fax send |
| calling.receive_fax.stop | Stop active fax receive |
| calling.refer | Transfer a SIP call via SIP REFER |
| calling.user_event | Fire a custom user event on the call |
Permissions
The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.
Learn more about API scopes.
post/api/calling/calls
Request body
Response
The request has succeeded.
Example response
{
"from": "+12069708643",
"to": "+15550198765",
"source": "realtime_api",
"created_at": "2024-05-06T12:20:00Z",
"charge_details": [
{
"description": "Outbound Voice",
"charge": 0.004
}
]
}