[asterisk-users] Asterisk 13.22.0 - No channel type registered for 'Agent' when queue rings - solved

Stefan Viljoen viljoens at verishare.co.za
Thu Aug 2 07:34:22 CDT 2018


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




More information about the asterisk-users mailing list