diff --git a/apps/app_dial.c b/apps/app_dial.c index e71a616b3a0b94c31b923c680842ee4cde6e0c85..d5b7ca471581ee002e59eb312e8e35cfe7a5b92e 100755 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -93,6 +93,8 @@ static char *descrip = " In addition to transferring the call, a call may be parked and then picked\n" "up by another user.\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 SetGroup).\n" " This application sets the following channel variables upon completion:\n" " DIALEDTIME Time from dial to answer\n" " ANSWEREDTIME Time for actual call\n" @@ -485,6 +487,7 @@ static int dial_exec(struct ast_channel *chan, void *data) int playargs=0, sentringing=0, moh=0; char *varname; int vartype; + char *outbound_group = NULL; int digit = 0; time_t start_time, answer_time, end_time; @@ -707,6 +710,10 @@ static int dial_exec(struct ast_channel *chan, void *data) l = ""; ast_log(LOG_NOTICE, "Privacy DB is '%s', privacy is %d, clid is '%s'\n", privdb, privacy, l); } + + /* 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"); + cur = peers; do { /* Remember where to start next time */ @@ -873,6 +880,11 @@ static int dial_exec(struct ast_channel *chan, void *data) tmp->chan->adsicpe = chan->adsicpe; /* pass the digital flag */ ast_dup_flag(tmp->chan, chan, AST_FLAG_DIGITAL); + + /* If we have an outbound group, set this peer channel to it */ + if (outbound_group) + ast_app_group_set_channel(tmp->chan, outbound_group); + /* Place the call, but don't wait on the answer */ res = ast_call(tmp->chan, numsubst, 0);