From 21df42b35c99f9565cfa67eb9820072974c321c3 Mon Sep 17 00:00:00 2001 From: Jason Parker <jparker@digium.com> Date: Tue, 11 Dec 2007 21:17:37 +0000 Subject: [PATCH] Add variable to show which key was pressed to stop playback. Issue #11377, initial patch by johan. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92401 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_controlplayback.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/app_controlplayback.c b/apps/app_controlplayback.c index edf10a1820..b6dfd898e0 100644 --- a/apps/app_controlplayback.c +++ b/apps/app_controlplayback.c @@ -55,7 +55,9 @@ static const char *descrip = " CPLAYBACKSTATUS - This variable contains the status of the attempt as a text\n" " string, one of: SUCCESS | USERSTOPPED | ERROR\n" " CPLAYBACKOFFSET - This contains the offset in ms into the file where\n" -" playback was at when it stopped. -1 is end of file.\n"; +" playback was at when it stopped. -1 is end of file.\n" +" CPLAYBACKSTOPKEY - If the playback is stopped by the user this variable contains\n" +" the key that was pressed.\n"; enum { OPT_OFFSET = (1 << 1), @@ -82,6 +84,7 @@ static int controlplayback_exec(struct ast_channel *chan, void *data) int skipms = 0; long offsetms = 0; char offsetbuf[20]; + char stopkeybuf[2]; char *tmp; struct ast_flags opts = { 0, }; char *opt_args[OPT_ARG_ARRAY_LEN]; @@ -132,8 +135,10 @@ static int controlplayback_exec(struct ast_channel *chan, void *data) /* If we stopped on one of our stop keys, return 0 */ if (res > 0 && args.stop && strchr(args.stop, res)) { - res = 0; pbx_builtin_setvar_helper(chan, "CPLAYBACKSTATUS", "USERSTOPPED"); + snprintf(stopkeybuf, sizeof(stopkeybuf), "%c", res); + pbx_builtin_setvar_helper(chan, "CPLAYBACKSTOPKEY", stopkeybuf); + res = 0; } else { if (res < 0) { res = 0; -- GitLab