1

使用以下配置,我只是在 Asterisk 13.22.0 CLI 中不断得到它:

WARNING[15872][C-00000051]: channel.c:6343 ast_request: No channel type registered for 'Agent'

每当呼叫者被发送到该代理队列时,登录的代理正在等待 Asterisk 13 上的呼叫。

3997和3998是我的两个代理。他们可以互相呼叫并接听来自其他分机的呼叫。他们可以从我的 PBX 中拨出电话,没问题。

我的agents.conf:

[agents](!)
autologoff=15
wrapuptime=5000
custom_beep=beep

[3997](agents)
fullname=>AGENT 1

[3998](agents)
fullname=>AGENT 2

我的 queues.conf:

[testq]
musicclass = default
strategy = leastrecent
timeout = 10
retry = 5
autofill = yes

member => Agent/3997,0,3997,hint:3997@default,no
member => Agent/3998,0,3998,hint:3998@default,no

此外,将 ringinuse 设置为 on(将上面的成员行更改为末尾有“yes”)除了使错误“No channel type...”在 13.22.0 CLI 中出现两次呼叫者听到的每个外部振铃外,没有任何效果,如果在上面的两行中将 ringinuse 设置为“no”,而不是每个外部环一次。

通过以下方式登录 extensions.conf 中的代理:

exten=>1007,1,NoOp(Login agent from ${CALLERID(num)})
 same=>n,Set(MONITOR_OPTIONS=b)
 same=>n,UnpauseQueueMember(,Agent/${CALLERID(num)})
 same=>n,AgentLogin(${CALLERID(num)},s)

代理登录的队列显示:

localhost*CLI> queue show
testq has 0 calls (max unlimited) in 'leastrecent' strategy (0s holdtime, 0s talktime), W:0, C:0, A:16, SL:0.0% within 0s
   Members:
      3997 (Agent/3997 from hint:3997@default) (ringinuse disabled) (In use) has taken no calls yet
      3998 (Agent/3998 from hint:3998@default) (ringinuse disabled) (In use) has taken no calls yet
   No Callers
localhost*CLI>

然后,如果从外部调用队列:

localhost*CLI> queue show
testq has 1 calls (max unlimited) in 'leastrecent' strategy (0s holdtime, 0s talktime), W:0, C:0, A:16, SL:0.0% within 0s
   Members:
      3997 (Agent/3997 from hint:3997@default) (ringinuse disabled) (In use) has taken no calls yet
      3998 (Agent/3998 from hint:3998@default) (ringinuse disabled) (In use) has taken no calls yet
   Callers:
      1. SIP/3916-00000055 (wait: 0:08, prio: 0)

3916 从未接听,3997 或 3998 均未接听电话,两者都无限期地继续与 MOH 通话。

在 CLI 上不断出现这种情况,与 3916(“外部”电话)的每个响铃计时:

taken no calls yet
   Callers:
      1. SIP/3916-00000055 (wait: 0:08, prio: 0)

localhost*CLI>
[Aug  2 10:37:39] WARNING[16925][C-00000056]: channel.c:6343 ast_request: No channel type registered for 'Agent'
[Aug  2 10:37:44] WARNING[16925][C-00000056]: channel.c:6343 ast_request: No channel type registered for 'Agent'
[Aug  2 10:37:49] WARNING[16925][C-00000056]: channel.c:6343 ast_request: No channel type registered for 'Agent'

我究竟做错了什么?

预期是 3997 或 3998 将接收 SIP/3916 发出的传入呼叫。截至目前,3916 永远响铃,而 3997 和 3998 只是永远播放 MOH,上述错误在 3916 / 外部听到每个响铃时都会发出上述错误。

谢谢!

斯特凡

4

1 回答 1

2

找到了解决方案...!

https://wiki.asterisk.org/wiki/display/AST/New+in+12#Newin12-channels_chan_agent

https://reviewboard.asterisk.org/r/2657/diff/1/

https://blogs.asterisk.org/2016/02/10/converting-from-chan_agent-to-app_agent_pool/

澄清情况。在 Asterisk 12 之后,chan_agent 从 Asterisk 中移除。

它已被 AgentRequest 应用程序取代。

因此,我必须按如下方式调整我之前发布的配置,以使排队的代理工作并接听队列的来电。

我的agents.conf 与我原来的帖子保持不变。

我的 queues.conf 必须从原来的帖子更改为:

member=>Local/3997@internal,,3997,Agent:3997 
member=>Local/3998@internal,,3998,Agent:3998

其余队列设置保持不变。

代理登录扩展必须更改为:

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)

在我的 [internal] 上下文中(我的电话所在的位置 - 包括我的测试电话 3997 和 3998),我必须添加分机,如果该分机被拨打,它将在每个电话上调用 AgentRequest() 拨号计划应用程序。这是有效地回答队列的方式:

[internal]
.
.
.
exten=>3997,1,AgentRequest(3997)
 same=>n,Hangup()

exten=>3998,1,AgentRequest(3998)
 same=>n,Hangup()
.
.
.

然后我在 [internal] 中设置了一个名为“48”的测试扩展,它将触发队列并让我测试:

[internal]
.
.
.
exten=>48,1,NoOp(Sending test call to testq)
same=>n,Queue(testq,trhc)
.
.
.

所以,我的测试程序是:

  1. 电话 3997 上的电话 1007(1007 - 请参阅我的原始帖子 - 是我的代理登录分机,它在拨号分机上调用 AgentLogin。)这使我作为代理 3997 进入队列“testq”。

  2. 电话 3998 上的电话 1007。这使我作为代理 3998 进入队列“testq”。

  3. 来自任何其他电话的电话 48,它调用 testq 上的 Queue 应用程序,该应用程序在 queues.conf 中定义为由代理/电话 3997 和 3998 组成。

  4. 由于重复呼叫分机 48 时我的队列设置为“strategy = leastrecent”,因此 3997 或 3998 将接听电话。

这正是所需的功能,我现在在 Asterisk 13 中有一个代理队列的工作模型,它通过 AgentRequest 使用新的(对我而言)app_agent_pool 接口,而不是尝试使用在 Asterisk 12 之后不再存在的“chan_agent”。

现在所需要做的就是从我的传入分机转到 local,48,1 或直接从我的传入分机执行 Queue(testq,trhc) 。如果我在 testq 队列中登录了座席,最近最少拨打的座席将连接到呼叫者。

也许这有助于某人从 Asterisk 12 之前的版本过渡到 Asterisk 12 或更高版本。

亲切的问候,

斯特凡

于 2018-08-02T12:41:31.530 回答