AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Ограничение по CallerID.

Newbies/FAQ Forum 19 сообщений 28.10.2010 09:45 - 02.11.2010 09:02
#1 28.10.2010 09:45

Ограничение по CallerID.


Всем привет ,
Есть такая задача . Нужно ограничить входящие звонки на Астериск по CallerID. Можно это как то реализовать ??
Заранее спасибо.


Last edited by yozik on Sat Oct 30, 2010 13:42
#2 28.10.2010 09:59

Можно реализовать. В рингплане сделать типа такого:
Code:

exten => _2XX/CallerID,1,NoOp(${CALLERID(num)})

и/или
так:
Code:

exten => _2XX,1,ExecIf($[${CALLERID(num)}=CallerID]?Hangup)

Где CallerID вы указываете нужный вам номер, который не должен проходить, либо диапазон номеров в виде маски.Понятно?
#3 29.10.2010 11:02

Ок , спасибо .... попробую ... Very Happy
#4 30.10.2010 13:50

что значит "ограничить"? Полностью запретить? Запретить в определенное время и/или день недели, запретить звонить на конкретный(е) номер(а) или что-то другое?
#5 01.11.2010 05:04

Полностью запретить звонить на Астер с конкретных CallerID......
#6 01.11.2010 05:53

Если таких номеров не много, то можно

exten => _2XX/НОМЕРПОЛНОСТЮ,1,Hangup
#7 01.11.2010 06:45

а как указать диапозон номеров ??
#8 01.11.2010 07:21

Может покрутить BlackList?
_________________
Asterisk 1.4.30 @ Ubuntu 9.04 + Cisco MC3810 + NEC NEAX 2000IPS + Polycom IP Phones
#9 01.11.2010 07:28

yozik wrote:
а как указать диапозон номеров ??

Прочесть книжку наконец? Wink
Ну или на крайний случай поглядеть на voip-info.org как маски задавать в диалплане?

_________________
Успехов!
#10 01.11.2010 07:59

yozik
Я же написал как это делать. Пробовали? Shocked
Подобная конструкция есть в книге:
Code:

exten => _2XX/[1,2]XX,1,NoOp(${CALLERID(num)})

В этом случае маске удовлетворяют лишь номера состоящие из 3-х цифр и начинающиеся с 1 или 2. И тогда эти звонки пройдут. Можно как пишет adt2k, тогда звонки с определённым/ми номерами отвалятся по Hangup.
#11 01.11.2010 16:06

да, кстати, описание c примерами маски приведено даже в конфиге, нужно только внимательно прочесть коментарии там.
_________________
Успехов!
#12 01.11.2010 17:42

yozik:
Эти номера, которые надо запретить, их вообще можно как-то описать, например: все номера, которые заканчиваются на xxx, или начинаются на yy. Или они хаотичны и не подаются общей классификации?
#13 02.11.2010 06:55

если я прописываю вот так
Code:
exten => _2XX/[1,2]XX,1,NoOp(${CALLERID(num)})
то астер не может найти вызываемый номер 2ХХ в этом контексте.
если прописать допустим вот так
Code:
exten => _2XX/100,1,NoOp(${CALLERID(num)})
все работатет , но запрет действует только для номера 100.

Added after 9 minutes:

kernelt:
К примеру нужно запретить звонки на номера
Code:
_6ХХХ
с номеров
Code:
5ХХХ......
#14 02.11.2010 06:58

потому что маска правильно пишется по другому, никакие знаки препинания ставить не надо, кроме "-" (тире)

например
[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!
#15 02.11.2010 07:17

koqep:

Я уже пробовал . Результат тот же самый .
#16 02.11.2010 07:59

признак шаблона: _XX
значит надо: exten => _2XX/_[12]XX...
#17 02.11.2010 08:03

что-то понятно, что ничего не понятно.
какая версия asterisk?

приведите несколько примеров номеров, по которым не работает.
добавьте noop(${CALLERID(num)}) в выполнение, и покажите результат и кусок номерного плана.

тода мы сможем вам помочь, если не получается сделать самостоятельно.
#18 02.11.2010 08:30

to yozik
если нужно запретить звонки на номера
_6ХХХ
с номеров
5ХХХ..

То один из вариантов:

exten => _6ХХХ,n,GotoIf($["${CALLERID(num)}" > "5000"]?h)
...............................................
exten => _6ХХХ,n(h),Hangup
#19 02.11.2010 09:02

вариант предложенный andgre
Code:
exten => _2XX/_[12]XX...
то что нужно ... Работает как надо Smile
Версия Asterisk 1.6.2.13 ..
Всем спасибо !