Voipnotes
Услуги
  • 3CX Phone System
    • Купить IP АТС - 3CX Phone System
Ещё
    Задать вопрос
    +7 (499) 113-65-73
    Заказать звонок
    sale@voipnotes.ru
    г. Москва 2-й Михайловский проезд 9
    +7 (499) 113-65-73
    Заказать звонок
    Voipnotes
    Услуги
    • 3CX Phone System
      • Купить IP АТС - 3CX Phone System
      Voipnotes
      Услуги
      • 3CX Phone System
        • Купить IP АТС - 3CX Phone System
        Voipnotes
        Voipnotes
        • Услуги
          • Назад
          • Услуги
          • 3CX Phone System
            • Назад
            • 3CX Phone System
            • Купить IP АТС - 3CX Phone System
        • +7 (499) 113-65-73
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        • Главная
        • Блог
        • Настройка Asterisk CDR и Asterisk CDR Viewer

        Настройка Asterisk CDR и Asterisk CDR Viewer

        3 Мая 2015

        CDR (Call Data Record) содержит информацию о всех звонках, которые обрабатывала IPPBX(в нашем случае Asterisk) в том числе несостоявшихся. Многим администраторам, которые обслуживает телефонию CDR являются источником информации, с которого следует начинать диагностику проблемы.

        В сегодняшней статье мы расскажем как записывать Asterisk CDR в базу данных MySQL и как просматривать эти самые записи с помощью Asterisk CDR Viewer.

        Для настройке на сервере уже должны быть установлены MySQL,Asterisk, Apache, PHP. Мы будем производить настройки на сервере CentOS 6.6 с Asterisk 13.

         

        Приступим

        Первым делом нам нужно создать базу данных и пользователя этой базы данных где будут храниться наши CDR.

        Подключаемся к MySQL:

        #mysql –uroot –ppassword

        Создаем базу данных:

        mysql> CREATE DATABASE asteriskcdrdb;

        Даем доступ для пользователя asteriskcdr с паролем 'ваш пароль' к базе asteriskcdrdb только с localhost :

        mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO  asteriskcdr@localhost  IDENTIFIED BY 'ваш пароль';
        mysql> flush privileges;

        Подключаемся к созданной базе asteriskcdrdb:

        mysql> use asteriskcdrdb;

        Создаем таблицу:

        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 '',
           did varchar(50) NOT NULL default '',
           recordingfile varchar(255) NOT NULL default '',
           KEY `calldate` (`calldate`),
           KEY `dst` (`dst`),
           KEY `accountcode` (`accountcode`),
           KEY `uniqueid` (`uniqueid`)
        );

        Теперь нам нужно настроить Asterisk, чтобы он знал куда писать CDR. Переходим в файл /etc/asterisk/cdr_mysql.conf расскоментируем и вносим следующие изменения:

        [global]
        hostname=localhost        - ip адрес где располагается сервер MySQL
        dbname=asteriskcdrdb      – название базы данных где будут храниться cdr
        table=cdr                 - название таблицы
        password= password        -пароль для пользователя asteriskuser
        user= asteriskcdr         - имя пользователя для базы данных
        ;port=3306
        ;sock=/tmp/mysql.sock
        ;timezone=UTC ; Previously called usegmtime

        Переходим в консоль Asterisk и выполняем команду :

        module load cdr_mysql.so

        Убедимся, что модуль загружен и работает:

        module show like cdr_mysql.so

        asterisk-cdr-mod.jpg

        После этого перезагрузите Asterisk и убедимся, что вызовы записываются в базу: 1.Сделайте любой исходящий вызов, чтобы он прошел через ваш Asterisk. 2. Зайдите в MySQL. 3. Подключитесь к базе asteriskcdrdb :

        use asteriskcdrdb;
        4. Сделайте общий Select:
        select * from cdr;

        Если в выводе вы увидите свой вызов, то значит CDR пишутся корректно и все работает.

           

        Настройка Asterisk CDR Viewer

        Если настройки записи CDR в базу данных были выполнены правильно, то можно приступить к настройке Asterisk CDR Viewer.

        Скачиваем asterisk-cdr-viewer-1.0.2.tgz в папку /var/www и разархивируем

        wget https://asterisk-cdr-viewer.googlecode.com/files/asterisk-cdr-viewer-1.0.2.tgz
        tar -xzvf asterisk-cdr-viewer-*.tgz

        Переносим файл алиаса в папку с httpd

        cp asterisk-cdr-viewer/contrib/httpd/asterisk-cdr-viewer.conf /etc/httpd/conf.d/

        Изменяем настройки подключения к БД для Asterisk-CDR-viewer

        nano /var/www/asterisk-cdr-viewer/include/config.inc.php

        Нужно поменять параметры в соответствии с текущей конфигурацией вашей базы:

        $db_type = 'mysql';
        $db_host = 'localhost';
        $db_port = '3306';
        $db_user = ' asteriskcdr ';          - название базы где хранятся наши CDR 
        $db_pass = 'password';              -пароль для пользователя asteriskuser
        $db_name = ' asteriskcdrdb ';   - имя пользователя для базы данных
        $db_table_name = 'cdr';            - название таблицы
        $db_options = array();

        Рестартуем веб-сервер

        service httpd restart
         

        Теперь в браузере переходим http://your_ip/acdr/

        asteriskcdr.jpg

        Посмотрим результаты вывода:

        asteriskcdr-search.jpg

        По умолчанию доступ к просмотру статистики имеют все пользователи, исправим это сделав доступ через авторизацию.

        В /etc/httpd/conf.d/asterisk-cdr-viewer.conf расскоментируем все строки:

        Alias /acdr/ "/var/www/asterisk-cdr-viewer/"
        
        
                AuthName "Asterisk-CDR-Stat"
                AuthType Basic
                AuthUserFile /var/www/asterisk-cdr-viewer/.htpasswd
                AuthGroupFile /dev/null
                require valid-user
        
        

        Создаем пользователя и пароль для подключение к asterisk cdr viewer:

        htpasswd -c /var/www/asterisk-cdr-viewer/.htpasswd voipnotes

        Добавим созданного нами пользователя в /var/www/asterisk-cdr-viewer/include/config.inc.php

        !!! $admin_user_names = '*' – все пользователи имеют доступ к статистике. !!!
        $admin_user_names = "voipnotes" - уберем * и добавим нашего пользователя

        Рестартуем веб-сервер:

        service httpd restart

        Теперь при попытке зайти в viewer вы увидите приглашения для ввода логина и пароля:

        asteriskcdr-login.jpg       

        Настроем возможность записи разговоров:

        В файле /var/www/asterisk-cdr-viewer/include/config.inc.php указаны настройки по умолчанию:

        $system_monitor_dir = '/var/spool/asterisk/monitor'; - директория в которой хранятся записанные вызовы 
        $system_audio_format = 'wav'; - формат аудио файла

        Если вы хотите можно поменять формат или директорию, если нет, то в ваш диалплан добавляем следующие строки и провряем:

        exten => s,1,Set(MONITOR_FILE=/var/spool/asterisk/monitor/${UNIQUEID})
        exten => s,n,MixMonitor(${MONITOR_FILE}.wav,b)
        На этом наша настройка закончена.

        Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

        Нужна консультация?

        Наши специалисты ответят на любой интересующий вопрос

        Задать вопрос
        Поделиться
        Назад к списку
        © 2021 Все права защищены.
        +7 (499) 113-65-73
        Заказать звонок
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        Политика конфиденциальности
        Версия для печати
        © 2021 Все права защищены.
        Заказать звонок
        Написать сообщение