====== FreePBX Queue Membership ====== Queue members are stored within AstDB, which is a Sqlite3 database so these aren't found in config files. You can influence these using the queue memmber add/remove commands via AMI or if so inclined by accessing the AstDB directly (not recommended). You can get a list of members using show queue within Asterisk (or asterisk -rx "queue show nnnnn") but we can also leverage FreePBX to get a list using the framework. "; exit; } include '/etc/freepbx.conf'; $FreePBX = FreePBX::Create(); $device=$FreePBX->Core->getDevice($argv[1]); $user=$FreePBX->Core->getUser($argv[1]); if ($astman) { $account = $argv[1]; //get dynamic members priority from astDB $get = $astman->database_show('QPENALTY/'.$account.'/agents'); if($get){ foreach($get as $key => $value){ $key=explode('/',$key); $mem[$key[4]]=$value; } foreach($mem as $mem => $pnlty){ $dynmem[]=$mem.','.$pnlty; } $results['dynmembers']=implode("\n",$dynmem); } else { $results['dynmembers']=''; } $results['dynmemberonly'] = $astman->database_get('QPENALTY/'.$account,'dynmemberonly'); print_r($results["dynmembers"]); } else { fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]); } ?> You can of course modify this code to change Queue Membership if needed. The recommended route is of course to use Asterisk's built in commands though. The format of AstDB *may* change in the future and this may break things for you. A scenario where this could be useful is when we're synchronising a list of queue members with a third party system. We use the code above to get a list of current members, then open a session with Asterisk via AMI and remove those who we don't want and add those we do. Remember queue membership changes occur right away and there's no need to do a dialplan reload etc.