From 036cb819d6e2b4a295ddd8658c56bc852f314514 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Thu, 15 Jan 2004 20:20:21 +0000 Subject: [PATCH] X out announce stuff (bug #760) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2039 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_dial.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/apps/app_dial.c b/apps/app_dial.c index 06073c2fdd..812944c6fe 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);