FAX API
Обработка факса сервисом Аксател

Внешние системы должны обращаться на адрес http(s)://fqdn_ws_role/api/token/v1/{token}/files/{command}
- fqdn_ws_role - адрес URL роли WS (Веб-сервера управления)
- {token} - значение локального токена из созданного публичного канала
- {command} - команда управления (описаны ниже)

http(s)://fqdn_ws_role/api/token/v1/{token}/files/upload
Метод - POST
Content-Type - multipart/form-data
Body - Form
В ответе json приходит результат загрузки файла.
Успешный ответ содержит "resultcode": 0, "resultmsg": "OK".
Пример успешного ответа:
{
"resultcode": 0,
"resultmsg": "OK",
"data":{
"upload":[
{
"name": "002.mp3",
"res": "ok"
}
]
}
}
Неуспешный ответ содержит код ошибки и ее описание.
Пример неуспешного ответа:
{
"resultcode": 1501,
"resultmsg": "Not enough free disk space"
}

http(s)://fqdn_ws_role/api/token/v1/{token}/files/list
Метод - GET
В ответе json с полным списком файлов следующего вида
{
"resultcode": 0,
"resultmsg": "OK",
"data": { "files": [
{
"file": {
"name": "205-a10-02.zip"
}
},
{
"file": {
"name": "queue_wait_sgk.mp3"
}
}
]
}
}

http(s)://fqdn_ws_role/api/token/v1/{token}/files/download?file={filename}
Метод - GET
{filename} - имя файла для скачивания
Пример успешного ответа:

Скачанный файл будет иметь название download и не будет иметь расширения.
Чтобы открыть этот файл нужно будет изменить его расширение на указанное в запросе.

http(s)://fqdn_ws_role/api/token/v1/{token}/files/delete?file={filename}
Метод - GET
{filename} - имя файла для удаления
Хранение файла и получение доступа из сценариев Файл хранится в директории fsync домена в поддиректории /data/tokens/.
Пример .../syncfolder/domains/domain.demo.axatell/data/tokens/205-a10-02.zip
Для получения доступа к файлу в IVR/SVC сценарии можно через формирования пути к файлу следующего вида:
путь = syn_domain()
файл = tokens/205-a10-02.zip
Пример получения файла в Выражениях Сценария:
makepath(syn_domain(),"tokens/002.mp3")
- 002.mp3- имя файла
- tokens - константа имени каталога
Результат успешного выполнения:
{
"resultcode": 0,
"resultmsg": "OK"
}

http(s)://fqdn_ws_role/api/token/v1/{token}
Метод - POST
Content-Type - application/json
- action - действие, которое нужно совершить над списком факсов (sendfax — отправить)
- recipient - получатель факса
- voiceDocumentSID- <необязательный параметр> — идентификатор предварительно загруженного голосового файла
- terminalId - идентификатор телефонного номера, который будет назначен в качестве номера-отправителя
- attachment - идентификатор предварительно загруженного файла в формате TIF
- sip - ответ провайдера описан в соответствии с стандартом
- status - статус отправки факса
- error - содержит описание ошибок при отправке факса: "файл не найден", "номер не соответствует маске"
Пример:
{
"action":"sendfax",
"recipient": 375291554499,
"voiceDocumentSID":"002.mp3"
"terminalId": 301
"attachment":"123123.tif"
}
Пример успешной отправки:
"sip_code": "200",
"success": "true",
"error": "null",
"status": "sent"
}
Допускается отправка сообщения через pop протокол.
Для реализации требуется передавать сообщение с темой письма содержащий номер телефона и 1 приложением файла в формате TIF.
На сервере предварительно настраивается маска с именем отправителя с которым разрешена отправка сообщения user{mask}@fqdn
После отправки приходить ответное сообщение с статусом отправки на обратный e-mail адрес.

Требуется выполнить для первично инициализации
http(s)://fqdn_ws_role/api/token/v1/{token}
Метод - POST
Content-Type - application/json
Body - Text
- action - константа
- domain - имя текущего домена
- drop - true = удалить если ранее было созданы схемы и таблицы, false = не удалять ничего
Пример:
{
"action":"init_fax",
"domain":"domain.a1.axatel.by",
"drop":"true"
}
Ответ успешного выполнения:
{
"received": true
}

http(s)://fqdn_ws_role/api/token/v1/{token}
Метод - POST
Content-Type - application/json
Body:
- action - константа
- "type- тип incoming | outgoing
- from_dt:"2020-12-16 20:00", //время UTC начала списка. Может быть дата или дата-время
- till_dt- время UTC окончания списка. Может быть дата или дата-время
- fields- список полей, которые выводить, можно указывать через запятую.
- * - вывести все поля
- id
- type
- remotenum
- start_dt
- stop_dt
- result
- url
Пример запроса:
{
"action":"history",
"type":"outgoing",
"from_dt":"2020-12-16 20:00",
"till_dt":"2020-12-20 23:30",
"fields":"*"
}
Пример успешного вывода:
{
"data":[
{
"id": "940fbbf2-0176-81d6-990b-005056011d6c",
"type": "outgoing",
"remotenum": "3880456",
"start_dt": "2020-12-20T20:28:13.84",
"stop_dt": "2020-12-20T20:28:30.38",
"result": "success",
"url": "https://domain.a1.axatel.by/callrecords/domains/demo.a1.axatel.by/data/fax/outgoing/mtu1otezoty1nw53d5.tiff"
},
]
}
success - успешная обработка
failed - ошибка
receiving - в процессе прие мки
dialing - набор номера
sending - процесс отправки
Last modified 2yr ago