Ticket #95 (closed enhancement: fixed)

Opened 11 years ago

Last modified 10 years ago

Keep-alive mechanism for TCP and TLS transports

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-0.8.0
Component: pjsip Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp) (diff)

TCP and TLS transports should periodically transmit packet to keep the connection and NAT binding open.

Change History

comment:1 Changed 10 years ago by bennylp

  • Version changed from 0.5.10 to trunk
  • Milestone changed from release-0.7.0 to release-0.7.1

comment:2 Changed 10 years ago by bennylp

  • Description modified (diff)
  • Summary changed from Transmit CRLF packets to keep NAT binding open to Keep-alive mechanism for TCP and TLS transports

comment:3 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

Done in r1473:

  • Implemented keep-alive mechanism for TCP and TLS transports. The keep-alive mechanism is controlled by two settings in pjsip/sip_config.h: PJSIP_TCP/TLS_KEEP_ALIVE_INTERVAL, to control the interval, when this value is zero keep-alive mechanism will not be used, and PJSIP_TCP/TLS_KEEP_ALIVE_DATA to specify the payload to be sent with the packet.
  • TCP transport idle-time-before-closing value (PJSIP_TRANSPORT_IDLE_TIME setting) is increased from 60 seconds to 600 seconds.
  • Because of ticket #390, TLS transport is no longer kept indefinitely in the stack. Previously the reference counter for TLS is initialized to 1, which means that TLS transport will be kept indefinitely in the stack until it is explicitly shutdown by application.

comment:4 Changed 10 years ago by bennylp

Fixed in r1476:

  • keep-alive timer is not canceled when TLS transport is destroyed, causing crash in the timer heap.
Note: See TracTickets for help on using tickets.