Привет!
Есть номер, скажем это +3726893167. И ему нельзя звонить никуда через наш астериск.
Написал такой шаблон, те при звонке на любой номер(_X!) с номера 6893167 в любой его вариации(с кодом, 00 и без) должен прийти сигнал 503 и затем трубка должна положиться.
Однако номер звонит и дальше.
exten => _X!/003726893167,1,Congestion
exten => _X!/003726893167,2,Hangup
exten => _X!/3726893167,1,Congestion
exten => _X!/3726893167,2,Hangup
exten => _X!/6893167,1,Congestion
exten => _X!/6893167,2,Hangup
если написать не _X!, а прописать префикс, например _372. , то все работает, однако таких префиксов много и писать их в ручную проблематично и непрактично. Сокращение префикса до _37. уже не работает, звонок проходит.
Версия * 1.4.29
В чем тут может быть ошибка?
а почему
_X!
если должно быть
_X.
?
вообще метод какойто странный. сделайте так гдето
[in]
exten = > _X.,1,Gosub(checkcid,${CALLERID(num)},1)
exten = > _X.,2,Dial(кудато)
[checkcid]
include => checkcid_cidok
exten => 3726893167,1,Congestion(2)
[checkcid_ok]
exten => _X.,1,Return
exten => s,1,return; no cid
а вообще такое я пишу обычно через лукап в базе по номеру и посыланиювсего что не нашлося. да я знаю что база нагружаеться - для этого есть кеширование. и у мускл оно получше чем у астриска.
А зачем этот номер на * нужен если ему никуданельзя звонить ?
[checkcid]
include => checkcid_ok
exten => 3726666666,1,Hangup
exten => 0055555555,1,Hangup
[checkcid_ok]
exten => _X.,1,Return
exten => s,1,Return; no cid
[phones]
include => internal
exten => _372.,1,macro(donabor)
[macro-donabor]
exten => s,1,Gosub(checkcid,${CALLERID(num)},1)
exten => s,2,GoTo(sky_test,${MACRO_EXTEN},1)
[sky_test]
exten => 3727000000,1,DIAL(SIP/3727044444,15)
exten => 3727000000,2,DIAL(SIP/3726000000,50)
exten => 3727000000,3,Hangup
вот так все заработало. спасибо за помощь! :)
Задан: 2011-03-16 14:52:29 +0400
Просмотрен: 1,073 раз
Обновлен: Apr 03 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.