Evolvex API
Введение
Программный интерфейс разработанный компанией Evolvex. Позволяет взаимодействовать с телефонной станцией через HTTP запросы. Позволяет расширить функциональность стандартного Manager API.
Проверка доступа
Проверка доступа
GET /api/index/check
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
context | String | Нет | Маршрутизация |
uniqueid | String | Нет | Уникальный идентификатор звонка |
Ответ в Json:
{
"data": {
"api_user": {
"uuid": "5485137a-3c6d-454e-9801-d3b875f7a5e0",
"name": "API",
"description": "",
"enable": "yes",
"api_key": "84f8fc34-82ad-46b0-b5f3-3cfd0462beeb",
"group_uuid": "4c343af6-4a91-469a-a717-f682e52c830f"
},
"access": {
"uuid": "0eb1bc58-b259-4c88-be02-a059d50cecc3",
"name": "incoming",
"description": "Входящая маршрутизация",
"group_uuid": "4c343af6-4a91-469a-a717-f682e52c830f"
},
"file": true
}
Получение файла mp3
GET /api/index/get_file_mp3
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
uniqueid | String | Нет | Уникальный идентификатор звонка |
Ответ:
Потоковое аудио
Получение файла wav
GET /api/index/get_file_wav
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
uniqueid | String | Нет | Уникальный идентификатор звонка |
Ответ:
Потоковое аудио
Получение статуса звонка
GET /api/index/status
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
calleridnum | String | Нет | АОН |
connectedlinenum | String | Нет | Соединенная линия |
context | String | Нет | Маршрутизация |
exten | String | Нет | Расширение |
Ответ в Json:
{
"data": [
{
"Event": "Status",
"Privilege": "Call",
"Channel": "PJSIP/user-00000011",
"ChannelState": "5",
"ChannelStateDesc": "Ringing",
"CallerIDNum": "109",
"CallerIDName": "",
"ConnectedLineNum": "110",
"ConnectedLineName": "",
"Language": "ru",
"AccountCode": "",
"Context": "outgoing",
"Exten": "109",
"Priority": "1",
"Uniqueid": "1711279935.61",
"Linkedid": "1711279935.60",
"Type": "PJSIP",
"DNID": "",
"EffectiveConnectedLineNum": "110",
"EffectiveConnectedLineName": "",
"TimeToHangup": "0",
"BridgeID": "",
"Application": "AppDial",
"Data": "(Outgoing Line)",
"Nativeformats": "(alaw|ulaw)",
"Readformat": "alaw",
"Readtrans": "",
"Writeformat": "alaw",
"Writetrans": "",
"Callgroup": "0",
"Pickupgroup": "0",
"Seconds": "5",
"Variable": "DIALEDPEERNUMBER=user/sip:user@1.1.1.1:5937",
"DIALEDPEERNUMBER": "user/sip:company@1.1.1.1:5937",
"ActionID": "66000f44594c1"
},
{
"Event": "Status",
"Privilege": "Call",
"Channel": "PJSIP/user",
"ChannelState": "4",
"ChannelStateDesc": "Ring",
"CallerIDNum": "110",
"CallerIDName": "",
"ConnectedLineNum": "109",
"ConnectedLineName": "",
"Language": "ru",
"AccountCode": "",
"Context": "outgoing",
"Exten": "109",
"Priority": "7",
"Uniqueid": "1711279935.60",
"Linkedid": "1711279935.60",
"Type": "PJSIP",
"DNID": "109",
"EffectiveConnectedLineNum": "109",
"EffectiveConnectedLineName": "",
"TimeToHangup": "0",
"BridgeID": "",
"Application": "Dial",
"Data": "PJSIP/user/sip:user@1.1.1.1:5937,60,tT",
"Nativeformats": "(alaw|ulaw)",
"Readformat": "alaw",
"Readtrans": "",
"Writeformat": "alaw",
"Writetrans": "",
"Callgroup": "0",
"Pickupgroup": "0",
"Seconds": "5",
"Variable": "SIPDOMAIN=pbx1.ru",
"RINGTIME_MS": "298",
"RINGTIME": "0",
"PROGRESSTIME_MS": "",
"PROGRESSTIME": "",
"DIALEDTIME_MS": "",
"DIALEDTIME": "",
"ANSWEREDTIME_MS": "",
"ANSWEREDTIME": "",
"DIALEDPEERNAME": "",
"DIALEDPEERNUMBER": "",
"DIALSTATUS": "",
"MIXMONITOR_FILENAME": "/var/spool/asterisk/monitor/1711279935.60.wav",
"SIPDOMAIN": "pbx1.ru",
"ActionID": "66000f44594c1"
}
]
}
Создание звонка
GET /api/index/originate
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
channel | String | Да | Канал |
exten | String | Да | Расширение |
context | String | Да | Маршрутизация |
priority | Integer | Да | Приоритет |
callerid | String | Нет | АОН |
variable | String | Нет | Переменные |
async | Boolean | Нет | Асинхронный ввод |
variable - позволяет передать несколько переменных через запятую. Например variable=file=123,idcall=456
Загрузка файла
POST /api/index/uploads
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
file | File | Да | Файл |
Пример загрузки файла:
$cFile = curl_file_create("/home/user/1.wav");
$post = array('file'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http:/192.168.0.2/pbx/api/index/uploads?api_key=11111111-2222-3333-4444-555555555555");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
Получение статистики звонков
POST /api/index/get_log_cdr
Параметр | Тип | Обязательный | Описание |
api_key | String | Да | API Ключ |
start | Datetime | Нет | Начало записей логов, если не указано берется начало дня. |
end | Datetime | Нет | Конец записей логов, если не указано берется конец дня. |
Ответ в Json:
{
"data": [
{
"accountcode": null,
"src": "79123456789",
"dst": "110",
"dcontext": "local-evolvex",
"clid": "\"Сергей\" <79123456789>",
"channel": "Local/110@local-evolvex-00000167;2",
"dstchannel": "PJSIP/user-110-evolvex-000002a0",
"lastapp": "Dial",
"lastdata": "PJSIP/user-110-evolvex/sip:user-110-evolvex@1.1.1.1:10110,60,t",
"start": "2024-10-30 09:59:15",
"answer": null,
"end": "2024-10-30 09:59:22",
"duration": "7",
"billsec": "0",
"disposition": "NO ANSWER",
"amaflags": "DOCUMENTATION",
"userfield": null,
"uniqueid": "1730267955.2409",
"linkedid": "1730267935.2405",
"peeraccount": null,
"sequence": "1923",
"source": null,
"destination": null,
"direction": null,
"group_uuid": null
}
]
}