Solución de problemas de Voice
Empieza por el registro de llamadas. La presencia de un registro y sus campos determinan qué comprobaciones seguir.
Una llamada saliente no aparece en el registro de llamadas
Una llamada que Bird no puede admitir se descarta en la capa SIP, antes de que exista un registro. Cinco cosas lo provocan:
- El trunk aún no admite llamadas salientes. Un trunk nuevo no cursa llamadas hasta que activas las llamadas salientes en su página, y rechaza todos los intentos mientras no lo hagas, sin importar las credenciales que presente la llamada.
- El trunk aún no tiene forma de reconocerte. Un trunk nuevo rechaza todas las llamadas hasta que añades un rango de IP, una clave API permitida o credenciales de sesión.
- La llamada llegó desde una dirección fuera de la lista de IP permitidas del trunk. Detrás de NAT, compara la dirección pública del router con la lista de IP permitidas del trunk. La dirección privada del sistema telefónico no llega a Bird.
- El desafío de contraseña falló. Comprueba que el nombre de usuario sea bird. La contraseña debe ser el secreto de una clave API permitida o una credencial de sesión no expirada. El trunk también debe ofrecer el algoritmo Digest que usó tu sistema telefónico.
- La llamada se dirigió a un dominio SIP que Bird no reconoce. Copia el dominio completo desde la página del trunk en lugar de ensamblarlo.
La llamada se rechaza con un motivo de rechazo
Bird rechazó la llamada antes de marcar a un operador, y el motivo indica la comprobación que no superó. Abre la llamada y usa el enlace del panel de rechazo hacia el ajuste correspondiente. Llamadas rechazadas enumera cada motivo y su solución.
caller_id_not_verified es el que más afecta a un cliente nuevo, normalmente porque el cliente pone el nombre de usuario digest donde va el caller ID: son campos diferentes.
La llamada tiene estado fallido en lugar de rechazado
Failed no es un rechazo. La llamada se intentó y no funcionó, y SIP response lleva el código que se devolvió. Un 486 es un número ocupado; un 404, uno no asignado. Esto suele apuntar al número que marcaste, no a tu configuración.
Una llamada que Bird rechazó aparece como Rejected, no Failed, así que filtra el registro por Rejected cuando busques una llamada que no superó una de las comprobaciones de Bird.
La llamada se rechaza sin motivo de rechazo
En una llamada saliente, el extremo remoto la declinó directamente y SIP response lleva su código.
En una llamada entrante, el número marcado rechazó la llamada, lo que no falla ninguna comprobación y por tanto no indica ningún motivo. Abre la llamada y lee Inbound route: una ruta reject es un número que no apunta a una respuesta. Recibir llamadas recorre cada rechazo entrante a partir de su ruta y motivo.
La persona a la que llamaste vio un número diferente
La llamada tiene un registro y ningún motivo de rechazo, así que superó todas las comprobaciones que hace Bird. Lo que falló está más allá de Bird: el operador de terminación reemplazó el caller ID o rechazó una llamada que lo presenta. La misma causa se manifiesta como un número que conecta en un país y nunca conecta en otro.
La verificación demuestra que controlas un caller ID. No obliga al operador que entrega la llamada a aceptarlo, y los operadores aplican sus propias reglas nacionales a un número que no se adquirió a través de Bird. Consulta la exención de responsabilidad sobre verificación y entrega de CLI para conocer las prácticas implicadas, que incluyen requisitos de CLI en el país, bloqueo basado en origen y listas de no originar.
Para saber qué tipo de número presentaste, ábrelo en Voice > Numbers y lee el panel en la parte superior de su página. Un número que compraste a Bird muestra su suscripción, igual que uno que compraste y también verificaste. Solo un número que posees en otro lugar muestra únicamente una verificación. Una suscripción significa que el número se adquirió a través de Bird, por lo que la exención de responsabilidad no lo rige. Presentar un número adquirido a través de Bird es lo que eleva las tasas de entrega y completación en los destinos que rechazan uno verificado.
Una llamada entrante nunca llega a tu sistema telefónico
El número contestó la llamada y lo que falló fue la entrega. Comprueba en este orden:
- Lee la Inbound route de la llamada. Indica a qué trunk o reenvío apuntaba el número cuando llegó la llamada. Una ruta reject significa que el número no apuntaba a nada, que es también donde queda un número después de que se elimina su trunk o se desactivan las llamadas entrantes.
- Comprueba que el trunk tenga un gateway. Un trunk sin gateway de entrega rechaza todas las llamadas a los números que atiende, y el registro muestra no_route_found. Añade uno en Inbound calling en la página del trunk.
- Comprueba la dirección del gateway. Bird marca los gateways en orden de prioridad y se rinde cuando ninguno contesta. Confirma el host del URI SIP, su puerto y que tu sistema telefónico acepta llamadas de Bird en él.
- En un reenvío, comprueba que el destino siga verificado. El destino del reenvío se vuelve a comprobar en cada llamada, por lo que un caller ID que eliminaste deja de reenviar a partir de ese momento.
Tu cliente responde con MD5 y no avanza
Algunos equipos manejan mal un desafío que empieza con SHA-256. Configura el trunk como solo MD5.
Las llamadas conectan pero el audio es en un solo sentido
Tu cliente está detrás de NAT y su media se dirige a una dirección privada. Activa el manejo de NAT o STUN en el cliente.
Próximos pasos
| Página | Qué cubre |
|---|---|
| Registro de llamadas | Todos los campos de un registro de llamada y cada motivo de rechazo |
| Trunks de SIP | La lista de IP permitidas, claves, credenciales de sesión y Digest |
| Configuración de cliente SIP | Los ajustes que pide cada softphone y PBX |
| Realizar llamadas | Lo que Bird espera en el INVITE y cómo se ejecuta el handshake |
| Recibir llamadas | Apuntar un número a un trunk o un reenvío, y qué se registra |
Recursos relacionados
Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.
Comprender el conceptoWhat is a voice API?Explorar la funcionalidadVoiceGuía de implementaciónVoice overview
Obtener un resumen de implementación