aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_playback.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-09 19:58:18 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-09 19:58:18 +0000
commitf1c9aafaf37be55a354c041bb12d06a1f288307d (patch)
tree89ed2104faf17518c0da7f10c676b1fccc96c1e3 /apps/app_playback.c
parenta320084f60096e46f2981f6300480f34317b508c (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-xapps/app_playback.c16
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;
}