--- chan_sip.c 2004-11-30 01:31:39.000000000 -0500 +++ chan_sip2.c 2004-11-30 01:32:00.000000000 -0500 @@ -73,6 +73,7 @@ #define SIPDUMPER #define DEFAULT_DEFAULT_EXPIRY 120 #define DEFAULT_MAX_EXPIRY 3600 +#define DEFAULT_REGISTRATION_TIMEOUT 20 /* guard limit must be larger than guard secs */ /* guard min must be < 1000, and should be >= 250 */ @@ -153,6 +154,8 @@ static int global_progressinband = 0; +static int global_reg_timeout = DEFAULT_REGISTRATION_TIMEOUT; + #ifdef OSP_SUPPORT static int global_ospauth = 0; /* OSP = Open Settlement Protocol */ #endif @@ -4127,7 +4130,7 @@ ast_log(LOG_WARNING, "Still have a timeout, %d\n", r->timeout); ast_sched_del(sched, r->timeout); } - r->timeout = ast_sched_add(sched, 20*1000, sip_reg_timeout, r); + r->timeout = ast_sched_add(sched, global_reg_timeout*1000, sip_reg_timeout, r); ast_log(LOG_DEBUG, "Scheduled a timeout # %d\n", r->timeout); } @@ -8774,6 +8777,10 @@ default_expiry = atoi(v->value); if (default_expiry < 1) default_expiry = DEFAULT_DEFAULT_EXPIRY; + } else if (!strcasecmp(v->name, "registertimeout")){ + global_reg_timeout = atoi(v->value); + if (global_reg_timeout < 1) + global_reg_timeout = DEFAULT_REGISTRATION_TIMEOUT; } else if (!strcasecmp(v->name, "bindaddr")) { if (!(hp = ast_gethostbyname(v->value, &ahp))) { ast_log(LOG_WARNING, "Invalid address: %s\n", v->value);