--- ../clean/asterisk-1.6.2.17-rc2/apps/app_queue.c 2010-12-16 22:49:33.000000000 +0200 +++ apps/app_queue.c 2011-02-17 09:36:53.000000000 +0200 @@ -746,6 +747,8 @@ char queue_quantity1[80]; /*! Sound file: "callers waiting to speak with a representative" (def. queue-quantity2) */ char queue_quantity2[80]; + /* Channel Group */ + char changroup[80]; /*! Sound files: Custom announce, no default */ struct ast_str *sound_periodicannounce[MAX_PERIODIC_ANNOUNCEMENTS]; unsigned int dead:1; @@ -1432,6 +1438,8 @@ ast_copy_string(q->queue_quantity1, val, sizeof(q->queue_quantity1)); } else if (!strcasecmp(param, "queue-quantity2")) { ast_copy_string(q->queue_quantity2, val, sizeof(q->queue_quantity2)); + } else if (!strcasecmp(param, "changroup")) { + ast_copy_string(q->changroup, val, sizeof(q->changroup)); } else if (!strcasecmp(param, "queue-holdtime")) { ast_copy_string(q->sound_holdtime, val, sizeof(q->sound_holdtime)); } else if (!strcasecmp(param, "queue-minutes")) { @@ -3009,6 +3030,12 @@ if (!peer) { ast_verb(3, "%s answered %s\n", o->chan->name, in->name); peer = o; + /*Set Chan Group qagent on channel*/ + if (!ast_strlen_zero(o->member->membername) && !ast_strlen_zero(qe->parent->changroup)) { + char grpcat[161]=""; + sprintf(grpcat,"%s@%s", o->member->membername, qe->parent->changroup); + ast_app_group_set_channel(o->chan, grpcat); + } } break; case AST_CONTROL_BUSY: