Jump to content

Recommended Posts

Posted

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

Posted

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

 

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

Posted

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

 

[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.

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.