Как я могу заставить Asterisk отслеживать динамические статусы агентов SIP?
Я устанавливаю новый сервер, используя Asterisk 1.8.11-Certified4. При тестировании мы видим, что агенты, динамически входящие в очередь, получат второй вызов очереди как ожидание вызова, когда предел вызова установлен в 0.
Поскольку рассматриваемые операторы не всегда находятся в очереди операторов, call-limit=1 излишне помешает им получать ожидание вызова, даже когда они находятся вне очереди.
Тест и результат из приведенных ниже конфигов были следующими:
- Имел удаленный вход пользователя в очередь
- Помещенный звонок в очередь
- удаленный пользователь ответил на звонок № 1
- поместил вызов № 2 в очередь
- удаленный пользователь сообщил, что второй вызов поступил как ожидание вызова.
extensions.ael
context enter-sales-queue { s => { Ответ(); Очередь (ден-х-очередь,,,,60); Голосовая почта (9001, и); Вешать трубку(); }; };
queues.conf
[den-careers-queue]
strategy=leastrecent
timeout=17
ringinuse=no
autopause=no
musicclass = default
context = so-operator
monitor-format = wav
setinterfacevar = yes
timeoutpriority = conf
monitor-type=MixMonitor
reportholdtime=no
ringinuse=no
joinempty=strict
leavewhenempty=strict
retry=2
sip.conf
[local-codecs](!) ; local user codecs, dont compress.
disallow=all
allow=ulaw
allow=alaw
[basic-options](!) ; template for what every sip user should have
dtmfmode=rfc2833
context=stationside
type=friend
host=dynamic
allowsubscribe=yes
subscribecontext=blf
notifyringing=yes
notifyhold=yes
limitonpeers=yes
call-limit=0
[local-mode](!,basic-options,local-codecs)
nat=no
qualify=yes
[6599](local-mode)
secret=xxxx
callerid=Peter Grace
accountcode=foobar
2 ответа
Я задал тот же вопрос в IRC-канале Asterisk на freenode, и один из разработчиков ответил, что в более новых версиях Asterisk (я полагаю, 1.8 и выше) вам нужно указать callcounter = yes в вашем общем конфиге sip.conf.
Он также упомянул, что call-limit никогда не должен быть равен нулю, поскольку это технически недопустимая опция для этого поля. Это должно быть 1 или больше.
В версиях Asterisk до 1.8 callcounter = yes не существует, поэтому простое указание предела вызовов с произвольно большим числом приведет к тому, что Asterisk правильно отследит количество вызовов и сделает функцию очереди ожидаемой.
ЕСЛИ звездочка 1.8 или позже:
sip.conf
[general]
callcounter=yes
ЕСЛИ ЗВЕЗДОЧКА ДО 1.8:
sip.conf
[exten]
type=friend
...
call-limit=999
Это может помочь:
После сообщений от нескольких пользователей Asterisk о том, что у них проблемы с ringinuse= не работает, когда локальные каналы используются для поддержки горячей работы в функции Asterisk Queue(), мы разработали очень простое решение для этой проблемы, которое теперь задокументировано. в нашем популярном учебнике по Asterisk Queues.
Вам не нужно ничего делать со STATEINTERFACE, чтобы заставить это работать, и это также работает со всеми типами телефонов Asterisk, включая SIP и DAHDI каналы.
Для получения дополнительной информации, пожалуйста, смотрите:
http://www.orderlyq.com/asteriskqueuesLocal.html
Так что, если вы боретесь с этим, возможно, в результате отказа от ныне устаревшего механизма Agent Channel, вы можете посмотреть:)
[edit] Для этого необходимо использовать OrderlyStats и установить для параметра Auto-Pause в разделе Admin значение>0 [\edit]