Asterisk 13.22.0 - Тип канала не зарегистрирован для «Агента» при звонке в очереди

С приведенной ниже конфигурацией я просто продолжаю получать это в интерфейсе командной строки Asterisk 13.22.0:

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

всякий раз, когда вызывающий абонент отправляется в эту очередь агентов с вошедшими в систему агентами, ожидающими вызовов на Asterisk 13.

3997 и 3998 — два моих агента. Они могут звонить друг другу и принимать звонки с других добавочных номеров. Они могут звонить из моей АТС, никаких проблем.

Мои агенты.conf:

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

[3997](agents)
fullname=>AGENT 1

[3998](agents)
fullname=>AGENT 2

Мои очереди.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

Кроме того, включение звонка (измените строку участника выше, чтобы в конце было «да»), не имеет никакого эффекта, за исключением того, что ошибка «Нет типа канала ...» появляется дважды в интерфейсе командной строки 13.22.0 для каждого внешнего звонка, услышанного вызывающим абонентом, вместо одного раза для каждого внешнего звонка, если в двух строках выше для Ringinuse установлено значение «нет».

Вход агента в 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 («внешний» телефон):

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 / извне.

Спасибо!

Стефан


person Stefan    schedule 02.08.2018    source источник


Ответы (1)


Нашел решение для этого ...!

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)

В моем [внутреннем] контексте (где живут мои телефоны, включая мои тестовые телефоны 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. Телефон 1007 на телефоне 3997 (1007 - см. мой исходный пост - это расширение для входа в систему моего агента, которое вызывает AgentLogin на добавочном номере.) Это регистрирует меня в очереди «testq» как агент 3997.

  2. Телефон 1007 на телефоне 3998. Это регистрирует меня в очереди «testq» как агента 3998.

  3. Телефон 48 с любого другого телефона, который вызывает приложение Queue на testq, которое определено в queues.conf как состоящее из агентов/телефонов 3997 и 3998.

  4. Из-за того, что моя очередь настроена на «стратегия = наименее недавняя» при повторных вызовах на добавочный номер 48, либо 3997, либо 3998 будут принимать вызовы.

Это именно то, что нужно, и теперь у меня есть рабочая модель очередей агентов в Asterisk 13 с использованием нового (для меня) интерфейса app_agent_pool через AgentRequest вместо попыток использовать «chan_agent», который больше не существует после Asterisk 12.

Все, что теперь нужно, это перейти от моего входящего расширения к локальному, 48,1 или просто выполнить Queue(testq,trhc) напрямую с моего входящего расширения. Если я зарегистрировал агентов в очереди testq, к вызывающему абоненту будет подключен агент, набранный последним.

Возможно, это поможет кому-то перейти с предыдущей версии Asterisk 12 на Asterisk 12 или выше.

С уважением,

Стефан

person Stefan    schedule 02.08.2018