ATS Log 2.1.1 на Debian 7.4

Когда-то на сайте (www.atslog.dp.ua) разработчика, в разделе «О программе», было сказано:
Назначение программы

ATSlog предоставляет удобный интерфейс с доступом через web-браузер для просмотра и анализазвонков различных моделей мини-АТС. Программа бесплатна, распространяется под лицензией GPL , имеет полностью открытый код.
В настоящий момент программа успешно работает с АТС Panasonic, Samsung, Hybrex, Siemens, LG и Alcatel.

Возможности ATSlog
Удобный web-интерфейс для доступа к статистике:
  • Гибкий режим задания диапазона дат.
  • Возможность двустороннего анализа данных — как со стороны внешнихтелефонных линий, подключенных к АТС, так и со стороны внутреннихтелефонов.
  • Разграничение учета звонков по типам — внутригородские звонки, междугородние имеждународные, входящие и исходящие, мобильная связь
  • Цветовая раскраска для разных типов звонков.
  • Многопользовательский интерфейс для абонентов, где отражается информациятолько об их персональных телефонных переговорах.
  • Ассоциирование внутренних телефонных номеров с именами абонентов.
  • Ассоциирование внешних линий с телефонными номерами.
  • Экспорт данных в формат Excel.
  • Поддержка многоязычности. Можно легко добавлять новые языки.
  • Настраиваемый многостраничный вывод.
  • Сортировка по заголовкам столбцов таблиц (прямой и обратный порядок).
  • Предпечатная подготовка.
  • Кэширование SQL запросов, что позволяет значительно ускорить обработку информации.
  • Тестовый просмотр статистики . Вы можете ознакомиться с реальным использованием программы ATSlog . Для входа используйте имя пользователя atslog , пароль atslog
Серверные функции:
  • Перевод существующих текстовых лог-файлов АТС в формат программы ATSlog .
  • Ротация текстовых лог-файлов c данными телефонных звонков АТС.
  • Критические сообщения об ошибках передаются в syslog.
  • Поддержка MySQL и PostgresSQL. В ближайших планах — поддержка SQLite.
  • Работа с АТС используя серийный порт или TCP/IP.
Поддерживаемые АТС (всего: 8 компаний, 30 моделей):
  • Alcatel: 4200E
  • Goldstar: GPS-6A
  • Hybrex: GD-320
  • LG: GDK-100, GDK-162, GHX-46, LDK-100, LDK-300
  • NEC: NEAX2000
  • Panasonic: KX-TA308, KX-TA308RU, KX-TA616, KX-TA616RU, KX-TD1232, KX-TD1232-RU, KX-TD500, KX-TD816RU, KX-TDA100, KX-TDA200, KX-TEM824, KX-TES824
  • Samsung: NX-820, OFFICESERV-100, OFFICESERV-500, OFFICESERV-7200, SKP-816
  • Siemens: HICOM-150, HIPATH-3750, Hicom 250, Hicom 350H
Модель программы
Для работы нужны: sh, Perl 5.X, MySQL (3 и выше) или PostgresSQL, PHP (4 и выше), HTTP Server (например, Apache).
Работает на платформах *NIX: FreeBSD, Linux; возможно портирование под другие системы.
Для работы использует C модуль atslogd для считывания информации из АТС,perl скрипт для записи в базы данных, PHP и любой http сервер для доступа к статистике через web-интерфейс.
ATSlog легко устанавливается и настраивается.
Но сейчас (по крайней мере сегодня 5 мая 2014 года)сайта нет, а разработчик забросил сей продукт… А жаль! Но в любом случае спасибо ТЕБЕ, уважаемый. Продукт работает, и работает отлично…
Итак, всё что будет написано ниже, 100% работает на Debian 7.4., в виртуальной машине. Исходные данные (которые не по-умолчанию):
пароль для MySQL пользователя «root»:My$q1@dm1N
пароль приложения для phpmyadmin:PhPMy@d
пароль для MySQL пользователя «atslog»: @T5l06

