星号13.22.0-队列响起时未为“代理”注册任何渠道类型

时间:2018-08-02 09:02:53

标签: asterisk channels agents dialplan

通过以下配置,我一直在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打电话,没问题。

我的agent.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”)无效,除了在每个外部环听到的13.22.0 CLI中两次出现“ No channel type ...”错误之外如果是在上述两行中将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或从外部听到的每个振铃都会发出上述错误。

谢谢!

Stefan

1 个答案:

答案 0 :(得分: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/

阐明情况。星号12之后,chan_agent已从星号中删除。

它已被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)

在我的[内部]上下文中(我的电话所在的地方-包括我的测试电话3997和3998),我必须添加扩展名,如果拨打了该扩展名,则会在每个扩展名上调用AgentRequest()拨号计划应用程序。有效地解决了队列问题:

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

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

然后,我在[内部]中设置了一个称为“ 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时将队列设置为“策略=最近”,因此3997或3998都会接听电话。

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

现在所需要做的就是从传入扩展名转到本地48,1,或者直接从传入扩展名执行Queue(testq,trhc)。如果我已在testq队列中登录座席,则最近拨打电话最少的座席将与呼叫者建立连接。

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

亲切的问候,

Stefan