* The iax.conf forcejitterbuffer option has been removed. It is now always
forced if you set iax.conf jitterbuffer=yes. If you put a jitter buffer
on a channel it will be on the channel.
+ * A new configuration parameters, 'calltokenexpiration', has been added that
+ controls the duration before a call token expires. Default duration is 10
+ seconds. Setting this to a higher value may help in lagged networks or those
+ experiencing high packet loss.
chan_sip
------------------
static int randomcalltokendata;
-static const time_t MAX_CALLTOKEN_DELAY = 10;
+static time_t max_calltoken_delay = 10;
/*!
* This module will get much higher performance when doing a lot of
if (strcmp(hash, rec_hash)) {
ast_log(LOG_WARNING, "Address %s failed CallToken hash inspection\n", ast_sockaddr_stringify(addr));
goto reject; /* received hash does not match ours, reject */
- } else if ((t < rec_time) || ((t - rec_time) >= MAX_CALLTOKEN_DELAY)) {
+ } else if ((t < rec_time) || ((t - rec_time) >= max_calltoken_delay)) {
ast_log(LOG_WARNING, "Too much delay in IAX2 calltoken timestamp from address %s\n", ast_sockaddr_stringify(addr));
goto reject; /* too much delay, reject */
}
if (add_calltoken_ignore(v->value)) {
ast_log(LOG_WARNING, "Invalid calltokenoptional address range - '%s' line %d\n", v->value, v->lineno);
}
- } else if (!strcasecmp(v->name, "subscribe_network_change_event")) {
+ } else if (!strcasecmp(v->name, "calltokenexpiration")) {
+ int temp = -1;
+ sscanf(v->value, "%u", &temp);
+ if( temp <= 0 ){
+ ast_log(LOG_WARNING, "Invalid calltokenexpiration value %s. Should be integer greater than 0.\n", v->value);
+ } else {
+ max_calltoken_delay = temp;
+ }
+ } else if (!strcasecmp(v->name, "subscribe_network_change_event")) {
if (ast_true(v->value)) {
subscribe_network_change = 1;
} else if (ast_false(v->value)) {