Skip to main content

App Settings

Configure application-level settings for your WebRTC integration including webhooks for call events, recording, and streaming.

Base URL​

https://integrationscore.mum1.exotel.com/v2/integrations

Update App Settings​

PUT /{customer_id}/apps/{app_id}/settings

Headers​

HeaderValue
AuthorizationBearer <app_token>
Content-Typeapplication/json

Request Body​

{
"popup_url": "https://your-server.com/webhook/popup",
"missed_call_url": "https://your-server.com/webhook/missed-call",
"callback_url": "https://your-server.com/webhook/callback",
"recording_enabled": true,
"recording_url": "https://your-server.com/webhook/recording",
"streaming_enabled": false,
"streaming_url": "https://your-server.com/webhook/stream"
}

Parameters​

ParameterTypeRequiredDescription
popup_urlStringNoURL to receive screen-pop data when a call arrives
missed_call_urlStringNoURL notified when an inbound call is missed
callback_urlStringNoURL for general call status callbacks
recording_enabledBooleanNoEnable or disable call recording
recording_urlStringNoURL to receive recording-ready notifications
streaming_enabledBooleanNoEnable or disable live audio streaming
streaming_urlStringNoURL for live audio stream delivery

Example Request​

curl -X PUT \
'https://integrationscore.mum1.exotel.com/v2/integrations/{customer_id}/apps/{app_id}/settings' \
-H 'Authorization: Bearer <app_token>' \
-H 'Content-Type: application/json' \
-d '{
"popup_url": "https://your-server.com/webhook/popup",
"missed_call_url": "https://your-server.com/webhook/missed-call",
"recording_enabled": true,
"recording_url": "https://your-server.com/webhook/recording"
}'

Response​

{
"success": true,
"data": {
"app_id": "app_abc123",
"settings": {
"popup_url": "https://your-server.com/webhook/popup",
"missed_call_url": "https://your-server.com/webhook/missed-call",
"callback_url": null,
"recording_enabled": true,
"recording_url": "https://your-server.com/webhook/recording",
"streaming_enabled": false,
"streaming_url": null,
"updated_at": "2024-06-15T10:30:00.000Z"
}
}
}

Get App Settings​

GET /{customer_id}/apps/{app_id}/settings

Example Request​

curl -X GET \
'https://integrationscore.mum1.exotel.com/v2/integrations/{customer_id}/apps/{app_id}/settings' \
-H 'Authorization: Bearer <app_token>'

Response​

{
"success": true,
"data": {
"app_id": "app_abc123",
"settings": {
"popup_url": "https://your-server.com/webhook/popup",
"missed_call_url": "https://your-server.com/webhook/missed-call",
"callback_url": null,
"recording_enabled": true,
"recording_url": "https://your-server.com/webhook/recording",
"streaming_enabled": false,
"streaming_url": null,
"created_at": "2024-06-01T09:00:00.000Z",
"updated_at": "2024-06-15T10:30:00.000Z"
}
}
}

Webhook Payloads​

Sent when an inbound call arrives for a user:

{
"event": "incoming_call",
"call_sid": "call_123",
"from": "+919876543210",
"to": "sip:user@app.exotel.com",
"timestamp": "2024-06-15T10:30:00.000Z"
}

Recording Webhook​

Sent when a call recording is ready:

{
"event": "recording_ready",
"call_sid": "call_123",
"recording_url": "https://recordings.exotel.com/call_123.mp3",
"duration": 180,
"timestamp": "2024-06-15T10:35:00.000Z"
}

HTTP Status Codes​

CodeDescription
200Success
400Bad Request — Invalid parameters
401Unauthorized — Invalid or expired token
404Not Found — App doesn't exist
500Internal Server Error