Перейти к основному содержимому

Коды ошибок вызовов (маршруты mpbx-api для вызовов, инициирование mpbx-b2bua)

Возвращаются маршрутами вызовов вошедшего пользователя (MVP-GAP-04): POST /api/v1/calls/click-to-call, POST /api/v1/calls/lookup, POST /api/v1/calls/{id}/conference, POST /api/v1/calls/{id}/split, POST /api/v1/calls/{id}/pull (W6-TEL-08) и тестовым SIP-вызовом POST /api/v1/me/devices/{id}/test-call. Коды MPBX-CALL-* движка возвращают B2bua::originate и B2bua::find_call. Объединение и разделение возвращают коды конференций из conference.md. Сообщения никогда не содержат номеров, имён или идентификаторов SIP. Руководство: click-to-call, тестовый вызов и конференция через API.

КодHTTPЗначениеЧто делать
MPBX-CALL-SESSION-REQUIRED403Ключ API вызвал маршрут, который совершает вызов или управляет им для вошедшего пользователя.Используйте сессию пользователя. Управление вызовами для интеграций выполняется через REST API управления вызовами (/api/v1/call-control/..., W7-API-01, call-control.md).
MPBX-CALL-NO-EXTENSION409У пользователя нет внутреннего номера, либо внутренний номер или пользователь отключён. Также возвращается GET и PUT /me/intercom, переключатель которых находится у внутреннего номера.Назначьте пользователю включённый внутренний номер.
MPBX-CALL-ENGINE-UNAVAILABLE503Ни один движок вызовов не может обработать запрос: на этом узле его нет ([sip] enabled = false), а на узле только для API (mpbx run --role api, FU-GAP04-6) ни один движок (роль engine или all) не зарегистрировался на шине управления вызовами за последние 15 секунд.Запустите движок (роль engine или all) на том же Valkey или включите SIP.
MPBX-CALL-BUS-TIMEOUT503Узел только для API (FU-GAP04-6): движки не ответили вовремя по шине управления вызовами (6 с; 45 с для нового вызова). Вызов мог быть всё же совершён или изменён.Повторите попытку, предварительно проверив список вызовов; проверьте движки и Valkey.
MPBX-CALL-BUS-BAD-FRAME500Узел только для API: сообщение шины управления вызовами не декодировано (движок другой версии во время обновления).Обновите все узлы до одной версии.
MPBX-CALL-UNSUPPORTED503Движок не может инициировать вызовы: медиасервис (mpbx-media) не подключён, он не ответил или не удалось прочитать план набора.Проверьте [media] и медиасервис; повторите попытку.
MPBX-CALL-DEVICE-UNAVAILABLE409Ни одно из устройств пользователя (или выбранное) не зарегистрировано и не может быть разбужено push-уведомлением сейчас.Откройте приложение или браузерный телефон (он зарегистрируется), затем повторите попытку.
MPBX-CALL-DESTINATION-REFUSED403План набора компании отклоняет адрес для этого пользователя (нет правила исходящей связи, профиль вызовов не разрешает его, номер заблокирован или платный, либо это код функции), или это не набираемый номер. Ничего не звонило.Тот же номер нельзя набрать и с телефона пользователя; запросите у администратора право на исходящие вызовы.
MPBX-CALL-FORBIDDEN403Никогда через API: экстренный номер (наберите его на телефоне), собственный внутренний номер пользователя или внутренний номер, который ему не принадлежит.Набирайте экстренные номера на телефоне.
MPBX-CALL-BUSY409Пользователь уже в вызове, а ожидание вызова выключено.Сначала завершите другой вызов.
MPBX-CALL-OVERLOADED503Движок достиг лимита вызовов или хранилище состояния вызовов (Valkey) не ответило.Повторите попытку после Retry-After.
MPBX-CALL-REMOTE-CONTROL-OFF409Click-to-call с auto_answer («Вызов с помощью» настольного телефона, W6-TEL-08) на устройстве, у которого выключено удалённое управление (по умолчанию). Ничего не звонило.Владелец устройства включает его: PUT /api/v1/me/devices/{id}/remote-control с {"enabled": true}, либо позвоните без auto_answer (телефон зазвонит).
MPBX-CALL-NOT-FOUND404POST /calls/lookup: нет живого вызова, в котором у вас есть плечо (leg) с этим SIP Call-ID на одном из ваших устройств (плечо другого пользователя, плечо транка, вызов другой компании и завершённый вызов выглядят одинаково).Проверьте Call-ID своего плеча; возможно, вызов завершён.

Перехват вызова (POST /api/v1/calls/{id}/pull, B2bua::pull)​

Руководство: перехват вызова и удалённое управление вызовами.

КодHTTPЗначениеЧто делать
MPBX-PULL-CALL-NOT-FOUND404Нет живого отвеченного вызова этой компании, в котором вы являетесь стороной на одном из ваших устройств (вызов другого пользователя, плечо транка, вызов другой компании, завершённый вызов и неизвестный идентификатор выглядят одинаково).Проверьте идентификатор вызова (POST /calls/lookup, события call.*); возможно, вызов завершён.
MPBX-PULL-STATE409Вызов занят другим: переводом, парковкой, конференцией, оставлением голосовой почты, другим перехватом или click-to-call, у которого назначение ещё не ответило. Ничего не изменилось.Повторите, когда это завершится.
MPBX-PULL-SAME-DEVICE409Вызов уже на этом устройстве.Выберите другое ваше устройство.
MPBX-PULL-DEVICE-UNAVAILABLE409Устройство сейчас не зарегистрировано и не может быть разбужено push-уведомлением либо оно не относится к вашему внутреннему номеру. Ничего не изменилось.Откройте приложение или браузерный телефон (он зарегистрируется), затем повторите попытку.
MPBX-PULL-FORBIDDEN403Экстренный вызов никогда не переводится на другое устройство; либо устройства внутреннего номера вам не принадлежат.Оставайтесь на том устройстве, где находится экстренный вызов.

Устройство, которое не является одним из ваших активных устройств, отклоняется API до запроса к движку: 400 MPBX-INVALID-ARGUMENT по device_id.

Код набора перехвата (*85 по умолчанию, см. коды набора) отвечает SIP-статусами: 404 (нет вашего вызова на другом устройстве), 485 Ambiguous (несколько вызовов), 488 (нет SDP-предложения), 491 (вызов занят другим), 403 (экстренный вызов; устройство без пользователя).

Также: MPBX-RATE-LIMITED (429, api.md) при более чем 10 начатых вызовах или 60 запросах управления вызовами в минуту на пользователя, а также один тестовый вызов на устройство каждые 10 секунд.

Записи аудита (W3-AUD-01): call.click_to_call (детали destination, device_id, auto_answer, если запрошено, result: ok или код ошибки), call.pulled (сущность — вызов; детали via = api или dial_code, to_device_id, result: ok, код ошибки, not_your_device или для кода набора not_found, ambiguous, forbidden либо SIP-статус; актор — пользователь или набирающее устройство для кода набора), call.conference_merged (with_call_id, conference_id, result), call.conference_split (result) и device.test_call (call_id, result).