Подготовка
apt-get install mysql-server apache2 mc autoconf automake phpmyadmin gcc make
будут заданы два вопроса:
пароль для MySQL пользователя «root»:My$q1@dm1N
пароль приложения для phpmyadmin:PhPMy@d
Установка
Скачать архив с исходными кодами
cd /opt
wget ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ/atslog-2.1.1.tar.gz ./
распаковать
tar zxf atslog-2.1.1.tar.gz
cd atslog-2.1.1/
сконфигурировать
./configure --with-wwwroot=/var/www 
установить
make install
make[1]: Entering directory `/opt/atslog-2.1.1/atslogd'
gcc -g -O2 -s -Wall -DPACKAGE_NAME=\"atslog\" -DPACKAGE_TARNAME=\"atslog\" -DPACKAGE_VERSION=\"2.1.1\" -DPACKAGE_STRING=\"atslog\ 2.1.1\" -DPACKAGE_BUGREPORT=\"samm@os2.kiev.ua\" -DSTDC_HEADERS=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_ARPA_TELNET_H=1 -DHAVE_FCNTL_H=1 -DHAVE_NETDB_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FORK=1 -DHAVE_VFORK=1 -DHAVE_WORKING_VFORK=1 -DHAVE_WORKING_FORK=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_STRFTIME=1 -DHAVE_VPRINTF=1 -DHAVE_BZERO=1 -DHAVE_GETHOSTBYNAME=1 -DHAVE_INET_NTOA=1 -DHAVE_MEMSET=1 -DHAVE_SOCKET=1 -DHAVE_STRCASECMP=1 -DHAVE_STRCHR=1 -DHAVE_STRERROR=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRSPN=1  -o atslogd atslogd.c  
atslogd.c: In function ‘read_block’:
atslogd.c:597:9: warning: the address of ‘obuf’ will always evaluate as ‘true’ [-Waddress]
make[1]: Leaving directory `/opt/atslog-2.1.1/atslogd'
Installing web interface to the /var/www/atslog directory
Installing atslog libraries to the /usr/local/libexec/atslog directory
Installing atslog binaries to the /usr/local/bin directory
Installing atslog man pages to the /usr/local/man directory
Install completed. You need to edit /usr/local/etc/atslog.conf configuration file
отредактировать скрипт создания базы данных data/sql/createsqltables.mysql.sql
sed -ir "s/timestamp(14)/timestamp/g" data/sql/createsqltables.mysql.sql
создать базу на сервере MySQL
 make install-sql
cd data/sql;./install-sql.pl /usr/local/etc/atslog.conf

ATSlog SQL database installer/updater

Database type: (mysql or postgresql) [mysql]: 
Database manager [root]: 
Manager's password []: My$q1@dm1N
Database host [localhost]: 
Database name [atslog]: 
Database user [atslog]: 
User's password [n7l260c6m]: @T5l06
Connecting to 'DBI:mysql:database=mysql;' as 'root'...
Creating database...OK
Creating user...OK
Creating tables...OK
Inserting data...OK
Patching configuration file...
Done :)
небольшой патч WEB-интерфейса
скопипастил здесь
atslog:~# cd /var/www/atslog/
atslog:/var/www/atslog#scp mydraftsadmin@1XX.XXX.XXX.XXX:/home/mydraftsadmin/SiteSource/ATSlog/atslogcp1251.patch ./

atslog:/var/www/atslog# patch -p3 < atslogcp1251.patch 
patching file include/set/commonData.php
patching file include/set/functions.php
patching file intern/index.html
patching file lines/index.html
patching file phonebook/index.html
patching file settings/index.html
patching file users/index.html

atslog:/var/www/atslog# 
скрипт запуска
1. koi8-r -> utf-8
cd /opt/atslog-2.1.1
atslog:/opt/atslog-2.1.1# iconv -f koi8-r -t utf-8 include/atslogmaster -o include/atslogmaster.utf8
2. +LSB
2.1. Создаю патч-файл atslogmaster2LSB.patch в папке с распакованным ATSLog следующего содержания:
@@ -1,10 +1,17 @@
 #!/bin/sh
-# ATSlog version 2.1.1 build 664 www.atslog.com
-# Copyright (C) 2003-2007 Denis CyxoB www.yamiyam.dp.ua
-#
-# chkconfig: 345 96 04
-# description:  This is a daemon for reading PBX logs
-#
+### BEGIN INIT INFO
+# Provides:             atslogmaster
+# Required-Start:       $local_fs $syslog $network
+# Required-Stop:        $local_fs $syslog $network
+# Should-Start:         mysql
+# Default-Start:        2 3 4 5
+# Default-Stop:         0 1 6
+# Short-Description:    ATSlog
+# Description:          Sart/Stop/etc a daemon for reading PBX logs
+#                       ATSlog version 2.1.1 build 664 www.atslog.com
+#                       Copyright (C) 2003-2007 Denis CyxoB www.yamiyam.dp.ua
+### END INIT INFO
+
 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:.
 NOWDATE=`LANG=en_US;date`
 BASENAME=`basename $0`
