Announce Number of Callers Waiting in Queue
The *47 feature code to check Queue status supports appending a Queue number to check the status of a specific Queue (*47*<queuenum>). Unfortunately, Asterisk doesn't generate these as BLF hints in the dialplan. So, if you assign this to a BLF capable button on a phone, it won't provide at-a-glace status to your users (on most phones, the key won't "light up" at all).
We can fix this with a very simple single line of custom dialplan code! Per usual, you'll make these edits via Admin > Config Edit and selecting the extensions_custom.conf file under Asterisk Custom Configuration Files. Also per usual, if you already have a specific [context-name] in your extensions_custom.conf file, you should append new lines to the existing context. You should never use the same exact [context-name] twice, as the last use of the [context-name] will overwrite all previous instances of it.
We'll be adding the context [ext-queues-custom] and using just a single line per queue we wish to create a BLF hint for:
exten => *47*<queuenum>,hint,Queue:<queuenum>
Example; where we want to create BLF hints for queues 1001 and 1987:
[ext-queues-custom]
exten => *47*1001,hint,Queue:1001
exten => *47*1987,hint,Queue:1987
;--== end of [ext-queues-custom] ==--;
(Note: That last ";--== end of [ext-queues-custom] ==--;" line is just a comment that makes it easier to read larger dialplan files and longer contexts.)
Once you Save and Apply Config, you can assign a BLF key on your phone to *47*<queuenum> (*47*1001 for example) and that key will show Available/Green when no callers are holding in Queue and Busy/Red when there is at least 1 caller waiting in the Queue. Pressing the BLF key will call *47*<queuenum> and play a message telling you how many callers are waiting in that Queue.
Direct Transfer to Queue
If you'd rather a BLF status key that you can use to directly transfer callers into the Queue, simply use the <queuenum> for the pattern match in your hint lines:
[ext-queues-custom]
exten => 1001,hint,Queue:1001
exten => 1987,hint,Queue:1987
;--== end of [ext-queues-custom] ==--;
On your Phones, you'll still assign a BLF key, but to just <queuenum> instead. This will still show the same Available/Busy status on the BLF based on Queue occupancy, but now can be used to transfer a caller directly into that Queue.
Best of Both Worlds
You can deploy both types of hint at the same time, as well:
[ext-queues-custom]
exten => *47*1001,hint,Queue:1001
exten => 1001,hint,Queue:1001
exten => *47*1987,hint,Queue:1987
exten => 1987,hint,Queue:1987
;--== end of [ext-queues-custom] ==--;