Configurable idle timeout for Homer TCP connection

Abierto
#2,040 0 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Área
networking

Línea de trabajo

The payload names no files: start from wherever the --homer / --homer-protocol=tcp options are parsed and from the code that opens and writes the HEP socket, since that is where Write error to Homer ... Broken pipe is emitted. Read how other connection-related options are declared and documented so a new idle-timeout/reconnect option follows the same pattern. Done means the Homer TCP socket is detected as closed (CLOSE_WAIT) and reopened instead of failing the next write, with the option documented and a repro or test for an idle peer close.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Is your feature request related to a problem? Please describe

Hi,

I'm using rtpengine with --homer and --homer-protocol=tcp to send HEP traffic to a local stunnel instance, which then forwards the traffic (over TLS) to a remote Homer server.

From time to time I see the following log line:

[1765850620.856975] ERR: [U62KpxU9D2/bB5blxZxA/1 port 36493]: [core] Write error to Homer at 172.16.1.198:9062: Broken pipe

After some investigation it looks like the remote side (Homer/stunnel) closes the TCP connection when it has been idle for too long. On the rtpengine host, when the remote side closes the connection, netstat shows the socket in CLOSE_WAIT state. The connection stays in CLOSE_WAIT until the next call, and when rtpengine tries to send the next HEP packet over that connection, the write fails with Broken pipe.

My question: is there currently any way to control the idle timeout behavior for the TCP connection from rtpengine to Homer?

If this is not configurable today, would you consider adding such an option or automatic reconnect behavior when the Homer TCP connection has been closed by the peer due to idling?

Environment

  • rtpengine version: 12.5
  • OS / distro: bullseye
Lenguaje dominante
Perl
Estrellas
992
Forks
459
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sipwise/rtpengine

Todos los issues de sipwise/rtpengine

Issues similares

Más issues de Perl

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.