Документація
API
API


Налаштування webhook

  API url: https://my.example.com/api.php?set-webhook

  Приклад запиту:

{ "url":"https://my.example.com", "events":[ "call", "internal", "notifymissed" ], "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Отримання webhook

  API url: https://my.example.com/api.php?get-webhook

  Приклад запиту:

{ "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "webhooks":[ {"url":"https://www1.example.com", "active":true, "events"=["call"]}, {"url":"https://www2.example.com", "active":false, "events"=["call","internal"]} ], "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Видалення webhook

  API url: https://my.example.com/api.php?del-webhook

  Приклад запиту:

{ "url":"https://my.example.com", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "url":"https://my.example.com", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Повідомлення статусу внутрішнього телефону (internal)

  Приклад повідомлення:

{ "event": "internal", "phonenumber": "1001", "status": "Idle", "call": { "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001" }, "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь.

  На будь яке повідомлення необхідно надати відповідь - підпис (pbx+timestamp+hash), інакше webhook буде вважатись не працюючим.

{ "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }




Повідомлення виклику (call)

  Приклад повідомлення:

{ "event": "call", "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001", "status": "Hold", "direction": "INCOMING", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь.

  На будь яке повідомлення необхідно надати відповідь - підпис (pbx+timestamp+hash), інакше webhook буде вважатись не працюючим.

{ "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }




Повідомлення про надсилання повідомлення про пропущений виклик

  Приклад повідомлення:

{ "event": "notifymissed", "email": "user@example.com", "subject": "Missed call +380441234567", "body": "You have missed call from Bogdan +380441234567 at 2023.10.10 10:10", "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001", "start": "2021-02-15 17:18:51+02", "answer": "2021-02-15 17:18:53+02", "end": "2021-02-15 17:19:20+02", "duration": 29, "billsec": 26, "waitsec": 1, "priorsec": 2, "callcenter": "support", "transfer": true, "record": true, "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь.

  На будь яке повідомлення необхідно надати відповідь - підпис (pbx+timestamp+hash), інакше webhook буде вважатись не працюючим. Якщо у відповіді неов'язкове поле sendmail = false тоді повідомлення на пошту не буде надіслано

{ "sendmail": false, "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }




Повідомлення-перевірка працездатності webhook (ping)

  Приклад повідомлення:

{ "event": "ping", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь.

  На будь яке повідомлення необхідно надати відповідь - підпис (pbx+timestamp+hash), інакше webhook буде вважатись не працюючим.

{ "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }




Відомості про стан телефону

  API url: https://my.example.com/api.php?get-internal

  Приклад запиту:

{ "phonenumber": "1001", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "phonenumber": "1001", "phonestatus": "Idle", "callerid": "Богдан Миколайович", "deviceaddr": "IPV4/TLS/192.168.1.1/38608", "forwardnumber": "+380501234567", "forward": [ "always", "busy", "noanswer", "unavailable", "together" ], "email": "user@example.com", "voicemail": true, "announce": true, "trunk": "gsm1", "useragent": "Cisco/SPA514G-7.6.2f", "ACL": [ "10.1.1.1", "192.168.1.0/24", "2001:db8::/32" ], "call": { "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001" }, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Відомості про дзвінок

  API url: https://my.example.com/api.php?get-call

  Приклад запиту:

{ "uniqueid": "1613123141.17", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001", "callstatus": "Completed", "direction": "TRANSIT", "disposition": "ANSWERED", "start": "2021-02-15 17:18:51+02", "answer": "2021-02-15 17:18:53+02", "end": "2021-02-15 17:19:20+02", "duration": 29, "billsec": 26, "talksec": 26, "waitsec": 1, "priorsec": 2, "callcenter": "support", "cost": 3.23, "currency": "UAH", "missed": true, "src_external": "gsmgateway", "dst_external": "branch-dnipro", "fmc_direction": "INTERNAL", "transfer": true, "linkedcalls": [ { "uniqueid": "1613123141.22", "linkedid": "1613123141.17", "src": "2222", "dst": "3333", "callstatus": "Completed", "direction": "INTERNAL", "disposition": "BUSY", "start": "2021-02-15 17:18:51+02", "tail": true, "transfer": true }, { "uniqueid": "1613123141.33", "linkedid": "1613123141.17", "src": "4444", "dst": "5555", "callstatus": "Completed", "direction": "INTERNAL", "disposition": "BUSY", "start": "2021-02-15 17:18:51+02", } ], "record": true, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Отримання запису розмови

  API url: https://my.example.com/api.php?get-record

  Приклад запиту:

{ "uniqueid": "1613123141.17", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

  бінарний аудіофайл у форматі ogg





Створення виклику

  API url: https://my.example.com/api.php?dial

  Приклад запиту:

{ "phonenumber": "1001", "phonenumbers": ["1001","1002","1003"], "groups": ["Group 1","Group 2","Group 3"], "dial": "+380501234567", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "uniqueid": "1613123141.17", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Отримання Контакту

  API url: https://my.example.com/api.php?get-contact

  Приклад запиту:

{ "contactid": 4383, "phonenumber": "0501234567", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Обов'язкове треба зазначити contactid або phonenumber. Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "contactid": 3792, "name": "Іван Іванович", "phonenumbers": ["+380441234567","00380441234567","0441234567"], "personalmanager": 1002, "custom": {"e-mail":"user@example.com", "фірма":"Рога та Копита"}, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Створення або оновлення Контакту

  API url: https://my.example.com/api.php?set-contact

  Приклад запиту:

{ "contactid": 4383, "phonenumber": "0501234567", "name": "Іван Іванович", "personalmanager": 1002, "phonenumbers": ["0501234567","5555555"], "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Обов'язкове треба зазначити contactid або phonenumber. Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "contactid": 3792, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Видалення Контакту

  API url: https://my.example.com/api.php?del-contact

  Приклад запиту:

{ "contactid": 4383, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Запланувати зворотний виклик

  API url: https://my.example.com/api.php?callback

  Приклад запиту:

{ "phonenumber": "5457788", "starttime": "09:00", "endtime": "17:00", "weekdays": "mon&tue&wed&thu&fri", "datelist": {"ukrholidays":false, "ukrnonholidays":true}, "personalmanager": true, "internals": ["1001","1002","2020"], "delay": 55, "randomdelay": 10, "retry": 15, "timeout": 20, "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "actionid": "id-1", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Команда віртуального діалплану IfAPI

  При виконанні команди IfAPI здійснюється запит вказаної в команді URL з наступним інформуванням методом POST (приклад):

{ "event": "ifapi", "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001", "status": "Hold", "start": "2021-02-15 17:18:51+02", "answer": "2021-02-15 17:18:53+02", "direction": "INCOMING", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  У разі відповіді true або 1 - команда IfAPI виконує основну гілку команд, при будь якої іншої відповіді або помилки виконується гілка "ELSE"

true




Команда віртуального діалплану APIcmd

  При виконанні команди APIcmd здійснюється запит вказаної в команді URL з наступним інформуванням методом POST (приклад):

{ "event": "apicmd", "uniqueid": "1613123141.17", "src": "+380441234567", "dst": "1001", "status": "Hold", "start": "2021-02-15 17:18:51+02", "answer": "2021-02-15 17:18:53+02", "direction": "INCOMING", "readstatus":"OK", "readvalue":"1029384756", "callcenterstatus":"CONTINUE", "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  У відповідь очікується набір команд які будуть виконані на АТС:

{ "commands": [ {"cmd":"Speak", "lang":"uk", "text":"Ласкаво просимо"}, {"cmd":"DisplayName", "text":"Stepan Andriyovych"}, {"cmd":"EndCall"} ], "pbx": "mypbxname", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:






Створення або налаштування АТС

  API url Створення АТС: https://my.example.com/api.php?create-pbx

  API url Зміни налаштувань АТС: https://my.example.com/api.php?set-pbx

  Приклад запиту:

{ "name": "newpbx", "max_internal": 10, "records_quota": "10G", "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "name": "newpbx", "apikey": "sjk6c0b121ce90e7c38328d875c4ee54", "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Створення або редагування користувача

  API url Створення користувача: https://my.example.com/api.php?create-user

  API url Зміни налаштувань користувача: https://my.example.com/api.php?set-user

  Приклад запиту:

{ "name": "Степан Андрійович", "email": "bsa@upa.gov.ua", "password": "1NEsp)#(@-2u32", "phone": "100@upa", "permissions": ["admin@upa", "agent@mil"], "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді:




Видалення користувача

  API url Видалення користувача: https://my.example.com/api.php?del-user

  Приклад запиту:

{ "email": "user@example.com", "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри:

  Відповідь:

{ "status": 0, "status_message": "success", "actionid": "id-1", "pbx": "GLOBAL", "timestamp": 1613125191.2345, "hash": "afe6c0b121ce90e7c38328d875c4e272" }

  Параметри відповіді: