Códigos de error de control de llamadas (rutas call-control de mpbx-api, control de mpbx-b2bua)
Se devuelven en la API REST de control de llamadas (W7-API-01, /api/v1/call-control/...) y en los métodos del motor
que están detrás (B2bua::call_view, calls_view, hangup, hold, answer, send_dtmf).
La transferencia y el estacionamiento pasan los códigos de transferencia de transfers.md; el originate pasa
los códigos MPBX-CALL-* de calls.md. Los mensajes nunca contienen números, nombres,
dígitos ni identificadores SIP. Guía: API REST de control de llamadas.
| Código | HTTP | Significado | Qué hacer |
|---|---|---|---|
MPBX-CC-CALL-NOT-FOUND | 404 | No hay una llamada activa con este id que pueda controlar: terminó, es una llamada de otra empresa, o ninguna de sus partes está en un departamento donde usted tiene calls:control (todos los casos se ven igual). | Liste las llamadas (GET /call-control/calls); es posible que la llamada haya terminado. |
MPBX-CC-PARTICIPANT-NOT-FOUND | 404 | El participante no es una parte activa de la llamada, no es una de las dos partes que conversan (espera, DTMF), o el dispositivo no suena para la llamada (contestar). | Vuelva a leer los participantes de la llamada; use un participant_id de ellos. |
MPBX-CC-STATE | 409 | La llamada no está en un estado al que aplique la acción: no contestada (espera, DTMF), no timbrando (contestar), en espera por la otra parte, en una transferencia, un estacionamiento, una aplicación, una cola o una conferencia, una llamada que el PBX originó y que aún no está conectada, en espera por el propio teléfono (reanudar), o ya terminando (colgar). | Espere a que la llamada llegue a ese estado, o actúe desde el teléfono. |
MPBX-CC-FORBIDDEN | 403 | Nunca se permite por la API: una llamada de emergencia no se cuelga, no se pone en espera, no se transfiere, no se estaciona ni se le envían dígitos. | Nada: las llamadas de emergencia se atienden desde el teléfono. |
MPBX-CC-UNSUPPORTED | 503 | El motor no puede hacerlo ahora: no hay aplicación de medios para la música en espera, el servicio de medios lo rechazó, las partes no pudieron volver a conectarse (la llamada queda en espera), no se pudo pedir al dispositivo que conteste, o la otra parte rechazó los dígitos. | Revise [media] y el servicio de medios; reintente. |
MPBX-CC-INVALID-DTMF | 400 | Los dígitos no son de 1 a 32 de 0-9, *, #, A-D. | Envíe solo DTMF válido. |
MPBX-CC-USER-OUT-OF-REACH | 403 | Originate para un usuario que no puede controlar, o nombrar a una parte de una llamada activa (transferencia, estacionamiento, espera, reanudación, DTMF) que es una persona fuera de su alcance: su calls:control no cubre ninguno de los departamentos del usuario. | Use una clave o un rol con calls:control para el departamento del usuario, o para toda la empresa. |
MPBX-CC-STREAM-TOO-MANY | 429 | Flujo de medios (W9-AI-06): demasiados flujos abiertos para esta clave de API o usuario (4), esta empresa (100), o esta llamada ya tiene uno. | Cierre primero un flujo; reintente después de Retry-After. |
MPBX-CC-STREAM-BAD-FRAME | (evento error de WebSocket) | Un marco de texto del flujo de medios no es un comando conocido, o un marco de audio está mal formado (encabezado, pista 0, longitud PCM par, como máximo un segundo). El flujo permanece abierto. | Siga el formato de marcos de la guía del flujo de medios. |
MPBX-CC-STREAM-PLAYBACK-FULL | (evento error de WebSocket) | Hay más de 10 s de audio en cola para reproducción. El marco se descartó. | Envíe una mark y espere a que se confirme antes de enviar más audio, o envíe clear. |
MPBX-CC-STREAM-UPGRADE-REQUIRED | 426 | Una solicitud HTTP normal llegó a GET /call-control/calls/{id}/media-stream. | Conéctese con un cliente WebSocket. |
MPBX-CC-STREAM-CREDENTIAL-ENDED | (cierre 4401) | Durante el flujo, la credencial venció o fue revocada, o perdió calls:control. | Vuelva a conectarse con una credencial válida. |
También: MPBX-RBAC-FORBIDDEN (403) sin calls:control; MPBX-CALL-ENGINE-UNAVAILABLE (503)
en un nodo de API sin el motor de llamadas; MPBX-RATE-LIMITED (429, api.md) si se superan 10
llamadas originadas por minuto por clave de API o usuario (y por usuario destino), o 60 solicitudes de control
de llamadas por minuto por clave de API o usuario.
Auditoría
Cada registro tiene result (ok o el código de error) y el resultado denied para un rechazo:
call.control_originate (destination, device_id, call_id; la entidad es el usuario),
call.control_drop, call.control_answer (device_id), call.control_hold,
call.control_resume, call.control_transfer (participant_id, destination o
voicemail_extension), call.control_park (participant_id, orbit) y call.control_dtmf
(participant_id, digit_count: nunca los dígitos).
Flujo de medios (W9-AI-06): call.control_media_stream_open (rate, tracks, stream_id; también
cuando se rechaza, por ejemplo en una llamada de emergencia) y call.control_media_stream_close (stream_id,
reason, duration_s, frames_out, frames_in, commands); los comandos del flujo se auditan
como sus rutas REST. El audio y los dígitos nunca se registran.