C cenaly.com
Empezar gratis

La llamada se corta: tras 30 segundos, tras 15–30 minutos

Corte al segundo 32 (falta ACK), tras 15–30 minutos (temporizadores de sesión), las entrantes solo funcionan los primeros minutos tras encenderse: mecanismo y solución

15 min read Abrir esta pantalla en la demo
On this page 21

La llamada se corta: a los 30 segundos, a los 15–30 minutos

Un corte «justo a los tantos segundos» no es una mala conexión, sino un temporizador: una de las partes esperaba algo, no llegó y colgó con toda la razón. Por eso, según el tiempo del corte, la causa se puede señalar casi con total seguridad: ~32 segundos — no llegó la confirmación del inicio de la conversación; ~15 o ~30 minutos — no se produjo la renovación de la conversación; las entrantes solo funcionan los primeros minutos — el router cerró el camino hacia el teléfono. A continuación, el mecanismo de cada caso explicado con palabras y qué hacer.

La configuración general de los teléfonos está en la guía «Configuración de teléfonos SIP», y los demás síntomas, en el diagnóstico por síntomas.

Primero compruebe en el panel de administración#

  1. Registro de llamadas — abra la llamada cortada. «Conversación» mostrará la duración con precisión de un segundo: 0:31–0:33 — es la firma del primer caso; alrededor de 15:00 o 29:30 — el segundo. Ahí mismo aparecen «Colgó» (el que llama, el empleado o la centralita) y «Motivo del cuelgue».
  2. Prueba de eco *43, pero larga: márquela y mantenga el auricular 45 segundos. *43 también es una llamada, y la confirmación del inicio de la conversación recorre en ella el mismo camino. Si se cortó en el segundo 32 — avería entre el teléfono y la centralita; si aguantó — el teléfono y la red del establecimiento están bien, siga buscando (llamadas externas, operador de telefonía).
  3. Ficha del dispositivo → «Funcionamiento»: fallos recurrentes de «sin conexión» — el router cierra el camino de vuelta hacia el teléfono (véase el tercer caso).
  4. «Llamar al dispositivo» en la ficha, 10 minutos después de la última llamada: si suena — el camino hacia el teléfono está vivo; si calla con el Local en verde — es el router.
  5. Traza SIP en una centralita dedicada: un 200 OK repetido sin ACK, seguido de BYE — primer caso; BYE después de INVITE o UPDATE en mitad de la conversación — segundo.

Corte a los 30–32 segundos#

Por qué ocurre#

El inicio de la conversación es un saludo de tres mensajes: «llamo» (INVITE) — «respondieron» (200 OK) — «entendido, empezamos» (ACK). La parte que respondió repite su «respondieron» hasta recibir el «entendido». La regla del protocolo SIP: si el «entendido» no llega en 64 × T1 = 64 × 0,5 s = 32 segundos, hay que terminar la conversación. La voz ya está fluyendo — por eso durante medio minuto todo va bien y luego la llamada se cae sola.

Así pues, un corte en el segundo 32 significa: la confirmación ACK se pierde en algún punto. Por qué — de lo frecuente a lo raro:

  1. SIP ALG en el router. El router reescribe las direcciones dentro de los mensajes de servicio, y la confirmación se va a otro sitio o se descarta. Lo primero que hay que comprobar siempre.
  2. Paquete demasiado grande. Si en el teléfono hay decenas de códecs activados, la descripción de la llamada se hincha por encima de ~1300 bytes y por UDP se envía «a trozos» (fragmentos). Muchos routers y cortafuegos descartan los fragmentos en silencio — se pierde ese mismo mensaje. El protocolo SIP exige expresamente pasar a TCP para esos mensajes.
  3. Dirección interna en los mensajes. El teléfono escribe sobre sí mismo una dirección interna (192.168.x.x), y la confirmación se envía a ella. Nuestra centralita lo corrige por sí sola — responde a donde llegó realmente el mensaje —, pero el operador de telefonía puede no tener esa protección: entonces solo se cortan las llamadas externas.
  4. Doble NAT o un cortafuegos estricto que deja pasar los primeros mensajes de la llamada y corta los siguientes.
Para el administrador de red: qué parte cuelga

