### Answer a Call (GET) Source: https://developer.verimor.com.tr/switch/index Answers a call that was initiated with manual_answer=true. This endpoint uses an HTTP GET request with the call ID and returns '+OK' on success. ```http GET https://api.bulutsantralim.com/answer/{id} ``` -------------------------------- ### Get Contacts List Response Sample Source: https://developer.verimor.com.tr/switch/index Sample JSON response for the 'Get Contacts List' endpoint, showing the structure of the contacts array and pagination information. ```JSON { "contacts": [ { "id": 10203, "name": "Verimor", "surname": "Telekomünikasyon", "tckn": "12345678910", "description": "A.Ş.", "phone": "05111111111", "phone1": "05111111112", "email": "info@verimor.com.tr", "title": "Sabit Telefon Operatörü", "phone2": "02123205062", "fax": "02123205072", "gender": "Erkek", "birthday": "01.01.1990", "birthday_sms": true, "weddingday": "01.01.2018", "weddingday_sms": true, "note1": "", "note2": "", "note3": "", "note4": "", "company_name": "Verimor Telekomünikasyon", "monthly_sms_day": 9, "monthly_sms_message": "Bu gün ayın dokuz", "group_ids": [ 20212, 20213 ] } ], "pagination": { "page": 1, "total_count": 1, "total_pages": 1, "limit": 10 } } ``` -------------------------------- ### Start or Stop an IVR Campaign Source: https://developer.verimor.com.tr/switch/index Controls the active status of an IVR campaign. Sending a PATCH request with `status=on` will start the campaign, while `status=off` will stop it. This is useful for managing campaign schedules. ```http PATCH /ivr_campaigns.json?id={IVR_Campaign_ID}&status=off ``` ```http PATCH /ivr_campaigns.json?id={IVR_Campaign_ID}&status=on ``` -------------------------------- ### List Announcements (HTTP GET) Source: https://developer.verimor.com.tr/switch/index Retrieves a list of all announcement sound files available in your system. Requires an API key for authorization. Successful requests return a 200 status code with a JSON array of announcement objects, each containing an ID and name. ```HTTP GET https://api.bulutsantralim.com/announcements ``` -------------------------------- ### Originate Call Source: https://developer.verimor.com.tr/switch/index Initiates a call to an internal extension from your applications. This endpoint uses the HTTP GET method with various query parameters. ```APIDOC ## GET /originate ### Description Initiates a call to an internal extension from your applications. This endpoint uses the HTTP GET method with various query parameters. Upon a successful request, the `call_uuid` is returned in the message body with an HTTP 200 Status code. If the request fails, the corresponding HTTP Status code and the error message are returned in the message body. **PREPARATION**: You must obtain your API Key from the Online Transaction Center => Bulut Santralim => My Switch Settings menu. ### Method GET ### Endpoint https://api.bulutsantralim.com/originate ### Parameters #### Query Parameters - **extension** (string) - Required - The internal number to which the call will be connected. Example: `extension=1001` - **destination** (string) - Required - The number to be called (for domestic calls, the format should be `908505320000`, for international calls, `00493027590915`). Example: `destination=908505320000` - **caller_id** (string) - Optional - The external number to be used in the call (should be in the format `908505320000`. If this parameter is not provided, the external number selected in the extension will be used). Example: `caller_id=908505320000` - **manual_answer** (boolean) - Optional - If set to `true`, it waits for the extension to answer the phone (Normally, the extension answers automatically and the karşı number is called). Example: `manual_answer=true` - **timeout** (integer) - Optional - The ringing duration of the phone. Should be a value between 10 and 60 seconds. Defaults to 30. - **announcement_to_callee** (integer) - Optional - The announcement to be played to the called party upon answering. You can view your voice file IDs via the API or the Online Transaction Center. - **announcement_to_caller** (integer) - Optional - The announcement to be played to the calling party upon answering. You can view your voice file IDs via the API or the Online Transaction Center. ### Request Example None ### Response #### Success Response (200) - **string** - A unique identifier for the call (`call_uuid`). #### Response Example ``` 358c20bc-fd86-11e5-87a2-157d41a07454 ``` ### Error Handling - **400**: Bad Request - **401**: Unauthorized - Invalid API key ``` -------------------------------- ### Sample JSON Response for Fax Orders Source: https://developer.verimor.com.tr/switch/index Example JSON structure for a successful fax order response, including fax details and pagination information. ```JSON { "fax_orders": [ { "id": 96, "created_at": "2018-06-05 16:41:39", "local_station_id": "902129630131", "remote_station_id": "902123205072", "status": "Bekliyor" } ], "pagination": { "page": 1, "total_count": 1, "total_pages": 1, "limit": 10 } } ``` -------------------------------- ### Get Webphone Token Source: https://developer.verimor.com.tr/switch/index Generates a token for embedding the webphone within your application. The token is valid for 1 day. ```APIDOC ## Get Webphone Token ### Description Generates a token for embedding the webphone within your application. The token is valid for 1 day. This is required to use the Bulutsantralim webphone within your own web application via an iframe. ### Method POST ### Endpoint /webphone_tokens ### Request Body - **extension** (string) - Required - The extension number of the user who will use the webphone. ### Request Example ``` POST /webphone_tokens Content-Type: application/x-www-form-urlencoded extension=1000 ``` ### Response #### Success Response (200) - **token** (string) - The generated webphone token. #### Response Example ```text W03311746-d56d-489b-801f-da610aba71cf ``` #### Error Responses - **400** - Bad Request. - **401** - Unauthorized - Invalid API key. ``` -------------------------------- ### Enable Call Recording for IVR Campaign Source: https://developer.verimor.com.tr/switch/index Configures whether to enable call recording at the start of each call in an IVR campaign. Setting this to true ensures that all calls are recorded for later review or analysis. ```json { "recording_enabled": true } ``` -------------------------------- ### Sample JSON Response for Fax List Source: https://developer.verimor.com.tr/switch/index Example JSON structure for a successful fax list retrieval response, including fax records and pagination details. ```JSON { "fdrs": [ { "call_uuid": "3289fe02-2dc7-11e8-9a23-1f0cd544cc6v", "direction": "Giden", "caller_id_number": "902129630131", "local_station_header": "Bulutsantralim", "original_destination": "902123205072", "pages_count": "0 / 0", "transfer_rate": 14400, "start_stamp": "2018-03-22 14:50:20", "answer_stamp": "2018-03-22 14:50:20", "end_stamp": "2018-03-22 14:50:35", "duration": 15, "success": true, "result": "Başarılı" } ], "pagination": { "page": 1, "total_count": 1, "total_pages": 1, "limit": 10 } } ``` -------------------------------- ### GET /contacts Source: https://developer.verimor.com.tr/switch/index Retrieves a list of contacts from your switchboard. Supports pagination. ```APIDOC ## GET /contacts ### Description Retrieves a list of contacts from your switchboard. Supports pagination. ### Method GET ### Endpoint https://api.bulutsantralim.com/contacts ### Parameters #### Query Parameters - **page** (integer) - Optional - The page number of the contact list to retrieve. Example: `page=1` - **limit** (integer) - Optional - The number of contacts to return per page. Default is 10, minimum is 10, maximum is 100. Example: `limit=10` ### Request Example ``` GET /contacts?page=1&limit=10 ``` ### Response #### Success Response (200) - **contacts** (array) - An array of contact objects. - **id** (integer) - The contact's unique identifier. - **name** (string) - The contact's first name. - **surname** (string) - The contact's last name. - **tckn** (string) - The contact's Turkish identification number. - **description** (string) - A description for the contact. - **phone** (string) - The primary phone number. - **phone1** (string) - An alternative phone number. - **email** (string) - The contact's email address. - **title** (string) - The contact's job title. - **phone2** (string) - Another alternative phone number. - **fax** (string) - The contact's fax number. - **gender** (string) - The contact's gender. - **birthday** (string) - The contact's birthday (format: DD.MM.YYYY). - **birthday_sms** (boolean) - Whether to send SMS on birthday. - **weddingday** (string) - The contact's wedding anniversary (format: DD.MM.YYYY). - **weddingday_sms** (boolean) - Whether to send SMS on wedding anniversary. - **note1** (string) - General notes. - **note2** (string) - General notes. - **note3** (string) - General notes. - **note4** (string) - General notes. - **company_name** (string) - The name of the company the contact is associated with. - **monthly_sms_day** (integer) - Day of the month for monthly SMS. - **monthly_sms_message** (string) - Content of the monthly SMS. - **group_ids** (array) - An array of group IDs the contact belongs to. - **pagination** (object) - Pagination details for the response. - **page** (integer) - The current page number. - **total_count** (integer) - The total number of contacts available. - **total_pages** (integer) - The total number of pages. - **limit** (integer) - The limit of contacts per page. #### Response Example ```json { "contacts": [ { "id": 10203, "name": "Verimor", "surname": "Telekomünikasyon", "tckn": "12345678910", "description": "A.Ş.", "phone": "05111111111", "phone1": "05111111112", "email": "info@verimor.com.tr", "title": "Sabit Telefon Operatörü", "phone2": "02123205062", "fax": "02123205072", "gender": "Erkek", "birthday": "01.01.1990", "birthday_sms": true, "weddingday": "01.01.2018", "weddingday_sms": true, "note1": "", "note2": "", "note3": "", "note4": "", "company_name": "Verimor Telekomünikasyon", "monthly_sms_day": 9, "monthly_sms_message": "Bu gün ayın dokuz", "group_ids": [ 20212, 20213 ] } ], "pagination": { "page": 1, "total_count": 1, "total_pages": 1, "limit": 10 } } ``` #### Error Responses - **400**: Bad Request - Invalid pagination parameters. - **401**: Unauthorized - Invalid API key. ``` -------------------------------- ### Get Contacts List Source: https://developer.verimor.com.tr/switch/index Retrieves the list of contacts from your switch. Uses HTTP GET method to api.bulutsantralim.com/contacts with optional pagination parameters. Returns the contact list on success (HTTP 200) or an error message on failure. ```HTTP GET /contacts?page=1&limit=10 Host: api.bulutsantralim.com ``` -------------------------------- ### PATCH /ivr_campaigns.json Source: https://developer.verimor.com.tr/switch/index Start or stop an automatic calling campaign. ```APIDOC ## PATCH /ivr_campaigns.json ### Description Start or stop an automatic calling campaign. Sending `status=off` with PATCH will stop the campaign, while `status=on` will restart it. ### Method PATCH ### Endpoint https://api.bulutsantralim.com/ivr_campaigns.json ### Parameters #### Path Parameters - **id** (string) - Required - IVR Campaign ID #### Query Parameters - **status** (string) - Required - Campaign status: `on` to start, `off` to stop. - `on` - `off` ### Response #### Success Response (200) Kampanya başarıyla güncellendi (Campaign successfully updated) #### Error Responses - **400**: Hatalı istek - doğrulama hatası - **401**: Yetkisiz - geçersiz API anahtarı - **403**: Modül satın alınmadı - yetkisiz işlem ``` -------------------------------- ### GET /contact_groups Source: https://developer.verimor.com.tr/switch/index Retrieves a list of contact groups from your switch. Useful for managing and categorizing contacts within the system. ```APIDOC ## GET /contact_groups ### Description Retrieves a list of contact groups from your switch. Useful for managing and categorizing contacts within the system. ### Method GET ### Endpoint https://api.bulutsantralim.com/contact_groups ### Responses #### Success Response (200) - **contact_groups** (array) - An array of contact group objects. - **id** (integer) - The unique identifier for the contact group. - **name** (string) - The name of the contact group. #### Error Response (401) - **error** (string) - Unauthorized access - Invalid API key. ``` -------------------------------- ### GET /answer/{id} Source: https://developer.verimor.com.tr/switch/index Answers an ongoing call that was initiated with manual_answer=true. The call is answered and returns HTTP 200 with '+OK' or call information. ```APIDOC ## GET /answer/{id} ### Description Answers an ongoing call that was initiated with manual_answer=true. The call is answered and returns HTTP 200 with '+OK' or call information. ### Method GET ### Endpoint https://api.bulutsantralim.com/answer/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUID of the call to be answered. Example: 736eaf7e-4cc4-44ab-8dbe-16b18e9618b1 ### Response #### Success Response (200) - **body** (string) - '+OK' or call information. #### Response Example ``` +OK ``` ``` -------------------------------- ### List Internal Statuses (HTTP GET) Source: https://developer.verimor.com.tr/switch/index Retrieves the status of internal extensions. Supports filtering by user ID or status (AVAILABLE, TALKING, UNREGISTERED, SS_DND). Rate limited to two requests per minute. Requires an API key for authorization. ```HTTP GET https://api.bulutsantralim.com/user_statuses?user=1000 GET https://api.bulutsantralim.com/user_statuses?status=TALKING ``` -------------------------------- ### Get Bridge Information Source: https://developer.verimor.com.tr/switch/index Retrieves information about the bridge. This endpoint is typically used to get a unique identifier for a call bridge. ```APIDOC ## GET /bridge ### Description Retrieves information about the bridge. This endpoint is typically used to get a unique identifier for a call bridge. ### Method GET ### Endpoint https://api.bulutsantralim.com/bridge ### Parameters #### Query Parameters None ### Request Example None ### Response #### Success Response (200) - **string** - A unique identifier for the call bridge. #### Response Example ``` 358c20bc-fd86-11e5-87a2-157d41a07454 ``` ### Error Handling - **400**: Bad Request - Validation error - **401**: Unauthorized - Invalid API key ``` -------------------------------- ### Initiate a Call (JSON) Source: https://developer.verimor.com.tr/switch/index Initiates a new call using the originate endpoint. Requires extension, destination, and optionally caller_id, manual_answer, timeout, and announcement IDs. The response is a unique call ID upon success. ```json { "extension": "1001", "destination": "908505320000", "caller_id": "908505320000", "manual_answer": false, "timeout": 30, "announcement_to_caller": 0, "announcement_to_callee": 0 } ``` -------------------------------- ### Initiate a Call (POST) Source: https://developer.verimor.com.tr/switch/index Initiates a call to an internal extension from your applications using the HTTP POST method. ```APIDOC ## POST /originate ### Description Initiates a call to an internal extension from your applications using the HTTP POST method. Upon a successful request, the `call_uuid` is returned in the message body with an HTTP 200 Status code. If the request fails, the corresponding HTTP Status code and the error message are returned in the message body. **PREPARATION**: You must obtain your API Key from the Online Transaction Center => Bulut Santralim => My Switch Settings menu. ### Method POST ### Endpoint https://api.bulutsantralim.com/originate ### Parameters #### Query Parameters - **extension** (string) - Required - The internal number to which the call will be connected. Example: `extension=1001` - **destination** (string) - Required - The number to be called (for domestic calls, the format should be `908505320000`, for international calls, `00493027590915`). Example: `destination=908505320000` - **caller_id** (string) - Optional - The external number to be used in the call (should be in the format `908505320000`. If this parameter is not provided, the external number selected in the extension will be used). Example: `caller_id=908505320000` - **manual_answer** (boolean) - Optional - If set to `true`, it waits for the extension to answer the phone (Normally, the extension answers automatically and the karşı number is called). Example: `manual_answer=true` - **timeout** (integer) - Optional - The ringing duration of the phone. Should be a value between 10 and 60 seconds. Defaults to 30. - **announcement_to_callee** (integer) - Optional - The announcement to be played to the called party upon answering. You can view your voice file IDs via the API or the Online Transaction Center. - **announcement_to_caller** (integer) - Optional - The announcement to be played to the calling party upon answering. You can view your voice file IDs via the API or the Online Transaction Center. ### Request Example None (parameters are passed as query parameters) ### Response #### Success Response (200) - **string** - A unique identifier for the call (`call_uuid`). #### Response Example ``` 358c20bc-fd86-11e5-87a2-157d41a07454 ``` ### Error Handling - **400**: Bad Request - **401**: Unauthorized - Invalid API key ``` -------------------------------- ### Transfer Call (GET) Source: https://developer.verimor.com.tr/switch/index Transfers an ongoing call to another internal extension using the HTTP GET method with the call UUID and target extension. ```APIDOC ## GET /transfer/{id} ### Description Transfers an ongoing call to another internal extension using the HTTP GET method with the call UUID and target extension. You can use the UUID returned by the API when initiating a new call or the UUIDs received via Event Notification. ### Method GET ### Endpoint https://api.bulutsantralim.com/transfer/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The UUID of the call to transfer. Example: `f3797dfc-a818-11e7-bf70-cb295b6663ce` #### Query Parameters - **user_number** (string) - Required - The internal number of the connected user to transfer to. Example: `user_number=1000` ### Request Example None ### Response #### Success Response (200) - **string** - Indicates that the call was successfully transferred. #### Response Example ``` +OK ``` ### Error Handling - **400**: Bad Request - Transfer failed - **401**: Unauthorized - Invalid API key ``` -------------------------------- ### Upload New Announcement (HTTP POST) Source: https://developer.verimor.com.tr/switch/index Uploads a new announcement sound file. Requires the file name and its base64 encoded content in the request body. A successful upload returns the ID of the newly created sound file with a 200 status code. Requires an API key. ```HTTP POST https://api.bulutsantralim.com/announcements Content-Type: application/x-www-form-urlencoded name=WelcomeMessage sounddata=W13311746-d56d-489b-801f-da610aba71cf ``` -------------------------------- ### Terminate a Call (GET) Source: https://developer.verimor.com.tr/switch/index Terminates an ongoing call using its unique ID. This endpoint uses an HTTP GET request and returns '+OK' on successful termination. ```http GET https://api.bulutsantralim.com/hangup/{id} ``` -------------------------------- ### List Queues Source: https://developer.verimor.com.tr/switch/index Retrieves a list of all queues in your system. Requires an API key. ```APIDOC ## GET /queues ### Description Retrieves a list of all queues in your system. Requires an API key. ### Method GET ### Endpoint https://api.bulutsantralim.com/queues ### Responses #### Success Response (200) - **queues** (array) - A list of queue objects, each containing 'number' and 'name'. - **number** (integer) - The queue number. - **name** (string) - The name of the queue. #### Error Responses - **401** - Yetkisiz erişim - Geçersiz API anahtarı ### Response Example (200) ```json [ { "number": 200, "name": "Kuyruk 1" }, { "number": 201, "name": "Kuyruk 2" }, { "number": 202, "name": "Kuyruk 3" } ] ``` ``` -------------------------------- ### GET /cdrs Source: https://developer.verimor.com.tr/switch/index Retrieves a list of Call Detail Records (CDRs) with various filtering and pagination options. This endpoint is used to get detailed information about past calls. ```APIDOC ## GET /cdrs ### Description Retrieves a list of Call Detail Records (CDRs) with various filtering and pagination options. This endpoint is used to get detailed information about past calls. ### Method GET ### Endpoint https://api.bulutsantralim.com/cdrs ### Parameters #### Query Parameters - **start_stamp_from** (string) - Optional - Start date/time (ISO format). - **start_stamp_to** (string) - Optional - End date/time (ISO format). - **recording_present** (string) - Optional - Filter by recording status: `true`, `false`, `deleted`. - **direction** (string) - Optional - Filter by call direction. - **caller_id_number** (string) - Optional - Filter by caller ID number. - **destination_number** (string) - Optional - Filter by destination number. - **missed** (string) - Optional - Filter for missed calls. - **queue** (string) - Optional - Filter by queue name. - **page** (integer) - Optional - Page number (default: 1). - **limit** (integer) - Optional - Number of records per page. ### Request Example ``` GET /cdrs?start_stamp_from=2025-07-22T15:00:00Z&limit=10 ``` ### Response #### Success Response (200) - **cdrs** (array) - A list of Call Detail Records. - **pagination** (object) - Pagination information. #### Response Example ```json { "cdrs": [ { "start_stamp": "2025-07-22 15:37:20 +0300", "direction": "Giden (IVR)", "caller_id_number": "902129630131", "caller_id_name": "905111111113", "destination_number": "905111111111", "destination_name": "905111111111", "duration": "00:00:10", "talk_duration": "00:00:00", "queue_wait_seconds": "00:00:00", "queue": null, "result": "Cevaplandı", "missed": false, "return_uuid": null, "recording_present": "false", "sip_hangup_disposition": "caller", "call_uuid": "8f499eaf-510d-4c9c-b60a-8f3bdddf3fad", "answer_stamp": "2025-07-22 15:37:42 +0300", "end_stamp": "2025-07-22 15:37:52 +0300" } ], "pagination": { "page": 1, "total_count": 7, "total_pages": 1, "limit": 10 } } ``` #### Error Responses - **400**: Bad Request - Validation error. - **401**: Unauthorized - Invalid API key. ``` -------------------------------- ### Mute/Unmute a Call (GET) Source: https://developer.verimor.com.tr/switch/index Mutes or unmutes an ongoing call. This endpoint uses an HTTP GET request with the call ID and a 'state' parameter ('on' to mute, 'off' to unmute). Returns '+OK' on success. ```http GET https://api.bulutsantralim.com/mute/{id}?state=on ``` ```http GET https://api.bulutsantralim.com/mute/{id}?state=off ``` -------------------------------- ### Advanced Features - PBX Programming Source: https://developer.verimor.com.tr/switch/index Manage basic PBX configurations, such as internal extension and queue settings, via the API. ```APIDOC ## Advanced Features - PBX Programming ### Description Manage fundamental PBX configurations, including internal extensions and call queue settings, through the API. ### Method POST, PUT, DELETE (Assumed, specific endpoints not provided) ### Endpoint /api/v1/pbx/extensions /api/v1/pbx/queues (Example endpoints) ### Parameters #### Request Body (Example for creating an extension) - **extension_number** (string) - Required - The number for the new extension. - **display_name** (string) - Optional - The display name for the extension. - **api_key** (string) - Required - Your unique API key. ``` -------------------------------- ### GET /fdrs Source: https://developer.verimor.com.tr/switch/index Retrieve a list of fax records from your switch. This endpoint uses the HTTP GET method and accepts various query parameters to filter the results. The date range for filtering cannot exceed 31 days. ```APIDOC ## GET /fdrs ### Description Retrieve a list of fax records from your switch. This endpoint uses the HTTP GET method and accepts various query parameters to filter the results. The date range for filtering cannot exceed 31 days. ### Method GET ### Endpoint https://api.bulutsantralim.com/fdrs ### Parameters #### Query Parameters - **start_stamp_from** (string) - Optional - Lists calls starting from this date and time. Format: `YYYY-MM-DD HH:MM:SS UTC`. Example: `start_stamp_from=2018-03-22 12:00:00 UTC` - **start_stamp_to** (string) - Optional - Lists calls up to this date and time. Format: `YYYY-MM-DD HH:MM:SS UTC`. The date range cannot exceed 31 days. Example: `start_stamp_to=2018-03-22 23:59:59 UTC` - **direction** (string) - Optional - Filters faxes by direction. Possible values: `outbound`, `inbound`, `internal`. Example: `direction=outbound` - **caller_id_number** (string) - Optional - Filters by the fax sender's number. Example: `caller_id_number=902129630131` - **original_destination** (string) - Optional - Filters by the fax recipient's number. Example: `original_destination=902123205072` - **success** (string) - Optional - Filters by success status. Use `true` for successful faxes, `false` for failed faxes. - **page** (integer) - Optional - Specifies the page number for paginated results. Example: `page=1` - **limit** (integer) - Optional - Sets the number of results per page. Default is 10, minimum is 10, maximum is 100. Example: `limit=10` ### Response #### Success Response (200) OK. Returns a list of fax records and pagination information. #### Response Example ```json { "fdrs": [ { "call_uuid": "3289fe02-2dc7-11e8-9a23-1f0cd544cc6v", "direction": "Giden", "caller_id_number": "902129630131", "local_station_header": "Bulutsantralim", "original_destination": "902123205072", "pages_count": "0 / 0", "transfer_rate": 14400, "start_stamp": "2018-03-22 14:50:20", "answer_stamp": "2018-03-22 14:50:20", "end_stamp": "2018-03-22 14:50:35", "duration": 15, "success": true, "result": "Başarılı" } ], "pagination": { "page": 1, "total_count": 1, "total_pages": 1, "limit": 10 } } ``` #### Error Responses - **400**: Bad Request - Invalid parameters. - **401**: Unauthorized - Invalid API key. ``` -------------------------------- ### POST /recording_url Source: https://developer.verimor.com.tr/switch/index Generates a temporary URL to access call recordings from your switch or Google Drive. The URL is valid for 1 hour, with a rate limit of 5 requests per minute. ```APIDOC ## POST /recording_url ### Description Generates a temporary URL to access call recordings from your switch or Google Drive. The URL is valid for 1 hour, with a rate limit of 5 requests per minute. ### Method POST ### Endpoint https://api.bulutsantralim.com/recording_url ### Parameters #### Query Parameters - **call_uuid** (string) - Required - The call UUID of the audio recording you want the URL for. ### Responses #### Success Response (200) - **recording_url** (string) - The temporary URL for the audio recording. #### Error Response (400) - **error** (string) - Bad request - validation or resource error. #### Error Response (401) - **error** (string) - Unauthorized - invalid API key. ``` -------------------------------- ### POST /originate Source: https://developer.verimor.com.tr/switch/index Initiates a call from an extension to a specified destination number. Supports various call parameters like caller ID, manual answer, timeout, and announcements. ```APIDOC ## POST /originate ### Description Initiates a call from an extension to a specified destination number. Supports various call parameters like caller ID, manual answer, timeout, and announcements. ### Method POST ### Endpoint https://api.bulutsantralim.com/originate ### Parameters #### Request Body - **extension** (string) - Required - The internal number to which the call will be connected. - **destination** (string) - Required - The number to be called (e.g., 908505320000 for domestic calls, 00493027590915 for international calls). - **caller_id** (string) - Optional - The external number to be used in the call (format: 908505320000). If not provided, the default external number configured for the extension will be used. - **manual_answer** (boolean) - Optional - If set to true, waits for the extension to answer the call (normally, the extension answers automatically and the karşı number is called). - **timeout** (integer) - Optional - The ringing duration for the phone. Should be between 10 and 60 seconds. Defaults to 30. - **announcement_to_caller** (integer) - Optional - Announcement to be played to the caller upon answering. Announcement file IDs can be viewed via API or the Online Transaction Center. - **announcement_to_callee** (integer) - Optional - Announcement to be played to the callee upon answering. Announcement file IDs can be viewed via API or the Online Transaction Center. ### Request Example ```json { "extension": "1001", "destination": "908505320000", "caller_id": "908505320000", "manual_answer": false, "timeout": 30, "announcement_to_caller": 0, "announcement_to_callee": 0 } ``` ### Response #### Success Response (200) - **body** (string) - The UUID of the initiated call. #### Response Example ``` a1b2c3d4-e5f6-7890-1234-567890abcdef ``` ``` -------------------------------- ### GET /caller_ids Source: https://developer.verimor.com.tr/switch/index Retrieves a list of available caller IDs for your account. This is useful for knowing which numbers you can assign to your extensions. ```APIDOC ## GET /caller_ids ### Description Retrieves a list of available caller IDs for your account. This is useful for knowing which numbers you can assign to your extensions. ### Method GET ### Endpoint https://api.bulutsantralim.com/caller_ids ### Parameters #### Query Parameters None ### Request Example None ### Response #### Success Response (200) - **caller_ids** (array) - A list of caller ID numbers. #### Response Example ```json [ "908501234567", "902121234567", "902161234567", "902127654321" ] ``` #### Error Responses - **400**: Bad Request - Invalid API key. - **401**: Unauthorized - Invalid API key. ``` -------------------------------- ### Create Contact Source: https://developer.verimor.com.tr/switch/index Creates a new contact. Requires Google Contacts integration to be off. Uses POST method to api.bulutsantralim.com/contacts. Returns the new contact ID on success (HTTP 200) or an error message on failure. ```HTTP POST /contacts Host: api.bulutsantralim.com Content-Type: application/json { "name": "John", "surname": "Doe", "phone": "+1234567890" } ``` -------------------------------- ### POST /websites/developer_verimor_tr_switch Source: https://developer.verimor.com.tr/switch/index Creates a new automated calling campaign. This endpoint allows for detailed configuration of campaign parameters, including call type, scheduling, agent availability, DTMF handling, and more. ```APIDOC ## POST /websites/developer_verimor_tr_switch ### Description Creates a new automated calling campaign with specified configurations. ### Method POST ### Endpoint /websites/developer_verimor_tr_switch ### Parameters #### Request Body - **call_type** (string) - Required - The type of automated call. Can be "queue" or "ivr". - **queue_number** (string) - Optional - For queue type automated calls, specifies which queue the calls will be transferred to. - **thread_multiplier** (integer) - Optional - For queue type automated calls, specifies how many times the available agent count will be called concurrently. - **max_thread_count** (integer) - Optional - For campaigns, specifies the maximum number of concurrent calls. If not provided, the system's default values are used. - **name** (string) - Required - The name of the campaign. - **date_range_begin** (string) - Optional - The start date for the campaign in YYYY-AA-GG format. Defaults to the current date if not provided. - **date_range_end** (string) - Optional - The end date for the campaign in YYYY-AA-GG format. Defaults to `date_range_begin` if not provided. - **time_range_begin** (string) - Optional - The start time for the campaign's working hours in SS:DD (or S:DD) format. Defaults to "00:00" if not provided. - **time_range_end** (string) - Optional - The end time for the campaign's working hours in SS:DD (or S:DD) format. Defaults to "23:59" if not provided. - **active_days** (Array of integers) - Optional - The days of the week the campaign will be active (1=Monday, 7=Sunday). Allows the campaign to run only on specific days of the week. - **ring_timeout** (integer) - Optional - The duration (in seconds) to wait for a called number to ring, between 25 and 60 seconds. - **cli** (string) - Optional - The caller ID number that the recipient will see. - **welcome_announcement_id** (integer) - Optional - The ID of the audio file to be played to the called numbers. This audio is played, followed by DTMF input being expected. Audio file IDs can be viewed via API or the Online Transaction Center. - **call_retries** (integer) - Optional - The number of retry attempts. Specifies how many more times a number will be called in cases of busy, unreachable, or no answer. - **webhook_url** (string) - Optional - The URL to which DTMF inputs will be reported. If provided, all DTMF inputs are sent to this URL. During campaign creation, an empty POST request is sent to this URL and expects a 200 response to validate the URL. If the called person does not need to be redirected after pressing a key and you only want to record the DTMF input, you can provide an announcement as the target. - **digit_target_0** (string) - Required - The target action when the called person presses 0. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_1** (string) - Required - The target action when the called person presses 1. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_2** (string) - Required - The target action when the called person presses 2. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_3** (string) - Required - The target action when the called person presses 3. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_4** (string) - Required - The target action when the called person presses 4. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_5** (string) - Required - The target action when the called person presses 5. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_6** (string) - Required - The target action when the called person presses 6. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_7** (string) - Required - The target action when the called person presses 7. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_8** (string) - Required - The target action when the called person presses 8. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_9** (string) - Required - The target action when the called person presses 9. Possible targets: 0-9, star, square, timeout, invalid. - **digit_target_star** (string) - Required - The target action when the called person presses star (*). Possible targets: 0-9, star, square, timeout, invalid. ### Request Example ```json { "call_type": "queue", "queue_number": "101", "name": "My First Campaign", "date_range_begin": "2023-10-27", "time_range_begin": "09:00", "time_range_end": "17:00", "active_days": [1, 2, 3, 4, 5], "ring_timeout": 30, "cli": "+1234567890", "call_retries": 3, "digit_target_0": "timeout", "digit_target_1": "invalid", "digit_target_star": "queue_102" } ``` ### Response #### Success Response (200) - **campaign_id** (string) - The unique identifier for the created campaign. - **message** (string) - A confirmation message. #### Response Example ```json { "campaign_id": "cmp_abc123xyz789", "message": "Campaign created successfully." } ``` ``` -------------------------------- ### GET /external_numbers Source: https://developer.verimor.com.tr/switch/index Retrieves a list of available external numbers that can be used as caller IDs in your switchboard. Requires an API key for authorization. ```APIDOC ## GET /external_numbers ### Description Retrieves a list of available external numbers that can be used as caller IDs in your switchboard. Requires an API key for authorization. ### Method GET ### Endpoint https://api.bulutsantralim.com/external_numbers ### Parameters #### Authorization - **api_key** (string) - Required - Your API key obtained from the Online Transaction Center. ### Response #### Success Response (200) - **body** (array) - A list of external numbers available for use as caller IDs. #### Response Example ```json [ "908505320000", "908505320001" ] ``` ```