DION SIP Server Admin API — это инструмент для управления настройками SIP модуля DION, который позволяет управлять настройками компонента DION SIP Server с помощью REST API, а также просматривать состояние SIP Trunks, информацию об активных и завершенных SIP сессиях и при необходимости управлять ими.
Доступ к вызову API функций осуществляется с помощью механизма авторизации пользователей Basic Auth.

После первого входа необходимо изменить пароль для пользователя admin в соответствии с парольной политикой. Если оставить пароль по умолчанию, доступ к остальным функциям будет запрещен.
Данное правило сохраняется в для всех новых пользователей, при первом входе необходимо изменить первоначальный пароль.
По умолчанию для SIP Server Admin API установлена пара логин/пароль: admin/dion
http://<SIP_Server_address>:8443/api/v1/docs/index.html
Для изменения пароля пользователя, необходимо авторизоваться с первоначальными учетными данными и сделать запрос на смену пароля пользователя:
PUT /users/{user_id}/change_password
user_id — ID пользователя.
payload — строка с новым паролем.
С помощью данного запроса пользователь может изменить только свой собственный пароль.
ID пользователя admin — 00000000-0000-0000-0000-000000000000.

.png)
В ролевой модели DION SIP Server Admin API существует три роли:
| Запрос: | Описание: | Роль Admin | Роль Operator | Роль Auditor |
|---|---|---|---|---|
| Запросы /users | ||||
| GET /users | Получить список пользователей. |
+ |
+ |
+ |
| GET /users/{user_id} | Получить информацию о пользователе. |
+ |
+ |
+ |
| POST /users | Создать пользователя. |
+ |
– |
– |
| PUT /users/{user_id} | Изменить пользователя. |
+ |
– |
– |
| PUT /users/{user_id}/change_password | Изменить пароль пользователя (применимо только к своему пользователю). |
+ |
+ |
+ |
| DELETE /users/{user_id} | Удалить пользователя. |
+ |
– |
– |
| Запросы /trunks | ||||
| GET /trunks | Получить список SIP Trunks. |
+ |
+ |
+ |
| GET /trunks/{trunk_id} | Получить информацию о SIP Trunk. |
+ |
+ |
+ |
| GET /trunks/{trunk_id}/status | Получить информацию о статусе SIP Trunk. |
+ |
+ |
+ |
| POST /trunks | Создать SIP Trunk. |
+ |
– |
– |
| PUT /trunks/{trunk_id} | Изменить SIP Trunk. |
+ |
– |
– |
| DELETE /trunks/{trunk_id} | Удалить SIP Trunk. |
+ |
– |
– |
| Запросы /call_profiles | ||||
| GET /call_profiles | Получить список профилей вызовов. |
+ |
+ |
+ |
| GET /call_profiles/{call_profile_id} | Получить информацию о профиле вызовов. |
+ |
+ |
+ |
| POST /call_profiles | Создать профиль вызовов. |
+ |
– |
– |
| PUT /call_profiles/{call_profile_id} | Изменить профиль вызовов. |
+ |
– |
– |
| DELETE /call_profiles/{call_profile_id} | Удалить профиль вызовов. |
+ |
– |
– |
| Запросы /calls | ||||
| GET /calls | Получить список вызовов. |
+ |
+ |
+ |
| GET /calls/{call_id} | Получить информацию о вызове. |
+ |
+ |
+ |
| POST /calls | Совершить вызов. |
+ |
+ |
– |
| DELETE /calls/{call_id} | Завершить вызов. |
+ |
+ |
– |
| Запросы /calls_history | ||||
| GET /calls_history | Получить список завершенных вызовов. |
+ |
+ |
+ |
| GET /calls_history/{call_id} | Получить информацию о завершенном вызове. |
+ |
+ |
+ |
По умолчанию SIP-сервер для доступа к API использует протокол HTTP. Для обеспечения безопасного соединения по HTTPS необходимо сгенерировать сертификат для SIP-сервера и внести изменения в файл конфигурации /app/dion/sipserver/sipserver.yml.
Пример конфигурации:
...
http:
swaggerHost: ""
localHost: ""
publicHost: ""
localPort: 8443
publicPort: 9092
useTLS: true
httpsClientCert: "/etc/ssl/certs/SIP-server.crt"
httpsClientKey: "/etc/ssl/private/SIP-server.key"
...
Просмотр информации, создание, изменение и удаление УЗ пользователей. УЗ пользователей применяются для доступа к функциям DION SIP Server Admin API и содержат в себе, в том числе, роль пользователя. В зависимости от роли, пользователь может иметь или не иметь доступ к определенным функциям API. Кроме того, пользователи с ролью Admin могут изменять параметры других пользователей, в том числе заблокировать/разблокировать пользователя, сбросить пароль или поменять роль.
В DION SIP Server Admin API всегда существует УЗ пользователя по умолчанию name: admin id: 00000000-0000-0000-0000-000000000000, который является администратором системы с полным набором прав доступа. УЗ пользователя по умолчанию нельзя изменить или удалить.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/users
GET /users
Запрос на получение списка пользователей.
Ответ на запрос содержит описание всех пользователей в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"users": [
{
"id": "string",
"name": "string",
"mail": "string",
"role": "string",
"password_expires": "string",
"enabled": "boolean"
}
],
"displayed_records": "integer",
"total_records": "integer"
}
Endpoint: POST http://<IP_Address_SIP_Server>/api/v1/users
POST /users
Запрос на создание УЗ пользователя.
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| enabled | true | false | mandatory | Состояние пользователя (активен/заблокирован). |
| string | mandatory | Адрес электронной почты пользователя. | |
| name | string | mandatory | Имя пользователя; должно состоять только из буквенно-цифровых символов. |
| password | string | mandatory | Начальный пароль пользователя, под которым он сможет осуществить первый вход для смены пароля. |
| role | admin | operator | auditor | mandatory | Роль, с которой пользователь может осуществлять работу. |
Схема параметров в теле запроса:
{
"enabled": "boolean",
"mail": "string",
"name": "string",
"password": "string",
"role": "string"
}
Пример параметров в теле запроса:
{
"name": "user",
"mail": "user@mail.ru",
"role": "admin",
"password": "1",
"enabled": true
}
Ответ на запрос содержит описание созданного пользователя в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"id": "string",
"name": "string",
"mail": "string",
"role": "string"",
"password_expires": "string",
"enabled": "boolean"
}
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/users/:user_id
GET /users/{user_id}
Запрос на получение информации о пользователи по его ID.
Path-параметры запроса:
| Параметр | Тип/Значение | Required | Описание |
| user_id | string | mandatory | ID пользователя в SIP Admin server API |
Ответ на запрос содержит описание пользователя с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"name": "string",
"mail": "string",
"role": "string",
"password": "string",
"enabled": "boolean"
}
Endpoint: PUT http://<IP_Address_SIP_Server>/api/v1/users/:user_id
PUT /users/{user_id}
Запрос на изменение данных пользователя по его ID.
Path-параметры запроса:
| Параметр | Тип/Значение | Required | Описание |
| user_id | string | mandatory | ID пользователя в SIP Admin server API |
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| enabled | true | false | optional | Состояние пользователя (активен/заблокирован). |
| string | optional | Адрес электронной почты пользователя. | |
| name | string | optional | Имя пользователя, должно состоять только из буквенно-цифровых символов. |
| password | string | optional | Начальный пароль пользователя, под которым он сможет осуществить первый вход для смены пароля. |
| role | admin | operator | auditor | optional | Роль, с которой пользователь может осуществлять работу. |
В случае, если какие-либо из параметров не указаны, эти параметры не будут обновлены и сохранят старое значение.
Схема параметров в теле запроса:
{
"enabled": "boolean",
"mail": "string",
"name": "string",
"password": "string",
"role": "string"
}
Пример параметров в теле запроса:
{
"name": "user",
"mail": "user@mail.ru",
"role": "admin",
"password": "1",
"enabled": true
}
Ответ на запрос содержит описание обновленного пользователя в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"enabled": true,
"id": "string",
"mail": "string",
"name": "string",
"password_expires": "string",
"role": "string"
}
Endpoint: DELETE http://<IP_Address_SIP_Server>/api/v1/users/:user_id
DELETE /users/{user_id}
Запрос на удаление пользователя по его ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| user_id | string | mandatory | ID пользователя в SIP Admin server API |
Ответ на запрос содержит сообщение о подтверждении удаления пользователя в успешном случае или текстовое описание ошибки в неуспешном.
Endpoint: PUT http://<IP_Address_SIP_Server>/api/v1/users/:user_id/change_password
PUT /users/{user_id}/change_password
Запрос на изменение пароля пользователя по его ID. Данный запрос предназначен для изменения пароля пользователя, в том числе при первом входе или в случае, если срок действия пароля истек. В двух этих случаях доступ ко всем другим запросам становится недоступным до тех пор, пока пароль не будет изменен с помощью данного запроса.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| user_id | string | mandatory | ID пользователя в SIP Admin server API |
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| password | string | mandatory | Новый пароль пользователя |
Схема параметров в теле запроса:
{
"password": "string"
}
SIP Trunk — это виртуальное многоканальное соединение для передачи данных согласно SIP-протоколу, построенное между телефонными системами.
Запросы /trunks позволяют создавать, изменять, удалять и просматривать информации о SIP Trunks. SIP Trunk состоит из списка адресов (IP-адрес, порт, протокол), с которых или на которые осуществляются вызовы, а также привязанного к SIP Trunk профиля вызовов. Привязанный профиль вызовов применяется ко всем вызовам, поступающим к SIP Trunk или от SIP Trunk.
В системе всегда существует SIP Trunk по умолчанию name: default id: 00000000-0000-0000-0000-000000000000, который применяется для всех вызовов, которые не попадают ни под один из существующих SIP Trunk. Для SIP Trunk по умолчанию можно изменять профиль вызова в зависимости от потребностей, но нельзя удалить или переименовать его. SIP Trunk по умолчанию не содержит списка адресов.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/trunks
GET /trunks
Запрос на получение списка SIP Trunks.
Ответ на запрос содержит описание всех SIP Trunks в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"displayed_records": 0,
"total_records": 0,
"trunks": [
{
"call_profile_id": "string",
"id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": 0,
"status": "string",
"transport": "string"
}
]
}
]
}
Endpoint: POST http://<IP_Address_SIP_Server>/api/v1/trunks
POST /trunks
Запрос на создание нового SIP Trunk.
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| name | string | mandatory | Имя SIP Trunk, должно состоять только из буквенно-цифровых символов. |
| call_profile_id | string | mandatory | Существующий ID профиля вызова, используемый для согласования медиапараметров вызовов, проходящих через SIP Trunk. |
| routes | mandatory | Массив маршрутов SIP Trunk. | |
| address | string | mandatory | Параметр маршрута — IP-адрес удаленной стороны. |
| port | integer | mandatory | Параметр маршрута — порт удаленной стороны. |
| transport | TCP | UDP | mandatory | Параметр маршрута — протокол, используемый для связи с удаленной стороной |
Схема параметров в теле запроса:
{
"call_profile_id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": "integer",
"transport": "string"
}
]
}
Пример параметров в теле запроса:
{
"name": "trunk",
"routes": [
{
"address": "1.1.1.1",
"port": 5060,
"transport": "TCP"
}
],
"call_profile_id": "00000000-0000-0000-0000-000000000000"
}
Ответ на запрос содержит описание созданного SIP Trunk в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"call_profile_id": "string",
"id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": "integer",
"status": "string",
"transport": "string"
}
]
}
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/trunks/:trunk_id
GET /trunks/{trunk_id}
Запрос на получение информации о SIP Trunk по его ID.
Path-параметры запроса
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| trunk_id | string | mandatory | ID транка |
Ответ на запрос содержит описание SIP Trunk с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"call_profile_id": "string",
"id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": 0,
"status": "string",
"transport": "string"
}
]
}
Endpoint: PUT http://<IP_Address_SIP_Server>/api/v1/trunks/:trunk_id
PUT /trunks/{trunk_id}
Запрос на изменение SIP Tunk по ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| trunk_id | string | mandatory | ID транка |
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| name | string | optional | Имя SIP Trunk; должно состоять только из буквенно-цифровых символов. |
| call_profile_id | string | optional | Существующий ID профиля вызова, используемый для согласования медиапараметров вызовов, проходящих через SIP Trunk. |
| routes | optional | Массив маршрутов SIP Trunk. | |
| address | string | optional | Параметр маршрута — IP-адрес удаленной стороны. |
| port | integer | optional | Параметр маршрута — порт удаленной стороны. |
| transport | TCP | UDP | optional | Параметр маршрута — протокол, используемый для связи с удаленной стороной |
В случае, если какие-либо из параметров не указаны, эти параметры не будут обновлены и сохранят старое значение. Если обновляется поле routes, при обновлении необходимо указывать полный список всех требуемых маршрутов.
Схема параметров в теле запроса:
{
"call_profile_id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": 0,
"transport": "string"
}
]
}
Пример параметров в теле запроса:
{
"name": "trunk",
"routes": [
{
"address": "1.1.1.1",
"port": 5060,
"transport": "TCP"
}
],
"call_profile_id": "00000000-0000-0000-0000-000000000000"
}
Ответ на запрос содержит описание обновленного SIP Trunk в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"call_profile_id": "string",
"id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": 0,
"status": "string",
"transport": "string"
}
]
}
Endpoint: DELETE http://<IP_Address_SIP_Server>/api/v1/trunks/:trunk_id
DELETE /trunks/{trunk_id}
Запрос на удаление SIP Trunk с соответствующем ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| trunk_id | string | mandatory | ID транка |
Ответ на запрос содержит сообщение о подтверждении удаления SIP Trunk в успешном случае или текстовое описание ошибки в неуспешном.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/trunks/:trunk_id/status
GET /trunks/{trunk_id}/status
Запрос на получение статуса SIP Trunk по его ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| trunk_id | string | mandatory | ID транка |
Ответ на запрос содержит описание статуса SIP Tunk и его маршрутов с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"call_profile_id": "string",
"id": "string",
"name": "string",
"routes": [
{
"address": "string",
"port": 0,
"status": "string",
"transport": "string"
}
]
}
Создание, изменение, удаление и просмотр информации о профилях вызовов. Профили вызовов применяются для SIP Trunks и содержат в себе настройки медиа для входящих и исходящих вызовов этих SIP Trunks.
Один профиль вызовов можно применять для нескольких SIP Trunks. В системе всегда существует профиль по умолчанию name: default id: 00000000-0000-0000-0000-000000000000, который применяется как минимум к SIP Trunk по умолчанию (который принимает и отправляет все вызовы если не настроены иные SIP Trunk). Профиль по умолчанию можно изменять в зависимости от потребностей, но нельзя удалить или переименовать.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/call_profiles
GET /call_profiles
Запрос для получения списка профилей вызовов.
Ответ на запрос содержит описание всех профилей в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"call_profiles": [
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"id": "string",
"name": "string",
"video": [
"string"
]
}
],
"displayed_records": 0,
"total_records": 0
}
Endpoint: POST http://<IP_Address_SIP_Server>/api/v1/call_profiles
POST /call_profiles
Запрос на создание нового профиля вызовов.
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| name | string | mandatory | Имя профиля; должно состоять только из буквенно-цифровых символов. |
| dual_video | string | mandatory | Поддержка режима второго канала контента (презентации) для исходящего видео. |
| bandwidth | integer | mandatory | Скорость соединения — значение от 64 до 4096 (измеряется в Kbps). |
| audio | g711a | g711u | g722 | opus | mandatory | Аудиокодеки — массив строк. |
| video | h263 | h263p | h264 | mandatory | Видеокодеки для основного канала — массив строк. |
| content | h263 | h263p | h264 | mandatory | Видеокодеки для дополнительного канала — массив строк. |
Схема параметров в теле запроса:
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"name": "string",
"video": [
"string"
]
}
При составлении массива кодеков необходимо прописывать их в порядке приоритета использования во время вызова.
Списки поддерживаемых видео кодеков для основного и дополнительного каналов не являются обязательными: при их отсутствии звонки будут осуществляться в режиме audio-only.
Пример параметров в теле запроса:
{
"name": "callProfile",
"dual_video": true,
"bandwidth": 1920,
"audio": ["opus", "g722", "g711u", "g711a"],
"video": ["h264", "h263p", "h263"],
"content": ["h264", "h263p", "h263"]
}
Ответ на запрос содержит описание созданного профиля в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"id": "string",
"name": "string",
"video": [
"string"
]
}
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/call_profiles/:call_profile_id
GET /call_profiles/{call_profile_id}
Запрос на получение информации о профиле вызова.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| call_profile_id | string | mandatory | ID профиля вызовов |
Ответ на запрос содержит описание профиля с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"id": "string",
"name": "string",
"video": [
"string"
]
}
Endpoint: PUT http://<IP_Address_SIP_Server>/api/v1/call_profiles/:call_profile_id
PUT /call_profiles/{call_profile_id}
Запрос на обновление информации о профиле вызова.
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| name | string | optional | Имя профиля; должно состоять только из буквенно-цифровых символов. |
| dual_video | string | optional | Поддержка режима второго канала контента (презентации) для исходящего видео. |
| bandwidth | integer | optional | Скорость соединения — значение от 64 до 4096 (измеряется в Kbps). |
| audio | g711a | g711u | g722 | opus | optional | Аудиокодеки — массив строк. |
| video | h263 | h263p | h264 | optional | Видеокодеки для основного канала — массив строк. |
| content | h263 | h263p | h264 | optional | Видеокодеки для дополнительного канала — массив строк. |
Схема параметров в теле запроса:
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"name": "string",
"video": [
"string"
]
}
При составлении массива кодеков необходимо прописывать их в порядке приоритета использования во время вызова.
В случае, если какие-либо из параметров (кроме video и content) не указаны, эти параметры не будут обновлены и сохранят старое значение. Параметры video и content, при их отсутствии, будут перезаписаны пустыми значениями (удаление при обновлении), в таком случае звонки с применением данного профиля будут осуществляться в режиме audio-only.
Пример параметров в теле запроса:
{
"name": "callProfile",
"dual_video": true,
"bandwidth": 1920,
"audio": ["opus", "g722", "g711u", "g711a"],
"video": ["h264", "h263p", "h263"],
"content": ["h264", "h263p", "h263"]
}
Ответ на запрос содержит описание обновленного профиля в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": [
"string"
],
"bandwidth": 0,
"content": [
"string"
],
"dual_video": true,
"id": "string",
"name": "string",
"video": [
"string"
]
}
Endpoint: DELETE http://<IP_Address_SIP_Server>/api/v1/call_profiles/:call_profile_id
DELETE /call_profiles/{call_profile_id}
Запрос на удаление профиля вызова по ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| call_profile_id | string | mandatory | ID профиля вызовов |
Ответ на запрос содержит сообщение о подтверждении удаления профиля в успешном случае или текстовое описание ошибки в неуспешном.
Просмотр состояния активных вызовов и их параметров, создание новых и завершение текущих вызовов через API.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/calls
GET /calls
Запрос на получение списка активных вызовов.
Ответ на запрос содержит описание всех активных вызовов в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"calls": [
{
"dion_room": "string",
"dion_slug": "string",
"duration": "string",
"end": "string",
"id": "string",
"remote": "string",
"start": "string",
"status": "string"
}
],
"displayed_records": 0,
"total_records": 0
}
Endpoint: POST http://<IP_Address_SIP_Server>/api/v1/calls
POST /calls
Запрос на создание нового вызова.
Параметры тела запроса:
| Параметр | Тип/Значение | Required | Описание |
| dion_slug | string | optional | Имя комнаты (slug) откуда необходимо совершить вызов; должно быть указано только одно из полей, slug или номер. |
| dion_room | string | optional | Семизначный номер комнаты, откуда необходимо совершить вызов; должно быть указано только одно из полей, slug или номер. |
| remote | string | sip:name@ip:port | mandatory | Адрес SIP URI удаленной стороны, которую необходимо вызвать. |
| bandwidth | integer | optional | Скорость соединения — значение от 64 до 4096 (измеряется в Kbps); поле может быть опущено (в этом случае будет применена скорость соединения указанного SIP Trunk или SIP Trunk по умолчанию, если SIP Trunk не указан). |
| trunk_id | string | optional | ID SIP Trunk для совершения вызова; поле может быть опущено (в этом случае звонок будет направлен непосредственно на введенный адрес remote с параметрами медиапрофиля SIP Trunk по умолчанию) или указано только одно из полей (в этом случае звонок будет направлен в указанный SIP Trunk с параметрами медиа, указанными в профиле вызовов SIP Trunk). |
| trunk_name | string | optional | Имя SIP Trunk для совершения вызова; поле может быть опущено (в этом случае звонок будет направлен непосредственно на введенный адрес remote с параметрами медиа профиля SIP Trunk по умолчанию) или указано только одно из полей (в этом случае звонок будет направлен в указанный SIP Trunk с параметрами медиа, указанными в профиле вызовов SIP Trunk). |
Схема параметров в теле запроса:
{
"bandwidth": 0,
"dion_room": "strings",
"dion_slug": "string",
"remote": "string",
"trunk_id": "string",
"trunk_name": "string"
}
Пример параметров в теле запроса:
{
"dion_slug": "user-room",
"dion_room": "1234567",
"remote": "sip:user@1.1.1.1",
"bandwidth": 1920,
"trunk_id": "00000000-0000-0000-0000-000000000000",
"trunk_name": "default"
}
Ответ на запрос содержит описание созданного вызова в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": "string",
"bandwidth": 0,
"content": "string",
"dion_room": "string",
"dion_slug": "string",
"direction": "string",
"duration": "string",
"end": "string",
"id": "string",
"remote": "string",
"start": "string",
"status": "string",
"trunk_address": "string",
"trunk_id": "string",
"trunk_name": "string",
"video": "string"
}
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/calls/:call_id
GET /calls/{call_id}
Запрос на получение информации об активном вызове по ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| call_id | string | mandatory | ID вызова |
Ответ на запрос содержит описание активного вызова с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": "string",
"bandwidth": 0,
"content": "string",
"dion_room": "string",
"dion_slug": "string",
"direction": "string",
"duration": "string",
"end": "string",
"id": "string",
"remote": "string",
"start": "string",
"status": "string",
"trunk_address": "string",
"trunk_id": "string",
"trunk_name": "string",
"video": "string"
}
Endpoint: DELETE http://<IP_Address_SIP_Server>/api/v1/calls/:call_id
DELETE /calls/{call_id}
Запрос на завершение вызова по ID.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| call_id | string | mandatory | ID вызова |
Ответ на запрос содержит сообщение о подтверждении удаления вызова в успешном случае или текстовое описание ошибки в неуспешном.
Просмотр информации о завершенных вызовах и их параметрах. В истории хранится до 1000 последних совершенных вызовов.
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/calls_history
GET /calls_history
Запрос на получение списка завершенных вызовов.
Ответ на запрос содержит описание всех завершенных вызовов в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"calls": [
{
"dion_room": "string",
"dion_slug": "string",
"duration": "string",
"end": "string",
"id": "string",
"remote": "string",
"start": "string",
"status": "string"
}
],
"displayed_records": 0,
"total_records": 0
}
Endpoint: GET http://<IP_Address_SIP_Server>/api/v1/calls_history/:call_id
GET /calls_history/{call_id}
Запрос на получение информации о завершенном вызове.
Path-параметры запроса:
| Название параметра | Тип поля | Обязательность заполнения | Описание |
| call_id | string | mandatory | ID вызова |
Ответ на запрос содержит описание завершенного вызова с указанным в запросе ID в формате JSON в успешном случае или текстовое описание ошибки в неуспешном.
Схема параметров ответа:
{
"audio": "string",
"bandwidth": 0,
"content": "string",
"dion_room": "string",
"dion_slug": "string",
"direction": "string",
"duration": "string",
"end": "string",
"id": "string",
"remote": "string",
"start": "string",
"status": "string",
"trunk_address": "string",
"trunk_id": "string",
"trunk_name": "string",
"video": "string"
}