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
.
В ролевой модели DION SIP Server Admin API существует три роли:
Admin — Администратор SIP Server Admin API.
Operator — Обладает правами на получение информации и возможность совершать и завершать звонки.
Audito — Обладает правами на получение информации.
Запрос: | Описание: | Роль 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 | Имя комнаты (слаг) откуда необходимо совершить вызов; должно быть указано только одно из полей, слаг или номер. |
dion_room | string | optional | 7-значный номер комнаты, откуда необходимо совершить вызов; должно быть указано только одно из полей, слаг или номер. |
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"
}