diff options
author | Mark Spencer <markster@digium.com> | 2004-01-15 20:20:21 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-01-15 20:20:21 +0000 |
commit | 036cb819d6e2b4a295ddd8658c56bc852f314514 (patch) | |
tree | 10f72a624d9c8c26bad0163393f19392ad9ea998 /apps/app_dial.c | |
parent | 94da5ac1e8fd5e2260b42f12f3dcfe7fe024e9a3 (diff) |
X out announce stuff (bug #760)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2039 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_dial.c')
-rwxr-xr-x | apps/app_dial.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c index 06073c2fd..812944c6f 100755 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -347,7 +347,6 @@ static int dial_exec(struct ast_channel *chan, void *data) int privacy=0; int announce=0; int resetcdr=0; - int cnt=0; char numsubst[AST_MAX_EXTENSION]; char restofit[AST_MAX_EXTENSION]; char *transfer = NULL; @@ -397,6 +396,24 @@ static int dial_exec(struct ast_channel *chan, void *data) if (transfer) { + /* XXX ANNOUNCE SUPPORT */ + if ((ann = strstr(transfer, "A("))) { + announce = 1; + strncpy(announcemsg, ann + 2, sizeof(announcemsg) - 1); + /* Overwrite with X's what was the announce info */ + while(*ann && (*ann != ')')) + *(ann++) = 'X'; + if (*ann) + *ann = 'X'; + /* Now find the end of the privdb */ + ann = strchr(announcemsg, ')'); + if (ann) + *ann = '\0'; + else { + ast_log(LOG_WARNING, "Transfer with Announce spec lacking trailing ')'\n"); + announce = 0; + } + } /* Extract privacy info from transfer */ if ((s = strstr(transfer, "P("))) { privacy = 1; @@ -411,7 +428,7 @@ static int dial_exec(struct ast_channel *chan, void *data) if (s) *s = '\0'; else { - ast_log(LOG_WARNING, "Transfer with privacy lacking trailing '('\n"); + ast_log(LOG_WARNING, "Transfer with privacy lacking trailing ')'\n"); privacy = 0; } } else if (strchr(transfer, 'P')) { @@ -420,16 +437,6 @@ static int dial_exec(struct ast_channel *chan, void *data) } else if (strchr(transfer, 'C')) { resetcdr = 1; } - /* XXX ANNOUNCE SUPPORT */ - else if ((ann = strstr(transfer, "A("))) { - announce = 1; - strncpy(announcemsg, ann + 2, sizeof(announcemsg) - 1); - cnt=0; - while(announcemsg[cnt] != ')') { - cnt++; - } - announcemsg[cnt]='\0'; - } } if (resetcdr && chan->cdr) ast_cdr_reset(chan->cdr, 0); |