aboutsummaryrefslogtreecommitdiffstats
path: root/say.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-04-28 04:33:16 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-04-28 04:33:16 +0000
commitb56ba714346f59b0718d1cf1c6fa427232a6a5be (patch)
tree19324818da0d01742cbe252eb72be9324f7df702 /say.c
parentfcb0714e114e1b5c10e4413869fd13ad8b20f89b (diff)
Merge bug 1483 -- advanced voicemail options
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2792 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'say.c')
-rwxr-xr-xsay.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/say.c b/say.c
index 2ca660500..07b5844e9 100755
--- a/say.c
+++ b/say.c
@@ -34,6 +34,7 @@ int ast_say_digit_str(struct ast_channel *chan, char *fn2, char *ints, char *lan
int num = 0;
int res = 0;
while(fn2[num] && !res) {
+ fn[0] = '\0';
switch (fn2[num]) {
case ('*'):
snprintf(fn, sizeof(fn), "digits/star");
@@ -42,12 +43,16 @@ int ast_say_digit_str(struct ast_channel *chan, char *fn2, char *ints, char *lan
snprintf(fn, sizeof(fn), "digits/pound");
break;
default:
- snprintf(fn, sizeof(fn), "digits/%c", fn2[num]);
+ if((fn2[num] >= '0') && (fn2[num] <= '9')){ /* Must be in {0-9} */
+ snprintf(fn, sizeof(fn), "digits/%c", fn2[num]);
+ }
}
- res = ast_streamfile(chan, fn, lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- ast_stopstream(chan);
+ if(strlen(fn)){ /* if length == 0, then skip this digit as it is invalid */
+ res = ast_streamfile(chan, fn, lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ ast_stopstream(chan);
+ }
num++;
}
return res;