Коды ошибок управления медиа (mpbx-media-control, rtpengine NG)
Коды, которые возвращает mpbx_media_control (W2-MED-01), клиент, с помощью которого B2BUA закрепляет медиа
на rtpengine. Виды сопоставляются со статусами HTTP на уровне API так же, как в общих кодах.
Сообщения называют в лучшем случае узел rtpengine и команду NG; они никогда не содержат тела SDP, тегов,
телефонных номеров или адресов. См. руководство по управлению медиа.
| Код | Вид | Значение | Что делать |
|---|---|---|---|
MPBX-RTPE-TIMEOUT | unavailable | Узел не ответил в пределах бюджета повторных передач (retransmit_ms × attempts, по умолчанию 1,5 с). Повтор возможен. Учитывается при пометке узла как недоступного. | Проверьте, что rtpengine запущен и что media_control.nodes[].address совпадает с его --listen-ng. Следите за mpbx_rtpengine_nodes_up и rtpe:nodes. |
MPBX-RTPE-UNREACHABLE | unavailable | Порт NG отклонил запрос (ICMP port unreachable для UDP, connection refused для TCP, ошибка HTTP). Повтор возможен. Учитывается при пометке узла как недоступного. | Запустите rtpengine или исправьте адрес и транспорт узла. |
MPBX-RTPE-NO-NODE | unavailable | Все настроенные узлы помечены как недоступные, поэтому новый вызов нельзя закрепить. Существующие вызовы сохраняют свой узел. | Верните один из узлов в работу; он снова станет доступным после up_after успешных проверок состояния. |
MPBX-RTPE-UNKNOWN-NODE | not_found | Дескриптор сессии ссылается на узел, которого больше нет в настройке (например, после перезапуска с изменённым списком узлов). | Не меняйте имена узлов, пока вызовы активны. |
MPBX-RTPE-REJECTED | invalid_argument | rtpengine ответил result: error (сообщение содержит его error-reason, обрезанный до 160 символов), например «Unknown call-ID» для сессии, которая уже удалена, или SDP, который он не смог разобрать. Это не отказ узла. | Обычно это ошибка состояния вызова в вызывающем коде или некорректный SDP от оконечного устройства. |
MPBX-RTPE-PROTOCOL | internal | Ответ не является корректным NG: неверный bencode, нет cookie, нет result или код ошибки HTTP. | Проверьте, что адрес указывает на порт NG rtpengine, а не на другой сервис. Сообщите о проблеме вместе со строкой журнала. |
MPBX-RTPE-CODEC-UNSUPPORTED | invalid_argument | Политика кодеков требует транскодирования в кодек, который стандартная сборка не может кодировать (iLBC, AMR, AMR-WB: только декодирование, W1-SPK-02, раздел 4.8), либо кодек, не включённый в этом выпуске (включены: Opus, G.711, G.722, G.729; GSM пока нет). Такие кодеки по-прежнему проходят без изменений, если их предлагают обе стороны. | Уберите кодек из списка транскодирования. |
MPBX-RTPE-TENANT-MISMATCH | permission_denied | Дескриптор медиасессии одной компании использован с контекстом другой компании. В rtpengine ничего не отправлено. | Ошибка или атака в вызывающем коде: дескрипторы сессий должны оставаться у вызова, которому они принадлежат. |
MPBX-RTPE-SUBSCRIBE-PT-MISMATCH | invalid_argument | SDP ответа subscribe answer (ответвление медиа для записи) не повторяет каждый тип полезной нагрузки из предложения subscribe request, включая telephone-event; rtpengine отклонил бы его (ADR-0004, решение 7). Ничего не отправлено. | Сформируйте ответ через sdp::mirror_recvonly_answer. |
MPBX-RTPE-CONFIG | config | Некорректная настройка media_control: нет узлов, имя узла вне [a-z0-9_-]{1,32}, повторяющееся имя или нулевой интервал или порог. | Исправьте настройку. |