Foro
Buenas davidpuente2017
-En lo que respecta al tiempo que pones, sigue pareciendo ignorarlo del todo, puede ser, repito, que sea porque el terminal sigue sin subscribirse. Después del registro, se debe de subscribir. En las opciones, mira a ver habilitando la que pone MWI subscribe. Al menos rport ya lo envía.
-En la captura de tráfico, o no está todo o está cortada. No se ve ni el INVITE, ni nada de nada, solo paquetes UDP, que doy por sentado que debe de ser el tráfico RTP, pero es imposible tampoco saberlo si falta la primera parte del tráfico de este.
-Respecto a que la llamada finaliza parece que sí está capturado ese momento. Pero es bastante raro lo que sucede...
El cliente SIP llega un punto que responde al servidor SIP que el puerto al que le está enviando el tráfico no está disponible. Es decir, la llamada está en curso tanto uno como el otro se intercambian datos, parece que va bien. Llega un momento que el dispositivo que corre el cliente SIP empieza a responder al servidor que el puerto al que le manda los datos (al cliente) para la llamada no está ya disponible. Es el mismo puerto por el que el dispositivo estaba aceptando la comunicación sin problema alguno. Después de 6 paquetes que el cliente SIP no recibe, el cliente SIP cierra la llamada. Ojo, el el tráfico ESTA LLEGANDO AL DISPOSITIVO SIP, lo podemos ver en la captura, pero el OS del sistema dice que ese puerto ya no está disponible, el cliente SIP nunca llega a ver ese tráfico, el dispositivo sí.
Esto es intrigante porque no veo muchas opciones aquí. Piensa en el teléfono como un mini PC si quieres, que tiene un software SIP. Este PC si le llega el tráfico, pero el OS de este PC responde que el puerto no está disponible. El cliente SIP que realmente se ejecuta dentro de ese "PC" nunca llega a recibir esos paquetes. Vamos, que de buenas a primeras el dispositivo cierra el puerto por el que se está comunicando, y el cliente SIP del dispositivo como no recibe el tráfico y corta la llamada.
Podría ser que el dispositivo SIP agota los recursos, o que algún problema interno hace que cierre la conexión o... el cliente SIP del dispositivo parece funcionar "bien", quitando las cosas anteriormente comentadas, que en principio tampoco tendrían relación con que la comunicación se cierre de forma abrupta por parte del OS del dispositivo. Podría ser algún parámetro raro, pero sinceramente no me viene ahora mismo nada a la cabeza, como no fuese un timeout del OS del uso del puerto.
Otra opción que me viene a la cabeza es alguna regla iptables que tenga el propio terminal internamente y que se esté disparando, haciendo que empiece a filtrar el tráfico, lo cual podría verse como una respuesta de puerto no disponible, esto sería "facil" de comprobar si el terminal permite acceso por SSH y mirando las reglas iptables.
Saludos.
Hola Theliel
He tardado un poco más en poder hacer las capturas y contestarte porque estuve de baja y no pude desplazarme a la localidad donde trabajo, que es donde tenía el switch con el que poder hacer el mirroring y capturar el tráfico del terminal IP. El proveedor en esta localidad sigue siendo O2 igualmente, además con la misma tarifa que en la primera ubicación cuando abrí el post.
Tomando como base tus anteriores respuestas:
06-08-2024 16:45
Buenas @davidpuente2017
-En primer lugar, pese a que está supuestamente configurado a usar el puerto local 5060, el cliente responde siempre desde 5062. Esto ya de por sí puede dar diferentes problemas (no es obligado ya que realmente se puede usar como puerto local uno arbitrario). Pero más me extraña que, si la configuración de las capturas pone 5060, porque usa el 5062....
Como ya te comenté en otra respuesta, parece que este fabricante hace eso y no es modificable, por lo menos desde la web del terminal.
-En segundo lugar, el cliente SIP, dicho bien y pronto, se está pasando por el forro la contestación del servidor SIP de la expiración. Tu cliente SIP envía una expiración para el registro de 1 hora, el servidor te contest que 70 segundos, y tu cliente SIP le da exactamente igual. No importa que el cliente diga que se establece una expiración de X segundos, el servidor puede responder con el mismo valor si le parece bien, u otro diferente. En este caso contesta con 70 segundos, pero tu cliente no se da por enterado y TODOS los register van con 1 hora. Esto si es muy importante, el no configurarse de acuerdo a los parámetros que el servidor negocia. Dicho de otro modo, tu cliente SIP debería de modificar automáticamente la expiración a 70 segundos para estar conforme al servidor SIP
En la captura "01 Config Register" ya lo he modificado yo también a 70 segundos; más tarde, en la captura "05 Config Register Modif" mantengo ese tiempo de expiración pero cambio el número de reintentos de servidor de 1 a 10, por probar si mejora las pérdidas de registro.
-Otro problema, no veo que en el registro se esté enviando RPORT, y esto es esencial en entornos NAT. El Router es un dispositivo NAT, comparte tu conexión a Internet con todos tus dispositivos. SIP es uno de esos protocolos altamente problemáticos en entornos NAT, porque no se creó para ello. Es por ello que todo lo relacionado con NAT es de extrema importancia. Tampoco veo o sé que opciones te da el cliente para configurar NAT, en las capturas si veo un NAT Disabled, pero no sé que te permite seleccionar, sin contar que RPORT parece estar deshabilitado.
En la captura de "04.1 - Config Advanced" ya está habilitado RPORT en el terminal.
-Habría sido igualmente interesante ver el flujo de una llamada entrante, esperar 4-5 segundos de tono de llamada entrante, descolgar la llamada, esperar 4-5segundos y colgarla. Ahí es donde se puede apreciar realmente bien si existen problemas derivados a NAT.
Realizo en la captura una llamada entrante desde mi teléfono móvil primero de unos 10 segundos, dejando tambíen que suene unos 5-6 segundos. Después hago una saliente, que falla, porque pierde registro por el camino; la vuelvo a hacer y esta sí sale correctamente hasta mi teléfono móvil.
========================================================
06-08-2024 22:51
Buenas @davidpuente2017
-En lo que respecta al tiempo que pones, sigue pareciendo ignorarlo del todo, puede ser, repito, que sea porque el terminal sigue sin subscribirse. Después del registro, se debe de subscribir. En las opciones, mira a ver habilitando la que pone MWI subscribe. Al menos rport ya lo envía.
Encontré la opción y la habilité; en la captura de la configuración "4.1 Advance" la puedes ver activa ya.
========================================================
Para realizar la captura de los paquetes, en esta ocasión configuré un port mirroring en el switch hacia una segunda interfaz ethernet en mi PC. La configuración del escenario sería la siguiente:
Como indico ahí, la línea telefónica es un número distinto al de las pruebas iniciales, ya que no estoy en la misma localidad, así como el router HGU es un Mitrastar en este domicilio, no un Askey como en el otro, pero los fallos siguen persistiendo de la misma manera.
Un pequeño resumen de estas pruebas de hoy es que el terminal sigue perdiendo el registro de forma aleatoria, pese a los cambios realizados en la configuración, así como durante las llamadas puede perder el registro sin cortar la llamada.
Te paso por privado las capturas de tráfico.
Muchas gracias y un saludo.