УДК 004.62
СИСТЕМА АВТООБЗВОНА НА БАЗЕ АТС ASTERISK С ИСПОЛЬЗОВАНИЕМ
РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
А. Д. Кислицин Научный руководитель - О. Н. Моргунова
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газеты «Красноярский рабочий», 31
Е-mail: kislicinad@kkb-2.ru
Представлен способ реализации системы автоматического обзвона, с использованием реляционных баз данных на основе использования бесплатных программных продуктов, которая включает в себя модули статистики, отчетности и синтеза речи.
Ключевые слова: АТС, СУБД, Автообзвон, VoIP, цифровая телефония. AUTO-DIAL SYSTEM BASED ON ASTERISK PBX USING RELATIONAL DATABASES
A. D. Kislitsin Scientific Supervisor - O. N. Morgunova
Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation
Е-mail: kislicinad@kkb-2.ru
A method for implementing an automatic call-in system using relational databases based on the use of free software products, which includes modules for statistics, reporting, and speech synthesis, is presented.
Keywords: PBX, DBMS, Auto-dial, VoIP, digital telephony.
На смену традиционной аналоговой телефонии пришла IP-телефония (цифровая телефония, VoIP), основанная на передаче данных по цифровым каналам связи. Цифровая телефония активно развивается и на сегодняшний день является основным видом связи.
Благодаря активному развитию, телефонные системы позволяют организовывать сложные сценарии звонков, распознавать и синтезировать речь, производить интеграцию с различными веб-сервисами, приложениями, службами и СУБД (Системы управления базами данных). Однако у пользователей возникает ряд проблем, связанный с незнанием основ телефонии и информационной безопасности, технологий, которые могут быть использованы, технических и программных особенностей АТС (Автоматическая телефонная система).
Одной из актуальных задач в цифровой телефонии является организация систем автоообзвона (автоинформаторов), которые позволяют произвести автоматизацию рутинных процессов как для руководителей, так и для операторов call-центров, менеджеров, рекламных сервисов или простых пользователей.
На рынке существует множество типовых решений в виде виртуальных АТС, облачных сервисов, как готовых программно-аппаратных комплексов, так и под заказ. На практике было выявлено, что готовые решения не всегда удовлетворяют требованиям Расширение функционала в таких системах либо не предусмотрено, либо осуществляется за
Секция «Программные средства и информационные технологии»
дополнительную плату, в связи с чем актуально использовать собственную систему, которая позволит реализовать различный функционал, необходимый для конечных пользователей.
После анализа рынка, принято решение использовать бесплатные АТС с открытым исходным кодом, который можно адаптировать под необходимые задачи и требования к телефонной системе. На сегодняшний день долю более 70% рынка среди бесплатных АТС занимает Asterisk, который имеет собственное сообщество разработчиков, базу знаний и документацию, описанную на нескольких языках [1].
В связке с БД системы автоматического обзвона позволяют работать и накапливать информацию для дальнейшего ее анализа без участия человека. На основе накопленных информации строятся отчеты и извлекаются знания, которые позволяют усовершенствовать технологию, сформировать конкретные требования клиентов и др.
На рисунке 1 представлена схема реализованной телефонной системы.
Рис. 1. Схема реализованной телефонной системы
Из рисунка 1 следует, что в качестве ядра системы используется АТС Asterisk. АТС под развернута управление операционной системы Debian 10 в виртуальной среде VMware. В качестве СУБД используется бесплатные версии MySQL и PostgreSQL.
Телефонная система включает несколько модулей, которые представляют сложную, гибкую и легко масштабируемую распределённую информационную систему, позволяющую решать различные задачи помимо автообзвона.
Список телефонных номеров для автообзвона, хранится в отдельной БД, которая содержит: таблицу, содержащую информацию о человеке (ФИО, номер, особенности) и таблицы служебной информации (статус звонка, запись звонка и др.).
Список людей, подлежащих автообзвону может наполняться из различных источников в автоматизированном режиме. Информационное взаимодействие с другими системами происходит при помощи обмена CSV-файлов по стандарту RFC4180 [2]. При загрузке данных в БД происходит проверка и очистка данных на уровне СУБД и модуля обработки
данных со стороны программного робота (бота). Бот проверяет наличие CSV-файлов в сетевом хранилище, доступ к которой есть у нескольких источников.
Обзвон запускается в установленное в планировщике задач время. До выполнения автообзвона бот генерирует на основе данных из БД специальные outgoing-файлы с параметрами обзвона для каждого абонента. Asterisk считывает файл, после чего запускается многопоточный обзвон, в ходе которого АТС неоднократно обращается к БД для записи результатов или поиска каких-либо данных по клиенту. При помощи веб-сервиса пользователи могут просматривать статистику обзвона в режимах online и ofline.
После окончания обзвона генерируется CSV-файл отчета и загружается в необходимые сервисы, в зависимости от источника.
При современном подходе к организации телефонной системы используют технологии интеллектуальной обработки данных, преобразования текста в речь и наоборот (text-to-speech и speech-to-text). В разработанной системе совершаемые ботом исходящие звонки сопровождаются приятным голосом, генерируем автоматически, а при входящих звонках происходит запрос в БД для поиска, звонящего и произношением информации индивидуально для него.
Для отчетности «на лету» используется связка бота и мессенджера Telegram через API (Application interface) [3]. До начала обзвона производится запрос в БД и генерируется сообщение, информирующее о количестве клиентов к обзвону и точной дате начала, которое отправляется указанным пользователям мессенджера. По окончанию обзвона отправляется более детальная информация, содержащая список ошибок (если они есть), статистические значения и точное время завершения.
Таким образом, разработана телефонная система с использованием бесплатных программных продуктов, включающая в себя несколько модулей. Система позволяет обзванивать свыше десяти тысяч абонентов в день, выполнять рассылку уведомлений в мессенджер Telegram и автоматическое наполнение базы данных из различных источников, осуществлять проверку и контроль загружаемой информации, вести статистику и генерировать отчеты.
Разработанная телефонная система является гибкой и масштабируемой и благодаря использованию технологий виртуализации может быть развёрнута в кратчайшие строки на большинстве платформ виртуализации. Система решает задачи автоинформирования, отчетности и сбора статистики по обзвону с применением технологий синтеза речи. Она применима в различных отраслях, в том числе и в аэрокосмической. Количество абонентов для обзвона регламентируется пропускной способностью канала связи и мощностями аппаратной части серверного оборудования, что делает систему универсальной, и позволяет работать с разными объемами данных.
Библиографические ссылки
1. Русская база знаний Asterisk [Электронный ресурс]. URL: http://asterisk.ru/ (дата обращения: 18.02.2021).
2. Common Format and MIME Type for Comma-Separated Values (CSV) Files [Электронный ресурс]. URL: https://datatracker.ietf.org/doc/rfc4180/ (дата обращения: 10.02.2021).
3. Справочник по Telegram Bot API [Электронный ресурс]. URL: https://tlgrm.ru/docs/bots/api (дата обращения: 18.02.2021).
© Кислицин А. Д., 2021