Назад | Перейти на главную страницу

Как я могу заставить Asterisk отслеживать динамические статусы SIP-агента?

Я настраиваю новый сервер, используя Asterisk 1.8.11-Certific4. При тестировании мы видим, что агенты, динамически входящие в очередь, получат второй вызов очереди в качестве ожидающего вызова, если для параметра call-limit установлено значение 0.

Поскольку рассматриваемые агенты не всегда находятся в очереди агентов, call-limit = 1 без необходимости помешает им получать ожидающий вызов, даже когда они находятся вне очереди.

Тест и результат из приведенных ниже конфигураций были следующими:


extension.ael

context enter-sales-queue {
        s => {
                Answer();
                Queue(den-x-queue,,,,60);
                Voicemail(9001,u);
                Hangup();
        };
};

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

Я задал тот же вопрос в IRC-канале Asterisk на freenode, и один из разработчиков ответил, указав, что в более новых версиях Asterisk (я предполагаю, что 1.8 и выше) вам нужно указать callcounter = yes в общей конфигурации sip.conf.

Он также упомянул, что call-limit никогда не должен быть нулевым, поскольку это технически недопустимый вариант для этого поля. Это должно быть 1 или больше.

В версиях asterisk до 1.8 callcounter = yes не существует, поэтому простое указание лимита вызовов с произвольно большим числом заставит Asterisk правильно отслеживать количество вызовов и заставить очередь функционировать должным образом.


ЕСЛИ ASTERISK 1.8 ИЛИ ПОЗЖЕ:

sip.conf


[general]
callcounter=yes

ЕСЛИ ASTERISK ДО 1.8:

sip.conf


[exten]
type=friend
...
call-limit=999

Это может помочь:

После сообщений от нескольких пользователей Asterisk о том, что у них возникают проблемы с ringinuse = no not work, когда локальные каналы используются для обеспечения поддержки горячего рабочего стола в функции Asterisk Queue (), мы разработали очень простое решение для этого, которое теперь задокументировано. в нашем популярном руководстве по очередям Asterisk.

Вам не нужно делать ничего особенного с STATEINTERFACE, чтобы это работало, и оно также работает со всеми типами телефонов Asterisk, включая каналы SIP и DAHDI.

Для получения дополнительной информации см .:

http://www.orderlyq.com/asteriskqueuesLocal.html#ringinuse

Итак, если вы боретесь с этим, возможно, в результате отказа от теперь устаревшего механизма канала агента, вы можете взглянуть :)

[править] Для этого необходимо использовать OrderlyStats и установить для параметра Auto-Pause в разделе Admin значение> 0 [\ edit]