diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-28 04:33:16 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-28 04:33:16 +0000 |
commit | b56ba714346f59b0718d1cf1c6fa427232a6a5be (patch) | |
tree | 19324818da0d01742cbe252eb72be9324f7df702 /say.c | |
parent | fcb0714e114e1b5c10e4413869fd13ad8b20f89b (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-x | say.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -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; |