{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sinch/main/json-schema/sinch-callout-request-schema.json", "title": "CalloutRequest", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sinch-callouts-api-openapi.yml#/components/schemas/CalloutRequest", "type": "object", "required": [ "method" ], "properties": { "method": { "type": "string", "enum": [ "conferenceCallout", "ttsCallout", "customCallout" ], "description": "The callout method type" }, "conferenceCallout": { "$ref": "#/$defs/ConferenceCallout" }, "ttsCallout": { "$ref": "#/$defs/TtsCallout" }, "customCallout": { "$ref": "#/$defs/CustomCallout" } }, "$defs": { "ConferenceCallout": { "type": "object", "required": [ "cli", "destination", "conferenceId" ], "properties": { "cli": { "type": "string", "description": "The caller ID to display" }, "destination": { "$ref": "#/$defs/Destination" }, "conferenceId": { "type": "string", "description": "The conference identifier to connect to" }, "dtmf": { "type": "string", "description": "DTMF tones to play when the call is answered" }, "maxDuration": { "type": "integer", "description": "Maximum duration of the call in seconds" }, "enableAce": { "type": "boolean", "description": "Enable Answered Call Event callback" }, "enableDice": { "type": "boolean", "description": "Enable Disconnected Call Event callback" }, "enablePie": { "type": "boolean", "description": "Enable Prompt Input Event callback" }, "locale": { "type": "string", "description": "Locale for text-to-speech" }, "greeting": { "type": "string", "description": "Text-to-speech greeting when joining conference" }, "mohClass": { "type": "string", "description": "Music on hold class" } } }, "CustomCallout": { "type": "object", "required": [ "cli", "destination", "ice" ], "properties": { "cli": { "type": "string", "description": "The caller ID to display" }, "destination": { "$ref": "#/$defs/Destination" }, "ice": { "type": "string", "description": "SVAML ICE response in JSON format" }, "ace": { "type": "string", "description": "SVAML ACE response in JSON format" }, "pie": { "type": "string", "description": "SVAML PIE response in JSON format" } } }, "Destination": { "type": "object", "required": [ "type", "endpoint" ], "properties": { "type": { "type": "string", "enum": [ "number", "username", "sip", "did" ], "description": "The destination type" }, "endpoint": { "type": "string", "description": "The destination endpoint identifier" } } }, "TtsCallout": { "type": "object", "required": [ "cli", "destination", "text" ], "properties": { "cli": { "type": "string", "description": "The caller ID to display" }, "destination": { "$ref": "#/$defs/Destination" }, "text": { "type": "string", "description": "The text to convert to speech" }, "locale": { "type": "string", "description": "The locale for text-to-speech" }, "enableAce": { "type": "boolean", "description": "Enable Answered Call Event callback" }, "enableDice": { "type": "boolean", "description": "Enable Disconnected Call Event callback" } } } } }