Ограничение по CallerID.
Есть такая задача . Нужно ограничить входящие звонки на Астериск по CallerID. Можно это как то реализовать ??
Заранее спасибо.
Last edited by yozik on Sat Oct 30, 2010 13:42
| Code: |
| exten => _2XX/CallerID,1,NoOp(${CALLERID(num)}) |
и/или
так:
| Code: |
| exten => _2XX,1,ExecIf($[${CALLERID(num)}=CallerID]?Hangup) |
Где CallerID вы указываете нужный вам номер, который не должен проходить, либо диапазон номеров в виде маски.Понятно?
exten => _2XX/НОМЕРПОЛНОСТЮ,1,Hangup
_________________
Asterisk 1.4.30 @ Ubuntu 9.04 + Cisco MC3810 + NEC NEAX 2000IPS + Polycom IP Phones
| yozik wrote: |
| а как указать диапозон номеров ?? |
Прочесть книжку наконец?
Ну или на крайний случай поглядеть на voip-info.org как маски задавать в диалплане?
_________________
Успехов!
Я же написал как это делать. Пробовали?
Подобная конструкция есть в книге:
| Code: |
| exten => _2XX/[1,2]XX,1,NoOp(${CALLERID(num)}) |
В этом случае маске удовлетворяют лишь номера состоящие из 3-х цифр и начинающиеся с 1 или 2. И тогда эти звонки пройдут. Можно как пишет adt2k, тогда звонки с определённым/ми номерами отвалятся по Hangup.
_________________
Успехов!
Эти номера, которые надо запретить, их вообще можно как-то описать, например: все номера, которые заканчиваются на xxx, или начинаются на yy. Или они хаотичны и не подаются общей классификации?
| Code: |
| exten => _2XX/[1,2]XX,1,NoOp(${CALLERID(num)}) |
если прописать допустим вот так
| Code: |
| exten => _2XX/100,1,NoOp(${CALLERID(num)}) |
Added after 9 minutes:
kernelt:
К примеру нужно запретить звонки на номера
| Code: |
| _6ХХХ |
| Code: |
| 5ХХХ...... |
например
[125-9] == 1,2,5,6,7,8,9
X == [0-9]
Z == [1-9]
N == [2-9]
т.е. ваша строчка:
| Code: |
| exten => _2XX/[1,2]XX,1,NoOp(${CALLERID(num)}) |
должна выглядеть вот так и будет вам счастье
| Code: |
| exten => _2XX/[12]XX,1,NoOp(${CALLERID(num)}) |
P.S
а вообще, anest прав - RTFM!
Я уже пробовал . Результат тот же самый .
значит надо: exten => _2XX/_[12]XX...
какая версия asterisk?
приведите несколько примеров номеров, по которым не работает.
добавьте noop(${CALLERID(num)}) в выполнение, и покажите результат и кусок номерного плана.
тода мы сможем вам помочь, если не получается сделать самостоятельно.
если нужно запретить звонки на номера
_6ХХХ
с номеров
5ХХХ..
То один из вариантов:
exten => _6ХХХ,n,GotoIf($["${CALLERID(num)}" > "5000"]?h)
...............................................
exten => _6ХХХ,n(h),Hangup
| Code: |
| exten => _2XX/_[12]XX... |
Версия Asterisk 1.6.2.13 ..
Всем спасибо !