Jump to content
Калькуляторы

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

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

Share this post


Link to post
Share on other sites

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

 

[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})

Share this post


Link to post
Share on other sites

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

 

[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чем не подошёл?

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.