Страница 1 из 2

Ограничение количества вызовов

Добавлено: 13 окт 2014, 10:29
Henior
Привет! Нужно ограничить количество вызовов на один аппарат до 1. Нашел много инфы по этому поводу и делаю, как там написано, но что то не выходит каменный цветок! Вод код extensions.conf

Код: Выделить всё

[macro-limit]
exten => s,1,Set(Group()=${ARG1})
exten => s,n,Set(Calls=${GROUP_COUNT(${ARG1}@in)})
exten => s,n,GotoIf($[${Calls}>1]?111)
exten => s,n,Dial(SIP/${ARG1},20,tT)
exten => s,111,Verbose(1, ***Количество вызовов ${Calls} больше лимита)
exten => s,n,Set(DIALSTATUS=CHANUNAVAIL)

[office]
exten => _5.,1,Verbose(1, ***** Вызов абонента ${EXTEN} *****)
exten => _5.,n,Macro(limit,${EXTEN})
Однако при вызове выдает такой сценарий

Код: Выделить всё

-- Executing [5001@office:1] Verbose("SIP/5000-00000000", "1, ***** Вызов абонента 5001 *****") in new stack
  ***** Вызов абонента 5001 *****
    -- Executing [5001@office:2] Macro("SIP/5000-00000000", "limit,5001") in new stack
    -- Executing [s@macro-limit:1] Set("SIP/5000-00000000", "Group()=5001") in new stack
    -- Executing [s@macro-limit:2] Set("SIP/5000-00000000", "Calls=0") in new stack
    -- Executing [s@macro-limit:3] GotoIf("SIP/5000-00000000", "0?111") in new stack
    -- Executing [s@macro-limit:4] Dial("SIP/5000-00000000", "SIP/5001,20,tT") in new stack
Т.е. количество вызовов всегда 0! Что я делаю не так? Что нужно дописать или исправить?

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 10:45
Vlad1983
в пирах
callcounter=yes
qualify=yes

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 11:34
Henior
Vlad1983 писал(а):в пирах
callcounter=yes
qualify=yes
Не помогло(((

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 13:38
Vlad1983

Код: Выделить всё

[macro-limit]
exten => s,1,Set(Group()=${ARG1})
exten => s,n,GotoIf($[${GROUP_COUNT(${ARG1})} > 1]?limit)
exten => s,n,Dial(SIP/${ARG1},20,tT)
exten => s,n(limit),Verbose(1, ***Количество вызовов больше лимита)
exten => s,n,Set(DIALSTATUS=CHANUNAVAIL)

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 15:14
Henior
Vlad1983 писал(а):Vlad1983
От перемены мест слагаемых сумма к сожалению не меняется! Предложили вот такой вариант

Код: Выделить всё

[macro-limit]
exten => s,1,NoOp(Инициация входящего вызова)
same=>n,NoOp(Статус: ${AVAILSTATUS})
same=>n,NoOp(SIP/${ARG1} состояние вызываемого пира: ${DEVICE_STATE(SIP/${ARG1})})
same=>n,GotoIf($["${DEVICE_STATE(SIP/${ARG1})}" = "NOT_INUSE"]?40)
same=>n,NoOp(Превышен лимит звонков или пир не существует!)
same=>n,Set(DIALSTATUS=BUSY)
same=>40,NoOp(Начинаем обработку локального звонка.)
same => n,Dial(SIP/${ARG1},20,tT)
same => n,Hangup()

[office]
exten => _5XXX,1,Macro(limit,${EXTEN})
Но все таки хочется разобраться со своим сценарием! Почему не работает есть какие идеи?

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 15:43
Vlad1983
версия астериска?

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 15:57
Henior
Vlad1983 писал(а):версия астериска?
Asterisk 1.8.11.0 built by palosanto @ rpmbuild32-2.elastix.palosanto.com on a i686 running Linux on 2012-03-29 22:46:45 UTC

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 16:03
Vlad1983
точно работать должно

Код: Выделить всё

asterisk -rx "sip show settings" | grep -i count

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 16:51
Henior
Включил call count в настройках астериска

sip.conf

Код: Выделить всё

[general]
callcount=yes

Код: Выделить всё

[root@asterisk2 asterisk]# asterisk -rx "sip show settings" | grep -i count
  Enable call counters:   Yes
Результат тот же!(

Re: Ограничение количества вызовов

Добавлено: 13 окт 2014, 17:03
Vlad1983
не верю
покажите настройки пира 5001