]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add variable to show which key was pressed to stop playback.
authorJason Parker <jparker@digium.com>
Tue, 11 Dec 2007 21:17:37 +0000 (21:17 +0000)
committerJason Parker <jparker@digium.com>
Tue, 11 Dec 2007 21:17:37 +0000 (21:17 +0000)
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

index edf10a18202e7fe189104d1afbf084b917b9c349..b6dfd898e05cda1ed546b908315be10d3e7b9cfe 100644 (file)
@@ -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;