> For the complete documentation index, see [llms.txt](https://help.axatel.by/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.axatel.by/administrirovanie-telefonnoi-stancii/api/obrabotka-faksov-servisom-aksatel.md).

# FAX API

![](/files/-MJ13IkJHMXTfrfV9Lzk)

## API управления

\
\
Внешние системы должны обращаться на адрес http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/{command}

* **fqdn\_ws\_role** - адрес URL роли WS (Веб-сервера управления)
* **{token}** - значение локального токена из созданного публичного канала
* **{command}** - команда управления (описаны ниже)

## Команды управления

### Загрузка файлов в домен

#### upload

![](/files/-MP0wCT3BJG3onLqRyrf)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/upload\
&#x20;**Метод** - POST\
&#x20;**Content-Type** - multipart/form-data\
&#x20;**Body** -  Form  \
\
В ответе json приходит результат загрузки файла. \
\
Успешный ответ содержит "resultcode": 0, "resultmsg": "OK". \
\
Пример успешного ответа:

```
{
"resultcode": 0,
"resultmsg": "OK",
"data":{
"upload":[
{
"name": "002.mp3",
"res": "ok"
}
]
}
}
```

Неуспешный ответ содержит код ошибки и ее описание.

&#x20;Пример неуспешного ответа:

```
{ 
 "resultcode": 1501,
  "resultmsg": "Not enough free disk space"
 }
```

&#x20;

### Получение списка файлов.&#x20;

#### list

![](/files/-MJ1gRLeeyf7xMj7ZdwG)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/list

Метод - GET

&#x20;В ответе json с полным списком файлов следующего вида

```
{
 "resultcode": 0,
  "resultmsg": "OK",
   "data": { "files": [ 
   {
    "file": {
     "name": "205-a10-02.zip"
    }
     },
      { 
      "file": {
       "name": "queue_wait_sgk.mp3" 
       }
      }
    ] 
  } 
}
```

### Скачивание файла в браузере.

#### download

![](/files/-MJ1gE3zOSd7J9jZtRAo)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/download?file={filename}

&#x20;Метод - GET\
{filename} - имя файла для скачивания

Пример успешного ответа:

![](/files/-MP0x1p6qKDyXIqN1nAk)

{% hint style="info" %}
Скачанный файл будет иметь название **download** и не будет иметь расширения.\
Чтобы открыть этот файл нужно будет изменить его расширение на указанное в запросе.
{% endhint %}

### &#x20;Удаление файла.

#### delete

![](/files/-MJ1glZ42RBd3jTsRVoX)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/delete?file={filename}<br>

Метод - 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

&#x20;Пример получения файла в Выражениях Сценария:

&#x20;makepath(syn\_domain(),"tokens/002.mp3")

* 002.mp3- имя файла
* tokens - константа имени каталога

Результат успешного выполнения:

```
{
"resultcode": 0,
"resultmsg": "OK"
}
```

### Отправка факса

#### sendfax

![](/files/-MMuFStN6iw5SKHNBxij)

http(s)://fqdn\_ws\_role/api/token/v1/{token}\
\
Метод - POST\
Content-Type - application/json

* **action** - действие, которое нужно совершить над списком факсов (sendfax — отправить)
* **recipient** - получатель факса
* voiceDocumentSID- <необязательный параметр> — идентификатор предварительно загруженного голосового файла
* **terminalId** - идентификатор телефонного номера, который будет назначен в качестве номера-отправителя
* **attachment** - идентификатор предварительно загруженного файла в формате TIF
* **sip** - ответ провайдера описан в соответствии с стандартом&#x20;

{% content-ref url="/pages/-MIpci293tLiPPzTIj\_\_" %}
[SIP ответы и их значения](/sip-otvety-i-ikh-znacheniya.md)
{% endcontent-ref %}

* **status** - статус отправки факса
* **error** - содержит описание ошибок при отправке факса: "файл не найден", "номер не соответствует маске"

Пример:

```
{
 "action":"sendfax",
 "recipient": 375291554499,
 "voiceDocumentSID":"002.mp3"
 "terminalId": 301
 "attachment":"123123.tif"
 }
 

```

&#x20;

Пример успешной отправки:

```

"sip_code": "200",
"success": "true",
"error": "null",
"status": "sent"
}
```

Допускается отправка сообщения через pop протокол.\
Для реализации требуется передавать сообщение с темой письма содержащий номер телефона и 1 приложением файла в формате TIF.\
На сервере предварительно настраивается маска с именем отправителя с которым разрешена отправка сообщения **user{mask}@fqdn**\
После отправки приходить ответное сообщение с статусом отправки на обратный e-mail адрес.

### Инициализация базы данных

#### init\_fax

![](/files/-MP0zHIz7VkxvK2bwrBW)

&#x20;

{% hint style="info" %}
Требуется выполнить для первично инициализации
{% endhint %}

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}\
&#x20;**Метод** - POST\
&#x20;**Content-Type** - application/json\
&#x20;**Body** -  Text &#x20;

* **action** - константа
* **domain** - имя текущего домена
* &#x20;**drop** - true = удалить если ранее было созданы схемы и таблицы, false = не удалять ничего

Пример:

```
{
  "action":"init_fax",  
  "domain":"domain.a1.axatel.by",    
  "drop":"true"    
}
```

Ответ успешного выполнения:

```
{
"received": true
}
```

### Запрос информации по факсам

#### fax\_history

![](/files/-MP10khjg7fpDv1taRZY)

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&#x20;
  * 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"
},
]
}
```

### Описание поля Result

**success** - успешная обработка\
**failed** - ошибка \
**receiving** - в процессе приемки \
**dialing** - набор номера \
**sending** - процесс отправки


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.axatel.by/administrirovanie-telefonnoi-stancii/api/obrabotka-faksov-servisom-aksatel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
