summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorJim Dixon <telesistant@hotmail.com>2004-12-09 22:39:14 +0000
committerJim Dixon <telesistant@hotmail.com>2004-12-09 22:39:14 +0000
commit998621f76a437e09b1b1b8573845ed6a40bc989b (patch)
treeb4d0d63b4901126bc53ced3a093084894255b389 /channels
parent9f1a7379ccb1b5555331b4d9ba0dd83ce98d29f1 (diff)
Fixed call parking, added separate paramater to allow/disallow call parking on
Zaptel interfaces (canpark=yes/no in zapata.conf), added urlbase paramater to Monitor so that a url can optionally be included in CDR (user field), cleaned up a couple of minor things git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_agent.c7
-rwxr-xr-xchannels/chan_zap.c8
2 files changed, 13 insertions, 2 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 526f24e12..9dc0ce7a6 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -1366,9 +1366,14 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
exten = NULL;
}
}
- if ( options ) {
+ if (options) {
while (*options) {
option = (char)options[0];
+ if ((option >= 0) && (option <= '9'))
+ {
+ options++;
+ continue;
+ }
if (option=='s')
play_announcement = 0;
else {
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 9f6475e8a..76a8c0f7b 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -196,6 +196,8 @@ static int threewaycalling = 0;
static int transfer = 0;
+static int canpark = 0;
+
static int cancallforward = 0;
static float rxgain = 0.0;
@@ -521,6 +523,7 @@ static struct zt_pvt {
int callwaitingcallerid;
int threewaycalling;
int transfer;
+ int canpark;
int digital;
int outgoing;
int dnd;
@@ -5129,7 +5132,7 @@ static void *ss_thread(void *data)
getforward = 0;
memset(exten, 0, sizeof(exten));
len = 0;
- } else if (p->transfer && !strcmp(exten, ast_parking_ext()) &&
+ } else if ((p->transfer || p->canpark) && !strcmp(exten, ast_parking_ext()) &&
p->subs[SUB_THREEWAY].owner &&
ast_bridged_channel(p->subs[SUB_THREEWAY].owner)) {
/* This is a three way call, the main call being a real channel,
@@ -6596,6 +6599,7 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio, struct zt_p
tmp->confno = -1;
tmp->propconfno = -1;
}
+ tmp->canpark = canpark;
tmp->transfer = transfer;
strncpy(tmp->defcontext,context,sizeof(tmp->defcontext)-1);
strncpy(tmp->language, language, sizeof(tmp->language)-1);
@@ -9333,6 +9337,8 @@ static int setup_zap(int reload)
adsi = ast_true(v->value);
} else if (!strcasecmp(v->name, "transfer")) {
transfer = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "canpark")) {
+ canpark = ast_true(v->value);
} else if (!strcasecmp(v->name, "echocancelwhenbridged")) {
echocanbridged = ast_true(v->value);
} else if (!strcasecmp(v->name, "busydetect")) {