whitelist в AstDB
Добавлено: 16 апр 2024, 09:35
Всем Всем хорошего настроения!
Немного предисловия.
Задача такая организовать для определенного пула телефонных номеров переадресацию на другой номер при наборе xxxx. (Номера в разнобой)
Решил попробовать реализовать через AstDB , вписав в whitelist. Зашел в cli: database put whitelist 1001 "VIP"
Тем самым добавил его в базу.
Кусок из диалплана
exten => 2222,1,NoOp()
exten => 2222,n,GotoIf($[${REGEX("[**]"${CALLERID(num)})}]?cut_prefix:passthrough)
exten => 2222,n(cut_prefix),Set(CALLERID(num)=${CALLERID(number):2})
exten => 2222,n(passthrough),Set(PEERNAME=${EXTEN})
exten => 2222,n,Answer()
;exten => 2222,n,GotoIf($["${CALLERID(num)}" : "27594"]?help-VIP,2221,1) - вариант рабочий но добавлять в диалплан кучу строк (порядка 40) думаю не очень.
;exten => 2222,n,System($[${/etc/asterisk/checkwhitelistVIP.sh()}=1]?help-VIP,2221,1) - пробовал через sh скрипт, что то не взлетело, выдает ошибку синтаксиса, нужно разбираться сдя по всему лишних скобок напилил
exten => 2222,n,GotoIf($[${DB_EXISTS(WHITELIST()}=1]?help-VIP,2221,1) - не работает, просто проходит мимо
exten => 2222,n,GotoIf($[${WHITELIST()}=1]?help-VIP,2221,1) - тоже не работает
exten => 2222,n,GotoIf($[${BLACKLIST()}=1]?help-VIP,2221,1) - Если добавить нужный номер в базе в Blacklist, и сделать так то все работает, т.к. при обращении выдает 1 = если есть и 0 если нету.
Не могу понять.... про whitelist в книжке ничего не нашел что касаемо AstDB. Все примеры с blacklist.
Можно подумать что при обращении к белому листу он обращается в переменную, а не в базу, но вроде как добавил DB_EXISTS.
Немного предисловия.
Задача такая организовать для определенного пула телефонных номеров переадресацию на другой номер при наборе xxxx. (Номера в разнобой)
Решил попробовать реализовать через AstDB , вписав в whitelist. Зашел в cli: database put whitelist 1001 "VIP"
Тем самым добавил его в базу.
Кусок из диалплана
exten => 2222,1,NoOp()
exten => 2222,n,GotoIf($[${REGEX("[**]"${CALLERID(num)})}]?cut_prefix:passthrough)
exten => 2222,n(cut_prefix),Set(CALLERID(num)=${CALLERID(number):2})
exten => 2222,n(passthrough),Set(PEERNAME=${EXTEN})
exten => 2222,n,Answer()
;exten => 2222,n,GotoIf($["${CALLERID(num)}" : "27594"]?help-VIP,2221,1) - вариант рабочий но добавлять в диалплан кучу строк (порядка 40) думаю не очень.
;exten => 2222,n,System($[${/etc/asterisk/checkwhitelistVIP.sh()}=1]?help-VIP,2221,1) - пробовал через sh скрипт, что то не взлетело, выдает ошибку синтаксиса, нужно разбираться сдя по всему лишних скобок напилил
exten => 2222,n,GotoIf($[${DB_EXISTS(WHITELIST()}=1]?help-VIP,2221,1) - не работает, просто проходит мимо
exten => 2222,n,GotoIf($[${WHITELIST()}=1]?help-VIP,2221,1) - тоже не работает
exten => 2222,n,GotoIf($[${BLACKLIST()}=1]?help-VIP,2221,1) - Если добавить нужный номер в базе в Blacklist, и сделать так то все работает, т.к. при обращении выдает 1 = если есть и 0 если нету.
Не могу понять.... про whitelist в книжке ничего не нашел что касаемо AstDB. Все примеры с blacklist.
Можно подумать что при обращении к белому листу он обращается в переменную, а не в базу, но вроде как добавил DB_EXISTS.