Для AI-агентов: markdown этой страницы — /docs-content/voximplant-sip/list.md индекс документации — /llms.txt
Список подключений
GET /v1/voximplant-sip
Возвращает SIP-подключения офисных и облачных АТС, доступные ключу, с фильтрацией, сортировкой и постраничным выводом.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
filter (query) |
object | нет | — | Фильтр по полям подключения из таблицы «Поля ответа», кроме hasPassword и hasIncomingPassword. Оператор ставится перед именем поля: >, >=, ! — не равно, % — подстрока.Синтаксис фильтрации. Несколько значений одного поля — массивом, условия по разным полям объединяются через «И», filter[logic]=OR объединяет их через «ИЛИ». Пример: ?filter[type]=office, ?filter[configId][]=1&filter[configId][]=17 |
sort (query) |
string | нет | — | Поле сортировки — любое поле, по которому работает filter. Передаётся только вместе с order |
order (query) |
string | нет | — | Направление сортировки: ASC или DESC, регистр не важен. Передаётся только вместе с sort |
start (query) |
number | нет | 0 |
Сколько записей пропустить. Для следующей страницы передайте значение meta.next из предыдущего ответа |
Других параметров запрос не принимает.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/voximplant-sip?sort=configId&order=ASC" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/voximplant-sip?sort=configId&order=ASC" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/voximplant-sip?sort=configId&order=ASC', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data, meta } = await res.json()
for (const sip of data) {
console.log(sip.configId, sip.type, sip.title, sip.server)
}
if (meta.next !== undefined) {
console.log('Следующая страница: start =', meta.next)
}
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/voximplant-sip?sort=configId&order=ASC', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data, meta } = await res.json()
for (const sip of data) {
console.log(sip.configId, sip.type, sip.title, sip.server)
}
if (meta.next !== undefined) {
console.log('Следующая страница: start =', meta.next)
}
Поля ответа
Пароли в ответ не попадают — вместо них приходят признаки hasPassword и hasIncomingPassword.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успехе |
data |
array | Подключения. Пустой массив, если под фильтр ничего не попало |
data[].configId |
string | ID подключения |
data[].type |
string | Тип АТС: office — офисная, cloud — облачная |
data[].title |
string | Название подключения |
data[].server |
string | Адрес SIP-сервера |
data[].login |
string | Логин на SIP-сервере |
data[].hasPassword |
boolean | Задан ли пароль подключения |
data[].authUser |
string | null | Имя пользователя для авторизации на SIP-сервере. null, если не задано |
data[].outboundProxy |
string | null | Адрес прокси-сервера для исходящих вызовов. null, если не задан |
data[].detectLineNumber |
string | Определять ли номер линии по SIP-заголовкам входящего вызова: N — не определять |
data[].lineDetectHeaderOrder |
string | SIP-заголовки, по которым определяется номер линии, в порядке проверки, например diversion;to |
data[].registrationStatusCode |
string | null | Код результата регистрации на SIP-сервере, например 502, когда сервер не найден |
data[].registrationErrorMessage |
string | null | Текст ошибки регистрации. null, если ошибки нет |
data[].regId |
string | Только облачная АТС: ID регистрации на SIP-сервере |
data[].incomingServer |
string | Только офисная АТС: адрес сервера для входящих вызовов, его выдаёт Битрикс24 |
data[].incomingLogin |
string | Только офисная АТС: логин для входящих вызовов, его выдаёт Битрикс24 |
data[].hasIncomingPassword |
boolean | Только офисная АТС: задан ли пароль для входящих вызовов |
meta.total |
number | Сколько подключений попало под фильтр. При пустой выборке meta приходит пустым объектом |
meta.next |
number | Значение start для следующей страницы. Приходит, только когда следующая страница есть |
Пример ответа
{
"success": true,
"data": [
{
"type": "cloud",
"configId": "1",
"regId": "133788",
"server": "pbx.example.com",
"login": "cloud-line",
"hasPassword": true,
"authUser": "cloud-user",
"outboundProxy": "proxy.example.com",
"detectLineNumber": "N",
"lineDetectHeaderOrder": "diversion;to",
"registrationStatusCode": "502",
"registrationErrorMessage": "Unable to resolve hostname",
"title": "Облачная АТС"
},
{
"type": "office",
"configId": "17",
"server": "sip.example.com",
"login": "office-line",
"hasPassword": true,
"incomingServer": "ip.b24-1234-1234567890.bitrixphone.com",
"incomingLogin": "sip17",
"hasIncomingPassword": true,
"authUser": null,
"outboundProxy": null,
"detectLineNumber": "N",
"lineDetectHeaderOrder": "diversion;to",
"registrationStatusCode": "0",
"registrationErrorMessage": null,
"title": "Офисная АТС"
}
],
"meta": {
"total": 2
}
}
Пример ответа при ошибке
400 — фильтр по полю пароля:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "filter may use only noncredential SIP fields and logical groups"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
Передан параметр, кроме filter, sort, order, start |
| 400 | INVALID_PARAMS |
filter — не объект, содержит поле пароля, путь через точку или поле, которого нет в ответе |
| 400 | INVALID_PARAMS |
sort и order переданы не вместе, или order — не ASC и не DESC |
| 400 | INVALID_PARAMS |
sort называет поле пароля или поле, которого нет в ответе |
| 400 | INVALID_PARAMS |
start — не целое неотрицательное число |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Платформа не знает такой строки ключа: опечатка, обрезанное значение или удалённый ключ |
| 401 | TOKEN_MISSING |
У ключа нет доступа к порталу: у личного ключа нет вебхука портала, ключу приложения не передан Authorization: Bearer с токеном сессии |
| 403 | SCOPE_DENIED |
У ключа нет скоупа telephony |
| 403 | BITRIX_ACCESS_DENIED |
Битрикс24 отказал в доступе — разбор причин |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил запрос, причина — в error.message |
| 429 | RATE_LIMITED |
Превышена частота запросов |
| 429 | QUEUE_OVERFLOW |
Очередь запросов к порталу переполнена, запрос отклонён без ожидания. Задержку подсказывает заголовок Retry-After |
| 429 | QUEUE_TIMEOUT |
Запрос не дождался очереди к порталу и не был отправлен в Битрикс24. Задержку подсказывает заголовок Retry-After |
| 502 | BITRIX_UNAVAILABLE |
Битрикс24 недоступен |
| 503 | BITRIX_TIMEOUT |
Битрикс24 не ответил вовремя |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Видны только подключения своего приложения. Список содержит подключения, созданные тем же приложением Битрикс24, что и ключ: ключ приложения видит подключения своего приложения, личный ключ — подключения, созданные через вебхуки портала. Подключения других приложений в список не попадают.
- Имена полей в верхнем регистре.
filterиsortпринимают имена полей и в верхнем регистре с подчёркиванием:filter[CONFIG_ID]=1,sort=CONFIG_ID.