Всем трям !
После очередного взлома Asterisk`а клиента нашего клиента (простите за тавтологию :)) и отправки через него SIP вызовов на дорогие направления и данного топика на форуме мы снова между собой заговорили про давнюю идею…
Идея, которая сидит не только в наших головах, до которой пока ни у кого толком руки так не дошли…
Идея проста: для email есть тот же Spamcop, а для VoIP ? Хм… да ничего нету… И вот этот пробел хорошо бы устранить.
Что необходимо ?
Online сервис, в последствии распределенный сервис, который будет содержать список фродовых номеров и/или направлений и предоставлять возможность обращаться к нему за этим данными, например перед тем как разрешить совершение вызова.
Что это даст ?
Ну как минимум: клиенту это может сэкономить его деньги, а нам это даст сохранение клиента, своих нервов и попыток доказать клиенту, что его система все же совершала вызовы на дорогие направления.
Ведь наверняка и у вас было когда клиент говорил «это не мое !» и потом «тогда я отключаюсь от вас».
Так было принято решение: brain -> hands -> service 🙂
Встречайте пилотную версию нового проекта subnets.ru -> frod.subnets.ru
Надо же с чего то начинать.
Вот вкратце как предполагается использовать и уже сейчас можно использовать:
Asterisk dialplan
DNS + ENUMLOOKUP
Пример контекста:
[tests] exten => test,1,Set(DIAL=${ENUMLOOKUP(${EXTEN},,,,frod.subnets.ru.)}) exten => test,n,NoOp(${DIAL}) exten => test,n,GotoIf($["${DIAL}" = ""]?dial:frod) exten => test,n(dial),NoOp(Dial(SIP/prov/${EXTEN},60,ti)) exten => test,n,Hangup exten => test,n(frod),NoOp(Frod detected, skip dial) exten => test,n,Hangup
В CLI Asterisk будет:
-- Executing [test@tests:1] Set("SIP/6003-000002b2", "DIAL=810972592132872@127.0.0.1") in new stack -- Executing [test@tests:2] NoOp("SIP/6003-000002b2", "810972592132872@127.0.0.1") in new stack -- Executing [test@tests:3] GotoIf("SIP/6003-000002b2", "0?dial:frod") in new stack -- Goto (tests,test,6) -- Executing [test@tests:6] NoOp("SIP/6003-000002b2", "Frod detected, skip dial") in new stack -- Executing [test@tests:7] Hangup("SIP/6003-000002b2", "") in new stack
API Для тех кому нужно будет большее чем DNS запрос, будет доступно API:
- URL для обращения к API -> http://frod.subnets.ru/api/query.php
- Описание API -> http://frod.subnets.ru/api/help.php
- Примеры запросов к API -> http://frod.subnets.ru/api/request.php
Консоль
# nslookup 7781046406664700.frod.subnets.ru Server: 91.217.137.1 Address: 91.217.137.1#53 Name: 7781046406664700.frod.subnets.ru Address: 216.121.95.194
Вышеописанное уже есть на данный момент, а далее… далее очень много вопросов. Вопросов таких как:
- получение данных извне
- обработка данных (добавление номера в список, кол-во времени хранения и т.п.)
- удаление номера из базы извне
Это конечно не полный список вопросов, которые нужно решить и которые будут решаться. Если у вас есть данные о фродовых вызовах с ваших серверов/железа и вы готовы ими поделиться с остальными, то отправка этих данных нам приветствуется 🙂 Если у вас есть мысли, идеи, то они так же приветствуются. Можно написать тут в комментах, можно отправить на virus [СОБАЧКА-ГАВ-ГАВ] subnets.ru Пока нет логики обработки данных, то пока данные из базы будут представляться as-is.
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Уважайте чужой труд.
Автор: Николаев Дмитрий (virus (at) subnets.ru)
admin сказал:
Пошли первые мысли 🙂 За что спасибо april22.
14.11.2014, 14:15admin сказал:
Пополнения в разделе «Статистика» проекта frod.subnets.ru
26.11.2015, 13:25Добавлены:
— Топ направлений
— Топ 10 стран
— Топ 10 по AS
— Интенсивность вызовов.