]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
If no group has been provided to the GROUP_COUNT dialplan function then use the first...
authorJoshua Colp <jcolp@digium.com>
Tue, 8 Jan 2008 19:53:52 +0000 (19:53 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 8 Jan 2008 19:53:52 +0000 (19:53 +0000)
(closes issue #11077)
Reported by: m4him

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97152 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_groupcount.c

index 93ec1e52fe5332ba846d548d85c7df787832ff9e..281d9d0554ad2d6ce01af23922fe8be5d0978dbb 100644 (file)
@@ -45,6 +45,24 @@ static int group_count_function_read(struct ast_channel *chan, char *cmd,
        ast_app_group_split_group(data, group, sizeof(group), category,
                                  sizeof(category));
 
+       /* If no group has been provided let's find one */
+       if (ast_strlen_zero(group)) {
+               struct ast_group_info *gi = NULL;
+
+               ast_app_group_list_lock();
+               for (gi = ast_app_group_list_head(); gi; gi = AST_LIST_NEXT(gi, list)) {
+                       if (gi->chan != chan)
+                               continue;
+                       if (ast_strlen_zero(category) || (!ast_strlen_zero(gi->category) && !strcasecmp(gi->category, category)))
+                               break;
+               }
+               if (gi) {
+                       ast_copy_string(group, gi->group, sizeof(group));
+                       ast_copy_string(category, gi->category, sizeof(category));
+               }
+               ast_app_group_list_unlock();
+       }
+
        if ((count = ast_app_group_get_count(group, category)) == -1)
                ast_log(LOG_NOTICE, "No group could be found for channel '%s'\n", chan->name);
        else