{"openapi":"3.1.0","info":{"title":"REST Call Control","version":"1.0.0"},"paths":{"/Accounts/{AccountSid}/Calls":{"get":{"operationId":"calls_listCalls","summary":"list calls","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"direction","in":"query","description":"call direction to retrieve","required":false,"schema":{"$ref":"#/components/schemas/AccountsAccountSidCallsGetParametersDirection"}},{"name":"from","in":"query","description":"calling number to retrieve","required":false,"schema":{"type":"string"}},{"name":"to","in":"query","description":"called number to retrieve","required":false,"schema":{"type":"string"}},{"name":"callStatus","in":"query","description":"call status to retrieve","required":false,"schema":{"$ref":"#/components/schemas/AccountsAccountSidCallsGetParametersCallStatus"}}],"responses":{"200":{"description":"list of calls for a specified account","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Call"}}}}},"500":{"description":"system error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"calls_createCall","summary":"create a call","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"call successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Calls_createCall_Response_201"}}}},"400":{"description":"bad request","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"application_sid":{"type":"string","format":"uuid","description":"The application to use to control this call.  Either application_sid or call_hook is required."},"answerOnBridge":{"type":"boolean","description":"If set to true, the inbound call will ring until the number that was dialed answers the call, and at that point a 200 OK will be sent on the inbound leg.  If false, the inbound call will be answered immediately as the outbound call is placed."},"call_hook":{"$ref":"#/components/schemas/Webhook"},"call_status_hook":{"$ref":"#/components/schemas/Webhook"},"from":{"type":"string","description":"The calling party number"},"fromHost":{"type":"string","description":"The hostname to put in the SIP From header of the INVITE"},"timeout":{"type":"integer","description":"The number of seconds to wait for call to be answered.  Defaults to 60."},"timeLimit":{"type":"integer","description":"The max length of call in seconds"},"codecs":{"type":"array","items":{"type":"string"},"description":"Codec names, in preference order, to offer on the outbound INVITE. Names are case-insensitive. When omitted the media server offers its default codecs. If any name is not supported the whole list is ignored, an error is logged and an alert is written, and default negotiation is used."},"tag":{"$ref":"#/components/schemas/AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaTag","description":"Initial set of customer-supplied metadata to associate with the call (see jambonz 'tag' verb)"},"to":{"$ref":"#/components/schemas/Target","description":"Destination for call"},"headers":{"$ref":"#/components/schemas/AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaHeaders","description":"The customer SIP headers to associate with the call"},"sipRequestWithinDialogHook":{"type":"string","description":"The sip indialog hook to receive session messages"},"speech_synthesis_vendor":{"type":"string","description":"The vendor for Text to Speech (required if application_sid is not used)"},"speech_synthesis_language":{"type":"string","description":"The language for Text to Speech (required if application_sid is not used)"},"speech_synthesis_voice":{"type":"string","description":"The voice for Text to Speech (required if application_sid is not used)"},"speech_recognizer_vendor":{"type":"string","description":"The vendor for Speech to Text (required if application_sid is not used)"},"speech_recognizer_language":{"type":"string","description":"The language for Speech to Text (required if application_sid is not used)"},"amd":{"$ref":"#/components/schemas/amd"},"dual_streams":{"type":"boolean","description":"If set to true, jambonz generates an outbound INVITE whose SDP offer contains two audio media streams (two `m=audio` lines) instead of one.  This is useful when the far end (for example a carrier or recording system) requires the inbound and outbound audio to be delivered on separate RTP streams.  Defaults to false. Supported only when creating a call via the REST API (i.e. not available from the `dial` verb)."}},"required":["from","to"]}}}},"security":[{"bearerAuth":[]}]}},"/Accounts/{AccountSid}/Calls/{CallSid}":{"get":{"operationId":"calls_getCall","summary":"retrieve a call","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"CallSid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"call found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}}},"404":{"description":"call not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"500":{"description":"system error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"security":[{"bearerAuth":[]}]},"put":{"operationId":"calls_updateCall","summary":"update a call","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"CallSid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Calls_updateCall_Response_200"}}}},"400":{"description":"bad request","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"call not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"unprocessable entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}},"500":{"description":"system error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"call_hook":{"$ref":"#/components/schemas/Webhook"},"child_call_hook":{"$ref":"#/components/schemas/Webhook"},"call_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaCallStatus"},"conf_mute_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfMuteStatus"},"conf_hold_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfHoldStatus"},"listen_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaListenStatus"},"mute_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMuteStatus"},"transcribe_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaTranscribeStatus"},"whisper":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper"},"sip_request":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequest"},"record":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecord"},"conferenceParticipantAction":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantAction"},"dtmf":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmf"},"stream_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaStreamStatus","description":"Pause or resume an active stream verb."},"tag":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Set customer data tags on the call. Freeform key-value object."},"dub":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDub","description":"Add or remove additional audio tracks on the call."},"boostAudioSignal":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaBoostAudioSignal","description":"Boost audio signal by specified decibels (e.g. 6 or \"6dB\")."},"media_path":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMediaPath","description":"Update the media path during an active Dial verb."},"noise_isolation_status":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaNoiseIsolationStatus","description":"Enable or disable noise isolation on the call."},"noise_isolation_vendor":{"type":"string","description":"Noise isolation vendor. Default is krisp."},"noise_isolation_level":{"type":"number","format":"double","description":"Noise isolation level 0-100. Default is 100."},"noise_isolation_model":{"type":"string","description":"Noise isolation model identifier."},"agent_update":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdate","description":"Update an active agent verb mid-conversation."}}}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"calls_deleteCall","summary":"delete a call","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"CallSid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"call successfully deleted","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"call not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"unprocessable entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}},"500":{"description":"system error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"security":[{"bearerAuth":[]}]}},"/Accounts/{AccountSid}/CallCount":{"get":{"operationId":"calls_getCallCount","summary":"get call count","tags":["calls"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"count of active calls for an account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Calls_getCallCount_Response_200"}}}},"400":{"description":"error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"security":[{"bearerAuth":[]}]}},"/Accounts/{AccountSid}/Conferences":{"get":{"operationId":"conferences_listConferences","summary":"list conferences","tags":["conferences"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"expand","in":"query","description":"When set to \"participants\", returns live rooms with duration and per-member details (call_sid, label, memberTag) instead of a plain list of conference names. Only in-progress call legs are included.","required":false,"schema":{"$ref":"#/components/schemas/AccountsAccountSidConferencesGetParametersExpand"}}],"responses":{"200":{"description":"list of conferences for a specified account. A plain array of conference names by default; an array of ConferenceRoom objects when expand=participants.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conferences_listConferences_Response_200"}}}},"500":{"description":"system error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"}}}}},"security":[{"bearerAuth":[]}]}},"/Accounts/{AccountSid}/Conferences/{ConferenceName}/listen":{"post":{"operationId":"conferences_startConferenceListen","summary":"start a conference listen fork","description":"Streams the conference's mixed audio (L16 PCM) to the supplied WebSocket URL. Addressed by conference name — no participant call leg is required. The fork is media-server-owned: it is excluded from participant counts, never keeps a room alive, and is torn down automatically when the conference ends. Starting a fork for a conference that already has one is idempotent and returns the existing bot member (200 rather than 201).","tags":["conferences"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"ConferenceName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"a listen fork is already active for this conference (idempotent)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conferences_startConferenceListen_Response_200"}}}},"400":{"description":"url is required","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"no such conference","content":{"application/json":{"schema":{"description":"Any type"}}}},"502":{"description":"the conference's home feature-server is unknown or unreachable","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"ws(s):// URL the media server streams the room mix to"},"sampleRate":{"type":"integer","description":"PCM sample rate of the fork (e.g. 8000, 16000)"},"wsAuth":{"$ref":"#/components/schemas/AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaWsAuth","description":"HTTP basic-auth credentials presented on the WebSocket connection"},"metadata":{"$ref":"#/components/schemas/AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaMetadata","description":"Arbitrary JSON delivered verbatim as the fork's first text frame, so the receiving WebSocket can identify and configure itself"}},"required":["url"]}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"conferences_stopConferenceListen","summary":"stop a conference listen fork","tags":["conferences"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string"}},{"name":"ConferenceName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"listen fork stopped","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"no active listen fork for this conference","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"bearerAuth":[]}]}},"/Accounts/{AccountSid}/Queues":{"get":{"operationId":"queues_listQueues","summary":"retrieve active queues for an account","tags":["queues"],"parameters":[{"name":"AccountSid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"retrieve active queues records for a specified account","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AccountsAccountSidQueuesGetResponsesContentApplicationJsonSchemaItems"}}}}}},"security":[{"bearerAuth":[]}]}}},"tags":[{"name":"calls"},{"name":"conferences"},{"name":"queues"}],"servers":[{"url":"https://api.jambonz.cloud/v1","description":"https://api.jambonz.cloud/v1"}],"components":{"schemas":{"AccountsAccountSidCallsGetParametersDirection":{"type":"string","enum":["inbound","outbound"],"title":"AccountsAccountSidCallsGetParametersDirection"},"AccountsAccountSidCallsGetParametersCallStatus":{"type":"string","enum":["trying","ringing","early-media","in-progress","completed","failed","busy","no-answer","queued"],"title":"AccountsAccountSidCallsGetParametersCallStatus"},"CallCallStatus":{"type":"string","enum":["trying","ringing","alerting","in-progress","completed","busy","no-answer","failed","queued"],"title":"CallCallStatus"},"CallDirection":{"type":"string","enum":["inbound","outbound"],"title":"CallDirection"},"Call":{"type":"object","properties":{"account_sid":{"type":"string","format":"uuid"},"application_sid":{"type":"string","format":"uuid"},"call_id":{"type":"string"},"call_sid":{"type":"string","format":"uuid"},"call_status":{"$ref":"#/components/schemas/CallCallStatus"},"caller_name":{"type":"string"},"direction":{"$ref":"#/components/schemas/CallDirection"},"duration":{"type":"integer"},"from":{"type":"string"},"originating_sip_trunk_name":{"type":"string"},"parent_call_sid":{"type":"string","format":"uuid"},"service_url":{"type":"string"},"sip_status":{"type":"integer"},"to":{"type":"string"}},"required":["account_sid","call_id","call_sid","call_status","direction","from","service_url","sip_status","to"],"title":"Call"},"GeneralError":{"type":"object","properties":{"msg":{"type":"string"}},"required":["msg"],"title":"GeneralError"},"WebhookMethod":{"type":"string","enum":["get","post"],"title":"WebhookMethod"},"Webhook":{"type":"object","properties":{"webhook_sid":{"type":"string","format":"uuid"},"url":{"type":"string","format":"url"},"method":{"$ref":"#/components/schemas/WebhookMethod"},"username":{"type":"string"},"password":{"type":"string"}},"required":["url"],"title":"Webhook"},"AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaTag":{"type":"object","properties":{},"description":"Initial set of customer-supplied metadata to associate with the call (see jambonz 'tag' verb)","title":"AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaTag"},"TargetType":{"type":"string","enum":["phone","sip","user","teams"],"title":"TargetType"},"TargetAuth":{"type":"object","properties":{"username":{"type":"string","description":"The username to use for SIP authentication, if challenged"},"password":{"type":"string","description":"The password to use for SIP authentication, if challenged"}},"title":"TargetAuth"},"Target":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TargetType"},"number":{"type":"string","description":"A phone number to call (when type is phone)"},"sipUri":{"type":"string","description":"A SIP URI to call (when type is sip)"},"tenant":{"type":"string","description":"Microsoft Teams customer tenant domain name (when type is teams)"},"trunk":{"type":"string","description":"The name of the Carrier that should be used to deliver this call (when type is phone)"},"vmail":{"type":"boolean","description":"Dial directly into user's voicemail to leave a message (MS Teams only)"},"overrideTo":{"type":"string","description":"A SIP URI that, if provided, will be used as the To header in the outbound INVITE (not needed in most cases)"},"name":{"type":"string","description":"The name of a registered jambonz user to call (when type is user)"},"auth":{"$ref":"#/components/schemas/TargetAuth"},"proxy":{"type":"string","description":"SIP Proxy to use for the outgoing INVITE"}},"required":["type"],"title":"Target"},"AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaHeaders":{"type":"object","properties":{},"description":"The customer SIP headers to associate with the call","title":"AccountsAccountSidCallsPostRequestBodyContentApplicationJsonSchemaHeaders"},"AmdTimers":{"type":"object","properties":{"decisionTimeoutMs":{"type":"number","format":"double","default":15000,"description":"Time in milliseconds to wait before returning amd_decision_timeout."},"greetingCompletionTimeoutMs":{"type":"number","format":"double","default":2000,"description":"Silence in milliseconds to wait for during greeting before returning amd_machine_stopped_speaking."},"noSpeechTimeoutMs":{"type":"number","format":"double","default":5000,"description":"Time in milliseconds to wait for speech before returning amd_no_speech_detected."},"toneTimeoutMs":{"type":"number","format":"double","default":20000,"description":"Time in milliseconds to wait to hear a tone."}},"title":"AmdTimers"},"amd":{"type":"object","properties":{"actionHook":{"type":"string","description":"Webhook to send AMD events."},"thresholdWordCount":{"type":"number","format":"double","description":"Number of spoken words in a greeting that result in an amd_machine_detected result."},"digitCount":{"type":"number","format":"double","description":"Number of digits in a greeting to trigger a amd_machine_detected result. 0 is off"},"timers":{"$ref":"#/components/schemas/AmdTimers"}},"title":"amd"},"Calls_createCall_Response_201":{"type":"object","properties":{"sid":{"type":"string","format":"uuid"}},"required":["sid"],"title":"Calls_createCall_Response_201"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaCallStatus":{"type":"string","enum":["completed","no-answer"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaCallStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfMuteStatus":{"type":"string","enum":["mute","unmute"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfMuteStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfHoldStatus":{"type":"string","enum":["hold","unhold"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConfHoldStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaListenStatus":{"type":"string","enum":["pause","silence","resume"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaListenStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMuteStatus":{"type":"string","enum":["mute","unmute"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMuteStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaTranscribeStatus":{"type":"string","enum":["pause","resume"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaTranscribeStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf0Verb":{"type":"string","enum":["say","play"],"description":"See [Say](/verbs/verbs/say) or [Play](/verbs/verbs/play) for details of the properties","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf0Verb"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper0":{"type":"object","properties":{"verb":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf0Verb","description":"See [Say](/verbs/verbs/say) or [Play](/verbs/verbs/play) for details of the properties"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper0"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1ItemsVerb":{"type":"string","enum":["say","play"],"description":"See [Say](/verbs/verbs/say) or [Play](/verbs/verbs/play) for details of the properties","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1ItemsVerb"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1Items":{"type":"object","properties":{"verb":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1ItemsVerb","description":"See [Say](/verbs/verbs/say) or [Play](/verbs/verbs/play) for details of the properties"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1Items"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper1":{"type":"array","items":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisperOneOf1Items"},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper1"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper":{"oneOf":[{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper0"},{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper1"}],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaWhisper"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequestHeaders":{"type":"object","properties":{},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequestHeaders"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequest":{"type":"object","properties":{"method":{"type":"string"},"content_type":{"type":"string"},"content":{"type":"string"},"headers":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequestHeaders"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaSipRequest"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordAction":{"type":"string","enum":["startCallRecording","stopCallRecording","pauseCallRecording","resumeCallRecording"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordAction"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordType":{"type":"string","enum":["cloud","siprec"],"default":"siprec","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordType"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecord":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordAction"},"type":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecordType","default":"siprec"},"recordingID":{"type":"string","description":"used with startCallRecording and SIPREC"},"siprecServerURL":{"type":"string","description":"used with startCallRecording and SIPREC"},"silence":{"type":"boolean","default":false,"description":"when pausing recording the file will be padded with silence"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaRecord"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantActionAction":{"type":"string","enum":["tag","untag","coach","uncoach","mute","unmute","hold","unhold"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantActionAction"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantAction":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantActionAction"},"tag":{"type":"string"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaConferenceParticipantAction"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmfDigit":{"type":"string","enum":["1","2","3","4","5","6","7","8","9","0","*","#"],"description":"Single digit to send","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmfDigit"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmf":{"type":"object","properties":{"digit":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmfDigit","description":"Single digit to send"},"duration":{"type":"integer","default":250,"description":"Duration of the tone in ms"}},"required":["digit"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDtmf"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaStreamStatus":{"type":"string","enum":["pause","silence","resume"],"description":"Pause or resume an active stream verb.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaStreamStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubAction":{"type":"string","enum":["startDub","stopDub"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubAction"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubSay":{"type":"object","properties":{},"description":"TTS configuration.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubSay"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDub":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubAction"},"track":{"type":"string","description":"Track name identifier."},"play":{"type":"string","description":"Audio URL to play."},"say":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDubSay","description":"TTS configuration."},"loop":{"type":"boolean","description":"Whether to loop playback."},"gain":{"type":"number","format":"double","description":"Gain in decibels."}},"required":["action","track"],"description":"Add or remove additional audio tracks on the call.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaDub"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaBoostAudioSignal":{"oneOf":[{"type":"number","format":"double"},{"type":"string"}],"description":"Boost audio signal by specified decibels (e.g. 6 or \"6dB\").","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaBoostAudioSignal"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMediaPath":{"type":"string","enum":["no-media","partial-media","full-media"],"description":"Update the media path during an active Dial verb.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaMediaPath"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaNoiseIsolationStatus":{"type":"string","enum":["enable","disable"],"description":"Enable or disable noise isolation on the call.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaNoiseIsolationStatus"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateType":{"type":"string","enum":["update_instructions","inject_context","update_tools","generate_reply"],"description":"The type of agent update to perform.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateType"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItemsRole":{"type":"string","enum":["user","assistant"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItemsRole"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItems":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItemsRole"},"content":{"type":"string"}},"required":["role","content"],"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItems"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItemsParameters":{"type":"object","properties":{},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItemsParameters"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItems":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"parameters":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItemsParameters"}},"title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItems"},"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdate":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateType","description":"The type of agent update to perform."},"instructions":{"type":"string","description":"New system prompt (for update_instructions)."},"messages":{"type":"array","items":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateMessagesItems"},"description":"Messages to append to conversation history (for inject_context)."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdateToolsItems"},"description":"Replacement tool definitions (for update_tools)."},"user_input":{"type":"string","description":"Text to prompt the LLM with (for generate_reply)."},"interrupt":{"type":"boolean","default":false,"description":"Whether to interrupt current assistant speech (for generate_reply)."}},"required":["type"],"description":"Update an active agent verb mid-conversation.","title":"AccountsAccountSidCallsCallSidPutRequestBodyContentApplicationJsonSchemaAgentUpdate"},"Calls_updateCall_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Calls_updateCall_Response_200"},"Calls_getCallCount_Response_200":{"type":"object","properties":{"inbound":{"type":"number","format":"double","description":"Number of inbound calls to the platform"},"outbound":{"type":"number","format":"double","description":"Number of outbound calls to the platform"}},"title":"Calls_getCallCount_Response_200"},"AccountsAccountSidConferencesGetParametersExpand":{"type":"string","enum":["participants"],"title":"AccountsAccountSidConferencesGetParametersExpand"},"ConferenceParticipant":{"type":"object","properties":{"call_sid":{"type":"string","format":"uuid","description":"call_sid of this member's leg (usable with updateCall, e.g. conferenceParticipantAction)"},"label":{"type":"string","description":"caller id when available, otherwise the bare number"},"memberTag":{"type":"string","description":"the member's conference tag (empty string when untagged)"},"isAgent":{"type":"boolean","description":"convenience flag, true when memberTag is \"agent\""}},"required":["call_sid","label","memberTag","isAgent"],"description":"a live member of a conference (derived from in-progress call legs)","title":"ConferenceParticipant"},"ConferenceRoom":{"type":"object","properties":{"id":{"type":"string","description":"conference name (account-scoped)"},"name":{"type":"string","description":"conference name"},"durationSec":{"type":"integer","description":"seconds since the conference started"},"participants":{"type":"array","items":{"$ref":"#/components/schemas/ConferenceParticipant"}}},"required":["id","name","durationSec","participants"],"description":"a live conference with its participants (expand=participants)","title":"ConferenceRoom"},"ConferencesListConferencesResponse2001":{"type":"array","items":{"$ref":"#/components/schemas/ConferenceRoom"},"title":"ConferencesListConferencesResponse2001"},"Conferences_listConferences_Response_200":{"oneOf":[{"type":"array","items":{"type":"string"}},{"$ref":"#/components/schemas/ConferencesListConferencesResponse2001"}],"title":"Conferences_listConferences_Response_200"},"AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaWsAuth":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"}},"description":"HTTP basic-auth credentials presented on the WebSocket connection","title":"AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaWsAuth"},"AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaMetadata":{"type":"object","properties":{},"description":"Arbitrary JSON delivered verbatim as the fork's first text frame, so the receiving WebSocket can identify and configure itself","title":"AccountsAccountSidConferencesConferenceNameListenPostRequestBodyContentApplicationJsonSchemaMetadata"},"Conferences_startConferenceListen_Response_200":{"type":"object","properties":{"botMemberId":{"type":"integer"},"botId":{"type":"string"}},"title":"Conferences_startConferenceListen_Response_200"},"AccountsAccountSidQueuesGetResponsesContentApplicationJsonSchemaItems":{"type":"object","properties":{"name":{"type":"string"},"length":{"type":"string"}},"title":"AccountsAccountSidQueuesGetResponsesContentApplicationJsonSchemaItems"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}