Перейти к содержимому
Калькуляторы

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

Привет! Нужно ограничить количество вызовов на один аппарат до 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})

 

sip.conf

 

[trunk](!)
secret=1
host=dynamic
dtmfmode=info
port=5060
context=office
canreinvite=yes
nat=no
disallow=all
allow=alaw,ulaw

[5000](trunk)
mailbox=5000
username=5000
callcounter=yes
qualify=u00
type=friend

[5001](trunk)
mailbox=5001
username=5001
#call-limit=1
callcounter=yes
qualify=u00
type=friend

[5002](trunk)
mailbox=5002
username=5002
callcounter=yes
qualify=u00
type=friend

[217](trunk)
mailbox=217
username=217
typr=friend
qualify=5000

[219](trunk)
mailbox=219
username=219
type=friend
qualify=5000

 

Однако при вызове выдает такой сценарий

 

-- 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! Что я делаю не так? Что нужно дописать или исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ура! Ура! Ура! Заработало, как я и хотел!

 

[macro-limit-group] 
exten=>s,1,Set(GROUP()=${ARG1}) 
exten=>s,n,Set(CALLS=${GROUP_COUNT(${GROUP()})}) 
exten=>s,n,GotoIf($[${CALLS}>1]|?inuse) 
exten=>s,n,Dial(SIP/${ARG1},20,tT) 
exten=>s,n(inuse),Set(DIALSTATUS=BUSY) 


[office] 
exten => _5XXX,1,Macro(limit-group,${EXTEN})

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ура! Ура! Ура! Заработало, как я и хотел!

 

[macro-limit-group] 
exten=>s,1,Set(GROUP()=${ARG1}) 
exten=>s,n,Set(CALLS=${GROUP_COUNT(${GROUP()})}) 
exten=>s,n,GotoIf($[${CALLS}>1]|?inuse) 
exten=>s,n,Dial(SIP/${ARG1},20,tT) 
exten=>s,n(inuse),Set(DIALSTATUS=BUSY) 


[office] 
exten => _5XXX,1,Macro(limit-group,${EXTEN})

 

А call-limit=1чем не подошёл?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.