Stefan Viljoen
2018-Aug-02 12:34 UTC
[asterisk-users] Asterisk 13.22.0 - No channel type registered for 'Agent' when queue rings - solved
Hi Guys Found the solution for this...! https://wiki.asterisk.org/wiki/display/AST/New+in+12#Newin12-channels_chan_a gent and https://reviewboard.asterisk.org/r/2657/diff/1/ and https://blogs.asterisk.org/2016/02/10/converting-from-chan_agent-to-app_agen t_pool/ clarifies the situation. After Asterisk 12, chan_agent was removed from Asterisk. It has been replaced with the AgentRequest application. So I had to adapt my previously posted configs as follows to get queued agents working and answering incoming calls to the queue. My agents.conf stayed unchanged from my original post. My queues.conf had to change from my original post to: --- member=> Local/3997 at internal,,3997,Agent:3997 member=> Local/3998 at internal,,3998,Agent:3998 --- with the rest of the queue settings remaining the same. The agent login extension had to change to: --- exten=>1007,1,NoOp(Login agent from ${CALLERID(num)}) same=>n,Set(MONITOR_OPTIONS=b) same=>n,UnpauseQueueMember(,Local/${CALLERID(num)}@internal) same=>n,AgentLogin(${CALLERID(num)},s) --- In my [internal] context (where my phones live - including my test phones 3997 and 3998) I had to add extensions that would call the AgentRequest() dialplan application on each of them if that extension was dialled. This is effectively how the queue is answered: --- [internal] . . . exten=>3997,1,AgentRequest(3997) same=>n,Hangup() exten=>3998,1,AgentRequest(3998) same=>n,Hangup() . . . --- Then I set up a testing extension in [internal] called '48' that would trigger the queue and let me test: [internal] . . . exten=>48,1,NoOp(Sending test call to testq) same=>n,Queue(testq,trhc) . . . --- So, my test procedure was: 1. Phone 1007 on phone 3997 (1007 - see my original post - is my agent login extension that calls AgentLogin on the dialing extension.) This logs me into the queue 'testq' as Agent 3997. 2. Phone 1007 on phone 3998. This logs me into the queue 'testq' as Agent 3998. 3. Phone 48 from any other phone, which calls the Queue application on the testq, which is defined in queues.conf as consisting of agents / phones 3997 and 3998. 4. Due to my queue being set to " strategy = leastrecent" on repeated calls to extension 48, either 3997 or 3998 would pick up calls made. This is exactly the functionality desired and I now have a working model of Agent queues in Asterisk 13 using the new (to me) app_agent_pool interface via AgentRequest instead of trying to use "chan_agent" which no longer exists post Asterisk 12. All that is now needed is to GOTO from my incoming extension to local,48,1 or simply do Queue(testq,trhc) from my incoming extension directly. If I have logged in agents in the testq queue, the most least recently dialled agent will get connected to the caller. Maybe this helps someone. Kind regards, Stefan