2.2. Применяю патч
patch -p0 include/atslogmaster.utf8 < atslogmaster2LSB.patch -o /etc/init.d/atslogmaster
2.3. +X
chmod +x /etc/init.d/atslogmaster
2.4. LSB
# update-rc.d atslogmaster defaults
update-rc.d: using dependency based boot sequencing
Использование ATSlog
  • /usr/local/etc/atslog.conf — конфигурационный файл.
  • # atslogmaster — запуск без параметров покажет статус демона сбора информа-ции и выдаст краткую справку по использованию atslogmaster.
    atslogmaster version 2.1.1 build 664 atslogd запущен. PID процесса 2605 Usage: atslogmaster {start|stop|restart|reload|status|writedb|rotate|alltodb|cleardb}
  • # atslogmaster start — запуск ATSlog.
  • # atslogmaster stop — останов.
  • # atslogmaster restart — перезагрузка.
  • # atslogmaster writedb — запись последних звонков в базу SQL сервера.
  • # atslogmaster rotate — ротация текстовых лог-файлов.
  • # atslogmaster cleardb — очистка таблиц SQL сервера.
  • # atslogmaster alltodb — запись всех (в т.ч. из архивов) звонков в базу SQL сервера. Данные о текущих звонках из файла /var/log/atslog/currentcalls.log не добавляются из-за возможного дублирования информации. Если есть необходимость записать также и текущие звонки, то воспользуйтесь функцией writedb
WEB-интерфейс
Добавлю пароль в конфигурационный файл WEB-интерфейса
sed -ir s/sqlmaspasswd\=\'\'/sqlmaspasswd\=\'`cat /usr/local/etc/atslog.conf |grep ^sqlmaspasswd | awk -F\= '{print $2}'`\'/g /var/www/atslog/include/config.inc.php
cat /usr/local/etc/atslog.conf |grep ^sqlmaspasswd | awk -F\= '{print $2}' — вырезает пароль для подключения к БД из конфигурационного файла /usr/local/etc/atslog.conf
Открываю адрес http://куда_установлено/atslog
на вопрос «запрашивает имя пользователя и пароль. Сайт сообщает: «abonent»» ответ:
логин: atslog
пароль: atslog
ВАЖНО!!!
Внимание! Для администратора используется пароль по умолчанию. В целях обеспечения безопасности измените пароль!
Если не открылся WEB-интерфейс
...но выдал сообщение:
Ошибка!
Неверно настроен анализ PHP кода в HTML тексте.
Это может произойти по двум причинам:
1. PHP не подключен или не активирован.
2. Разрешение файлов .html не интерпертируется как PHP код.
Во всём пакете ATSlog тексты кода PHP из соображения безопасности скрыты за разрешением файлов .html
Не забудьте вставить строку
AddHandler application/x-httpd-php html php
в настройках Вашего Apache http сервера.

Добавить в зависимости от настроек http-сервера, нечто типа
        <Directory /usr/local/var/www/atslog/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        <IfModule mod_php5.c>
                AddType application/x-httpd-php html php
        </IfModule>
        </Directory>
Посмотреть как выгядит WEB-интерфейс, без подключения к АТС
По-умолчание, в конфигурационном файле /usr/local/etc/atslog.conf прописана АТС model=KX-TA616RU. Для проверки буду использовать файл /opt/atslog-2.1.1/data/textlogs/Panasonic\ KX-TA616RU.txt
Итак:
# cat /opt/atslog-2.1.1/data/textlogs/Panasonic\ KX-TA616RU.txt > /usr/local/var/log/atslog/currentcalls.log
now=`date +%m/%d/%g`; sed -i s#6/12/02#$now# /usr/local/var/log/atslog/currentcalls.log
# atslogmaster writedb
после чего открыть WEB-интерфейс:
atslog web interface from KX-TA616RU.txt