|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> ATSlog
Ведение статистики звонков с офисной мини-АТС.
Автор: BAV_Lug.
Несколько лет назад, начальство поставило мне задачу собирать данные о звонках сотрудников фирмы. В то время в качестве сервера у меня была винда. Под нее существует куча программ (платных и бесплатных) для сбора статистики с офисных мини-АТС, одну из них я и использовал. Но, вот, около года назад, я решил перейти на FreeBSD. Первоначальные поиски аналогичных программ под фрю успехов не принесли :( И я использовал метод описанный в данной статье. Т.е. собирал данные в файл, а потом "скармливал" этот файл программе на винде. Через, некоторое время, я наткнулся на программу ATSlog. На сегодняшний день, она уже присутствует в портах.
Итак, идем в порты и устанавливаем:
# cd /usr/ports/
# make search name="ATSlog"
Port: atslog-2.1.1_1
Path: /usr/ports/comms/atslog
Info: Software for collecting and analyzing calls from different PBX models
Maint: ports@logvinov.com
B-deps: mysql-client-5.0.37 p5-DBD-mysql-4.003 p5-DBI-1.54 p5-Storable-2.16
perl-5.8.8
R-deps: expat-2.0.0_1 fontconfig-2.4.2_1,1 freetype2-2.2.1_1 jpeg-6b_4 libdrm-2.0.2
libiconv-1.9.2_2 libxml2-2.6.27 mysql-client-5.0.37 p5-DBD-mysql-4.003 p5-DBI-1.54
p5-Storable-2.16 perl-5.8.8 php5-5.2.1_3 php5-gd-5.2.1_3 php5-mysql-5.2.1_3
php5-pcre-5.2.1_5 pkg-config-0.21 png-1.2.14 t1lib-5.1.1,1 xorg-libraries-6.9.0_1
WWW: http://www.atslog.com/en/about/
# cd /usr/ports/comms/atslog
# make install clean
| Как видите зависимостей довольно много, так что с собой она может потянуть приличное число пакетов. Хотя у меня большинство уже стояли.
Копируем дефаултный файл конфигурации (кстати есть вариант с коментами на русском):
# cp /usr/local/etc/atslog.conf.default.rus /usr/local/etc/atslog.conf
| Собственно менять в нем нужно не много - используемая БД и ее параметры, тип атс, настройки порта, ну, а остальное на ваш вкус.
Вот как он выглядит у меня:
# ATSlog version 2.1.0 build 627 www.atslog.com
# Copyright (C) 2003 Denis CyxoB www.yamiyam.dp.ua
#
# Параметры ATSlog
#
# Не допускается использование пробелов между названием
# параметра и его значением (с обеих сторон от знака "=").
#
# Номер сборки ATSlog.
# Не изменяйте параметр.
#
build=627
#
# Пароль для пользователя $sqlmasteruser
# Серверные программы ATSlog от имени этого пользователя
# инициализируют все обращения к SQL серверу для внесения изменений в базы данных.
# Например:
# sqlmaspasswd=Edktxtybt
#
sqlmaspasswd=atslog
# Остальные параметры для соединения с SQL сервером
#
sqlhost=localhost
sqldatabase=atslog
sqlmasteruser=atslog
# Тип используемого SQL сервера.
# Сейчас поддерживается MySQL и PostgreSQL.
# Например:
# sqltype=MySQL
# sqltype=PostgreSQL
#
sqltype=MySQL
# НАСТРОЙКИ ПОРТА
# Порт для соединения с АТС.
# Можно использовать два вида соединения:
# 1. Через последовательный порт. В этом случае программа
# будет обращаться к порту как к девайсу /dev/$port. В
# конфигурационном файле префикс "/dev/" опускается.
# Например:
# BSD
# port=cuaa0
# Linux
# port=ttyS0
# 2. Через TCP/IP порт. При этом демон откроет TCP сокет
# и будет ожидать соединения по указанному номеру порта.
# Обязательно нужно указать префикс tcp:номер_порта.
# Например:
# port=tcp:1234
#
# 3. Через TCP/IP порт. При этом демон откроет TCP соединение на удалённых
# хост по указанному номеру порта.
# Обязательно нужно указать префикс rtcp:хост:номер_порта.
# Например:
# port=rtcp:remote.com:1234
port=cuaa0
# Скорость последовательного порта $port сервера
# Скорость должна соответствовать настройкам скорости порта самой АТС.
# Допустимые значения:
# speed=2400
# speed=4800
# speed=9600
# speed=19200
# speed=38400
# speed=57600
# speed=115200
#
speed=9600
# Число битов данных при передаче через последовательный порт.
# Допустимые значения от 5 до 8.
#
charsize=8
# Проверка на четность при передаче через последовательный порт.
# Допустимые значения:
# parity=e (even parity)
# parity=o (odd parity)
# parity=n (no parity)
#
parity=n
# Число стоповых битов при передаче через последовательный порт.
# Допустимое значения:
# stopbits=1
# stopbits=2
#
stopbits=1
# Директория с исполняемыми файлами программы
#
bindir=/usr/local/bin
# Директория с файлами библиотек (Perl модулей) поддержки
# различных моделей АТС.
libdir=/usr/local/libexec/atslog
# Директория с текстовыми лог-файлами
#
logdir=/var/log/atslog
# Директория с дополнительными файлами использующимися ATSlog.
#
sharedir=/usr/local/share/atslog
# Поддиректория с файлами сообщений на различных языках.
# Располагается в $sharedir
#
# Если у Вас появилось желание сделать новый перевод - добро
# пожаловать в участники проекта! :)
#
langdir=lang
# Программа считывающая данные из АТС
#
atslogd=atslogd
# Флаги запуска. Смотри man atslogd(8).
# Используйте -t при возникновении проблем с tcp режимом
atslogd_flags=
# Основной управляющий скрипт
#
masterscript=atslogmaster
# Скрипт запуска программы при старте системы
#
initscript=/usr/local/etc/rc.d/atslogdinit.sh
# Скрипт ежемесячного вызова ротации логов
#
monthlyscript=/usr/local/bin/atslogrotate
# Скрипт ежедневного вызова сбора информации из
# текстового лог-файла и записи её в базу SQL сервера.
# Скрипт активируется только если параметр $fastwrite=no
dailyscript=/usr/local/bin/atslogdaily
# Скрипт, передающий информацию о звонках SQL серверу
#
atslogdb=atslogdb.pl
# Скрипт, позволяющий очистить от данных таблицы SQL сервера. Скрипт не
# удаляет таблицы и базы данных, а только очищает от информации.
#
# Пример использования:
# [root@server /]$ atslogmaster cleardb
#
cleardb=atslogcleardb.pl
# Текстовый лог-файл в который скрипт записывает звонки из АТС за текущий
# месяц. По окончанию месяца файл будет сжат bzip2 и сохранён под
# именем $callslogfile.1.bz2 В следующий месяц будет произведена его
# ротация в соответствующем порядке.
callslogfile=calls.log
# Текстовый лог-файл текущих звонков.
# После того, как из этого файла данные будут записаны в базу SQL
# сервера его содержимое переносится в $callslogfile
curcallslogfile=currentcalls.log
# Файл со строками, информация из которых не была перенесена из текстового
# лог-файла в базу данных. Как правило, это строки содержащие
# информацию не касающуюся звонков. Например, заголовки столбцов
# пояснения при печати на принтер.
# Файл хранится в папке, описанной параметром $logdir и
# подчиняется правилам ротации. Для дополнительной информации
# смотрите описание параметров $howmonth и $debug.
#
notwritelog=notwrite.log
# Осуществлять ли запись лога $notwritelog или нет. Запись лога
# используется, в основном, для отладки. Удобно отслеживать те данные,
# которые не были обработаны модулем разбора строк.
# Ранее параметр $debug назывался $nowrlog. Был заменён для
# лучшего понимания значения.
#
# Возможные варианты:
# debug=yes
# debug=no
#
debug=no
# Лог работы всего пакета. В нём фиксируется останов, запуск, сообщения
# об ошибках и пр. Файл хранится в папке, описанной параметром $logdir и
# подчиняется правилам ротации.
#
startlogfile=atstart.log
# PID файл.
#
pidfile=/var/run/atslogd.pid
# Сколько месяцев хранить текстовые лог-файлы
# указанные параметрами $callslogfile, $notwritelog и $startlogfile.
# Минимум 1. Желательно 12.
# Лог файлы хранятся в сжатом виде (компрессор bzip2)
#
howmonth=12
# Модель АТС.
# На данный момент поддерживаются следующие:
# Panasonic KX-TA308RU
# KX-TA308
# KX-TA616RU
# KX-TD1232
# KX-TD1232-RU (русская прошивка)
# KX-TD816RU
# KX-TD500
# KX-TEM824
# KX-TES824
# KX-TDA100
# KX-TDA200
# Samsung SKP-816
# NX-820
# OFFICESERV-7200
# OFFICESERV-500
# OFFICESERV-100
# IDSC-500
# Hybrex GD-320
# Siemens HICOM-150
# HICOM-350H
# HICOM-250
# HIPATH-3750 (3000/3750, сжатый формат лога)
# LG GDK-100
# GDK-162
# GHX-46
# LDK-300
# LDK-100
# GoldStar GPS-6A
# Alcatel 4200E
# NEC NEAX2000 (формат - внутренний SMDR NEAX 2400 IMS)
#
# При указании параметра $model нужно задать только
# обозначение модели без названия производителя.
# Нужно точно указать маркировку модели, т.к. адаптированные под Россию
# АТС могут отличатся форматом даты; например для KX-TA616RU дата
# записывается в формате DD/MM/YY, а не так, как в родном - MM/DD/YY для
# модели KX-TA616.
# Пример:
# model=KX-TA616RU
#
model=KX-TD1232
# Уровень для системного журнала syslogd
# syslogd используется для сообщения о критических ошибках.
# Для дополнительной информации читайте man logger(1), syslog.conf(5).
# Оставьте поле пустым для отключения записи в системный журнал.
#
syslogfacility=user.err
# Прямая запись с порта АТС в базу данных.
# При значении "no" запись состоявшихся звонков производится сначала в
# текстовый лог-файл ($curcallslogfile), а затем, один раз в сутки в БД SQL
# сервера.
# Присвоение этому параметру значения "yes" позволит синхронно записывать в БД
# информацию о звонках непосредственно в момент их поступления из АТС.
# Данные в текстовый лог-файл ($callslogfile) попадают в обеих случаях.
# Параметр "yes" предполагает демонизацию и постоянное задействование Perl
# скрипта, поэтому требует значительно бОльших ресурсов компьютера.
#
# Возможные варианты:
# fastwrite=no
# fastwrite=yes
#
fastwrite=yes
# End of configuration file... Have a nice day!
| Теперь, нужно создать создать таблицы в БД (с помощью идущего в комплекте скрипта):
# /usr/local/share/atslog/sql/install-sql.pl /usr/local/etc/atslog.conf
| Добавить запуск ATSlog в rc.conf и попробовать стартануть:
# echo 'atslogd_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/atslogd.sh start
ATSLog is started
# ps ax | grep atslog
78724 ?? Ss 0:00.01 /usr/bin/perl /usr/local/bin/atslogdb.pl --fastwrite
78725 ?? S 0:00.00 /usr/local/bin/atslogd -P /var/run/atslogd.pid -o -f
| Как видим сервис успешно стартанул. Если у вас это не так, то смотрите логи.
Проверте наличие файла /var/log/atslog/calls.log и посмотрите записываются ли туда звонки.
Теперь перейдем к настройке WEB-интерфейса. Добавим в конфиг апача следующее (должен быть настроен PHP):
Alias /ats/ "/usr/local/www/atslog/"
<Directory "/usr/local/www/atslog">
Options Indexes
AllowOverride All
Allow from all
</Directory>
| Настройки WEB-интерфейса находятся в файле ../www/atslog/include/config.inc.php
В нем нужно указать теже параметры подключения к БД, которые указывали и в atslog.conf. Здесь же указываются коды мобильных операторов.
Вот, что получилось у меня:
<?php
// error_reporting(E_ERROR);
/*
ATSlog web interface settings
*/
// hostname of the SQL server
$sqlhost='localhost';
// Atslog Database
$sqldatabase='atslog';
// atslog SQL user password
$sqlmaspasswd='atslog';
// atslog SQL user name
$sqlmasteruser='atslog';
// database type
$sqltype='mysql'; // PostgreSQL or MySQL
// PBX model
$model='';
// SQL cache directory.
$ADODB_CACHE_DIR = '/tmp/adodb';
$ADODB_CACHE_TTL = 60*60; // 1 hour. SQL query cache lifetime.
$debugMode=FALSE; // Debug mode.
$demoMode=FALSE; // Demo mode.
// Here you can define codes of your local mobile operators.
// here is example for the ukrainian mobile networks.
// Simply put your local operator codes to this array and uncomment this string
// $MobileCodes=array("050", "095", "066", "099", "067", "098", "068", "097",
"096","039","063", "093", "094", "092");
?>
| После всего проделанного пробуем зайти http://вашсервер/ats/
Должен появится запрос имени и пароля. Вводим atslog/atslog. Заходим в настройки абонентов. Создаем учетную запись администратора. И затем деактивируем пользователя atslog (либо меняем ему пароль).
Все. Система готова к работе. Можно раздать сотрудникам пароли для просмотра своей статистики звонков (некоторым это очень помогает, например люди забывают номера телефонов по которым уже звонили), а начальникам давать права на просмотр всей статистики.
P.S. У автора программы, насколько я знаю, катастрофически не хватает времени на ее существенное развитие. А задумок много (например в БД есть список городов с их кодами). Если Вы что-либо допишите к программе (например какие-либо запросы к вэб-интерфейсу), то большая просьба отсылать свои наработки автору, что-бы он включил их в следующую версию программы.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=4266.
размещено: 2007-04-14,
последнее обновление: 2007-04-15,
автор: BAV_Lug
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
|
Комментарии пользователей [17 шт.]