> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Calling > REST-based call control namespace with 37 commands for managing active calls. [restclient]: /docs/server-sdks/reference/typescript/rest/client [request-options]: /docs/server-sdks/reference/typescript/rest/request-options The `Calling` resource provides REST-based call control through the [`RestClient`][restclient]. All 37 commands are dispatched as POST requests to a single endpoint (`/api/calling/calls`) with a `command` field identifying the operation. Access via `client.calling` on a [`RestClient`][restclient] instance. Every method takes the call ID first, then any required command fields as positional arguments, then an optional `options` object for the remaining fields. The `options` object also accepts `extras`, a bag of additional fields merged into the command as-is. A final optional [`requestOptions`][request-options] argument sets the timeout, retries, and abort signal for that one request. ```typescript {9-11,13-15} import { RestClient } from "@signalwire/sdk"; const client = new RestClient({ project: "your-project-id", token: "your-api-token", host: "your-space.signalwire.com" }); const call = await client.calling.dial("+15551234567", "+15559876543", { url: "https://example.com/call-handler", }); const controlId = "greeting-1"; await client.calling.play(call.id, [{ type: "tts", params: { text: "Hello!" } }], { control_id: controlId }); await client.calling.playStop(call.id, controlId); await client.calling.end(call.id, { reason: "hangup" }); ``` > **Note** > > Unlike the Relay client which uses persistent WebSocket connections, the Calling namespace > sends each command as an independent HTTP request. This is suitable for server-side > orchestration where you do not need real-time event streams. ## **Methods** ### Call Lifecycle #### [dial](/docs/server-sdks/reference/typescript/rest/calling/dial) Initiate a new outbound call via REST. #### [update](/docs/server-sdks/reference/typescript/rest/calling/update) Update parameters on an active call via REST. #### [end](/docs/server-sdks/reference/typescript/rest/calling/end) End an active call via REST. ### Call Control #### [transfer](/docs/server-sdks/reference/typescript/rest/calling/transfer) Transfer an active call to a new destination via REST. #### [disconnect](/docs/server-sdks/reference/typescript/rest/calling/disconnect) Disconnect (unbridge) a connected call without ending either leg via REST. ### Media and Playback #### [play](/docs/server-sdks/reference/typescript/rest/calling/play) Play audio or text-to-speech on an active call via REST. #### [playPause](/docs/server-sdks/reference/typescript/rest/calling/play-pause) Pause an active playback on a call via REST. #### [playResume](/docs/server-sdks/reference/typescript/rest/calling/play-resume) Resume a paused playback on a call via REST. #### [playStop](/docs/server-sdks/reference/typescript/rest/calling/play-stop) Stop an active playback on a call via REST. #### [playVolume](/docs/server-sdks/reference/typescript/rest/calling/play-volume) Adjust the volume of an active playback on a call via REST. ### Recording #### [record](/docs/server-sdks/reference/typescript/rest/calling/record) Start recording an active call via REST. #### [recordPause](/docs/server-sdks/reference/typescript/rest/calling/record-pause) Pause an active recording on a call via REST. #### [recordResume](/docs/server-sdks/reference/typescript/rest/calling/record-resume) Resume a paused recording on a call via REST. #### [recordStop](/docs/server-sdks/reference/typescript/rest/calling/record-stop) Stop an active recording on a call via REST. ### Input Collection #### [collect](/docs/server-sdks/reference/typescript/rest/calling/collect) Collect user input (DTMF or speech) on an active call via REST. #### [collectStop](/docs/server-sdks/reference/typescript/rest/calling/collect-stop) Stop an active input collection on a call via REST. #### [collectStartInputTimers](/docs/server-sdks/reference/typescript/rest/calling/collect-start-input-timers) Manually start input timers for a collection on a call via REST. ### Detection #### [detect](/docs/server-sdks/reference/typescript/rest/calling/detect) Start detection (answering machine, fax, DTMF) on a call via REST. #### [detectStop](/docs/server-sdks/reference/typescript/rest/calling/detect-stop) Stop an active detector on a call via REST. ### Audio Tap #### [tap](/docs/server-sdks/reference/typescript/rest/calling/tap) Tap call audio to an external endpoint via REST. #### [tapStop](/docs/server-sdks/reference/typescript/rest/calling/tap-stop) Stop an active audio tap on a call via REST. ### Audio Streaming #### [stream](/docs/server-sdks/reference/typescript/rest/calling/stream) Stream call audio to a WebSocket endpoint via REST. #### [streamStop](/docs/server-sdks/reference/typescript/rest/calling/stream-stop) Stop an active audio stream on a call via REST. ### Noise Reduction #### [denoise](/docs/server-sdks/reference/typescript/rest/calling/denoise) Enable noise reduction on an active call via REST. #### [denoiseStop](/docs/server-sdks/reference/typescript/rest/calling/denoise-stop) Disable noise reduction on an active call via REST. ### Transcription and Translation #### [transcribe](/docs/server-sdks/reference/typescript/rest/calling/transcribe) Start transcribing speech on an active call via REST. #### [transcribeStop](/docs/server-sdks/reference/typescript/rest/calling/transcribe-stop) Stop an active transcription on a call via REST. #### [liveTranscribe](/docs/server-sdks/reference/typescript/rest/calling/live-transcribe) Start live transcription with partial results on a call via REST. #### [liveTranslate](/docs/server-sdks/reference/typescript/rest/calling/live-translate) Start live translation on an active call via REST. ### AI Session Control #### [aiMessage](/docs/server-sdks/reference/typescript/rest/calling/ai-message) Send a message to an active AI session on a call via REST. #### [aiHold](/docs/server-sdks/reference/typescript/rest/calling/ai-hold) Put an active AI session on hold via REST. #### [aiUnhold](/docs/server-sdks/reference/typescript/rest/calling/ai-unhold) Resume a held AI session on a call via REST. #### [aiStop](/docs/server-sdks/reference/typescript/rest/calling/ai-stop) Stop an active AI session on a call via REST. ### Fax #### [sendFaxStop](/docs/server-sdks/reference/typescript/rest/calling/send-fax-stop) Stop an in-progress fax send operation on a call via REST. #### [receiveFaxStop](/docs/server-sdks/reference/typescript/rest/calling/receive-fax-stop) Stop an in-progress fax receive operation on a call via REST. ### SIP #### [refer](/docs/server-sdks/reference/typescript/rest/calling/refer) Send a SIP REFER to transfer a call at the SIP level via REST. ### Custom Events #### [userEvent](/docs/server-sdks/reference/typescript/rest/calling/user-event) Send custom user-defined events on an active call via REST. > REST-based call control namespace with 37 commands for managing active calls. ## Docs - [aiHold](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/ai-hold.md): Put an active AI session on hold via REST. - [aiMessage](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/ai-message.md): Send a message to an active AI session on a call via REST. - [aiStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/ai-stop.md): Stop an active AI session on a call via REST. - [aiUnhold](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/ai-unhold.md): Resume a held AI session on a call via REST. - [collect](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/collect.md): Collect user input (DTMF or speech) on an active call via REST. - [collectStartInputTimers](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/collect-start-input-timers.md): Manually start input timers for a collection on a call via REST. - [collectStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/collect-stop.md): Stop an active input collection on a call via REST. - [denoise](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/denoise.md): Enable noise reduction on an active call via REST. - [denoiseStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/denoise-stop.md): Disable noise reduction on an active call via REST. - [detect](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/detect.md): Start detection (answering machine, fax, DTMF) on a call via REST. - [detectStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/detect-stop.md): Stop an active detector on a call via REST. - [dial](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/dial.md): Initiate a new outbound call via REST. - [disconnect](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/disconnect.md): Disconnect (unbridge) a connected call without ending either leg via REST. - [end](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/end.md): End an active call via REST. - [liveTranscribe](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/live-transcribe.md): Start live transcription with partial results on a call via REST. - [liveTranslate](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/live-translate.md): Start live translation on an active call via REST. - [play](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/play.md): Play audio or text-to-speech on an active call via REST. - [playPause](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/play-pause.md): Pause an active playback on a call via REST. - [playResume](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/play-resume.md): Resume a paused playback on a call via REST. - [playStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/play-stop.md): Stop an active playback on a call via REST. - [playVolume](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/play-volume.md): Adjust the volume of an active playback on a call via REST. - [receiveFaxStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/receive-fax-stop.md): Stop an in-progress fax receive operation on a call via REST. - [record](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/record.md): Start recording an active call via REST. - [recordPause](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/record-pause.md): Pause an active recording on a call via REST. - [recordResume](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/record-resume.md): Resume a paused recording on a call via REST. - [recordStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/record-stop.md): Stop an active recording on a call via REST. - [refer](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/refer.md): Send a SIP REFER to transfer a call at the SIP level via REST. - [sendFaxStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/send-fax-stop.md): Stop an in-progress fax send operation on a call via REST. - [stream](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/stream.md): Stream call audio to a WebSocket endpoint via REST. - [streamStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/stream-stop.md): Stop an active audio stream on a call via REST. - [tap](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/tap.md): Tap call audio to an external endpoint via REST. - [tapStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/tap-stop.md): Stop an active audio tap on a call via REST. - [transcribe](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/transcribe.md): Start transcribing speech on an active call via REST. - [transcribeStop](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/transcribe-stop.md): Stop an active transcription on a call via REST. - [transfer](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/transfer.md): Transfer an active call to a new destination via REST. - [update](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/update.md): Update parameters on an active call via REST. - [userEvent](https://signalwire.com/docs/server-sdks/reference/typescript/rest/calling/user-event.md): Send custom user-defined events on an active call via REST.