IraVoice selects an available IraVoice cluster based on configured capacity allocation and queues the call request in that cluster.
The call_params object in the request payload controls CPA behavior, media streaming, webhook delivery, inactivity handling, and recording.
Call Params
Example
Code
Call Progress Analysis (CPA)
Applicable only for outbound calls when cpa_config is included in the makecall request.
IraCPA analyzes the initial call audio to classify the answer type and detect machine-generated responses, tones, silence, and screening behavior.
The first CPA event is typically detected within the first 1.75 seconds of answered audio.
Primary CPA Events
| Code | Meaning |
|---|---|
LV | Live human |
AM | Answering machine |
FX | Fax machine |
SIT | Special Information Tones |
IBP | Immediate beep detected immediately after answer |
Depending on the configured CPA break_event behavior, analysis may continue after the initial classification to detect additional events.
Extended CPA Events
| Code | Meaning |
|---|---|
SL | Silence |
BP | Beep detected after initial answer classification |
EAM | Extended Answering Machine detection after ringtone progression |
CS | Call screening detected |
Automatic actions can be triggered using:
stream_on_cpa_eventsdrop_on_cpa_events
To learn more about IraCPA, click here
| Parameter | Type | Description |
|---|---|---|
stream_on_cpa_events | array<string> | Starts WebSocket media streaming when the detected CPA event matches any configured value. Default: ["LV"] |
drop_on_cpa_events | array<string> | Terminates the call when the detected CPA event matches any configured value. Default: ["FX", "AM"] |
WebSocket Streaming
Streams bidirectional audio between IraVoice and the configured WebSocket endpoint.
- Audio from the call is streamed to the WebSocket server.
- Audio received from the WebSocket server is injected into the live call.
The WebSocket message format is documented in the WebSocket Message Model section.
| Parameter | Type | Description |
|---|---|---|
websocket_host | string | Hostname of the WebSocket server. Requires websocket_port and websocket_app. |
websocket_port | integer | WebSocket server port. Used only when websocket_host is configured. |
websocket_app | string | Path component. |
streaming_useraudio | boolean | Controls upstream audio delivery mode.true → streams audio continuously.false → buffers audio till speech ends and sends it as a WAV file. |
stream_frame_size_ms | integer | Duration of each audio chunk in milliseconds. Default: 200Minimum: 20Chunking is time-based, not RTP packet-based. |
stt_sampling_rate | integer | Sampling rate (Hz) for audio streamed IraVoice → AI orchestration layer. Range: 8000-48000 |
tts_sampling_rate | integer | Sampling rate (Hz) for audio streamed AI orchestration layer → IraVoice. Range: 8000-48000 |
Example WebSocket endpoint construction
| Input | Result |
|---|---|
websocket_host = bot.example.comwebsocket_port = 8443websocket_app = voicebot | wss://bot.example.com:8443/voicebot |
Bot Inactivity Handling
Terminates the call if no audio is received from the WebSocket server for a continuous duration defined by bot_inactivity_limit.
Disabled when:
bot_inactivity_limitis omitted, orbot_inactivity_limit = 0
| Parameter | Type | Description |
|---|---|---|
bot_inactivity_limit | integer | Maximum allowed inactivity duration in seconds before the call is dropped. Default: 0 (disabled) |
Webhooks & Events
| Parameter | Type | Description |
|---|---|---|
event_url | string | HTTP webhook endpoint that receives call lifecycle events via POST. Events include started, ringing, answered, hangup, and related state transitions.If configured, events are always emitted. |
Recording
| Parameter | Type | Description |
|---|---|---|
disable_recording | boolean | Disables call recording when set to true.Default: false (recording enabled). |
Noise Suppression
| Parameter | Type | Description |
|---|---|---|
denoise | string | WebRTC NS - Lightweight, standard noise suppression optimized for high-volume scaling. Hush - Premium, AI-driven speaker isolation offering superior clarity at a higher compute cost. |
Critical Constraints
| Topic | Details |
|---|---|
Transport Security | Only wss:// endpoints are supported.ws:// connections are rejected.The WebSocket server must present a valid SSL certificate. |
WebSocket Protocol | Refer to the WebSocket Message Model section for the complete message schema. |
Webhook Payload | Refer to the Webhook Event URL Payload section for webhook request structure. |
Make Call
Make Call › Request Body
campaign_nameThe unique campaign name created either through API or through the monitor portal.
to_numberDestination phone number.
from_numberCaller ID Number.
Any valid json object. If websocket_host, websocket_port, and websocket_app are set, the media will be streamed to the websocket server.
List of channel variables including SIP headers. Variables with prefix sip_h_X- will set the SIP headers
cpa_configIf call progress analysis is required to detect answering machines, specify the previously configured cpa config name
dial_timeoutTimeout for the dialing. If the call is not answered within this time limit, the call will be dropped.
Make Call › Responses
Call request accepted and scheduled successfully
statusStatus of the API call.
status_codeStatus code of the API response. 0 indicates success, any non-zero value indicates an error.
Unique identifier of the call if the request is successfully queued.
Indicates if the system has a huge queue of pending requests and the client should slow down the rate of API calls. If you get true in this field, we recommend you to stop calling make call API for 60s to avoid hitting the rate limits.
The cluster where the call is being processed. If a campaign is using trunks from multiple clusters, this field can be used to identify the cluster for each call.

