Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
install_local_version_fpbx [2019/06/21 12:04] Евгений Романенко |
install_local_version_fpbx [2023/02/16 13:46] Евгений Романенко |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Системные требования.===== | ===== Системные требования.===== | ||
- | * На сервере (здесь и далее примем, что “сервером” может быть как отдельный компьютер, \\ так и виртуальная машина, VPS/VDS и т .д. \\ Также отметим: docker-контейнер с локальной версией системы статистики может быть запущен как на том же сервере, что и АТС Asterisk, так и на отдельном сервере) должна быть установлена операционная система Linux семейства Debian не ниже 8.0 (Ubuntu 14.04 и выше), CentOS не ниже 7.0 или другие дистрибутивы с актуальной базой репозиториев. | + | * На сервере (здесь и далее примем, что “сервером” может быть как отдельный компьютер, \\ так и виртуальная машина, VPS/VDS и т .д. \\ Также отметим: docker-контейнер с локальной версией системы статистики может быть запущен как на том же сервере, что и АТС Asterisk, так и на отдельном сервере) должна быть установлена операционная система Linux семейства Debian не ниже 10.0 (Ubuntu 18.04 и выше), CentOS не ниже 7 или другие дистрибутивы с актуальной базой репозиториев. |
* IP АТС Asterisk должна быть версии не ниже 1.8. \\ На Asterisk должна быть настроена запись информации о разговорах в таблицы cel, cdr и queue_log, подробную информацию о необходимых настройках Asterisk вы найдете ниже в разделе "Настройки Asterisk". | * IP АТС Asterisk должна быть версии не ниже 1.8. \\ На Asterisk должна быть настроена запись информации о разговорах в таблицы cel, cdr и queue_log, подробную информацию о необходимых настройках Asterisk вы найдете ниже в разделе "Настройки Asterisk". | ||
Строка 7: | Строка 7: | ||
* Сервер БД MySQL не ниже версии 5.5. | * Сервер БД MySQL не ниже версии 5.5. | ||
- | * 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://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.vistep.ru/doku.php?id=установка_docker_на_freepbx_13_centos_6.6|нашей инструкцией]] |
==== Вводная ==== | ==== Вводная ==== | ||
Строка 14: | Строка 14: | ||
==== Настройка ==== | ==== Настройка ==== | ||
- | Часть шагов по конфигурированию вам поможет сделать установщик, доступный для скачивания по [[https://vistep.ru/statlocal/installer|данной ссылке]]\\ | + | Часть шагов по конфигурированию вам поможет сделать установщик, ссылку для скачивания которого пришлют наши инженеры после оплаты\\ |
Скачайте, запустите и следуйте его инструкциям.\\ | Скачайте, запустите и следуйте его инструкциям.\\ | ||
В данном [[https://youtu.be/eYNTPAa06U4|видео]] представлен пример работы установщика на АТС FreePBX \\ | В данном [[https://youtu.be/eYNTPAa06U4|видео]] представлен пример работы установщика на АТС FreePBX \\ | ||
Строка 22: | Строка 22: | ||
Module 'cdr_adaptive_odbc.so' reloaded successfully. | Module 'cdr_adaptive_odbc.so' reloaded successfully. | ||
localhost*CLI> </code> | localhost*CLI> </code> | ||
- | - Далее настроим внесение realsrc и realdst-полей в cdr. \\ \\ Отредактируйте /etc/asterisk/extensions_override_freepbx.conf, внеся в него <code>[sub-record-check] | + | - Далее настроим внесение realsrc и realdst-полей в cdr. \\ \\ Отредактируйте /etc/asterisk/extensions_override_freepbx.conf, внеся в него <code>[ext-did-catchall] |
+ | include => ext-did-catchall-custom | ||
+ | exten => _.,1,Noop(Catch-All DID Match - Found ${EXTEN} - You probably want a DID for this.) | ||
+ | exten => _.,n,Set(__FROM_DID=${EXTEN}) | ||
+ | exten => _.,n,Set(_VISTEPRUREALDST=${FROM_DID}) | ||
+ | exten => _.,n,Set(_VISTEPRUREALSRC=${CALLERID(num)}) | ||
+ | exten => _.,n,Set(CDR(realsrc)=${VISTEPRUREALSRC}) | ||
+ | exten => _.,n,Set(CDR(realdst)=${VISTEPRUREALDST}) | ||
+ | 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) | ||
Строка 79: | Строка 89: | ||
exten => out,n,Set(CDR(realsrc)=${FROMEXTEN}) | exten => out,n,Set(CDR(realsrc)=${FROMEXTEN}) | ||
exten => out,n,Set(CDR(realdst)=${ARG2}) | exten => out,n,Set(CDR(realdst)=${ARG2}) | ||
+ | exten => out,n,Set(CUTTEDCHANNEL=${CUT(CHANNEL,,1)}) | ||
+ | exten => out,n,Set(CUTTEDCHANNEL=${CUT(CUTTEDCHANNEL,/,2)}) | ||
+ | exten => out,n,ExecIf($["${FROMEXTEN}" = "${ARG2}"]?Set(CDR(realsrc)=${CUTTEDCHANNEL})) | ||
exten => out,n,Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)}) | exten => out,n,Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)}) | ||
exten => out,n,ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins)) | exten => out,n,ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins)) | ||
Строка 89: | Строка 102: | ||
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}) | ||
Строка 154: | Строка 168: | ||
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@vistep.ru> и мы поможем с написанием диалплана данного контекста. | + | ;--== end of [sub-record-check] ==--;</code> \\ и выполните команду <code>dialplan reload</code> в консоли Asterisk \\ **Код проверен на FreePBX 13.0.191.11, 14.0.2.10 и 15.0.23.25.** \\ Если мажорная (13 в данном примере) версия FreePBX у вас отличается, то контекст [sub-record-check] может быть немного другим. Напишите нам на <support@vistep.ru> и мы поможем с написанием диалплана данного контекста. |
- Теперь научим 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.vistep.ru/i/5347bc8b8a5a1f66dd9c87a7c980.png}} *не забываем про Save и Apply Configs \\ После выполнения данных действий и совершения звонков в очереди, запрос из консоли mysql <code sql>select * from queue_log;</code> должен вернуть вам нечто подобное {{https://img.vistep.ru/i/7d2a89142a30ddd7ea0c36e2443b.png}} *на запрос в скрине не ориентируйтесь, там мы специально добавили условие, чтобы сократить выхлоп | queue_log => odbc,asteriskcdrdb</code> Скрин: {{https://img.vistep.ru/i/5347bc8b8a5a1f66dd9c87a7c980.png}} *не забываем про Save и Apply Configs \\ После выполнения данных действий и совершения звонков в очереди, запрос из консоли mysql <code sql>select * from queue_log;</code> должен вернуть вам нечто подобное {{https://img.vistep.ru/i/7d2a89142a30ddd7ea0c36e2443b.png}} *на запрос в скрине не ориентируйтесь, там мы специально добавили условие, чтобы сократить выхлоп |