Según el RFC 3261 (§13.3.1.4), la parte que respondió 200 OK lo repite con un intervalo de T1 a T2 y, tras 64 × T1 sin ACK, termina la sesión con una petición BYE; T1 por defecto es 500 ms (§17.1.1.1), de ahí los 32 segundos.

  • Llamada entrante al teléfono: el 200 OK lo envía el teléfono, el ACK — la centralita. Si se perdió el ACK de camino al teléfono, cuelga el teléfono.
  • Saliente desde el teléfono y *43: el 200 OK lo envía la centralita, el ACK — el teléfono. Si se perdió el ACK de camino a la centralita, cuelga la centralita.
  • Fragmentación: RFC 3261 §18.1.1 — si la petición supera los 1300 bytes (o está a menos de 200 bytes del MTU de la ruta), el cliente debe enviarla por TCP con control de congestión. Nuestra centralita acepta TCP en el mismo puerto 5060.

Qué hacer#

Después de cada paso, repita el *43 largo (45 segundos) y una llamada de prueba; continúe solo si no ha funcionado.

  1. Desactive SIP ALG en el router («SIP Helper», «SIP Passthrough», «ALG para SIP») y reinicie el router. Dónde está en las marcas populares — «Red, router e internet».
  2. Deje en el teléfono tres códecs — G.711 PCMA, G.711 PCMU y G.722 —, desactive los demás: los mensajes se acortarán y dejarán de fragmentarse.
  3. Cambie el transporte a TCP (el puerto es el mismo, 5060), si el paso 2 no ha funcionado: TCP corta por sí mismo los mensajes largos correctamente y la fragmentación desaparece. Nuestra centralita acepta tanto UDP como TCP.
  4. Solo se cortan las llamadas externas, mientras que *43 y las internas aguantan — avería entre la centralita y el operador de telefonía. Envíe a soporte la hora de varias llamadas cortadas.
  5. Elimine el doble NAT — ponga el router del proveedor en modo puente o conecte el teléfono directamente a él.

Corte a los 15 o 30 minutos#

Por qué ocurre#

Durante una conversación larga, las partes confirman de vez en cuando que la conversación sigue en curso — son los temporizadores de sesión. El intervalo se acuerda al inicio de la llamada; una parte se compromete a «prorrogar» la conversación en la mitad del intervalo, la otra espera la prórroga. En nuestra central los temporizadores de sesión están activados con un intervalo de 1800 segundos (30 minutos); sirven para que una conversación cuya conexión se perdió en silencio no quede colgada durante horas ni ocupe la línea.

De ahí dos patrones:

  • sobre los 15 minutos — en la mitad del intervalo se envió la prórroga, pero no pasó: la parte la rechazó o no recibió respuesta;
  • sobre los 29,5 minutos — no hubo prórroga en absoluto, y la parte que la esperaba colgó poco antes de que venciera el intervalo.

Por qué no pasa la prórroga:

  1. El router cerró el camino de los mensajes de servicio. La voz durante la conversación va de forma continua, pero los mensajes de servicio callan. Si en el teléfono está desactivado el keep-alive, el router cierra al cabo de unos minutos la «puerta» para los mensajes de servicio — y la prórroga de la central al teléfono ya no llega.
  2. El teléfono no entiende el modo de prórroga o lo rechaza — firmware antiguo, está activado «Session Timer» con parámetros no estándar.
  3. SIP ALG estropea el mensaje de prórroga.
  4. Temporizador del operador de telefonía — si solo se cortan las llamadas externas y siempre en el mismo minuto.

La central activa los temporizadores en la conversación solo si también los admite el teléfono ⚠️ verify. En la mayoría de los teléfonos de sobremesa «Session Timer» viene desactivado de fábrica (en Yealink y Grandstream — según la documentación), y entonces no hay temporizadores en la conversación en absoluto.

Para el administrador de red: valores del lado de la central
  • timers=yes — se admiten temporizadores; timers_sess_expires=1800 — intervalo de 1800 s; timers_min_se=90 — menos de 90 s la central no lo acepta (shared/sip/advanced-options.json, grupo protocol).
  • Según la RFC 4028, la prórroga se envía en la mitad del intervalo (900 s), y la parte que no la recibe cierra la sesión con BYE min(32 s, intervalo / 3) antes del vencimiento — alrededor de 1768 s.
  • La central no corta por silencio (rtp_timeout=0), por eso una «conversación sin sonido» por sí sola no se corta.
  • En una central dedicada los mismos valores están en «Ajustes finos de SIP» («Temporizadores de sesión», «Actualización de sesión, segundos»). No hace falta cambiarlos sin que lo requiera el proveedor.

