Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Исходные данные: учет будет осуществляться на машине Cel 1200/RAM 128 Мб/HDD 20 Гб, операционная система – Debian GNU/Linux 3.1r Sarg, СУБД – PostgreSQL v. 7.4.7, УАТС подключена к последовательному порту /dev/ttyS1.
Создадим пользователя, от которого будет работать программа и рабочий каталог. Кроме этого, изменим права доступа к /dev/ttyS1:
# sudo useradd -d /var/gdklog -s /bin/sh gdk
# sudo passwd gdk
# sudo mkdir /var/gdklog
# sudo chown gdk:gdk /var/gdklog
# sudo chown root:gdk /dev/ttyS1
# sudo chmod 640 /dev/ttyS1
Создадим пользователя и базу данных в PostgreSQL:
# createuser -U postgres -A -D gdk
# createdb -U postgres -O gdk pbxbilling
Создадим таблицу gdklog для хранения статистики. Таблица имеет пять полей:
n d_time – дата и время;
n station – станция;
n line – внешняя линия;
n t_call – продолжительность разговора;
n c_number – вызванный номер (я выбрал для этого поля тип numeric, т.е. номер телефона сохраняется, как число, при этом ведущие нули усекаются, например, номер 01 сохранится в БД как 1).
# vi gdklog.sql
CREATE TABLE gdklog (
"d_time" timestamp,
"station" int2,
"line" int2,
"t_call" time,
"c_number" numeric (30, 0)
);
REVOKE ALL on "gdklog" from PUBLIC;
GRANT ALL on "gdklog" to "gdk";
# psql -U gdk -d pbxbilling < gdklog.sql
Писать программу учета я решил на perl. Полный
текст вы можете скачать с сайта
my $ttys = "/dev/ttyS1";
# Количество строк журнала, кэшируемых в памяти
my $m_cache = 50;
system ("/bin/stty -F $ttys 9600 cs8 -parenb -cstopb");
# Читаем данные из последовательного порта
open (TTYS, "< $ttys") or die "Can’t open $ttys!";
while (<TTYS>)