среда, 31 октября 2012 г.

Asterisk 1.8 пишем CDR в MySQL базу

Для того чтобы Asterisk мог записывать данные о звонках в базу, должен быть установлен пакет “Asterisk-addons”. Для Asterisk версии ниже 1.8, нужна скачать этот самый пакет с сайта. Для 1.8 все проще, он идет в комплекте с ядром, нужно не забыть его включить. Так же должны быть установлены библиотеки libmysqlclient15-dev, libmysql++-dev, libmysqld-dev если не установлены, ставим


# apt-get install libmysqlclient15-dev libmysql++-dev libmysqld-dev

Итак логинемся в базу

# mysql -u root -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(9) 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;
 Теперь даем доступ для пользователя “asterisk” с паролем “mypassword″ к базе “asterisk” только с локалхоста.
mysql> grant all on asterisk.* to 'asterisk'@'localhost' identified by 'mypassword';
mysql> flush privileges;
Теперь укажем нашему Астериску писать CDR базу, для этого в файле “/etc/asterisk/cdr_mysql.conf” меняем строчки:
[global]
hostname=localhost
dbname=asterisk
table=cdr
password=mypassword
user=asterisk
Для применения изменений перезапускаем “Asterisk”.
CLI> core restart now
Чтобы убедиться что мы все сделали правильно в консоле Астерсика вводим
*CLI> cdr mysql status
Connected to asterisk@localhost, port 3306 using table cdr for 33 minutes, 45 seconds.
  Wrote 1 records since last restart.

 Если у вас такое же сообщение то все настроено верно



взято с http://asterisk-system.ru/asterisk/asterisk-1-8-pishem-cdr-v-mysql-bazu.html

Комментариев нет:

Отправить комментарий