Как и говорил в прошлой заметке, сегодня я покажу как настраивается/устанавливается оснастка Web - Asterisk CDR Viewer
на сервер где работает роль Asterisk 16 + ODBC + Mysql
с целью визуализации совершенных звонков (всех звонков). В роли операционной системы сервера — это Ubuntu 18.04 Server amd64
. Легче смотреть логи/анализировать куда попадает звонок и что не так с ним, предоставлять выгрузку звонков. К тому же так удобнее использовать Web
-интерфейс.
Что было сделано до этой заметки:
- tips_ubuntu_18_04_asterisk_16_v1.odt
- tips_ubuntu_18_04_odbc_v1.odt
- tips_ubuntu_18_04_asterisk_16_mysql_odbc_v1.odt
Шаг №1: Проверяю, что Asterisk 16
видит модуль cdr_mysql.so:
ekzorchik@srv-asterisk:~$ sudo asterisk -rx "module show like cdr_mysql.so" [sudo] password for ekzorchik: Module Description Use Count Status Support Level cdr_mysql.so MySQL CDR Backend 0 Running deprecated 1 modules loaded
Шаг №2: С номера 2002
совершил звонок на номер 1000
(точное время)
Фиксирую запись вызова в базе MySQL:
mysql> quit Bye ekzorchik@srv-asterisk:~$
Т.к. в выводе вижу вызов, то это означает что CDR
пишется и все работает.
Шаг №3: Теперь настрою Asterisk CDR Viewer
, но сперва устанавливаю пакет LAMP
содержащий Web
—сервис Apache2 + MySQL + PHP
ekzorchik@srv-asterisk:~$ wget https://github.com/prog-it/Asterisk-CDR-Viewer-Mod/archive/master.zip ekzorchik@srv-asterisk:~$ unzip master.zip ekzorchik@srv-asterisk:~$ mv Asterisk-CDR-Viewer-Mod-master/ acdrviewer ekzorchik@srv-asterisk:~$ sudo tasksel install lamp-server ekzorchik@srv-asterisk:~$ sudo nano /etc/apache2/apache2.conf ServerName localhost ekzorchik@srv-asterisk:~$ sudo a2enmod authz_groupfile ekzorchik@srv-asterisk:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf ekzorchik@srv-asterisk:~$ sudo rm /var/www/html/index.html ekzorchik@srv-asterisk:~$ sudo mv acdrviewer/ /var/www/html/ ekzorchik@srv-asterisk:~$ sudo cp /var/www/html/acdrviewer/inc/config/config.php.sample /var/www/html/acdrviewer/inc/config/config.php ekzorchik@srv-asterisk:~$ sudo nano /var/www/html/acdrviewer/inc/config/config.php # Тип базы, который поддерживается PDO. Например: mysql, pgsql 'type' => 'mysql', # Хост 'host' => 'localhost', # Порт 'port' => '3306', # Пользователь 'user' => 'asteriskuser', # Имя базы 'name' => 'asteriskcdrdb', # Пароль 'pass' => 'asterpass', # Название таблицы 'table' => 'cdr', # Доп. опции подключения 'options' => array( //PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', ), ekzorchik@srv-asterisk:~$ sudo chown -R www-data:www-data /var/www/html/ ekzorchik@srv-asterisk:~$ sudo systemctl restart apache2
Запускаю со своей рабочей системы с которой взаимодействую с сервером где у меня роль Asterisk 16
браузер и в новой вкладке обращаюсь на URL
адрес: http://172.33.33.2/acdrviewer
и получаю доступ к оснастке «Детализация звонков
»
Ура оснастка встала без каких либо проблем
А вот и найденный звонок
Дата: 4 декабря 2019
Кто звонил: 2002
и нажимаю «Искать
»
Шаг №4: Далее я бы закрыл доступ к этой оснастке от посторонних лиц обычной Basic
аутентификацией:
ekzorchik@srv-asterisk:~$ sudo nano /etc/apache2/sites-available/000-default.conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html <Directory "/var/www/html"> Options -Indexes -FollowSymLinks </Directory> <Directory "/var/www/html/acdrviewer"> AuthType Basic AuthName "Asterisk Web CDR" AuthUserFile /var/www/html/.htpasswd AuthGroupFile /dev/null Require valid-user </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> ekzorchik@srv-asterisk:~$ sudo htpasswd -c /var/www/html/.htpasswd ekzorchik New password: ввожу пароль 712mbddr@ Re-type new password: подтверждаю пароль 712mbddr@ Adding password for user ekzorchik ekzorchik@srv-asterisk:~$ ekzorchik@srv-asterisk:~$ cat /var/www/html/.htpasswd ekzorchik:$apr1$.s7YeBQ0$g7g2Hkqz.iMr3h8grcrLE1 ekzorchik@srv-asterisk:~$ sudo chown -R www-data:www-data /var/www/html/ ekzorchik@srv-asterisk:~$ sudo apache2ctl configtest Syntax OK ekzorchik@srv-asterisk:~$ sudo systemctl restart apache2
Проверяем, доступ к корню — закрыт:
Forbidden
You don't have permission to acces this resource
Доступ к Web
—оснастке просмотра логов звонков:
После если нужно сохраняем логин и пароль в браузере чтобы каждый раз не вводить заново:
Итого. Я получил в свое распоряжение Web
-оснастку на доступ к детализации звонков + ограничил к ней доступ внутренними средствами Web
-сервиса Apache2
. Хотя если я один обслуживаю телефонию некоторые могут сказать — зачем? Но я придерживаюсь правило что ничего не должно быть без авторизации. Заметка работоспособна. На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.