Технарям: собственный голосовой антиспам

Dec 06, 2018 17:47


Псто направлен на технических спецов. В нём содержатся бесплатные идеи о том, как можно сделать свой собственный голосовой антиспам-фильтр с шахматами и поэтессами на базе Мультифон+Asterisk.

Если вас, как и меня, задрали звонить всякие назойливые говноеды с преложениями инвестировать чего-нибудь куда-нибудь, вылечить спину за два посещения, пройти очищение от глистов, enlarge your penis и всё в этом духе, то, возможно, вы тоже захотите скрафтить для себя антиспам.

Немного матчасти. У оператора "Мегафон" есть возможность подключить бесплатную услугу "Мультифон-бизнес". Она хоть и называется "бизнес", реально доступна всем желающим. По сути это двухканальный SIP-аккаунт, привязанный к вашему мобильному номеру. Причём можно настроить различные режимы обработки входящих вызовов: только на мобильник, только на SIP или и туда, и туда одновременно (кто первый снимет трубку, тот и говорит).

Дальше следите за руками. В случае маршрутизации "сразу на всё" вызов в первую очередь приходит на SIP за счёт возникновения задержки из-за необходимости построения маршрута и установления канала до мобильного устройства, которые выполняются несколько секунд. За этот промежуток времени ваш подключенный к Мегафону Asterisk успеет сверить номер позвонившего вам абонента с заложенными в него чёрными и белыми списками. И соответствующим образом отреагировать.

Дальше логика работы Asterisk-а такова. Номер обнаружен в белом списке: ничего не предпринимать. Через секунду-другую вызов поступит вам на сотовый, вы ответите на него как обычно.

Номер обнаружен в черном списке: снять трубку и дальше либо ничего не делать, либо повесить трубку через пять-десять секунд, либо транслировать в канал связи какую-нибудь дичь с целью поглумиться. До вашего сотового вызов просто не дойдёт, вас никто не побеспокоит почём зря.

Номер не обнаружен ни в чёрном, ни в белом списке. Снять трубку, запустить IVR, проиграть приветствие типа "если вы человек, наберите 1234". Если с той стороны человек, то перезвонить на вашу же мобилку через второй SIP-канал. Технически вы увидите входящий вызов с вашего же собственного номера (я проверял, это работает). А дальше вы по результатам разговора заносите номер позвонившего либо в белый, либо в чёрный список.

Способы добавления в списки могут быть самым разнообразными. Например, Asterisk смотрит кто первым положил трубку. Если вы - в чёрный список, если они - в белый список. Другой вариант: по завершении беседы вы не кладёте трубку первым, Asterisk снова забирает на себя установленный канал связи и играет IVR уже для вас: нажмите "1" для занесения в белый список, "2" для занесения в черный список. Третий способ: по окончании разговора Asterisk шлёт вам в почту / телеграм / жаббер две ссылки: "тыц" чтобы в белый список и "тыц" чтобы в чёрный список. Может быть вы ещё что-нибудь придумаете. Полёт фантазии не ограничен.

В качестве побочного продукта можно организовать себе уведомления о пропущенных вызовах на электрическую почту, собственную халявную голосовую почту с отсылкой MP3-шки записи в почту / телеграм / жаббер, перенаправление вызова через VoIP на другую SIMку когда вы находитесь в международном роуминге и другие всякие полезные в хозяйстве прибамбасы.

С точки зрения железа, у меня Asterisk прекрасно себя чувствует на перешитом в OpenWRT MikroTik RB951G-2HnD. Для таких ерундовых задач его вычислительной мощности более чем достаточно. Если нет нормального ШПД-провайдера дома, можно арендовать самую дешевую VPS-ку и развернуть всё это добро там. Даже если это решение набекренится, ничего принципиально плохого не произойдёт: вы по-прежнему будете получать входящие звонки, только без антиспам-фильтра. Ничего важного не пропустите в любом случае.

Так что вот, господа технари. Примите к сведению. Когда мне надоест стебаться над этими холодными горе-продажниками, сам обязательно зафигачу себе такую штуку. Благо, для реализации не требуется ни каких-то существенных материальных вложений, ни даже особых навыков программирования. Только Asterisk, какой-нибудь [no]SQL и любой скриптовый язык на уровне "Hello, world".

hints, телефон, it, asterisk, телекомы, технологии

Previous post Next post
Up