Этапы настройки записи CDR в MySQL
Настройка сохранения истории звонков asterisk (CDR) в базу данных формата MySQL состоит из двух частей, каждая из которых состоит из нескольких этапов. Части могут настраиваться независимо и параллельно (до определенного момента).
Часть 1. Установите и настройте MySQL сервер
- Установите MySQL сервер
- Создайте базу данных для asterisk
- Создайте таблицу для asterisk
Часть 2 — настройка asterisk
- Установите компоненты для работы с MySQL: MySQL client и библиотеку для поддержки MySQL
- Пересоберите asterisk для работы с MySQL — cdr_mysql
- К этому моменту должна быть выполнена часть 1.
- Проверьте подключение к MySQL Server
- Настройте asterisk для работы с MySQL
И отдельным пунктом вынесены возможные ошибки, возникающие в процессе настройки MySQL / asterisk.
Поля CDR
calldate | дата и время начала звонка (фактически, поле используется только для базы данных mysql, поскольку в настройках cdr_mysql.conf указан алиас: alias start => calldate) |
clid | caller id звонящего |
src | исходящий номер |
dst | набранный номер |
dcontext | контекст, в котором произошел набор |
channel | исходящий канал (используемый канал от вызывающего абонента) |
dstchannel | канал назначения (используемый канал к вызываемому абоненту) |
lastapp | последнее вызванное приложение asterisk (например, Dial) |
lastdata | параметры, переданные последнему вызванному приложению |
duration | продолжительность всего разговора, секунд (с момента набора номера, включая время ожидания ответа абонента) |
billsec | время непосредственного разговора (время вызова в секундах, от ответа абонента до окончания звонка) |
disposition | Значение результата звонка: ANSWERED, NO ANSWER, BUSY, FAILED (на некоторых CDR в выходных драйверах, например ODBC, они могут быть числовыми: 1 – сбой, 2 – занято, 4 – нет ответа, 8 – отвечено, 0 – разрыв связи до ответа; заметьте, что более детальная инфа может быть найдена в переменной диалплана $HANGUPCAUSE) |
amaflags | Статус биллинговой строки (AMA = Automated Message Accounting). Указывается для каждого канала подобно accountcode. Возможными значениями могут быть default, omit, billing, documentation. Это один из возможных параметров sip клиента в файле sip.conf. Например: amaflags=billing |
accountcode | учетный код, который можно задать в настройках (параметр файла sip.conf. Значение этого параметра, если указано, используется при заполнении CDR. Записывается значение пира, который принимает звонок). Это один из возможных параметров sip клиента в файле sip.conf. Например: accountcode=markster |
userfield | пользовательское поле (заполняется пользователем самостоятельно, по умолчанию — пустое) |
uniqueid | уникальный идентификатор |
Подготовка системы
Я рекомендую ознакомиться с моим материалом на тему первоначальной настройки centos 7. Многие вопросы там рассмотрены подробнее, здесь же я не буду на них задерживаться, просто выполню необходимые команды.
Прежде чем мы начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:
# mcedit /etc/sysconfig/selinux
и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:
# setenforce 0
Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.
Дальше обновляем систему и ставим пакеты Development Tools:
# yum update # yum groupinstall core base "Development Tools"
Asterisk-CDR-Viewer-Mod — Настройка авторизации
Подскажите пож-та какие файлы и где надо создать и изменить, для настройки авторизации в Asterisk-CDR-Viewer-Mod. Что то совсем запутался..htpasswd — где должен быть? В нём надо добавлять строку: $admin_user_names = «admin» или нет? Файл .htaccess надо создавать и где?, или надо изменить конфиг apache?, какой тогда именно файл? Я так понимаю, что:
AuthName «Asterisk» AuthType Basic AuthUserFile /path/to/.htpasswd AuthGroupFile /dev/null require valid-user
надо туда прописывать?Очень надо сделать, помогите пож-та!
Здесь подробно написано, как поставить пароль на директорию с помощью apache.
ОК, всё ясно и понятно, один момент только поясните пож-та: Для phpMyadmin это файл /etc/httpd/conf.d/phpMyAdmin.conf, а для Asterisk-CDR-Viewer-Mod в этой папке какой файл будет? или его надо создать?
Создавать ничего не надо. Если Asterisk-CDR-Viewer-Mod уже работает, значит его настройки где-то заданы, вот там и надо смотреть. Если нет отдельного файла конфигурации для него, значит используется стандартный конфиг httpd.
Это файл /etc/httpd/conf/httpd.conf я правильно понял? а, не в папке conf.d, там есть файлы php.conf, autoindex.conf, userid,conf, welcome.conf, ну и phpMyadmin.confБлин, замучился уже перебирать варианты. Никак не хочет «закрываться» на авторизацию.И ещё, чтоб уж до конца всё на свои места поставить: файлы .htaccess и .htpasswd в папке html создавать (CDR-Viewer-Mod туда скопирована была)?, или там есть папка inc с файлом config.inc.php — и там их надо было создавать?
Да, и в документации ещё есть такое:Пример конфига для Apache:===
AuthName «Asterisk» AuthType Basic AuthUserFile /path/to/.htpasswd AuthGroupFile /dev/null require valid-user
===Может в /etc/httpd/conf.d/ создать такой файл? Чё то никак apache не хочет выходить на авторизацию.
В интернете море информации о том, как закрыть каталог с помощью .htaccees, если что-то не понятно, можно почитать. Я вижу, что понимания как это работает нет вообще, надо разбираться.
А ведь я оказался прав насчёт отдельного конфига в /etc/httpd/conf.dСоздал такого вида: 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
Всё содержимое CDR-Viewer-Mod перенес из папки html в созданную /var/www/ asterisk-cdr-viewer /, там же создал .htpasswd, а в config.inc.php прописал $admin_user_names = ‘имя пользователя’; и всё заработало! Только заходить в статистику надо по алиасу /acdr/, т.е. /IP сервера/acdr/
есть вопрос по настройке Asterisk-CDR-Viewer-Mod, судя по ответам в этой ветке форума вы с этим разобрались.
Я установил web интерфейс Asterisk-CDR-Viewer (с этим проблем нет), теперь пытаюсь «прикрутить» web интерфейс Asterisk-CDR-Viewer-Mod.
Просьба подсказать, где я допустил ошибку.
1. скачал и установил prog-it-Asterisk-CDR-Viewer-Mod-25c37db в /var/www/html
2. mv /var/www/html/prog-it-Asterisk-CDR-Viewer-Mod-25c37db /var/www/html/asterisk-cdr-viewer-mod
3. Создал файл asterisk-cdr-viewer-mod.conf в etc/httpd/conf.d
4. в файле etc/httpd/conf.d/asterisk-cdr-viewer-mod.conf создал alias Alias /acdrmod/ «/var/www/html/asterisk-cdr-viewer-mod/»
5. в файле /var/www/html/asterisk-cdr-viewer-mod/inc/config/config.php прописал обращение к базе
return array( ### Подключение к базе данных ‘db’ => array( # Тип базы, который поддерживается PDO. Например: mysql, pgsql ‘type’ => ‘mysql’, # Хост ‘host’ => ‘localhost’, # Порт ‘port’ => ‘3306’, # Пользователь ‘user’ => ‘asterisk’, # Имя базы ‘name’ => ‘asterisk’, # Пароль ‘pass’ => ‘123’, # Название таблицы ‘table’ => ‘cdr’, # Доп. опции подключения ‘options’ => array( //PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES utf8’,
источник
Информация по таблице
Поле | Комментарий |
---|---|
calldate | Дата и время |
clid | Caller ID |
src | Кто звонит |
dst | Куда звонят |
dcontext | Диал план |
channel | Используемый канал от вызывающего абонента |
dstchannel | Используемый канал к вызываемому абоненту |
lastapp | Последняя команда (Dial, BackGround и т.п.) |
lastdata | Аргументы или данные для lastapp |
duration | Полное время в секундах, от начала набора номера до окончания звонка |
billsec | Время вызова в секундах, от ответа (Answer) до окончания звонка. |
disposition | Статус вызова |
amaflags | AMA = Automated Message Accounting |
accountcode | Параметр файла sip.conf. Значение этого параметра, если указано, используется при заполнении CDR. Записывается значение пира, который принимает звонок. |
uniqueid | Можно записать что угодно туда |
exten => _8904XXXXXXX,n,Set(CDR(userfield)=Тele2)
http://asterisk.ru/knowledgebase/Asterisk+cdr+mysql http://asterisk.ru/knowledgebase/CDR