I have developed recently exactly what you need - callcenter with queue, it announce caller position in queue - then connect to first available agent. It works with local extensions, as well as external PSTN numbers.
Check more details and demo it on my web site: http://a4business.com/?p=237
, it is based on clear Asterisk installation and PHP-agi, nothing more - very simple.
Also, I do a2billing modules like this one: http://a4business.com/?post=393
and more and more other things for VOIP business.
my skype ID is: app4business
leave me a message!