diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2000-01-09 19:58:18 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2000-01-09 19:58:18 +0000 |
commit | f1c9aafaf37be55a354c041bb12d06a1f288307d (patch) | |
tree | 89ed2104faf17518c0da7f10c676b1fccc96c1e3 /apps/app_playback.c | |
parent | a320084f60096e46f2981f6300480f34317b508c (diff) |
Version 0.1.3 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@201 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_playback.c')
-rwxr-xr-x | apps/app_playback.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/apps/app_playback.c b/apps/app_playback.c index 31ee06949..be2dfe26e 100755 --- a/apps/app_playback.c +++ b/apps/app_playback.c @@ -31,18 +31,22 @@ LOCAL_USER_DECL; static int playback_exec(struct ast_channel *chan, void *data) { - int res; + int res = 0; struct localuser *u; if (!data) { ast_log(LOG_WARNING, "Playback requires an argument (filename)\n"); return -1; } LOCAL_USER_ADD(u); - ast_stopstream(chan); - res = ast_streamfile(chan, (char *)data); - if (!res) - res = ast_waitstream(chan, ""); - ast_stopstream(chan); + if (chan->state != AST_STATE_UP) + res = ast_answer(chan); + if (!res) { + ast_stopstream(chan); + res = ast_streamfile(chan, (char *)data, chan->language); + if (!res) + res = ast_waitstream(chan, ""); + ast_stopstream(chan); + } LOCAL_USER_REMOVE(u); return res; } |