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

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

Возвращаются REST API управления вызовами (W7-API-01, /api/v1/call-control/...) и методами движка, которые за ним стоят (B2bua::call_view, calls_view, hangup, hold, answer, send_dtmf). Перевод и парковка передают коды переводов из transfers.md; инициирование вызова передаёт коды MPBX-CALL-* из calls.md. Сообщения никогда не содержат номеров, имён, цифр или идентификаторов SIP. Руководство: REST API управления вызовами.

КодHTTPЗначениеЧто делать
MPBX-CC-CALL-NOT-FOUND404Нет живого вызова с этим идентификатором, которым вы можете управлять: он завершён, это вызов другой компании или ни одна из его сторон не находится в отделе, где у вас есть calls:control (все эти случаи выглядят одинаково).Запросите список вызовов (GET /call-control/calls); возможно, вызов завершён.
MPBX-CC-PARTICIPANT-NOT-FOUND404Участник не является живой стороной вызова, не является одной из двух говорящих сторон (удержание, DTMF) или устройство не звонит по этому вызову (ответ).Перечитайте участников вызова и используйте participant_id из них.
MPBX-CC-STATE409Вызов не находится в состоянии, к которому применимо действие: не отвечен (удержание, DTMF), не звонит (ответ), удержан другой стороной, находится в переводе, парковке, приложении, очереди или конференции, это исходящий вызов АТС, который ещё не соединён, удержан самим телефоном (возобновление) или уже завершается (сброс).Дождитесь нужного состояния или действуйте на телефоне.
MPBX-CC-FORBIDDEN403Никогда через API: экстренный вызов не сбрасывается, не удерживается, не переводится, не паркуется и не получает цифры.Ничего: экстренные вызовы обрабатываются на телефоне.
MPBX-CC-UNSUPPORTED503Движок не может выполнить действие сейчас: нет медиаприложения для музыки на удержании, медиасервис отказал, стороны не удалось соединить снова (вызов остаётся на удержании), устройство нельзя попросить ответить или другая сторона отказалась принять цифры.Проверьте [media] и медиасервис; повторите попытку.
MPBX-CC-INVALID-DTMF400Цифры — это не от 1 до 32 символов из 0-9, *, #, A-D.Отправляйте только допустимые сигналы DTMF.
MPBX-CC-USER-OUT-OF-REACH403Инициирование вызова для пользователя, которым вы не можете управлять, либо указана сторона живого вызова (перевод, парковка, удержание, возобновление, DTMF), которая находится вне вашей зоны доступа: ваше право calls:control не распространяется ни на один отдел пользователя.Используйте ключ или роль с calls:control для отдела пользователя либо для всей компании.
MPBX-CC-STREAM-TOO-MANY429Медиапоток (W9-AI-06): слишком много открытых потоков для этого ключа API или пользователя (4), для этой компании (100) или у этого вызова уже есть поток.Сначала закройте поток; повторите после Retry-After.
MPBX-CC-STREAM-BAD-FRAME(событие error WebSocket)Текстовый кадр медиапотока не является известной командой, либо аудиокадр некорректен (заголовок, дорожка 0, нечётная длина PCM, больше одной секунды). Поток остаётся открытым.Следуйте формату кадров из руководства по медиапотоку.
MPBX-CC-STREAM-PLAYBACK-FULL(событие error WebSocket)В очереди воспроизведения больше 10 с аудио. Кадр отброшен.Отправьте mark и дождитесь его перед отправкой новых данных, либо отправьте clear.
MPBX-CC-STREAM-UPGRADE-REQUIRED426Обычный HTTP-запрос пришёл на GET /call-control/calls/{id}/media-stream.Подключайтесь клиентом WebSocket.
MPBX-CC-STREAM-CREDENTIAL-ENDED(закрытие 4401)Во время потока учётные данные истекли или были отозваны либо утратили calls:control.Переподключитесь с действительными учётными данными.

Также: MPBX-RBAC-FORBIDDEN (403) без calls:control; MPBX-CALL-ENGINE-UNAVAILABLE (503) на узле API без движка вызовов; MPBX-RATE-LIMITED (429, api.md) при более чем 10 инициированных вызовах в минуту на ключ API или пользователя (и на целевого пользователя) либо 60 запросах управления вызовами в минуту на ключ API или пользователя.

Аудит​

Каждая запись содержит result (ok или код ошибки), а для отказа — исход denied: call.control_originate (destination, device_id, call_id; сущность — пользователь), call.control_drop, call.control_answer (device_id), call.control_hold, call.control_resume, call.control_transfer (participant_id, destination или voicemail_extension), call.control_park (participant_id, orbit) и call.control_dtmf (participant_id, digit_count: сами цифры никогда не записываются). Медиапоток (W9-AI-06): call.control_media_stream_open (rate, tracks, stream_id; также при отказе, для экстренного вызова) и call.control_media_stream_close (stream_id, reason, duration_s, frames_out, frames_in, commands); команды в потоке аудируются как их REST-маршруты. Аудио и цифры никогда не записываются.