Инструменты пользователя

Инструменты сайта


install_local_version_fpbx

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
install_local_version_fpbx [2022/10/14 11:10]
Евгений Романенко
install_local_version_fpbx [2023/05/16 10:08] (текущий)
Евгений Романенко
Строка 1: Строка 1:
 ===== Системные требования.===== ===== Системные требования.=====
  
-  * На сервере (здесь и далее примем,​ что “сервером” может быть как отдельный компьютер, ​\\ так и виртуальная машина,​ VPS/VDS и т .д. \\ Также отметим:​ docker-контейнер с локальной версией системы статистики может быть запущен как на том же сервере,​ что и АТС Asterisk, так и на отдельном сервере) должна быть установлена операционная система ​Linux семейства Debian не ниже 10.0 (Ubuntu ​18.04  и выше), CentOS не ниже 7 или другие дистрибутивы с актуальной базой репозиториев.+  * На сервере (здесь и далее примем,​ что “сервером” может быть как отдельный компьютер,​ так и виртуальная машина,​ VPS/VDS и т .д.) должна быть установлена операционная система Ubuntu ​22.04.
  
   * IP АТС Asterisk должна быть версии не ниже 1.8. \\ На Asterisk должна быть настроена запись информации о разговорах в таблицы cel, cdr и queue_log, подробную информацию о необходимых настройках Asterisk вы найдете ниже в разделе "​Настройки Asterisk"​.   * IP АТС Asterisk должна быть версии не ниже 1.8. \\ На Asterisk должна быть настроена запись информации о разговорах в таблицы cel, cdr и queue_log, подробную информацию о необходимых настройках Asterisk вы найдете ниже в разделе "​Настройки Asterisk"​.
  
   * Сервер БД MySQL не ниже версии 5.5.   * Сервер БД MySQL не ниже версии 5.5.
- 
-  * Docker версии 1.7.1 и выше (версии ниже нужно проверять дополнительно). \\ Установка docker в различных ОС подробно расписана в официальной документации:​ \\ [[https://​docs.docker.com/​engine/​install/​debian/​|Debian]],​ [[https://​docs.docker.com/​engine/​install/​ubuntu/​|Ubuntu]],​ [[https://​docs.docker.com/​engine/​install/​centos/​|CentOS]]. \\ Для установки в FreePBX 13 можете воспользоваться [[https://​wiki.fetg.uz/​doku.php?​id=установка_docker_на_freepbx_13_centos_6.6|нашей инструкцией]] 
  
 ==== Вводная ==== ==== Вводная ====
-  * Данная инструкция написана используя FreePBX версии 13.0.191.11 с Asterisk 13.14.0 на борту. \\ При возникновении каких-либо сложностей/​вопросов с более ранними/​поздними версиями системы,​ просьба написать нам на <​support@fetg.uz>​.+  * Данная инструкция написана используя FreePBX версии 13.0.191.11 с Asterisk 13.14.0 на борту ​(но подходит и для новых версий). \\ При возникновении каких-либо сложностей/​вопросов с более ранними/​поздними версиями системы,​ просьба написать нам на <​support@fetg.uz>​.
   * Для выполнения описанных ниже действий понадобится:​ \\ - умение подключиться к серверу по ssh \\ - умение редактировать файлы в текстовом редакторе (nano/​vim/​emacs/​etc) \\ - ясная голова и хорошее настроение ;-)   * Для выполнения описанных ниже действий понадобится:​ \\ - умение подключиться к серверу по ssh \\ - умение редактировать файлы в текстовом редакторе (nano/​vim/​emacs/​etc) \\ - ясная голова и хорошее настроение ;-)
  
 ==== Настройка ==== ==== Настройка ====
