call_params can be used to control streaming, event webhook, inactivity behavior etc as explained below.{
"stream_on_cpa_events": ["LV"],
"drop_on_cpa_events": ["AM", "FX"],
"websocket_host": "bot.example.com",
"websocket_port": 8443,
"websocket_app": "voicebot",
"streaming_useraudio": true,
"stream_frame_size_ms": 200,
"stt_sampling_rate": 16000,
"tts_sampling_rate": 16000,
"bot_inactivity_limit": 30,
"event_url": "https://events.example.com/calls",
"disable_recording": false
}cpa_config parameter set.stream_on_cpa_events and drop_on_cpa_events parameters.| Parameter | Type | Description |
|---|---|---|
stream_on_cpa_events | array | Streams call media to the configured WebSocket endpoint when CPA event matches any value. Default: ["LV"]. |
drop_on_cpa_events | array | Terminates the call when CPA event matches any value. Default: ["FX","AM"]. |
| Parameter | Type | Description |
|---|---|---|
websocket_host | string | Hostname of the WebSocket server to which IraVoice will stream call media. Requires websocket_port and websocket_app. |
websocket_port | integer | Port of the WebSocket server. Used only if websocket_host is set. |
websocket_app | string | Path name used to construct the WebSocket endpoint. Used with websocket_host and websocket_port. |
stream_frame_size_ms | integer | Audio chunk duration in milliseconds. Default: 200ms. Minimum: 20ms. Chunking is time-based (not packet-based). |
stt_sampling_rate | integer | Sampling rate (Hz) for audio sent from IraVoice → AI Orchestration. Range: 8000-48000. |
tts_sampling_rate | integer | Sampling rate (Hz) for audio sent from AI Orchestration → IraVoice. Range: 8000-48000. |
bot_inactivity_limit parameter.bot_inactivity_limit is not set or set to 0.| Parameter | Type | Description |
|---|---|---|
bot_inactivity_limit | integer | Duration in seconds to wait before dropping the call due to bot inactivity. Default: 0 (disabled). |
| Parameter | Type | Description |
|---|---|---|
event_url | string | HTTP webhook endpoint to receive call lifecycle events via POST (started, ringing, answered, hangup, etc.). If set, events are always emitted. |
| Parameter | Type | Description |
|---|---|---|
disable_recording | boolean | Disables call recording when set to true. Default: false( all calls are recorded by default). |
| Input | Result |
|---|---|
websocket_host = test.example.comwebsocket_port = 8443websocket_app = myapp | wss://test.example.com:8443/myapp |
| Topic | Detail |
|---|---|
| Transport Security | Only wss:// is supported. ws:// is rejected. Your WebSocket server must have a valid SSL certificate. |
| WebSocket Protocol | See WebSocket Message Model for message structure. |
| Webhook Schema | See Webhook Event URL Payload for payload format. |
curl --location '/api/makecall' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"campaign_name": "Harriet Jacobs",
"from_number": "1234567890",
"to_number": "123456790",
"call_params": {
"stream_on_cpa_events": [
"LV"
],
"drop_on_cpa_events": [
"AM",
"FX"
],
"websocket_host": "bot.example.com",
"websocket_port": 8443,
"websocket_app": "voicebot",
"streaming_useraudio": true,
"stream_frame_size_ms": 200,
"stt_sampling_rate": 16000,
"tts_sampling_rate": 16000,
"bot_inactivity_limit": 30,
"event_url": "https://events.example.com/calls",
"disable_recording": false
},
"channel_vars": {},
"cpa_config": "",
"dial_timeout": 30
}'{
"status_code": 0,
"status": "OK",
"call_uuid": "123e4567-e89b-12d3-a456-426614174000",
"cluster": "cluster1"
}