summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2002-03-05 15:59:01 +0000
committerMark Spencer <markster@digium.com>2002-03-05 15:59:01 +0000
commit5f53621223f8f7c94f0208bc0cffd6fa4d263422 (patch)
treeeb24eae822aac20c68f241c6d57dd51e6db930bb
parent4a792f6c7c540c97c49d06f8172fea08f3d879f0 (diff)
Version 0.1.11 from FTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-xapps/app_dial.c19
-rwxr-xr-xinclude/asterisk/channel.h8
2 files changed, 24 insertions, 3 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 5b24c6f5a..0fbfad004 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -313,15 +313,34 @@ static int dial_exec(struct ast_channel *chan, void *data)
cur = rest;
continue;
}
+ if (strlen(tmp->chan->call_forward)) {
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_3 "Forwarding call to '%s@%s'\n", tmp->chan->call_forward, tmp->chan->context);
+ /* Setup parameters */
+ strncpy(chan->exten, tmp->chan->call_forward, sizeof(chan->exten));
+ strncpy(chan->context, tmp->chan->context, sizeof(chan->context));
+ chan->priority = 0;
+ to = 0;
+ ast_hangup(tmp->chan);
+ free(tmp);
+ cur = rest;
+ break;
+ }
tmp->chan->appl = "AppDial";
tmp->chan->data = "(Outgoing Line)";
tmp->chan->whentohangup = 0;
if (tmp->chan->callerid)
free(tmp->chan->callerid);
+ if (tmp->chan->ani)
+ free(tmp->chan->ani);
if (chan->callerid)
tmp->chan->callerid = strdup(chan->callerid);
else
tmp->chan->callerid = NULL;
+ if (chan->ani)
+ tmp->chan->ani = strdup(chan->ani);
+ else
+ tmp->chan->ani = NULL;
/* Presense of ADSI CPE on outgoing channel follows ours */
tmp->chan->adsicpe = chan->adsicpe;
/* Place the call, but don't wait on the answer */
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 1d2b9c7e5..1331846cd 100755
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -169,8 +169,8 @@ struct ast_channel {
char *dnid;
/*! Malloc'd Caller ID */
char *callerid;
- /*! Malloc'd Hidden Caller*ID */
- char *hidden_callerid;
+ /*! Malloc'd ANI */
+ char *ani;
/*! Current extension context */
@@ -203,6 +203,8 @@ struct ast_channel {
struct ast_cdr *cdr;
/*! Whether or not ADSI is detected on CPE */
int adsicpe;
+ /*! Where to forward to if asked to dial on this interface */
+ char call_forward[AST_MAX_EXTENSION];
/*! For easy linking */
struct ast_channel *next;
@@ -445,7 +447,7 @@ char ast_waitfordigit(struct ast_channel *c, int ms);
/*!
* \param c channel to read from
* \param s string to read in to. Must be at least the size of your length
- * \param len how many digits to read
+ * \param len how many digits to read (maximum)
* \param timeout how long to timeout between digits
* \param rtimeout timeout to wait on the first digit
* \param enders digits to end the string