Журнал Системный Администратор, Декабрь 2004

Журнал Системный Администратор

Декабрь 2004

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Биллинг для АТС на базе PostgreSQL

Георгий Толоконников

В статье рассматривается содержащая около 90 строк кода биллинговая система для небольших АТС, которая легко может быть расширена на АТС большой номерной емкости. В качестве примера рассматривается NEAX2000 IPS.

Стандартный выход АТС соединяется с портом компьютера, приходящая от АТС информация захватывается скриптом биллинговой системы, обрабатывается, и направляется в базу данных телефонных переговоров, поддерживаемую СУБД PostgreSQL. На основе базы данных ведется подсчет трафика, расчет оплаты и выполняются практически любые запросы, интересующие пользователей.

Обычный веб-интерфейс позволяет выводить на экраны (удаленных) компьютеров результаты запросов в режиме реального времени.

Введение

Биллинговая система – это комплекс программ, работающий на компьютере, сопряженном с АТС и позволяющий тарифицировать телефонный трафик, выставлять счета абонентам, получать практически любую информацию по звонкам.

Такие системы обычно дороги. Многие пользуются Win Tarif (как правило, взломанной версией…). Можно также посмотреть сайт www.billonline.ru со всеобъемлющим сертифицированным Министерством связи решением проблем (за деньги) учета телефонных переговоров.

Наш подход, однако, – демонстрация философии UNIX в действии – позволяет обеспечить простое, бесплатное, открытое решение. Состоит оно из нескольких десятков строк кода и опирается на типовые утилиты UNIX. Сложность кода минимальная, достаточно, например, владения азами SQL и Perl. Обычно оператор связи, предоставивший телефоны, выставляет счет раз в месяц, а тарификацию по внутренним номерам офисной АТС либо вообще отказывается делать, либо требует дополнительной оплаты. Платное программное обеспечение имеет закрытый код и не ясно, что и как оно считает, заменить в нем что-нибудь на более подходящий вариант невозможно. Таким образом, наличие подобного предлагаемого в статье простого решения полезно для работы организации.

В настоящее время в небольших фирмах – операторах связи или в офисах крупных (и не очень) компаний наряду в ЛВС имеется АТС, часто попадающая на обслуживание системному администратору. Так что затронутые в статье вопросы многим окажутся интересны.

План действий по автоматизации тарификации АТС следующий:

n  смотрим, что и в каком формате выводит АТС на порт, сопрягаемый с компьютером (часто это com-порт);

n  пишем скрипт, разбирающий должным образом получаемый поток байтов с АТС;

n  заводим в СУБД (PostgreSQL) необходимые таблицы;

n  добавляем к скрипту блоки захвата вывода с АТС и загрузки обработанных скриптом записей в СУБД;

n  формируем скрипт сопряжения базы данных с веб-сервером для возможности просмотра данных и запросов абонентами и руководством.

Собственно и все. За пару дней это можно сделать и запустить в эксплуатацию. Например, на следующем комплексе: Pentium-200 MMX, 256 Мб ОЗУ, FreeBSD версии 4.5 и выше с Perl5, PostgreSQL 7 довольно быстро обрабатывается до 100 тыс. записей звонков. Это около 100-150 номеров абонентов, звонящих с интенсивностью выше средней в течение месяца. На Pentium 4 можно легко обрабатывать уже миллионы записей.

Все вышеприведенное будет легко работать и под любым другим UNIX.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке