]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add OUTBOUND_GROUP_ONCE variable to app_dial. This behaves the same as OUTBOUND_GROUP...
authorJoshua Colp <jcolp@digium.com>
Fri, 13 Apr 2007 19:15:12 +0000 (19:15 +0000)
committerJoshua Colp <jcolp@digium.com>
Fri, 13 Apr 2007 19:15:12 +0000 (19:15 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@61655 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c

index d900a14d2322c3ad5b00fc3f910df85eb6ad5c5d..b04b3343506135a87598fb0665d5bad64998e702 100644 (file)
@@ -90,7 +90,10 @@ static char *descrip =
 "ends the call.\n"
 "  The optional URL will be sent to the called party if the channel supports it.\n"
 "  If the OUTBOUND_GROUP variable is set, all peer channels created by this\n"
-"application will be put into that group (as in Set(GROUP()=...).\n\n"
+"application will be put into that group (as in Set(GROUP()=...).\n"
+"  If the OUTBOUND_GROUP_ONCE variable is set, all peer channels created by this\n"
+"application will be put into that group (as in Set(GROUP()=...). Unlike OUTBOUND_GROUP,\n"
+"however, the variable will be unset after use.\n\n"
 "  Options:\n"
 "    A(x) - Play an announcement to the called party, using 'x' as the file.\n"
 "    C    - Reset the CDR for this call.\n"
@@ -1009,10 +1012,15 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
 
        if (continue_exec)
                *continue_exec = 0;
-
+       
        /* If a channel group has been specified, get it for use when we create peer channels */
-       outbound_group = pbx_builtin_getvar_helper(chan, "OUTBOUND_GROUP");
-
+       if ((outbound_group = pbx_builtin_getvar_helper(chan, "OUTBOUND_GROUP_ONCE"))) {
+               outbound_group = ast_strdupa(outbound_group);
+               pbx_builtin_setvar_helper(chan, "OUTBOUND_GROUP_ONCE", NULL);
+       } else {
+               outbound_group = pbx_builtin_getvar_helper(chan, "OUTBOUND_GROUP");
+       }
+           
        ast_copy_flags(peerflags, &opts, OPT_DTMF_EXIT | OPT_GO_ON | OPT_ORIGINAL_CLID | OPT_CALLER_HANGUP);
        cur = args.peers;
        do {