Modified app_queue.c and chan_agent.c DETAILS: * added a strategy called skillbased that does a bitmask compare similar to chmod * added the ability to provide a skillmask to a call from the Queue application so it can be matched against the skillmask of the agent * added a toolong arg to Queue that lets a call fall to the next item in the dialplan after x seconds. * modified chan_agent to have an a flag so you can log in with no password * added configration changes to queues.conf allowing you to setup chime-in sound files to tell the customer to stay on the line etc and a special keyword announce_pos that provides allison's voice telling you where you are in the queue and how long you need to wait. This announcement can be mixed and matched with real sound files. * fixes to chan_agent eliminating some deadlock scenerios (thanks tholo) queues.conf [premium_isp_tech] music = default announce = some_announce strategy = skillbased timeout = 10 retry = 5 ; chimelist is a , seperated list of sound file names and or ; 2 special words 'skip' (do nothing) and 'announce_pos' built-in ; position announcement chimelist = stay_on_the_line,announce_pos,your_call_is_impt ; chimereps is how many seconds to sleep between iterating the list chimereps = 25 ; loopmin is what item on the list to go back to after reaching the ; last one (default 1) loopmin = 1 member => Agent/1135,1,1 ; scott member => Agent/1088,2,4 ; nick extensions.conf ; skillmask can fill up an entire int so you have 31 bits to work with ; skillmask is 1 so only scott can answer exten => 1,1,Queue,premium_isp_tech|t|1|0 ; skillmask is 4 so only nick can answer exten => 1,1,Queue,premium_isp_tech|t|4|0 ; skillmask is 5 so scott or nick can answer exten => 1,1,Queue,premium_isp_tech|t|5|0 ; skillmask is 0 so anyone can answer and toolong is 120 ; so after 2 min wait you get vmail exten => 1,1,Queue,premium_isp_tech|t|0|120 exten => 1,2,VoiceMailMain(1234) ; log agent 1234 in on the fly ; the reason for this is you can gather auth ; another way and have mutiple ways to gain auth ; and not make them enter a passwd again exten => 2,1,AgentLogin(1234|a)