Qué hacer#

  1. Active el keep-alive en el teléfono — mantiene abierto el camino de los mensajes de servicio también durante la conversación. Yealink: Account → Advanced → Keep Alive Type (Default u Options) y Keep Alive Interval — 30 s (valor de fábrica).
  2. Desactive SIP ALG en el router.
  3. Si en el teléfono se activó «Session Timer» — vuelva al valor de fábrica (desactivado) o ponga el intervalo en 1800 s: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
  4. Actualice el firmware del teléfono — los errores de prórroga de la conversación suelen estar corregidos en versiones nuevas.
  5. Solo se cortan las llamadas externas, en el mismo minuto — envíe a soporte la hora de las llamadas: contrastaremos los temporizadores con el operador de telefonía.

Las llamadas entrantes funcionan solo los primeros minutos tras encender#

Por qué ocurre#

El teléfono está detrás del router, y la central solo puede llegar hasta él a través de la «puerta» que el teléfono abrió con su último mensaje. El router mantiene esas puertas poco tiempo — en los routers domésticos, desde medio minuto hasta varios minutos de silencio — y luego la cierra. Mientras el teléfono envía algo con frecuencia (registro justo después de encender, keep-alive), la puerta está abierta. En cuanto se calla — se cerró, y la llamada entrante de la central choca con el router.

El local en el panel de administración puede seguir en verde: el teléfono actualiza el registro él mismo, desde dentro, y este pasa, pero entrar al teléfono desde fuera ya no es posible. El reinicio «cura», porque vuelve a abrir la puerta — por un tiempo.

Nuestra central, por su parte, comprueba cada 60 segundos cada aparato con una petición «¿estás en línea?»: este paquete de vuelta también mantiene la puerta abierta — pero solo si el router la cierra en más de un minuto. Si el aparato no responde — la central lo considera no disponible, el local se apaga, y en «Funcionamiento» aparece un fallo.

Qué hacer#

Después de cada paso, compruebe la llamada entrante tras 10 minutos de inactividad (con el botón «Llamar al aparato» o desde una extensión vecina); después — solo si no ayudó.

  1. Active el keep-alive en el teléfono con un intervalo de 20–30 segundos. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (de fábrica Default y 30 s); en Fanvil — Keep Alive Type en los ajustes adicionales de la línea.
  2. Desactive SIP ALG en el router — a él también le gusta «olvidar» las puertas.
  3. Acorte el plazo de registro en el teléfono (Expires / Register Expiration) a 60–120 segundos — el teléfono abrirá la puerta él mismo con más frecuencia. Menos de 60 nuestra central no lo acepta (423 Interval Too Brief).
  4. En una central dedicada se pueden comprobar los aparatos con más frecuencia: «Ajustes finos de SIP» → «Comprobación de conexión, segundos» — 20–30 en lugar de 60. Esto mantiene la puerta del lado de la central, pero añade tráfico de servicio; el keep-alive del teléfono es más fiable.
  5. Doble NAT (router del proveedor + el propio) — hay dos puertas, y se cierran de forma distinta: elimine una — «Red, router e internet».

Interrupción al pasar de Wi-Fi a internet móvil#

Por qué ocurre#

La Wi-Fi del local y el internet móvil son dos direcciones distintas. La conversación empezó desde una, y la central telefónica recordó al inicio de la conversación desde dónde llega la voz: por motivos de seguridad, solo acepta el audio desde esa dirección. Cuando el smartphone cambia a la red móvil, la voz empieza a llegar desde una dirección nueva — y para la central ya es un flujo ajeno, mientras que los mensajes de servicio siguen saliendo hacia la dirección antigua, que ya no existe. Una conversación iniciada en una red casi siempre se corta al pasar a otra. Es una limitación de la propia tecnología, no una avería.

La otra cara de lo mismo: mientras el smartphone cambia de red, el softphone pierde el registro, y las llamadas entrantes no llegan en esos segundos. Android, además, suspende las aplicaciones en segundo plano — más detalles en el artículo general, sección sobre teléfonos software.

