Asterisk 星号13.22.0-没有为'注册通道类型;代理人';排队铃响时

Asterisk 星号13.22.0-没有为'注册通道类型;代理人';排队铃响时,asterisk,channels,agents,dialplan,Asterisk,Channels,Agents,Dialplan,使用下面的配置,我只需在Asterisk 13.22.0 CLI中继续获取此配置: WARNING[15872][C-00000051]: channel.c:6343 ast_request: No channel type registered for 'Agent' 当呼叫方被发送到该代理队列时,已登录的代理将等待星号为13的呼叫 3997和3998是我的两个代理人。他们可以互相呼叫,也可以接收来自其他分机的呼叫。他们可以用我的PBX打电话,没问题 My agents.conf: [ag

使用下面的配置,我只需在Asterisk 13.22.0 CLI中继续获取此配置:

WARNING[15872][C-00000051]: channel.c:6343 ast_request: No channel type registered for 'Agent'
当呼叫方被发送到该代理队列时,已登录的代理将等待星号为13的呼叫

3997和3998是我的两个代理人。他们可以互相呼叫,也可以接收来自其他分机的呼叫。他们可以用我的PBX打电话,没问题

My agents.conf:

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

[3997](agents)
fullname=>AGENT 1

[3998](agents)
fullname=>AGENT 2
My 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也没有接到电话,这两个电话都会无限期地继续与卫生部通话

在CLI上,每次响铃3916(“外部”电话)都会定时显示此消息:

我做错了什么

预期3997或3998将接收SIP/3916发出的传入呼叫。到目前为止,3916个环是永远的,3997和3998只是永远玩MOH,在3916/3998上听到的每个环都会发出上述错误

谢谢


Stefan找到了解决此问题的方法

澄清情况。星号12之后,chan_代理从星号中移除

它已被AgentRequest应用程序替换

因此,我必须按照如下方式调整我之前发布的配置,以使排队的代理工作并应答队列的传入呼叫

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

My 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()dialplan应用程序。这就是队列的有效应答方式:

[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)
.
.
.
所以,我的测试程序是:

  • 电话3997上的电话1007(1007-见我的原始帖子-是我的代理登录分机,在拨号分机上调用AgentLogin。)这将我作为代理3997登录到队列“testq”

  • 请拨打电话3998拨打电话1007。这会将我作为代理3998登录到队列“testq”

  • 来自任何其他电话的48号电话,呼叫testq上的队列应用程序,该应用程序在queues.conf中定义为由代理/电话3997和3998组成

  • 由于我的队列在重复呼叫分机48时被设置为“strategy=leastrecent”,3997或3998将接听所拨打的电话

  • 这正是所需的功能,我现在在星号13中有一个代理队列的工作模型,通过AgentRequest使用新的(对我来说)app_Agent_池接口,而不是尝试使用星号12之后不再存在的“chan_Agent”

    现在需要做的就是从传入扩展转到本地48,1,或者直接从传入扩展执行队列(testq,trhc)。如果我已经在testq队列中登录了代理,最近拨打的代理将连接到调用方

    也许这有助于某人从星号12之前的状态过渡到星号12或更高的状态

    亲切问候,

    斯特凡

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