From 631167962702f99445f26aae08e9068b863283e8 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 10 Apr 2012 03:48:22 +0000 Subject: More re #1465: introduce separate idle timeout setting for server side TCP/TLS connection and set the default to 600 seconds git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4032 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsip/sip_config.h | 18 ++++++++++++++++-- pjsip/src/pjsip/sip_transport.c | 4 +++- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'pjsip') diff --git a/pjsip/include/pjsip/sip_config.h b/pjsip/include/pjsip/sip_config.h index 3d0c0946..8efc8814 100644 --- a/pjsip/include/pjsip/sip_config.h +++ b/pjsip/include/pjsip/sip_config.h @@ -427,8 +427,9 @@ PJ_INLINE(pjsip_cfg_t*) pjsip_cfg(void) /** - * Idle timeout interval to be applied to transports with no usage - * before the transport is destroyed. Value is in seconds. + * Idle timeout interval to be applied to outgoing transports (i.e. client + * side) with no usage before the transport is destroyed. Value is in + * seconds. * * Default: 30 */ @@ -437,6 +438,19 @@ PJ_INLINE(pjsip_cfg_t*) pjsip_cfg(void) #endif +/** + * Idle timeout interval to be applied to incoming transports (i.e. server + * side) with no usage before the transport is destroyed. Server typically + * should let client close the connection, hence set this interval to a large + * value. Value is in seconds. + * + * Default: 600 + */ +#ifndef PJSIP_TRANSPORT_SERVER_IDLE_TIME +# define PJSIP_TRANSPORT_SERVER_IDLE_TIME 600 +#endif + + /** * Maximum number of usages for a transport before a new transport is * created. This only applies for ephemeral transports such as TCP. diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c index 13b33e09..556868cf 100644 --- a/pjsip/src/pjsip/sip_transport.c +++ b/pjsip/src/pjsip/sip_transport.c @@ -857,7 +857,9 @@ PJ_DEF(pj_status_t) pjsip_transport_dec_ref( pjsip_transport *tp ) if (tp->is_shutdown) { delay.sec = delay.msec = 0; } else { - delay.sec = PJSIP_TRANSPORT_IDLE_TIME; + delay.sec = (tp->dir==PJSIP_TP_DIR_OUTGOING) ? + PJSIP_TRANSPORT_IDLE_TIME : + PJSIP_TRANSPORT_SERVER_IDLE_TIME; delay.msec = 0; } -- cgit v1.2.3