Qué hacer#

  1. Durante la conversación, no cambie de red: termine la llamada antes de salir de la zona Wi-Fi.
  2. Desactive en el smartphone el cambio automático de una Wi-Fi deficiente a la red móvil (en iPhone — «Asistencia Wi-Fi», en Android — «cambiar a red móvil» en los ajustes de Wi-Fi): ahora mismo corta la conversación en el umbral del café.
  3. Permita que el softphone funcione en segundo plano y desactive para él el ahorro de batería — así se registra de nuevo más rápido tras el cambio de red.
  4. Donde no se puede perder la llamada (mostrador, recepción), instale un teléfono de escritorio o un auricular DECT, no un smartphone.

Qué enviar a soporte#

  • la fecha y la hora de varias llamadas cortadas con precisión de minuto, los números y la extensión;
  • cuánto tiempo tarda en cortarse (según el registro — «Llamada») y si siempre es igual;
  • si se cortan todas las llamadas o solo las externas; si se mantiene el *43 largo (45 segundos);
  • el modelo y el firmware del teléfono (la línea de la etiqueta del aparato), si tiene activados keep-alive y Session Timer;
  • el modelo del router, si SIP ALG está desactivado, si hay un segundo router del proveedor;
  • en una central dedicada — el texto del SIP-trace de una interrupción repetida.

Cómo escribirnos — «Soporte».

Preguntas frecuentes#

¿Por qué la interrupción ocurre exactamente en el segundo 32, y no en el 30 ni en el 40?#

Porque ese número está fijado en el propio protocolo SIP: la confirmación del inicio de la conversación se espera durante 64 intervalos de medio segundo — 32 segundos. Si en su caso es «unos 30 segundos» y siempre igual, es eso, aunque el cronómetro marcara 31 o 33: parte del tiempo se fue en los tonos de llamada y en la respuesta.

SIP ALG está desactivado, pero la interrupción en el segundo 30 sigue — ¿qué más?#

Compruebe que ALG está desactivado en todos los routers del trayecto (el del proveedor suele tener el suyo), deje tres códecs en el teléfono y pruebe el transporte TCP. Si solo se cortan las llamadas externas y el *43 se mantiene 45 segundos, el problema está en el tramo hacia el operador de comunicaciones; envíe la hora de las llamadas.

El local está en verde, pero no llegan las llamadas entrantes — ¿eso también es una «interrupción»?#

Es el mismo mecanismo que en la sección sobre las llamadas entrantes en los primeros minutos: el registro se actualiza desde dentro, pero la puerta al teléfono desde fuera ya está cerrada. La comprobación es «Llamar al aparato» tras 10 minutos de inactividad; el remedio es el keep-alive en el teléfono.

¿Se pueden simplemente desactivar los temporizadores de sesión en la central?#

Se puede (en una central dedicada, «Ajustes finos de SIP»), pero eso trata el síntoma, no la causa: la renovación no pasa porque el camino de los mensajes de servicio está cerrado o dañado, y ese mismo camino hará falta para transferir la llamada y ponerla en espera. Además, sin temporizadores las conversaciones que se cortan en silencio quedarán colgadas durante horas y ocuparán líneas. Primero keep-alive y SIP ALG.

Secciones relacionadas#

Fuentes#

  • RFC 3261 — SIP: retransmisión de 200 OK hasta recibir ACK y finalización de la sesión tras 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), cambio a TCP para mensajes de más de 1300 bytes (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261
  • RFC 4028 — Session Timers: renovación en la mitad del intervalo, BYE a min(32 s, intervalo / 3) antes del vencimiento — https://www.rfc-editor.org/rfc/rfc4028
  • Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (valores de fábrica Default, 30 s), Session Timer (de fábrica — desactivado; Session Expires 1800 s; renovación en la mitad del intervalo)
  • Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (de fábrica «No»), Session Expiration, Min-SE — https://documentation.grandstream.com/knowledge-base/grp261x-grp262x-grp263x-series-administration-guide/
  • Zoiper 5 User Guide v1.0.7 — UDP y límite del tamaño de paquete, tiempos de espera NAT del router — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
  • Código de la central: shared/sip/advanced-options.json (timers=yes, timers_sess_expires=1800, timers_min_se=90, qualify_frequency=60, minimum_expiration=60, rtp_timeout=0, force_rport, rewrite_contact), sip-edge/asterisk/rtp.conf (strictrtp=yes), sip-edge/sipsync/linecheck.go (prueba de eco *43, límite de comprobación 300 s)
Was this article helpful?