diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-08-01 01:38:15 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-08-01 01:38:15 +0000 |
commit | bca09ec25b88f623ce55a6034d8e3c58bb471faf (patch) | |
tree | d9a2cf707a888cb14f2bbe30207477639bcae811 | |
parent | 71219703ee7cb19389f1c88f035dba282f8bdc1a (diff) |
Merge gryn's transfer digit timeout patch (bug #2184)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3555 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | configs/features.conf.sample | 1 | ||||
-rwxr-xr-x | res/res_features.c | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/configs/features.conf.sample b/configs/features.conf.sample index 20eb42747..4b0fda5ac 100755 --- a/configs/features.conf.sample +++ b/configs/features.conf.sample @@ -7,3 +7,4 @@ parkext => 700 ; What ext. to dial to park parkpos => 701-720 ; What extensions to park calls on context => parkedcalls ; Which context parked calls are in ;parkingtime => 45 ; Number of seconds a call can be parked for (default is 45 seconds) +;transferdigittimeout => 3 ; Number of seconds to wait between digits when transfering a call diff --git a/res/res_features.c b/res/res_features.c index 2190cd285..f6b4dfcda 100755 --- a/res/res_features.c +++ b/res/res_features.c @@ -38,6 +38,7 @@ #include <netinet/in.h> #define DEFAULT_PARK_TIME 45000 +#define DEFAULT_TRANSFER_DIGIT_TIMEOUT 3000 static char *parkedcall = "ParkedCall"; @@ -58,6 +59,8 @@ static int parking_start = 701; /* Last available extension for parking */ static int parking_stop = 750; +static int transferdigittimeout = DEFAULT_TRANSFER_DIGIT_TIMEOUT; + /* Registrar for operations */ static char *registrar = "res_parking"; @@ -342,7 +345,7 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast } res = 0; while(strlen(newext) < sizeof(newext) - 1) { - res = ast_waitfordigit(transferer, 3000); + res = ast_waitfordigit(transferer, transferdigittimeout); if (res < 1) break; if (res == '#') @@ -728,6 +731,12 @@ int load_module(void) parking_start = start; parking_stop = end; } + } else if(!strcasecmp(var->name, "transferdigittimeout")) { + if ((sscanf(var->value, "%d", &transferdigittimeout) != 1) || (transferdigittimeout < 1)) { + ast_log(LOG_WARNING, "%s is not a valid transferdigittimeout\n", var->value); + transferdigittimeout = DEFAULT_TRANSFER_DIGIT_TIMEOUT; + } else + transferdigittimeout = transferdigittimeout * 1000; } var = var->next; } |