Перейти к основному контенту

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
    }
  ]
}