-Часть шагов по конфигурированию вам поможет сделать установщик,​ ссылку для скачивания которого пришлют наши инженеры после оплаты\\ +  ​- Далее настроим внесение realsrc и realdst-полей в cdr. \\ \\ Отредактируйте /​etc/​asterisk/​extensions_override_freepbx.conf,​ внеся в него <​code>​[ext-did-catchall] 
-Скачайте,​ запустите и следуйте его инструкциям.\\ +include => ext-did-catchall-custom 
-В данном [[https://​youtu.be/​eYNTPAa06U4|видео]] представлен пример работы установщика на АТС FreePBX \\ +exten => _.,​1,​Noop(Catch-All DID Match - Found ${EXTEN} - You probably want a DID for this.) 
-По завершению его работы вам будет предоставлена ссылка для входа в web-интерфейс,​ но настройка не завершена - нужно выполнить еще несколько манипуляций:​\\ +exten => _.,​n,​Set(__FROM_DID=${EXTEN}) 
-  - Перезагружаем модуль cdr_adaptive_mysql.so <code bash>​[root@localhost asterisk]# asterisk -r +exten => _.,​n,​Set(_VISTEPRUREALDST=${FROM_DID}) 
-localhost*CLI>​ module reload cdr_adaptive_odbc.so +exten => _.,​n,​Set(_VISTEPRUREALSRC=${CALLERID(num)}) 
-Module '​cdr_adaptive_odbc.so'​ reloaded successfully. +exten => _.,​n,​Set(CDR(realsrc)=${VISTEPRUREALSRC}) 
-localhost*CLI> ​ </​code>​ +exten => _.,​n,​Set(CDR(realdst)=${VISTEPRUREALDST}) 
-  ​- Далее настроим внесение realsrc и realdst-полей в cdr. \\ \\ Отредактируйте /​etc/​asterisk/​extensions_override_freepbx.conf,​ внеся в него <​code>​[sub-record-check]+exten => _.,​n,​Goto(ext-did,​s,​1) 
 + 
 +[sub-record-check]
 include => sub-record-check-custom include => sub-record-check-custom
 exten => s,​1,​GotoIf($[${LEN(${FROMEXTEN})}]?​initialized) exten => s,​1,​GotoIf($[${LEN(${FROMEXTEN})}]?​initialized)
Строка 62: Строка 62:
 exten => recordcheck,​n(startrec),​Noop(Starting recording: ${ARG2}, ${ARG3}) exten => recordcheck,​n(startrec),​Noop(Starting recording: ${ARG2}, ${ARG3})
 exten => recordcheck,​n,​Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) exten => recordcheck,​n,​Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
-exten => recordcheck,​n,​ExecIF($[${LEN(${FETGRUREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG3})) +exten => recordcheck,​n,​ExecIF($[${LEN(${VISTEPRUREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG3})) 
-exten => recordcheck,​n,​ExecIF($[${LEN(${FETGRUREALSRC})}]?​NoOP():​Set(CDR(realsrc)=${FROMEXTEN}))+exten => recordcheck,​n,​ExecIF($[${LEN(${VISTEPRUREALSRC})}]?​NoOP():​Set(CDR(realsrc)=${FROMEXTEN}))
 exten => recordcheck,​n,​Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}) exten => recordcheck,​n,​Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})
 exten => recordcheck,​n,​MixMonitor(${MIXMON_DIR}${YEAR}/​${MONTH}/​${DAY}/​${CALLFILENAME}.${MON_FMT},​abi(LOCAL_MIXMON_ID)${MIXMON_BEEP},​${MIXMON_POST}) exten => recordcheck,​n,​MixMonitor(${MIXMON_DIR}${YEAR}/​${MONTH}/​${DAY}/​${CALLFILENAME}.${MON_FMT},​abi(LOCAL_MIXMON_ID)${MIXMON_BEEP},​${MIXMON_POST})
Строка 92: Строка 92:
 exten => in,​1,​Noop(Inbound Recording Check to ${ARG2}) exten => in,​1,​Noop(Inbound Recording Check to ${ARG2})
 exten => in,​n,​Set(FROMEXTEN=unknown) exten => in,​n,​Set(FROMEXTEN=unknown)
 +exten => in,​n,​ExecIf($[${LEN(${FROM_DID})}]?​Set(_VISTEPRUREALDST=${FROM_DID}))
 exten => in,​n,​ExecIf($[${LEN(${CALLERID(num)})}]?​Set(FROMEXTEN=${CALLERID(num)})) exten => in,​n,​ExecIf($[${LEN(${CALLERID(num)})}]?​Set(FROMEXTEN=${CALLERID(num)}))
-exten => in,​n,​Set(_VISTEPRUREALDST=${ARG2}) +exten => in,n,ExecIf($[${LEN(${VISTEPRUREALDST})}]?​NoOp("​=== VISTEPRUREALDST has already been set ==="):Set(_VISTEPRUREALDST=${ARG2})
-exten => in,​n,​Set(_VISTEPRUREALSRC=${FROMEXTEN})+exten => in,n,ExecIf($[${LEN(${VISTEPRUREALSRC})}]?​NoOp("​=== VISTEPRUREALSRC has already been set ==="):Set(_VISTEPRUREALSRC=${FROMEXTEN}))
 exten => in,​n,​Set(CDR(realsrc)=${VISTEPRUREALSRC}) exten => in,​n,​Set(CDR(realsrc)=${VISTEPRUREALSRC})
 exten => in,​n,​Set(CDR(realdst)=${VISTEPRUREALDST}) exten => in,​n,​Set(CDR(realdst)=${VISTEPRUREALDST})
Строка 157: Строка 158:
 exten => parking,​n,​Return() exten => parking,​n,​Return()
  
-;--== end of [sub-record-check] ==--;</​code>​ \\ и выполните команду <​code>​dialplan reload</​code>​ в консоли Asterisk \\ **Код проверен на FreePBX 13.0.191.11 и 14.0.2.10 .** \\ Если мажорная (13 в данном примере) версия FreePBX  ​у вас отличается, то контекст [sub-record-check] ​может быть немного другимНапишите нам на <support@fetg.uzи мы поможем с написанием диалплана данного контекста.+;--== end of [sub-record-check] ​==--; ==--;</​code>​ \\ и выполните команду <​code>​dialplan reload</​code>​ в консоли Asterisk \\ 
 +  - Перезагружаем модуль cdr_adaptive_mysql.so <code bash>​[root@localhost asterisk]# asterisk -r 
 +localhost*CLI>​ module reload cdr_adaptive_odbc.so 
 +Module '​cdr_adaptive_odbc.so'​ reloaded successfully. 
 +localhost*CLI> ​ </code>
   - Теперь научим FreePBX писать табличку queue_log. \\ Отправляемся в web-интерфейс и создаем новый файл под именем **extconfig.conf**,​ кликнув Add New File. \\ Внести в него нужно лишь одну строчку <code bash>​[settings]   - Теперь научим FreePBX писать табличку queue_log. \\ Отправляемся в web-интерфейс и создаем новый файл под именем **extconfig.conf**,​ кликнув Add New File. \\ Внести в него нужно лишь одну строчку <code bash>​[settings]
 queue_log => odbc,​asteriskcdrdb</​code>​ Скрин: {{https://​img.fetg.uz/​i/​5347bc8b8a5a1f66dd9c87a7c980.png}} *не забываем про Save и Apply Configs \\ После выполнения данных действий и совершения звонков в очереди,​ запрос из консоли mysql <code sql>​select * from queue_log;</​code>​ должен вернуть вам нечто подобное {{https://​img.fetg.uz/​i/​7d2a89142a30ddd7ea0c36e2443b.png}} *на запрос в скрине не ориентируйтесь,​ там мы специально добавили условие,​ чтобы сократить выхлоп queue_log => odbc,​asteriskcdrdb</​code>​ Скрин: {{https://​img.fetg.uz/​i/​5347bc8b8a5a1f66dd9c87a7c980.png}} *не забываем про Save и Apply Configs \\ После выполнения данных действий и совершения звонков в очереди,​ запрос из консоли mysql <code sql>​select * from queue_log;</​code>​ должен вернуть вам нечто подобное {{https://​img.fetg.uz/​i/​7d2a89142a30ddd7ea0c36e2443b.png}} *на запрос в скрине не ориентируйтесь,​ там мы специально добавили условие,​ чтобы сократить выхлоп
-  - Для входа в систему статистики используйте данные авторизации (Email-адрес/​Пароль для авторизации) из регистрационного письма. 
 \\ \\
 На этом настройка завершена,​ приятного пользования! \\ По любым вопросам/​неполадкам/​пр. пишите нам на <​support@fetg.uz>​ или прямо из интерфейса,​ в меню Help Desk. На этом настройка завершена,​ приятного пользования! \\ По любым вопросам/​неполадкам/​пр. пишите нам на <​support@fetg.uz>​ или прямо из интерфейса,​ в меню 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. 
- 
-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; 
-flush privileges; 
-quit</​code>​\\  ​ 
-  - Также проверьте,​ что MySQL слушает не только 127.0.0.1, но и IP-адрес,​ по которому к нему будет обращаться система статистики. \\ За это в настройках MySQL отвечает параметр **bind-address**,​ проще всего закомментировать эту строку в my.cnf и перезагрузить демон MySQL, тогда сервис будет слушать все IP-адреса сервера. 
install_local_version_fpbx.1665727804.txt.gz · Последние изменения: 2022/10/14 11:10 — Евгений Романенко