Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
install_local_version [2019/05/15 12:19] Евгений Романенко |
install_local_version [2019/08/09 19:14] Евгений Романенко |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
* Docker версии 1.7.1 и выше (версии ниже нужно проверять дополнительно). \\ Установка docker в различных ОС подробно расписана в официальной документации: \\ [[https://store.docker.com/editions/community/docker-ce-server-debian?tab=description|Debian]], [[https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description|Ubuntu]], [[https://store.docker.com/editions/community/docker-ce-server-centos?tab=description|CentOS]]. \\ Для установки в FreePBX 13 можете воспользоваться [[https://wiki.vistep.ru/doku.php?id=установка_docker_на_freepbx_13_centos_6.6|нашей инструкцией]] | * Docker версии 1.7.1 и выше (версии ниже нужно проверять дополнительно). \\ Установка docker в различных ОС подробно расписана в официальной документации: \\ [[https://store.docker.com/editions/community/docker-ce-server-debian?tab=description|Debian]], [[https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description|Ubuntu]], [[https://store.docker.com/editions/community/docker-ce-server-centos?tab=description|CentOS]]. \\ Для установки в FreePBX 13 можете воспользоваться [[https://wiki.vistep.ru/doku.php?id=установка_docker_на_freepbx_13_centos_6.6|нашей инструкцией]] | ||
- | **Настройки Asterisk.** | + | ==== Настройка ==== |
+ | Часть шагов по конфигурированию вам поможет сделать установщик, ссылку для скачивания которого пришлют наши инженеры после оплаты\\ | ||
+ | Скачайте, запустите и следуйте его инструкциям.\\ | ||
+ | В данном [[https://youtu.be/eYNTPAa06U4|видео]] представлен пример работы установщика на АТС FreePBX \\ | ||
+ | По завершению его работы вам будет предоставлена ссылка для входа в web-интерфейс, но настройка не завершена - нужно выполнить еще несколько манипуляций:\\ | ||
- Инсталлируем необходимые пакеты (для примера в Debian/Ubuntu) <code bash>aptitude install unixodbc-dev libmyodbc</code> | - Инсталлируем необходимые пакеты (для примера в Debian/Ubuntu) <code bash>aptitude install unixodbc-dev libmyodbc</code> | ||
- Asterisk должен быть собран со следующими опциями {{::9d37fd2a5c08439f8a69fe81a398891c.png?400|}}{{::34d0b50241d3443d827afa222aede0f4.png?400|}} | - Asterisk должен быть собран со следующими опциями {{::9d37fd2a5c08439f8a69fe81a398891c.png?400|}}{{::34d0b50241d3443d827afa222aede0f4.png?400|}} | ||
Строка 37: | Строка 41: | ||
CPTimeout = | CPTimeout = | ||
CPReuse =</code> в конец **/etc/asterisk/cdr_mysql.conf** добавить <code bash>alias filename => filename</code> | CPReuse =</code> в конец **/etc/asterisk/cdr_mysql.conf** добавить <code bash>alias filename => filename</code> | ||
- | - Создадим БД и таблицу cdr в MySQL <code sql>mysql> create database asterisk; | ||
- | 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 '', | ||
- | `filename` 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=0 DEFAULT CHARSET=utf8; | ||
- | mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by '232d2edxse3e';</code> | ||
- | - Таблицу cel <code sql>mysql>CREATE TABLE `cel` ( | ||
- | `id` int(11) NOT NULL AUTO_INCREMENT, | ||
- | `eventtype` varchar(30) NOT NULL, | ||
- | `eventtime` datetime NOT NULL, | ||
- | `cid_name` varchar(80) NOT NULL, | ||
- | `cid_num` varchar(80) NOT NULL, | ||
- | `cid_ani` varchar(80) NOT NULL, | ||
- | `cid_rdnis` varchar(80) NOT NULL, | ||
- | `cid_dnid` varchar(80) NOT NULL, | ||
- | `exten` varchar(80) NOT NULL, | ||
- | `context` varchar(80) NOT NULL, | ||
- | `channame` varchar(80) NOT NULL, | ||
- | `src` varchar(80) DEFAULT NULL, | ||
- | `dst` varchar(80) DEFAULT NULL, | ||
- | `channel` varchar(80) DEFAULT NULL, | ||
- | `dstchannel` varchar(80) DEFAULT NULL, | ||
- | `appname` varchar(80) NOT NULL, | ||
- | `appdata` varchar(80) NOT NULL, | ||
- | `amaflags` int(11) NOT NULL, | ||
- | `accountcode` varchar(20) NOT NULL, | ||
- | `uniqueid` varchar(32) NOT NULL, | ||
- | `linkedid` varchar(32) NOT NULL, | ||
- | `peer` varchar(80) NOT NULL, | ||
- | `userdeftype` varchar(255) NOT NULL, | ||
- | `eventextra` varchar(255) DEFAULT NULL, | ||
- | `userfield` varchar(255) DEFAULT NULL, | ||
- | PRIMARY KEY (`id`), | ||
- | KEY `uniqueid_index` (`uniqueid`), | ||
- | KEY `linkedid_index` (`linkedid`), | ||
- | KEY `eventtime` (`eventtime`), | ||
- | KEY `exten` (`exten`), | ||
- | KEY `eventtype` (`eventtype`) | ||
- | ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;</code> | ||
- | - Таблицу queue_log <code sql>mysql> CREATE TABLE IF NOT EXISTS `queue_log` ( | ||
- | id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
- | `time` timestamp NULL DEFAULT '0000-00-00 00:00:00', | ||
- | callid varchar(32) NOT NULL default '', | ||
- | queuename varchar(32) NOT NULL default '', | ||
- | agent varchar(32) NOT NULL default '', | ||
- | event varchar(32) NOT NULL default '', | ||
- | data1 varchar(100) NOT NULL default '', | ||
- | data2 varchar(100) NOT NULL default '', | ||
- | data3 varchar(100) NOT NULL default '', | ||
- | data4 varchar(100) NOT NULL default '', | ||
- | data5 varchar(100) NOT NULL default '', | ||
- | PRIMARY KEY (`id`) | ||
- | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
- | mysql> \q</code> | ||
- | - Теперь нам необходимо добавить два новых поля в таблицу cdr - realdst и realsrc, в которые будут записываться номера звонящего и назначения (например, не номер оператора очереди, а наш городской номер, на который пришел вызов извне для realdst или не номер транка, а номер внутреннего абонента для realsrc). \\ Для этого выполним sql-запросы <code sql>ALTER TABLE `cdr` ADD `realsrc` VARCHAR(80) NOT NULL DEFAULT ''; | ||
- | ALTER TABLE `cdr` ADD `realdst` VARCHAR(80) NOT NULL DEFAULT ''; | ||
- | UPDATE cdr SET realsrc=src; | ||
- | UPDATE cdr SET realdst=dst;</code> | ||
- Внесем в **/etc/asterisk/extconfig.conf** внесем <code bash>queue_log => odbc,asterisk</code> | - Внесем в **/etc/asterisk/extconfig.conf** внесем <code bash>queue_log => odbc,asterisk</code> | ||
- **cel.conf** выглядит так <code bash>[general] | - **cel.conf** выглядит так <code bash>[general] | ||
Строка 201: | Строка 126: | ||
[from-pstn-custom] | [from-pstn-custom] | ||
exten => _XX.,1, Macro(vistep.ru-record,${CALLERID(number)},${EXTEN})</code> | exten => _XX.,1, Macro(vistep.ru-record,${CALLERID(number)},${EXTEN})</code> | ||
+ | - Для входа в систему статистики используйте данные авторизации (Email-адрес/Пароль для авторизации) из регистрационного письма. | ||
+ | \\ | ||
+ | На этом настройка завершена, приятного пользования! \\ По любым вопросам/неполадкам/пр. пишите нам на <support@vistep.ru> или прямо из интерфейса, в меню Help Desk. | ||
+ | **Некоторые замечания по части MySQL.** | ||
+ | - В ходе своей работы установщик подключается к БД Asterisk, для чего ему необходимы имя пользователя и пароль. Создать их можно, например, вот так: <code sql> | ||
+ | mysql -uroot -p | ||
+ | Enter password: | ||
+ | Welcome to the MariaDB monitor. Commands end with ; or \g. | ||
+ | Your MariaDB connection id is 3359 | ||
+ | Server version: 5.5.60-MariaDB MariaDB Server | ||
- | **Установка, настройка и запуск.** | + | Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. |
- | - Для начала нужно провести первичную подготовку MySQL-базы данных Asterisk. \\ Зайдите на сервер MySQL и создайте нового пользователя с полными правами, например вот так: \\ <code sql>GRANT ALL PRIVILEGES ON *.* TO 'vistepru'@'%' \ | + | |
+ | Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. | ||
+ | |||
+ | MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'vistepru'@'%' \ | ||
IDENTIFIED BY 'MySuperPassword111' WITH GRANT OPTION; | IDENTIFIED BY 'MySuperPassword111' WITH GRANT OPTION; | ||
flush privileges; | flush privileges; | ||
- | quit</code>Этот шаг необходим для работы мастера настройки БД, речь о котором пойдет несколько позже. \\ Также проверьте, что MySQL слушает не только 127.0.0.1, но и IP-адрес, по которому к нему будет обращаться система статистики. \\ За это в настройках MySQL отвечает параметр **bind-address**, проще всего закомментировать эту строку в my.cnf, тогда mysql-сервер будет слушать на всех IP-адресах сервера. | + | quit</code>\\ |
- | - Теперь зайдите на сервер, где предполагаете запускать docker-контейнер, по ssh. Скачайте архив контейнера по предоставленной ссылке, например (это пример, корректная ссылка высылается на почту после оплаты): <code bash>wget https://vistep.ru/stat.vistep.ru_local_1.0.3.tgz</code> Если в вашей системе нет wget, то воспользуйтесь вот этой командой: <code bash>curl -o stat.vistep.ru_local_1.0.3.tgz https://vistep.ru/stat.vistep.ru_local_1.0.3.tgz</code> | + | - Также проверьте, что MySQL слушает не только 127.0.0.1, но и IP-адрес, по которому к нему будет обращаться система статистики. \\ За это в настройках MySQL отвечает параметр **bind-address**, проще всего закомментировать эту строку в my.cnf и перезагрузить демон MySQL, тогда сервис будет слушать все IP-адреса сервера. |
- | - Далее перейдите в папку с архивом контейнера (здесь и далее это /root/) и загрузите его в docker <code bash>docker load -i stat.vistep.ru_local_1.0.3.tgz</code> Проверьте все ли в порядке, команда <code bash>docker images</code> должна вернуть нечто подобное \\ {{:screen_shot_2017-04-21_at_12.58.01.png|}} | + | |
- | - Следующим пунктом будет настройка возможности прослушивать и скачивать файлы разговоров в интерфейсе статистики. Как и было описано ранее, вы можете запустить docker-контейнер с ПО как на сервере с АТС, так и на отдельном сервере. Для запуска docker там же, где и Asterisk, вам нужно выполнить такую команду:<code bash>docker run --name=stat.vistep.ru_local_1.0.3 -p 80:80 -v /ВАШ/ПУТЬ/К/ФАЙЛАМ:/var/www/html/public/user/УНИКАЛЬНЫЙ_КАТАЛОГ_ПОЛЬЗОВАТЕЛЯ/some/path/to/files/ --restart=always -d stat.vistep.ru_local_1.0.3 </code> В консоле должно отобразиться подобное:{{:screen_shot_2017-04-21_at_13.42.44.png|}} \\ где /ВАШ/ПУТЬ/К/ФАЙЛАМ - это путь к файлам записей разговоров на вашей АТС \\ Если же запуск осуществляется на отдельном сервере, то сначала примонтируйте папку с файлами с сервера АТС на сервер с docker по NFS. Вот пример такой конфигурации: файл **/etc/exports** на сервере с Asterisk:<code bash>/records/mp3/ 192.168.0.0/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1001,anongid=1001,no_subtree_check)</code>а на сервере с docker, в **/etc/fstab** <code bas>ASTERISK_IP_ADDRESS:/records/mp3 /root/records nfs rsize=8192,wsize=8192 0 0</code> *здесь /records/mp3 - это путь к файлам записей на АТС \\ Затем выполните запуск уже знакомой командой <code bash>docker run --name=stat.vistep.ru_local_1.0.3 -p 80:80 -v /root/config.php:/var/www/html/app/config.php -v /root/records:/var/www/html/public/user/УНИКАЛЬНЫЙ_КАТАЛОГ_ПОЛЬЗОВАТЕЛЯ/some/path/to/files/ -d stat.vistep.ru_local_1.0.3</code> | + | |
- | - Далее откройте web-браузер и перейдите по ссылке <code>http://DOCKER_DAEMON_IP_ADRESS/install.html</code> Вас встретит мастер настройки {{:screen_shot_2017-04-21_at_13.54.58.png|}} | + | |
- | - Заполните все поля (на шаге номер 1 мы создали нужного пользователя) и нажмите кнопку Тест {{:screen_shot_2017-04-21_at_13.57.29.png|}} | + | |
- | - При успешном прохождении теста на подключение к БД вы увидите {{::screen_shot_2017-04-21_at_14.00.33.png|}} \\ Если все так, жмите Настроить БД | + | |
- | - Здесь мастер сообщит, что все прошло успешно и вы можете перейти по ссылке <code>http://DOCKER_DAEMON_IP_ADRESS</code> т.е. к авторизации в системе {{:screen_shot_2017-04-21_at_14.11.13.png|}} | + | |
- | - Для входа в систему статистики используйте данные авторизации (Email-адрес/Пароль для авторизации) из регистрационного письма. | + | |
- | + | ||
- | На этом настройка завершена, приятного пользования! \\ По любым вопросам/неполадкам/пр. пишите нам на <support@vistep.ru> или прямо из интерфейса, в меню Help Desk. | + |