summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2004-10-10 01:42:46 +0000
committerMark Spencer <markster@digium.com>2004-10-10 01:42:46 +0000
commitb95043908048099f80f27f205cec72c03544c8de (patch)
tree2b3a9a61d6f06d2c592dc8ab02684cad85c450c5 /channels
parent9b702cc5433923a4ae3a4690f0ea4d8f2aa00e58 (diff)
Add autokill to IAX2, too
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_iax2.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 70f08b067..f309d4a45 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -114,6 +114,7 @@ static int maxjitterbuffer=1000;
static int jittershrinkrate=2;
static int trunkfreq = 20;
static int authdebug = 1;
+static int autokill = 0;
static int iaxcompat = 0;
static int iaxdefaultdpcache=10 * 60; /* Cache dialplan entries for 10 minutes by default */
@@ -2346,6 +2347,9 @@ static int iax2_call(struct ast_channel *c, char *dest, int timeout)
/* Initialize pingtime and auto-congest time */
iaxs[callno]->pingtime = iaxs[callno]->maxtime / 2;
iaxs[callno]->initid = ast_sched_add(sched, iaxs[callno]->maxtime * 2, auto_congest, CALLNO_TO_PTR(callno));
+ } else if (autokill) {
+ iaxs[callno]->pingtime = autokill / 2;
+ iaxs[callno]->initid = ast_sched_add(sched, autokill * 2, auto_congest, CALLNO_TO_PTR(callno));
}
send_command(iaxs[callno], AST_FRAME_IAX,
IAX_COMMAND_NEW, 0, ied.buf, ied.pos, -1);
@@ -6792,6 +6796,7 @@ static int set_config(char *config_file, struct sockaddr_in* sin){
char *cat;
char *utype;
int format;
+ int x;
struct iax2_user *user;
struct iax2_peer *peer;
#if 0
@@ -6849,6 +6854,17 @@ static int set_config(char *config_file, struct sockaddr_in* sin){
trunkfreq = atoi(v->value);
if (trunkfreq < 10)
trunkfreq = 10;
+ } else if (!strcasecmp(v->name, "autokill")) {
+ if (sscanf(v->value, "%i", &x) == 1) {
+ if (x >= 0)
+ autokill = x;
+ else
+ ast_log(LOG_NOTICE, "Nice try, but autokill has to be >0 or 'yes' or 'no' at line %d\n", v->lineno);
+ } else if (ast_true(v->value)) {
+ autokill = DEFAULT_MAXMS;
+ } else {
+ autokill = 0;
+ }
} else if (!strcasecmp(v->name, "bandwidth")) {
if (!strcasecmp(v->value, "low")) {
capability = IAX_CAPABILITY_LOWBANDWIDTH;