Модуль cdr-mysql для PBX Asterisk позволяет сохранять CDR (Call Detail Records - Детальная Информация о Звонках) в базе данных MySQL вместо обычных бинарных файлов журнала. Такой способ удобнее тем, что почти любую статистику можно получить без написания сложных парсеров просто составив SQL-запрос. Далее будет показано как добавить модуль mysql-cdr к описаной ранее домашней АТС.
Для начала установим всё необходимое:
apt-get install mysql-server asterisk-mysql
Зайдём в консоль mysql с правами суперпользователя:
mysql -u root -p
Создадим базу данных:
CREATE DATABASE `asterisk`;
Создадим пользователя "asterisk" c паролем "p4$$w0rd" и полным доступом к базе "asterisk":
GRANT ALL PRIVILEGES ON `asterisk`.* to 'asterisk'@'localhost' IDENTIFIED BY 'p4$$w0rd';
Создадим таблицу в базе данных:
CREATE TABLE `asterisk`.`cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default '', `src` varchar(80) NOT NULL default '', `dst` varchar(80) NOT NULL default '', `dcontext` varchar(80) NOT NULL default '', `channel` varchar(80) NOT NULL default '', `dstchannel` varchar(80) NOT NULL default '', `lastapp` varchar(80) NOT NULL default '', `lastdata` varchar(80) NOT NULL default '', `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default '', `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default '', `uniqueid` varchar(32) NOT NULL default '', `userfield` varchar(255) NOT NULL default '' );
Теперь приведём файл "/etc/asterisk/cdr_mysql.conf" к виду:
[global] hostname=127.0.0.1 dbname=asterisk table=cdr password=p4$$w0rd user=asterisk port=3306 [columns] alias start => calldate alias callerid => clid
И наконец перезапустим asterisk:
asterisk -rx 'reload'
Теперь история звонков будет сохраняться в MySQL и можно её получать с помощью SQL-запросов. Например информацию о последних десяти звонках можно получить запросом:
SELECT * FROM `cdr` ORDER BY `calldate` DESC LIMIT 10;
На этом всё. Приятной работы!
Ladm 2011-10-15 21:19:58 (#)