Для AI-агентов: markdown этой страницы — /docs-content/voximplant-sip/create.md индекс документации — /llms.txt

Создать подключение

POST /v1/voximplant-sip

Создаёт SIP-подключение офисной или облачной АТС, через которое портал принимает и совершает звонки. Тело — плоский JSON-объект.

Поля запроса (body)

Поле Тип Обяз. Описание
server string да Адрес SIP-сервера
login string да Логин на SIP-сервере
password string нет Пароль подключения. В ответах не возвращается — вместо него приходит признак hasPassword
type string нет Тип АТС: office — офисная, cloud — облачная. По умолчанию cloud. После создания тип не меняется
title string нет Название подключения

Все значения — строки. Других полей тело не принимает.

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/voximplant-sip" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "office",
    "title": "Офисная АТС",
    "server": "sip.example.com",
    "login": "office-line",
    "password": "EXAMPLE_SIP_PASSWORD"
  }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/voximplant-sip" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "office",
    "title": "Офисная АТС",
    "server": "sip.example.com",
    "login": "office-line",
    "password": "EXAMPLE_SIP_PASSWORD"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/voximplant-sip', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    type: 'office',
    title: 'Офисная АТС',
    server: 'sip.example.com',
    login: 'office-line',
    password: 'EXAMPLE_SIP_PASSWORD',
  }),
})

const { success, data } = await res.json()
if (success) {
  console.log('Создано подключение', data.configId, 'входящий сервер:', data.incomingServer)
}

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/voximplant-sip', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    type: 'office',
    title: 'Офисная АТС',
    server: 'sip.example.com',
    login: 'office-line',
    password: 'EXAMPLE_SIP_PASSWORD',
  }),
})

const { success, data } = await res.json()
if (success) {
  console.log('Создано подключение', data.configId, 'входящий сервер:', data.incomingServer)
}

Поля ответа

Успешный ответ приходит с кодом 201. Пароли в ответ не попадают — вместо них приходят признаки hasPassword и hasIncomingPassword.

Поле Тип Описание
success boolean true при успехе
data.id string ID созданного подключения, совпадает с configId
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-сервере. Сразу после создания null
data.registrationErrorMessage string | null Текст ошибки регистрации. null, если ошибки нет
data.regId number Только облачная АТС: ID регистрации на SIP-сервере. В ответе создания — число, в списке и при получении — строка
data.incomingServer string Только офисная АТС: адрес сервера для входящих вызовов, его выдаёт Битрикс24
data.incomingLogin string Только офисная АТС: логин для входящих вызовов, его выдаёт Битрикс24
data.hasIncomingPassword boolean Только офисная АТС: задан ли пароль для входящих вызовов

Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": "17",
    "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": null,
    "registrationErrorMessage": null,
    "title": "Офисная АТС"
  }
}

Пример ответа при ошибке

400 — не передан server или login:

JSON
{
  "success": false,
  "error": {
    "code": "MISSING_REQUIRED_FIELDS",
    "message": "server and login are required"
  }
}

Ошибки

HTTP Код Описание
400 MISSING_REQUIRED_FIELDS Не передан server или login
400 INVALID_PARAMS Тело запроса — не JSON-объект
400 INVALID_PARAMS type — не office и не cloud
400 INVALID_PARAMS Значение поля — не строка
400 READONLY_FIELD В теле есть поле, кроме type, title, server, login, password
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 INVALID_API_KEY Платформа не знает такой строки ключа: опечатка, обрезанное значение или удалённый ключ
401 TOKEN_MISSING У ключа нет доступа к порталу: у личного ключа нет вебхука портала, ключу приложения не передан Authorization: Bearer с токеном сессии
403 SCOPE_DENIED У ключа нет скоупа telephony
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения — см. права доступа
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. При создании подключения типа office в ответе сразу приходят incomingServer и incomingLogin, а hasIncomingPassword равен true. Сам пароль для входящих вызовов API не возвращает.
  • Подключение видно только своему приложению. Созданное подключение находят только ключи того же приложения Битрикс24: подключение, созданное личным ключом, не видно ключу приложения, и наоборот.

Смотрите также