Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#95 closed enhancement (fixed)

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)

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

Change History (4)

comment:1 Changed 17 years ago by bennylp

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

comment:2 Changed 17 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 17 years ago by bennylp

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

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 17 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.