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

Коды ошибок медиа (mpbx-media-app, mpbx-media)

Коды, которые возвращает mpbx_media_app (W3-MAPP-01, W3-MAPP-02), прикладное медиаприложение, которое воспроизводит приглашения, собирает DTMF, записывает голосовую почту и смешивает комнаты конференций на простых RTP-каналах, закреплённых через rtpengine (ADR-0004). Виды сопоставляются со статусами HTTP на уровне API так же, как в общих кодах. Сообщения никогда не содержат тела SDP, адреса, цифры, телефонные номера или токены сессий. См. руководство по mpbx-media.

КодВидЗначениеЧто делать
MPBX-MEDIA-SESSION-UNKNOWNnot_foundДескриптор сессии, конференции или участника неизвестен, уже закрыт (или участник вышел), либо его токен не совпадает. Один код для всех трёх случаев, чтобы вызывающий не мог проверять наличие активных сессий.Обычно это ошибка состояния вызова: актор вызова использовал дескриптор после его закрытия или после перезапуска mpbx-media. Откройте новую сессию.
MPBX-MEDIA-TENANT-MISMATCHpermission_deniedДескриптор сессии, конференции или участника одной компании использован с контекстом другой компании (включая присоединение к комнате конференции другой компании), либо приглашение другой компании передано в play. Ничего не выделено и не поставлено в очередь.Ошибка или атака в вызывающем коде: дескрипторы и кэшированные приглашения должны оставаться у компании, которой они принадлежат. Комната конференции никогда не смешивает две компании.
MPBX-MEDIA-CODEC-UNSUPPORTEDinvalid_argumentSDP не предлагает ни одного кодека, который обрабатывает mpbx-media. mpbx-media завершает только PCMU, PCMA, G.722 и Opus (DECISIONS, раунд 10).Попросите rtpengine транскодировать канал в сторону mpbx-media в PCMU (или G.722 для широкополосного), как это делает политика кодеков media-control.
MPBX-MEDIA-SDP-INVALIDinvalid_argumentВ SDP нет пригодного аудиораздела: нет строки аудио m=, нет адреса соединения, порт 0 (отклонённый поток), неверный тип полезной нагрузки или протокол, отличный от простого RTP/AVP.mpbx-media общается с rtpengine только простым RTP. Передавайте SDP, который создал rtpengine для канала mpbx-media (ICE удалён, без SRTP), а не собственный SDP оконечного устройства.
MPBX-MEDIA-PROMPT-INVALIDinvalid_argumentФайл приглашения не является пригодным WAV: не RIFF/WAVE, отсутствуют блоки, больше 32 МиБ, либо не 16-битный PCM / G.711 с частотой 8 кГц при 8 или 16 кГц.Преобразуйте приглашение при загрузке (W3-TEL-07 переводит загрузки в WAV).
MPBX-MEDIA-OVERLOADEDunavailablempbx-media отказал в новой работе: достигнут лимит сессий (media.max_sessions, включая участников конференций), комната конференции заполнена (media.max_conference_participants), очередь рабочих потоков полна, рабочий поток остановлен, либо в media.rtp_ports нет свободного порта RTP. Повтор возможен.Добавьте мощности mpbx-media (ядра или экземпляры) или расширьте диапазон портов. Следите за mpbx_media_sessions и mpbx_media_tick_overruns_total.
MPBX-MEDIA-BAD-STATEconflictОперация недопустима в текущем состоянии сессии, например вторая запись голосовой почты, когда одна уже идёт.Сначала остановите текущую запись.
MPBX-MEDIA-CRYPTOinternalНе удалось зашифровать или расшифровать сохранённую запись: ключ файла нельзя открыть в этой компании (файл другой компании, неверный идентификатор файла), файл изменён, переупорядочен или усечён, либо это не зашифрованный файл mpbx-media.Проверьте, что запись принадлежит компании, которая её читает, и что объект не менялся. Неверный главный ключ установки виден в журнале как MPBX-SECRETS-*.
MPBX-MEDIA-CONFIGconfigНеверная настройка media: подстановочный или групповой bind_ip, число рабочих потоков вне диапазона 1–256, число кадров джиттер-буфера вне диапазона 1–10, неверный диапазон портов RTP, нулевой лимит, число участников конференции вне диапазона 2–1000, либо служба запущена вне среды выполнения tokio.Исправьте настройку. bind_ip должен быть внутренним адресом, до которого дотягивается rtpengine (loopback на одном хосте).
MPBX-MEDIA-IOinternalСбой операции с сокетом (привязка, отправка, запуск рабочего потока).Проверьте адрес привязки и лимиты процесса (открытые файлы, потоки).
MPBX-MEDIA-CODECinternalКодек не инициализировался, не смог закодировать или декодировать данные. Повреждённая полезная нагрузка при приёме скрывается, поэтому эта ошибка редкая.Сообщите о проблеме вместе со строкой журнала.
MPBX-MEDIA-PROTOCOLinvalid_argumentСоединение управления медиа между движком и отдельным mpbx-media нарушило протокол (MVP-GAP-02): кадр не прошёл аутентификацию (изменён, повторён, переупорядочен или пришёл из другого соединения), его длина выходит за границы, либо сообщение повреждено или неизвестно. Соединение закрывается; вызовы на нём завершаются.Ошибка или атака во внутренней сети. Проверьте, что обе стороны работают одним выпуском, и смотрите mpbx_media_control_frames_rejected_total.
MPBX-MEDIA-REMOTE-UNAVAILABLEunavailableУ движка нет аутентифицированного соединения с удалённым mpbx-media ([media] mode = "remote"): ни один из адресов [media] remote не отвечает, служба останавливается, секреты управления различаются, либо соединение потеряно (вызовы, которые были на нём, завершаются). Повтор возможен.Проверьте службу mpbx-media и её журналы, а также что у обеих сторон один и тот же MPBX_MEDIA_CONTROL_SECRET. Оповещение MediaServiceDown срабатывает при mpbx_media_remote_up == 0.
MPBX-MEDIA-REMOTE-TIMEOUTunavailableУдалённый mpbx-media не ответил на запрос управления в течение [media] request_timeout_ms, либо запрос не удалось поставить в очередь вовремя (обратное давление). Повтор возможен.mpbx-media перегружен или внутренняя сеть перегружена: следите за mpbx_media_tick_overruns_total и добавьте мощности.
MPBX-MEDIA-REMOTE-ERROR(as reported)Удалённый mpbx-media сообщил об ошибке, код которой этот движок не знает (более новый выпуск на другой стороне). Вид сохраняется.Запустите одинаковый выпуск на движке и на mpbx-media.
MPBX-MEDIA-ROOM-FULLconflictВ комнате конференции уже столько участников, сколько разрешено её собственным лимитом (ConferenceOptions::max_participants, настроенный лимит комнаты для входящего набора; W6-TEL-07). Присоединяющегося не добавили; проверка и резервирование выполняются за один шаг, поэтому два вызова никогда не займут последнее место.Ожидаемо, когда комната заполнена: комната для входящего набора проигрывает приглашение «комната заполнена» и завершает вызов. Повысьте лимит комнаты, если это случается часто.