Asterisk и IP-телефония

Asterisk 1.8 пишем CDR в MySQL базу | asterisk-system.ru

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

asterisk-system.ru
Мысли, заметки о Пингвине, Звездочке, Ай-Ти …
Перейти к содержимому
О сайте
Asterisk AGI на примере Perl
Install Asterisk 1.8 on CentOS 5.6
Asterisk 1.8 пишем CDR в MySQL базу
Опубликовано
26.08.2011
автором
admin
Для того чтобы Asterisk мог записывать данные о звонках в базу, должен быть установлен пакет “Asterisk-addons”. Для Asterisk версии ниже 1.8, нужна скачать этот самый пакет с сайта. Для 1.8 все проще, он идет в комплекте с ядром, нужно не забыть его включить.
Для начала надо установить модули для CDR Mysql
apt-get install mysql-client mysql-client libmysqlclient15-dev mysql-server mysql-common
далее собираем астериск с галками
—> 1. Applications
[*] 1. app_addon_sql_mysql
2. Call Detail Recording
[*] 1. cdr_addon_mysql
3. Channel Drivers
4. Format Interpreters
5. Resource Mod
Итак логинемся в базу
# 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 '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 '',
`filename` varchar(255) NULL default '',
`dnid` varchar(120) 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.
Если у вас такое же сообщение то все настроено верно
Запись опубликована в рубрике
Asterisk
CentOS
с метками
Asterisk
MySQL
. Добавьте в закладки
постоянную ссылку
Asterisk AGI на примере Perl
Install Asterisk 1.8 on CentOS 5.6
24 комментария:
Asterisk 1.8 пишем CDR в MySQL базу
Алексей
говорит:
02.06.2012 в 10:52 дп
Подскажите пожалуйста, а как включить Asterisk-addons на версии 1.8. Что то никак не соображу..
Ответить
admin
говорит:
02.06.2012 в 11:20 дп
когда вы собираете Астериск – “make menuselect”, первый же раздел, включаете все галочки, где упоминается mysql. Но перед этим у вас уже должен быть установлен MySQL-сервер.
Ответить
Алексей
говорит:
02.06.2012 в 8:09 пп
спасибо большое за статью, все работает
сейчас записи прикручивать буду
Ответить
aleksander
говорит:
18.09.2012 в 11:37 дп
А как быть с русскими ФИО , у меня в поле CallID на русском.
И в любых редакторах одни кракозябли
Ответить
admin
говорит:
20.09.2012 в 8:56 дп
посмотрите как виден CallId в Астериске и проверьте в какой кодировке пишет в базу.
я обычно использую utf8.
Ответить
aleksander
Позвонить +7 (343) 382-33-16