### Get CRM Integration Settings (Bash) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves the current CRM integration settings, including notification URL and event statuses. Requires an API key. ```bash # Get current settings curl -X GET "https://api.bulutsantralim.com/crm_integrations?key=K12345678-1234-5678-4321-123456789012" ``` -------------------------------- ### Get Webphone Token (Bash) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Generates a token for embedding the web phone into an application. The token is valid for one day and requires the API key and extension number. ```bash curl -X POST "https://api.bulutsantralim.com/webphone_tokens" \ -H "Content-Type: application/json" \ -d '{ "key": "K12345678-1234-5678-4321-123456789012", "extension": "1000" }' ``` -------------------------------- ### Get Fax Document URL - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Generates a URL to download a specific fax document using its call UUID. Requires the API key and the call UUID. Returns the document URL upon success. ```bash curl -X POST "https://api.bulutsantralim.com/fax_document_url/" \ -d "key=K12345678-1234-5678-4321-123456789012&call_uuid=e28e5d48-05d8-11e8-663a-fde60c59425c" # Success Response (HTTP 200): # https://api.bulutsantralim.com/fax_document/Fbb9d6f36-d1a7-46f5-961e-4be2e2ba1b8e ``` -------------------------------- ### List Caller IDs (Bash) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a list of all configured caller IDs using a GET request to the caller_ids endpoint. Requires an API key for authentication. ```bash curl -X GET "https://api.bulutsantralim.com/caller_ids?key=K12345678-1234-5678-4321-123456789012" ``` -------------------------------- ### Dynamic Call Routing - JSON Response Example Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Defines the expected JSON response format for dynamic call routing. The service should respond with a 'transfer' object containing routing instructions like 'queue' or 'user' targets, along with optional greetings. ```json # Route to queue with TTS greeting { "transfer": { "greet_name": "John Smith", "lang": "tr-TR", "target": "queue/201" } } # Route with custom phrase { "transfer": { "greet_phrase": "Welcome John. Your order has been shipped. Connecting you to support.", "lang": "en-US", "target": "user/1001" } } ``` -------------------------------- ### GET /cdrs/{call_uuid} Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves detailed information about a specific call, including its flow, using the unique call identifier. ```APIDOC ## GET /cdrs/{call_uuid} ### Description Retrieves detailed information about a specific call including the call flow. ### Method GET ### Endpoint /cdrs/{call_uuid} ### Parameters #### Path Parameters - **call_uuid** (string) - Required - The unique identifier of the call. #### Query Parameters - **key** (string) - Required - Your API key for authentication. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/cdrs/5cfdfb46-776c-11e7-8375-0d58348796d3?key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) - **cdr** (object) - Contains call record details. - **direction** (string) - The direction of the call (e.g., "Santral içi"). - **caller_id_number** (string) - The caller's phone number. - **destination_number** (string) - The destination phone number. - **result** (string) - The outcome of the call (e.g., "Cevaplandı"). - **call_uuid** (string) - The unique identifier of the call. - **duration** (string) - The duration of the call (e.g., "00:00:32"). - **recording_present** (string) - Indicates if a recording is available ("true" or "false"). - **call_flow** (array) - An array of objects detailing the call flow. - **destination_number** (string) - The destination number in the call flow step. - **ip_address** (string) - The IP address associated with the call flow step. - **sip_user_agent** (string) - The SIP user agent used in the call flow step. - **result** (string) - The outcome of this specific call flow step. #### Response Example ```json { "cdr": { "direction": "Santral içi", "caller_id_number": "1002", "destination_number": "1001", "result": "Cevaplandı", "call_uuid": "5cfdfb46-776c-11e7-8375-0d58348796d3", "duration": "00:00:32", "recording_present": "true" }, "call_flow": [ { "destination_number": "1001", "ip_address": "192.168.1.101", "sip_user_agent": "Yealink SIP-T22P 7.73.0.50", "result": "Cevaplandı" } ] } ``` ``` -------------------------------- ### Get Recording URL Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a temporary URL for accessing call recordings. The URL is valid for 1 hour and is rate-limited to 5 requests per minute. This endpoint requires the call UUID to identify the specific recording. ```bash # Request recording URL curl -X POST "https://api.bulutsantralim.com/recording_url/" \ -d "key=K12345678-1234-5678-4321-123456789012&call_uuid=12345678-1234-5678-4321-123456789012" # Success Response (HTTP 200): # https://api.bulutsantralim.com/recording/Rbb9d6f36-d1a7-46f5-961e-4be2e2ba1b8e # Download or play the recording curl -O "https://api.bulutsantralim.com/recording/Rbb9d6f36-d1a7-46f5-961e-4be2e2ba1b8e" ``` -------------------------------- ### Get Call Details by UUID Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves detailed information about a specific call using its unique call UUID. This includes call direction, caller ID, destination, duration, and recording availability. It also provides call flow details such as IP address and SIP user agent. ```bash # Get call details by UUID curl -X GET "https://api.bulutsantralim.com/cdrs/5cfdfb46-776c-11e7-8375-0d58348796d3?key=K12345678-1234-5678-4321-123456789012" # Success Response (HTTP 200): # { # "cdr": { # "direction": "Santral içi", # "caller_id_number": "1002", # "destination_number": "1001", # "result": "Cevaplandı", # "call_uuid": "5cfdfb46-776c-11e7-8375-0d58348796d3", # "duration": "00:00:32", # "recording_present": "true" # }, # "call_flow": [ # { # "destination_number": "1001", # "ip_address": "192.168.1.101", # "sip_user_agent": "Yealink SIP-T22P 7.73.0.50", # "result": "Cevaplandı" # } # ] # } ``` -------------------------------- ### List All Queues Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a list of all configured queues within the PBX system. Each queue is identified by its number and name. This endpoint is useful for understanding the available call queues. ```bash curl -X GET "https://api.bulutsantralim.com/queues?key=K12345678-1234-5678-4321-123456789012" # Success Response (HTTP 200): # [ # {"number": 200, "name": "Kuyruk 1"}, # {"number": 201, "name": "Kuyruk 2"}, # {"number": 202, "name": "Kuyruk 3"} # ] ``` -------------------------------- ### Upload Audio Announcement - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Uploads audio files for use as announcements. Supports various audio formats. Requires an API key and specifies the announcement name and sound data in base64 format. Returns the announcement ID upon success. ```bash curl -X POST "https://api.bulutsantralim.com/announcements" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "key=K12345678-1234-5678-4321-123456789012&name=Welcome%20Message&sounddata=data:audio/mp3;name:welcome.mp3;base64,SUQzAwAA..." # Success Response (HTTP 200): # 859 (announcement ID) ``` -------------------------------- ### Send Fax - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Initiates a fax order. Requires an API key, local station ID and header, remote station ID, and the fax file data in base64 format. Returns the fax order ID upon success. ```bash curl -X POST "https://api.bulutsantralim.com/fax_orders" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "key=K12345678-1234-5678-4321-123456789012&local_station_id=908505321234&local_station_header=Bulutsantralim&remote_station_id=901234567891&filedata=data:image/png;base64,iVBORw0KGgo..." # Success Response (HTTP 200): # 20212 (fax order ID) ``` -------------------------------- ### Create IVR Campaign - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Creates automated outbound call campaigns. Supports 'ivr' call types for IVR menus and 'queue' for predictive dialing. Requires an API key and various campaign parameters like name, date/time ranges, CLI, and phone lists. Returns the campaign ID upon success. ```bash # IVR Campaign - Customer satisfaction survey curl -X POST "https://api.bulutsantralim.com/ivr_campaigns.json" \ -H "Content-Type: application/json" \ -d '{ "key": "K12345678-1234-5678-4321-123456789012", "call_type": "ivr", "name": "Customer Survey", "date_range_begin": "2024-01-15", "date_range_end": "2024-01-15", "time_range_begin": "09:00", "time_range_end": "18:00", "active_days": [1,2,3,4,5], "max_thread_count": 5, "ring_timeout": 30, "cli": "902129630131", "welcome_announcement_id": 128, "call_retries": 2, "webhook_url": "https://your-server.com/ivr-webhook", "digit_target_1": "announcement/421", "digit_target_2": "queue/201", "digit_target_9": "user/1001", "digit_timeout": 5, "phone_list": [ {"phone": "05512369874", "phrase": "#429 12/05/2024 #430 102.45 #431", "lang": "tr-TR"}, {"phone": "05651236547"} ] }' # Queue (Predictive) Campaign - Call center outbound curl -X POST "https://api.bulutsantralim.com/ivr_campaigns.json" \ -H "Content-Type: application/json" \ -d '{ "key": "K12345678-1234-5678-4321-123456789012", "call_type": "queue", "name": "Sales Outbound", "queue_number": 204, "thread_multiplier": 2, "max_thread_count": 10, "ring_timeout": 25, "cli": "902129630131", "call_retries": 1, "phone_list": [ {"phone": "05512369874"}, {"phone": "05651236547"} ] }' # Success Response (HTTP 200): # 20212 (campaign ID) ``` -------------------------------- ### Record Voice Message Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Sets up the system to record a voice message from the user. It includes the prompt phrase and language for the recording. ```json { "record": { "phrase": "Please leave your message after the beep.", "lang": "en-US" } } ``` -------------------------------- ### Originate Call - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Initiates an outbound call from a specified extension to a destination number. Supports optional parameters like caller ID, manual answer, timeout, and announcements. Requires an API key for authentication. ```bash # Initiate a call from extension 1001 to destination number curl -X GET "https://api.bulutsantralim.com/originate?key=K12345678-1234-5678-4321-123456789012&extension=1001&destination=908505320000" # With optional parameters: caller ID, manual answer, timeout, and announcements curl -X GET "https://api.bulutsantralim.com/originate?key=K12345678-1234-5678-4321-123456789012&extension=1001&destination=908505320000&caller_id=908505320001&manual_answer=true&timeout=45&announcement_to_callee=128" # Success Response (HTTP 200): # 358c20bc-fd86-11e5-87a2-157d41a07454 (call_uuid) # Error Response (HTTP 400): # extension 1005 not found ``` -------------------------------- ### Request Keypad Input Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Configures the system to request keypad input from the user. It specifies the prompt phrase, language, digit constraints, retry count, and the parameter name for the input. ```json { "prompt": { "phrase": "Please enter your customer number followed by pound.", "lang": "en-US", "min_digits": "5", "max_digits": "10", "retry_count": "3", "param_name": "customer_id" } } ``` -------------------------------- ### Web Phone Integration Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Integrate the web phone into your application to enable calling directly from your browser. This includes obtaining a token and embedding the web phone using an iframe. ```APIDOC ## POST /webphone_tokens ### Description Retrieves a token (valid for 1 day) to embed the web phone in your application via iframe. ### Method POST ### Endpoint /webphone_tokens ### Parameters #### Request Body - **key** (string) - Required - Your API key for authentication. - **extension** (string) - Required - The extension number to associate with the web phone. ### Request Example ```json { "key": "K12345678-1234-5678-4321-123456789012", "extension": "1000" } ``` ### Response #### Success Response (200) - **token** (string) - The generated web phone token. #### Response Example ``` W03311746-d56d-489b-801f-da610aba71cf ``` ### Embed Web Phone #### Description Embed the web phone in your application using an iframe with the obtained token. #### HTML Snippet ```html ``` ``` -------------------------------- ### Update CRM Integration Settings (Bash) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Updates the CRM integration settings, allowing configuration of event notifications (ringing, answered, hangup) and the notification URL. Requires an API key and the desired settings. ```bash # Update settings curl -X POST "https://api.bulutsantralim.com/crm_integrations" \ -d "key=K12345678-1234-5678-4321-123456789012&ringing=on&answered=on&hangup=off¬ification_url=https://your-crm.com/events" ``` -------------------------------- ### Advisory Webhook (Call Routing API) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Implement dynamic call routing by responding to incoming call queries with routing instructions. ```APIDOC ## Incoming Call Routing ### Description Bulutsantralim sends a GET request to your specified webhook URL when an incoming call needs routing. Your service must respond with JSON instructions to route the call. ### Method GET (from Bulutsantralim to your service) ### Endpoint Your configured webhook URL (e.g., `https://your-server.com/routing`) ### Parameters (sent by Bulutsantralim) #### Query Parameters - **uuid** (string) - Unique call identifier. - **cli** (string) - Calling Line Identification (caller's number). - **cld** (string) - Called Line Identification (the number dialed). - **step** (integer) - Routing step number. ### Request Example (from Bulutsantralim to your service) ``` GET https://your-server.com/routing?uuid=651f8a68-782e-11g7-a6b6-5bedc26e2ab3&cli=05301234567&cld=08505321234&step=1 ``` ### Response (from your service to Bulutsantralim) Your service must respond with a JSON object specifying the transfer instructions. #### Routing Options 1. **Route to Queue with TTS Greeting** ```json { "transfer": { "greet_name": "John Smith", "lang": "tr-TR", "target": "queue/201" } } ``` - **transfer** (object) - Contains transfer instructions. - **greet_name** (string) - Name to be greeted using Text-to-Speech. - **lang** (string) - Language for the TTS greeting (e.g., 'tr-TR', 'en-US'). - **target** (string) - The destination for the call (e.g., 'queue/201', 'user/1001', 'announcement/123'). 2. **Route with Custom Phrase** ```json { "transfer": { "greet_phrase": "Welcome John. Your order has been shipped. Connecting you to support.", "lang": "en-US", "target": "user/1001" } } ``` - **transfer** (object) - Contains transfer instructions. - **greet_phrase** (string) - A pre-defined phrase to be spoken. - **lang** (string) - Language of the phrase. - **target** (string) - The destination for the call. #### Response Example (Success) ```json { "transfer": { "greet_name": "John Smith", "lang": "tr-TR", "target": "queue/201" } } ``` ``` -------------------------------- ### Manage Queue Members Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Allows for adding, removing, or reordering extensions within a queue. This operation is rate-limited to 10 requests per minute. The `user_list` parameter specifies the desired set of users for the queue. ```bash curl -X GET "https://api.bulutsantralim.com/queue/manage_users?key=K12345678-1234-5678-4321-123456789012&queue_number=200&user_list=1000,1001,1002" # Success Response (HTTP 200): # OK ``` -------------------------------- ### List Fax Records - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a list of fax records based on specified criteria. Requires an API key and can filter by direction (inbound/outbound) and success status. Returns paginated fax records. ```bash curl -X GET "https://api.bulutsantralim.com/fdrs?key=K12345678-1234-5678-4321-123456789012&direction=outbound&success=true" # Success Response (HTTP 200): # { # "fdrs": [{ # "call_uuid": "3289fe02-2dc7-11e8-9a23-1f0cd544cc6v", # "direction": "Giden", # "caller_id_number": "902129630131", # "original_destination": "902123205072", # "pages_count": "2 / 2", # "success": true, # "result": "Başarılı" # }], # "pagination": {"page":1, "total_count":1, "total_pages":1, "limit":10} # } ``` -------------------------------- ### List Call Records - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves call detail records (CDRs) with options for filtering by date, direction, missed calls, recording status, and caller ID. Supports pagination with 'limit' and 'page' parameters. Requires an API key. ```bash # Get all call records curl -X GET "https://api.bulutsantralim.com/cdrs?key=K12345678-1234-5678-4321-123456789012" # Filter by date range, direction, and missed calls curl -X GET "https://api.bulutsantralim.com/cdrs?key=K12345678-1234-5678-4321-123456789012&start_stamp_from=2017-08-01%2000:00:00%20UTC&start_stamp_to=2017-08-31%2023:59:59%20UTC&direction=inbound&missed=true&limit=50&page=1" # Filter by recording status and caller curl -X GET "https://api.bulutsantralim.com/cdrs?key=K12345678-1234-5678-4321-123456789012&recording_present=true&caller_id_number=03121234567" # Success Response (HTTP 200): # { # "cdrs": [{ # "start_stamp": "2017-08-03 12:30:32 +0300", ``` -------------------------------- ### List Queue Members Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves the list of extensions (users) that are assigned to a specific queue. It returns the user ID and name for each member of the specified queue. This is useful for managing queue assignments. ```bash curl -X GET "https://api.bulutsantralim.com/queue/user_list?key=K12345678-1234-5678-4321-123456789012&queue_number=200" # Success Response (HTTP 200): # [{"user":1000,"name":"DAHİLİ-1"},{"user":1001,"name":"DAHİLİ-2"}] ``` -------------------------------- ### POST /recording_url/ Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a temporary URL for accessing call recordings. This URL is valid for one hour and is rate-limited. ```APIDOC ## POST /recording_url/ ### Description Retrieves a temporary URL (valid for 1 hour) to download or stream a call recording. Rate limited to 5 requests per minute. ### Method POST ### Endpoint /recording_url/ ### Parameters #### Request Body - **key** (string) - Required - Your API key for authentication. - **call_uuid** (string) - Required - The unique identifier of the call for which to retrieve the recording URL. ### Request Example ```bash curl -X POST "https://api.bulutsantralim.com/recording_url/" \ -d "key=K12345678-1234-5678-4321-123456789012&call_uuid=12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) A temporary URL to access the call recording. #### Response Example ``` https://api.bulutsantralim.com/recording/Rbb9d6f36-d1a7-46f5-961e-4be2e2ba1b8e ``` ### Download or Play Recording ```bash curl -O "https://api.bulutsantralim.com/recording/Rbb9d6f36-d1a7-46f5-961e-4be2e2ba1b8e" ``` ``` -------------------------------- ### Report Call Events via Webhook Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Configures the system to send real-time call event notifications (ringing, answer, hangup) to a specified webhook URL via HTTP POST. The webhook should respond with HTTP 200 OK to acknowledge receipt. This allows for real-time monitoring of call states. ```bash # Example webhook payload sent to your server: # POST https://your-server.com/event/ # Content-Type: application/x-www-form-urlencoded # # event_type=ringing&domain_id=101&direction=inbound&caller_id_number=02123205062 # &destination_number=1001&dialed_user=1001&call_uuid=1234&start_stamp=2016-01-01 00:00:00 # Event types: ringing, answer, hangup, user_hangup # Direction values: internal, inbound, outbound # Your webhook should respond with HTTP 200 OK # Test your webhook URL: curl --location 'http://your-server.com/event' --data '{}' ``` -------------------------------- ### Queue Management Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Endpoints for managing call queues, including listing queues, pending callers, and queue members, as well as managing queue members. ```APIDOC ## Queue Management ### List Queues ### Description Retrieves all queues configured in your PBX. ### Method GET ### Endpoint /queues ### Parameters #### Query Parameters - **key** (string) - Required - Your API key for authentication. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/queues?key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) An array of queue objects. - **number** (integer) - The queue number. - **name** (string) - The name of the queue. #### Response Example ```json [ {"number": 200, "name": "Kuyruk 1"}, {"number": 201, "name": "Kuyruk 2"}, {"number": 202, "name": "Kuyruk 3"} ] ``` ### List Callers Waiting in Queue ### Description Retrieves callers currently waiting in queues. ### Method GET ### Endpoint /queues/pending ### Parameters #### Query Parameters - **key** (string) - Required - Your API key for authentication. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/queues/pending?key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) An array of objects representing callers waiting in queues. - **queue_number** (string) - The number of the queue. - **uuid** (string) - The unique identifier for the waiting call. - **call_uuid** (string) - The unique identifier of the call. - **caller_id** (string) - The caller's ID. - **joined_at** (string) - The timestamp when the caller joined the queue. #### Response Example ```json [ { "queue_number": "200", "uuid": "a7713781-xxxx-44b0-xxxx-38f24c4b55bb", "call_uuid": "f776683e-1bde-4b58-bc43-128b99497bd9", "caller_id": "905320000000", "joined_at": "1624947819" } ] ``` ### List Queue Members ### Description Retrieves extensions assigned to a specific queue. ### Method GET ### Endpoint /queue/user_list ### Parameters #### Query Parameters - **key** (string) - Required - Your API key for authentication. - **queue_number** (string) - Required - The number of the queue. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/queue/user_list?key=K12345678-1234-5678-4321-123456789012&queue_number=200" ``` ### Response #### Success Response (200) An array of objects representing queue members. - **user** (integer) - The extension number. - **name** (string) - The name of the extension. #### Response Example ```json [{"user":1000,"name":"DAHİLİ-1"},{"user":1001,"name":"DAHİLİ-2"}] ``` ### Manage Queue Members ### Description Add, remove, or reorder extensions in a queue. Rate limited to 10 requests per minute. ### Method GET ### Endpoint /queue/manage_users ### Parameters #### Query Parameters - **key** (string) - Required - Your API key for authentication. - **queue_number** (string) - Required - The number of the queue. - **user_list** (string) - Required - A comma-separated list of user extensions to manage in the queue. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/queue/manage_users?key=K12345678-1234-5678-4321-123456789012&queue_number=200&user_list=1000,1001,1002" ``` ### Response #### Success Response (200) - **OK** ``` ``` -------------------------------- ### Announcement Management Source: https://context7.com/verimor/bulutsantralim-api/llms.txt APIs for uploading and deleting audio announcements. ```APIDOC ## POST /announcements ### Description Upload audio files for announcements. Supported formats include wav, mp3, wma, m4a, aac, ac3, amr, flac, gsm, mpeg, mp1, mp2, ra, spx, ogg, 3gp. ### Method POST ### Endpoint /announcements ### Parameters #### Query Parameters - **key** (string) - Required - Your API key. #### Request Body - **name** (string) - Required - The name of the announcement. - **sounddata** (string) - Required - The audio file data, typically base64 encoded with a data URI scheme (e.g., `data:audio/mp3;name:welcome.mp3;base64,SUQzAwAA...`). ### Request Example ```bash curl -X POST "https://api.bulutsantralim.com/announcements" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "key=K12345678-1234-5678-4321-123456789012&name=Welcome%20Message&sounddata=data:audio/mp3;name:welcome.mp3;base64,SUQzAwAA..." ``` ### Response #### Success Response (200) - **announcement ID** (integer) - The ID of the newly created announcement. #### Response Example ``` 859 ``` ## DELETE /announcements/{id} ### Description Delete a specific announcement by its ID. ### Method DELETE ### Endpoint /announcements/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the announcement to delete. #### Query Parameters - **key** (string) - Required - Your API key. ### Request Example ```bash curl -X DELETE "https://api.bulutsantralim.com/announcements/21870" \ -d "key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) - **Status** (string) - Indicates success, typically 'OK'. #### Response Example ``` OK ``` ``` -------------------------------- ### Stop/Resume IVR Campaign - Bash Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Allows stopping or resuming an existing IVR campaign by its ID. Requires the API key and a 'status' parameter ('on' or 'off'). Returns 'OK' upon successful status change. ```bash # Stop campaign curl -X PATCH "https://api.bulutsantralim.com/ivr_campaigns/112" \ -d "key=K12345678-1234-5678-4321-123456789012&status=off" # Resume campaign curl -X PATCH "https://api.bulutsantralim.com/ivr_campaigns/112" \ -d "key=K12345678-1234-5678-4321-123456789012&status=on" # Success Response (HTTP 200): # OK ``` -------------------------------- ### CRM Integration Settings Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Configure settings for CRM integration, including enabling/disabling event notifications and setting the notification URL. ```APIDOC ## GET /crm_integrations ### Description Retrieves the current CRM integration settings. ### Method GET ### Endpoint /crm_integrations ### Parameters #### Query Parameters - **key** (string) - Required - Your API key for authentication. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/crm_integrations?key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) - **ringing** (string) - 'on' or 'off' to enable/disable notifications for incoming calls. - **answered** (string) - 'on' or 'off' to enable/disable notifications for answered calls. - **hangup** (string) - 'on' or 'off' to enable/disable notifications for hung-up calls. - **notification_url** (string) - The URL to send CRM integration event notifications to. #### Response Example ```json { "ringing": "on", "answered": "on", "hangup": "on", "notification_url": "https://your-crm.com/events" } ``` ## POST /crm_integrations ### Description Updates the CRM integration settings. ### Method POST ### Endpoint /crm_integrations ### Parameters #### Request Body - **key** (string) - Required - Your API key for authentication. - **ringing** (string) - Optional - 'on' or 'off' to enable/disable notifications for incoming calls. - **answered** (string) - Optional - 'on' or 'off' to enable/disable notifications for answered calls. - **hangup** (string) - Optional - 'on' or 'off' to enable/disable notifications for hung-up calls. - **notification_url** (string) - Optional - The URL to send CRM integration event notifications to. ### Request Example ```bash curl -X POST "https://api.bulutsantralim.com/crm_integrations" \ -d "key=K12345678-1234-5678-4321-123456789012&ringing=on&answered=on&hangup=off¬ification_url=https://your-crm.com/events" ``` ### Response #### Success Response (200) - **status** (string) - Indicates success, typically 'Ok'. #### Response Example ``` Ok ``` ``` -------------------------------- ### List Callers Waiting in Queue Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Retrieves a list of callers currently on hold in any of the PBX queues. For each caller, it provides the queue number, unique identifiers (UUIDs), caller ID, and the time they joined the queue. This helps in monitoring queue load. ```bash curl -X GET "https://api.bulutsantralim.com/queues/pending?key=K12345678-1234-5678-4321-123456789012" # Success Response (HTTP 200): # [ # { # "queue_number": "200", # "uuid": "a7713781-xxxx-44b0-xxxx-38f24c4b55bb", # "call_uuid": "f776683e-1bde-4b58-bc43-128b99497bd9", # "caller_id": "905320000000", # "joined_at": "1624947819" # } # ] ``` -------------------------------- ### IVR Campaigns (Auto-Dial) Source: https://context7.com/verimor/bulutsantralim-api/llms.txt APIs for creating, managing, and deleting IVR and predictive dialing campaigns. ```APIDOC ## POST /ivr_campaigns.json ### Description Creates automated outbound call campaigns. Supports both IVR menu-based and queue-based predictive dialing. ### Method POST ### Endpoint /ivr_campaigns.json ### Parameters #### Query Parameters - **key** (string) - Required - Your API key. #### Request Body - **key** (string) - Required - Your API key. - **call_type** (string) - Required - Type of campaign: 'ivr' or 'queue'. - **name** (string) - Required - Name of the campaign. - **date_range_begin** (string) - Optional - Start date for the campaign (YYYY-MM-DD). - **date_range_end** (string) - Optional - End date for the campaign (YYYY-MM-DD). - **time_range_begin** (string) - Optional - Start time for the campaign (HH:MM). - **time_range_end** (string) - Optional - End time for the campaign (HH:MM). - **active_days** (array of integers) - Optional - Days of the week to run the campaign (1=Sunday, 7=Saturday). - **max_thread_count** (integer) - Optional - Maximum concurrent calls. - **ring_timeout** (integer) - Optional - Ring duration in seconds. - **cli** (string) - Optional - Caller ID number. - **welcome_announcement_id** (integer) - Optional - ID of the announcement to play at the start (for IVR campaigns). - **call_retries** (integer) - Optional - Number of retries for failed calls. - **webhook_url** (string) - Optional - URL for receiving webhook notifications. - **digit_target_1** to **digit_target_9** (string) - Optional - Routing targets based on DTMF input (e.g., 'announcement/421', 'queue/201', 'user/1001'). - **digit_timeout** (integer) - Optional - Timeout for DTMF input in seconds. - **phone_list** (array of objects) - Required - List of phone numbers to call. Each object can have 'phone' (string, required), 'phrase' (string, optional), and 'lang' (string, optional). - **queue_number** (integer) - Required for 'queue' type - The queue number to use for predictive dialing. - **thread_multiplier** (integer) - Optional for 'queue' type - Multiplier for thread count based on agents. ### Request Example ```json # IVR Campaign - Customer satisfaction survey { "key": "K12345678-1234-5678-4321-123456789012", "call_type": "ivr", "name": "Customer Survey", "date_range_begin": "2024-01-15", "date_range_end": "2024-01-15", "time_range_begin": "09:00", "time_range_end": "18:00", "active_days": [1,2,3,4,5], "max_thread_count": 5, "ring_timeout": 30, "cli": "902129630131", "welcome_announcement_id": 128, "call_retries": 2, "webhook_url": "https://your-server.com/ivr-webhook", "digit_target_1": "announcement/421", "digit_target_2": "queue/201", "digit_target_9": "user/1001", "digit_timeout": 5, "phone_list": [ {"phone": "05512369874", "phrase": "#429 12/05/2024 #430 102.45 #431", "lang": "tr-TR"}, {"phone": "05651236547"} ] } # Queue (Predictive) Campaign - Call center outbound { "key": "K12345678-1234-5678-4321-123456789012", "call_type": "queue", "name": "Sales Outbound", "queue_number": 204, "thread_multiplier": 2, "max_thread_count": 10, "ring_timeout": 25, "cli": "902129630131", "call_retries": 1, "phone_list": [ {"phone": "05512369874"}, {"phone": "05651236547"} ] } ``` ### Response #### Success Response (200) - **campaign ID** (integer) - The ID of the newly created campaign. #### Response Example ``` 20212 ``` ## PATCH /ivr_campaigns/{id} ### Description Stop or resume an existing IVR or predictive dialing campaign. ### Method PATCH ### Endpoint /ivr_campaigns/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign to modify. #### Query Parameters - **key** (string) - Required - Your API key. - **status** (string) - Required - The desired status: 'on' to resume, 'off' to stop. ### Request Example ```bash # Stop campaign curl -X PATCH "https://api.bulutsantralim.com/ivr_campaigns/112" \ -d "key=K12345678-1234-5678-4321-123456789012&status=off" # Resume campaign curl -X PATCH "https://api.bulutsantralim.com/ivr_campaigns/112" \ -d "key=K12345678-1234-5678-4321-123456789012&status=on" ``` ### Response #### Success Response (200) - **Status** (string) - Indicates success, typically 'OK'. #### Response Example ``` OK ``` ## DELETE /ivr_campaigns/{id} ### Description Delete a specific IVR or predictive dialing campaign. ### Method DELETE ### Endpoint /ivr_campaigns/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign to delete. #### Query Parameters - **key** (string) - Required - Your API key. ### Request Example ```bash curl -X DELETE "https://api.bulutsantralim.com/ivr_campaigns/112?key=K12345678-1234-5678-4321-123456789012" ``` ### Response #### Success Response (200) - **Status** (string) - Indicates success, typically 'OK'. #### Response Example ``` OK ``` ``` -------------------------------- ### Originate Call Source: https://context7.com/verimor/bulutsantralim-api/llms.txt Initiates an outbound call from an extension to a destination number. The extension's phone rings first, and when answered, the destination number is dialed. ```APIDOC ## Originate Call ### Description Initiates an outbound call from an extension to a destination number. The extension's phone rings first, and when answered, the destination number is dialed. ### Method GET ### Endpoint /originate ### Parameters #### Query Parameters - **key** (string) - Required - Your API key obtained from the Online Operations Center (OIM). - **extension** (string) - Required - The extension number from which to initiate the call. - **destination** (string) - Required - The phone number to dial. - **caller_id** (string) - Optional - The caller ID to display for the outbound call. - **manual_answer** (boolean) - Optional - If true, requires manual answer on the extension before dialing the destination. - **timeout** (integer) - Optional - The number of seconds to wait for the extension to answer. - **announcement_to_callee** (integer) - Optional - The ID of an announcement to play to the callee. ### Request Example ```bash curl -X GET "https://api.bulutsantralim.com/originate?key=K12345678-1234-5678-4321-123456789012&extension=1001&destination=908505320000" curl -X GET "https://api.bulutsantralim.com/originate?key=K12345678-1234-5678-4321-123456789012&extension=1001&destination=908505320000&caller_id=908505320001&manual_answer=true&timeout=45&announcement_to_callee=128" ``` ### Response #### Success Response (200) - **call_uuid** (string) - The unique identifier for the initiated call. #### Response Example ``` 358c20bc-fd86-11e5-87a2-157d41a07454 ``` #### Error Response (400) - **Error Message** (string) - Description of the error, e.g., "extension 1005 not found" ```