Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

подключить 8800

Биллинг для АТС на базе 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.

Тестирование формата вывода АТС и алгоритм программы

Сначала надо изучить выходные сигналы АТС. Мы рассматриваем NEAX2000 IPS с настройками, практически не отличающимися от стандартных. В нашем случае отличие сводится к тому, что обозначение внутренних номеров начинается со знака *, например, *029. Такая нумерация обычно используется, чтобы можно было звонить «в город» без набора «9».

Соединим кабелем COM-порт компьютера с RS232 разъемом АТС, находящимся на процессорной плате. Для определенности используем нулевой порт – как правило, в компьютере два COM-порта: нулевой и первый.

Обычно тарификация проводится для исходящих вызовов, поэтому здесь мы не будем рассматривать другие звонки.

Введем следующую команду для прослушивания порта, на который поступает информация от АТС (для Linux порт будет называться не dev/cuaa0, а, cкорее всего, /dev/ttyS0):

# cat /dev/cuaa0 >> file

получим при каждом исходящем вызове добавку к содержимому файла file:

^B0!KA050077001*029  08110737260811073756      000050050100   0000 04040 

(с учетом пробелов для каждой записи получаем 128 байтов, по байту на каждый символ).

Приведенный пример содержит информацию о том, что с номера *029, 11 августа с 7 час. 37 мин. 26 сек до 37 мин. 56 сек. абонент звонил на номер 100 (служба «время» в МГТС).


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100