Страница 1 из 2
Мониторинг исходящих вызовов
Добавлено: 15 ноя 2016, 21:40
lefebr
Здравствуйте.
Помогите решить такую задачу. Как один из способов защиты от фрода требуется настроить счетчик международных звонков. Т.е. для каждого экстеншена есть лимит, например 10-20 международных вызовов в сутки. И при достижении этого лимита отправляем письмо. Вариант с жестким ограничением количества вызова невозможен, только уведомление.
Как это возможно реализовать максимально просто?
Может есть готовые модули которые будут парсить CDR с данными условиями?
Re: Мониторинг исходящих вызовов
Добавлено: 16 ноя 2016, 08:35
awsswa
Zabbix плюс скрипты ...
Еще есть модуль ... trunk balance
там можно выставить по каждой линии количество минут в сутки разрешенное для звонков ... а после чего с Custom сделать срабатывание скрипта с оповещением.
Re: Мониторинг исходящих вызовов
Добавлено: 16 ноя 2016, 15:11
yvatfwp
Как это возможно реализовать максимально просто?
В диалплане при звонке на МН транк писать в (тхт,мускуль,etc.) чекая каким нить agi скриптом(пхп, питон, etc.) данные на каждый последующий вызов.
Re: Мониторинг исходящих вызовов
Добавлено: 16 ноя 2016, 15:40
Andrey68
lefebr писал(а):Здравствуйте.
Помогите решить такую задачу. Как один из способов защиты от фрода ...
Усложнить жизнь мошейникам помоему достаточно штатных средств и на сервере и на клиентах, это самый простой способ. Правда вот, против самих работников это не работает.
Re: Мониторинг исходящих вызовов
Добавлено: 21 ноя 2016, 20:31
lefebr
Спасибо всем за помощь.
Решил данную задачу так, без конкретных экстеншенов, просто считаем все звонки:
Если смогу победить лень, попробую для каждого экст сделать свой счетчик
exten => s,1,GotoIfTime(09:00-10:00,*,*,*?clear:noclear)
exten => s,n(clear),Set(GLOBAL(CALLCOUNTER)=0)
exten => s,n(noclear),Set(GLOBAL(CALLCOUNTER)=$[${CALLCOUNTER}+1])
exten => s,n,GotoIf($[${CALLCOUNTER} > 10]?email:noemail)
exten => s,n(email),System(echo "International Call From ${CALLERID(num)} to ${MACRO_EXTEN} at ${STRFTIME(%C%m%d%y%H%M)}. Calls: ${CALLCOUNTER}" | mail -s "International Call to ${MACRO_EXTEN}"
my@e-mail.ru)
exten => s,n(noemail),MacroExit()
Правда не догнал как переменную обнулить ровно в 00:00, поэтому прилепил костыль с 9 до 10 т.к. вероятность звонков в это время большая и в принципе основная задача мониторить в нерабочее/ночное.
Re: Мониторинг исходящих вызовов
Добавлено: 21 ноя 2016, 23:07
april22
Может в аст дб положить? Или простенткий аги?
Re: Мониторинг исходящих вызовов
Добавлено: 22 ноя 2016, 08:35
tol_iwan
Согласен, лучше ASTDB и по крону ветку удалять ночью.
Но по логике как-то способ защиты странный. Плата то за время вызова, а не за количество. Запретите вообще вызовы, когда их не должно быть и направления, на которые не должны звонить.
Re: Мониторинг исходящих вызовов
Добавлено: 22 ноя 2016, 08:56
virus_net
По любому стоит в astdb сунуть, т.к. если asterisk перезапустится, то все обнулится.
Согласен с tol_iwan, лучше минуты считать, а не кол-во вызовов.
Но в любом случае каждый барьер не бывает лишним. Лучше уж так, чем совсем ничего.
Re: Мониторинг исходящих вызовов
Добавлено: 22 ноя 2016, 20:03
kaisarkz
Можно настроить fail2ban
Re: Мониторинг исходящих вызовов
Добавлено: 22 ноя 2016, 20:41
lefebr
tol_iwan писал(а):Согласен, лучше ASTDB и по крону ветку удалять ночью.
Но по логике как-то способ защиты странный. Плата то за время вызова, а не за количество. Запретите вообще вызовы, когда их не должно быть и направления, на которые не должны звонить.
fail2ban, firewall, permit, custom_context все есть и настроено. Просто как очередной виток паранои. Подскажите как очищать astdb?
Работать с базой также как и с переменными насколько я понял, т.е. также сверяем значение в макросе и шлем на почту?