Использование MySQL в Asterisk 1.8

Автор | 04.06.2011

В Астериске 1.8 поддержка MySQL идет из коробки в отличии от предыдущих версий в которых необходимо доустанавливать asterisk-addons
Первым делом устанавливает сам Астер, если его еще нет 🙂

sudo -s
emerge -av asterisk

>>Calculating dependencies... done!
>>[ebuild     N ] net-misc/asterisk-1.8.4.1  USE="ais calendar caps curl dahdi doc gtalk h323 http iconv jabber jingle mysql newt postgres samples snmp span speex srtp ssl syslog usb vorbis -alsa -bluetooth -debug -freetds -ldap -lua -odbc -osplookup -oss -portaudio -radius -sqlite -sqlite3 -static"

После чего логинимся в базу данных с правами администратора и создаем там нового пользователя и БД

mysql -u root -p 
CREATE DATABASE  aster_db;
GRANT ALL ON aster_db.* TO 'asterisk'@localhost IDENTIFIED BY 'aster_pass';
\q

Перелогиниваемся под новым пользователем в ново созданую базу и создаем таблицу в которую будем вносить данные о звонках.

mysql -u aster_user -p asterisk
mysql> CREATE TABLE 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 ''
);

После чего заходим в cdr_mysql.conf и вносим правки

cd /etc/asterisk
vi cdr_mysql.conf
.....
[global]
hostname=localhost
dbname=aster_db
table=cdr
password=aster_pass
user=asterisk
port=3306
....

Ну и собственно при меняем наши правки:

asterisk -vvvr
CLI>core restart now

или мягче:

CLI> module reload cdr_mysql.so

=)
После этого данные будут писаться в нашу БД.

Залишити відповідь