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

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 06 фев 2013, 06:38
awsswa
Боюсь решение строго индувидуальное, надо писать с нуля.
Но как читать и писать в базу можете глянуть на примере:
http://awsswa.livejournal.com/12073.html

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 06 фев 2013, 11:24
alkor
спасибо. Буду дальше ртфм-иться.
может что-то и получится :)

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 15:40
alkor
Добрый день !

Вопрос, если я знаю, что когда extension 103 в режиме разговора, то его канал всегда устанавливается в виде SIP/103-00000137, где SIP/103 - постоянная, 00000137 - переменная.
Есть ли способ отдать hangup команду использую только постоянную SIP/103 c неким окончанием ?
hangup request SIP/103+???

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 16:01
ded
Я мыслю на уровне командной строки Астериска.
Думаю надо выполнить сначала
core show channels и вытащить по SIP/103- части в переменную конкретный канал
SIP/103-00000137
NoOp(SIP/${EXTEN}-${UNIQUEID})
который затем и убить.
hangup request SIP/${EXTEN}-${UNIQUEID})

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 16:27
alkor
В extensions.conf можно ли и в каком виде занести эти команды ?

Я тут накрутил возможность как запретить попадать в коференцию . Для эгого я по набору *21X. делаю Forward от имени extensionы 222( дозвон с коференцкомнатой)
#21 снимаю CF

сюда можно включить эти два правила и в каком виде, чтобы ставил форвард и килял channel SIP/103-xxxxxxxx ?

exten => _*21X.,1,Set(CALLERID(all)=222))
exten => _*21X.,2,Set(DB(CFIM/${CALLERID(num)})=${EXTEN:3})
exten => _*21X.,n,Hangup
exten => #21,1,Set(CALLERID(all)=222))
exten => #21,2,DBdel(CFIM/${CALLERID(num)})
exten => #21,n,Hangup

Спасибо

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 18:51
alkor
Нашёл пример для 1.6.
Не подскажите в каком виде должен быть для 1.8 ?

Exten => _86XXXX,1,system('/usr/sbin/asterisk -rx "soft hangup $(/usr/sbin/asterisk -rx 'core show channels' | grep SIP/${EXTEN(2)| awk '{ print $1 '} )")

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 20:24
alkor
прикрутил, даже работает :)

exten => _*21X.,1,Set(CALLERID(all)=222))
exten => _*21X.,2,Set(DB(CFIM/${CALLERID(num)})=${EXTEN:3})
exten => _*21X.,3,system('/usr/sbin/asterisk -rx "channel request hangup $(/usr/sbin/asterisk -rx "core show channels" | grep "102" | awk '{print $1}')"')
exten => _*21X.,4,system('/usr/sbin/asterisk -rx "channel request hangup $(/usr/sbin/asterisk -rx "core show channels" | grep "103" | awk '{print $1}')"')
exten => #21,1,Set(CALLERID(all)=222))
exten => #21,2,DBdel(CFIM/${CALLERID(num)})
exten => #21,3,Hangup

Теперь осталось сделать, чтобы кнопка на SPA932 меняла цвет: красный - заблокировано путёт CF _*21X., зелёный - разблокировано путём #21

Подскажите плз какие есть возможности ?

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 21:20
ded
core show hints
sip show subscriptions
Google rulez!

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 23:26
alkor
есть правило, которое по одному и тому же значение выполняло разные команды последовательно ? Тогда я смогу для установки и снятия переадрессации использовать одну кнопку...
К примеру:

пришел первый набранный номер _*21X. Отрабатывае правило на установку переадрессации
exten => _*21X.,1,Set(CALLERID(all)=222))
exten => _*21X.,2,Set(DB(CFIM/${CALLERID(num)})=${EXTEN:3})
exten => _*21X.,3,system('/usr/sbin/asterisk -rx "channel request hangup $(/usr/sbin/asterisk -rx "core show channels" | grep "102" | awk '{print $1}')"')
exten => _*21X.,4,system('/usr/sbin/asterisk -rx "channel request hangup $(/usr/sbin/asterisk -rx "core show channels" | grep "103" | awk '{print $1}')"')

пришел второй набранный номер _*21X. Отрабатывае правило на снятие переадрессации
exten => #21,1,Set(CALLERID(all)=222))
exten => #21,2,DBdel(CFIM/${CALLERID(num)})
exten => #21,3,Hangup

Re: Блокировать / разблокировать регистрацию абонента

Добавлено: 08 фев 2013, 23:51
ded
https://wiki.asterisk.org/wiki/display/ ... F+Features
features.conf

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

[applicationmap]
pauseMonitor   => #1,peer/callee,Macro,recpause,monitor-disabled
startMonitor   => #2,peer/callee,Macro,recstart
unpauseMonitor => #3,peer/callee,Macro,recunpause,monitor-enabled
extensions.conf

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

[macro-recpause]
exten => s,1,Playback(disabled)
exten => s,n,PauseMonitor

[macro-recunpause]
exten => s,1,Playback(enabled)
exten => s,n,UnpauseMonitor

[macro-recstart]
exten => s,1,Set(FNAME=callrec_${MACRO_EXTEN}_${UNIQUEID}_GWTEST_${EPOCH})
exten => s,n,Monitor(wav,${FNAME},b)

[internal]
exten => 100,1,Dial(SIP/100,20)
exten => 110,1,Answer
exten => 
110,n,Set(DYNAMIC_FEATURES=pauseMonitor#unpauseMonitor#startMonitor)
exten => 110,n,Set(FNAME=callrec_${EXTEN}_${UNIQUEID}_GWTEST_${EPOCH})
;exten => 110,n,Monitor(wav,${FNAME},b)
exten => 110,n,Dial(SIP/110,20)
exten => 110,n,Hangup