ЛР 1.16 - запись CDR в БД

Описание конфига "из коробки" описано тут

  1. Установите СУБД mysql
    apt install mysql-server
  2. Создайте пользователя и БД.
    mysql -u root -p
mysql> CREATE DATABASE astdb;
mysql> CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'astdbpass';
mysql> GRANT ALL ON astdb.* TO 'asterisk'@'localhost';
mysql> QUIT;
  1. Создайте файл asterisk.sql:
CREATE TABLE cdr (
   calldate datetime NOT NULL default '1970-01-01 00:00:01',
   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 '',
   did varchar(50) NOT NULL default '',
   recordingfile varchar(255) NOT NULL default '',
   KEY `calldate` (`calldate`),
   KEY `dst` (`dst`),
   KEY `accountcode` (`accountcode`),
   KEY `uniqueid` (`uniqueid`)
);
  1. С использованием sql-файла создайте таблицу в БД
    mysql -u asterisk -p astdb < asterisk.sql
  2. Отредактируйте конфиг cdr_mysql.conf, укажите параметры подключения БД.
[global]
hostname=localhost
dbname=astdb
table=cdr
password=astdbpass
user=asterisk
sock=/run/mysqld/mysqld.sock
  1. Перезапустите Asterisk
    systemctl restart asterisk
  2. Проверьте, что Asterisk подключился к БД
    cdr mysql status