Для того чтобы Asterisk мог записывать данные о звонках в базу, должен быть установлен пакет «Asterisk-addons». Для Asterisk версии ниже 1.8, нужна скачать этот самый пакет с сайта. Для 1.8 все проще, он идет в комплекте с ядром, нужно не забыть его включить.
Итак логинемся в базу
# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Создаем базу
mysql> create database asterisk;
Создаем в базе «asterisk» таблицу «cdr», вот с такой структурой
mysql> use asterisk; mysql> CREATE TABLE `cdr` ( `id` int(11) unsigned NOT NULL auto_increment, `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 '', PRIMARY KEY (`id`), KEY `calldate` (`calldate`), KEY `accountcode` (`accountcode`), KEY `uniqueid` (`uniqueid`), KEY `dst` (`dst`), KEY `src` (`src`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; Query OK, 0 rows affected (0.04 sec)
Теперь даем доступ для пользователя «asterisk_user» с паролем «Some_Pass_Aster01» к базе «asterisk» только с локалхоста.
mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by 'Some_Pass_Aster01'; mysql> flush privileges;
Теперь укажем нашему Астериску писать CDR базу, для этого в файле «/etc/asterisk/cdr_mysql.conf» меняем строчки:
global] hostname=localhost dbname=asterisk table=cdr password=Some_Pass_Aster01 user=asterisk_user sock=/var/lib/mysql/mysql.sock
Для применения изменений перезапускаем «Asterisk». Чтобы убедиться что мы все сделали правильно в консоле Астерсика вводим
test*CLI> cdr mysql status Connected to asterisk on socket file /var/lib/mysql/mysql.sock using table cdr for 5 hours, 22 minutes, 7 seconds. Wrote 5 records since last restart.
Если у вас такое же сообщение то все настроено верно