Как я могу заставить 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]

Другие вопросы по тегам