Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
install_local_version [2021/11/02 05:21] Евгений Романенко |
install_local_version [2022/10/14 11:06] (текущий) Евгений Романенко |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
* Сервер БД 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.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.fetg.uz/doku.php?id=установка_docker_на_freepbx_13_centos_6.6|нашей инструкцией]] |
==== Настройка ==== | ==== Настройка ==== | ||
Строка 70: | Строка 70: | ||
macro recording (calling,called) { | macro recording (calling,called) { | ||
if ("${RECORDING}" = "1"){ | if ("${RECORDING}" = "1"){ | ||
+ | Set(CUTTEDCHANNEL=${CUT(CHANNEL,,1)}); | ||
+ | Set(CUTTEDCHANNEL=${CUT(CUTTEDCHANNEL,/,2)}); | ||
Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called}); | Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called}); | ||
Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)}); | Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)}); | ||
Строка 79: | Строка 81: | ||
Set(CDR(realdst)=${called}); | Set(CDR(realdst)=${called}); | ||
Set(CDR(realsrc)=${calling}); | Set(CDR(realsrc)=${calling}); | ||
+ | ExecIf($["${calling:-10:10}" = "${called:-10:10}"]?Set(CDR(realsrc)=${CUTTEDCHANNEL})); | ||
MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt}); | MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt}); | ||
Строка 101: | Строка 104: | ||
WAV=/records | WAV=/records | ||
MP3=/records/mp3 | MP3=/records/mp3 | ||
- | VISTEPRURECORDING=1 | + | FETGRURECORDING=1 |
- | [macro-vistep.ru-record] | + | [macro-fetg.uz-record] |
- | exten => s,1,NoOp(== START macro-vistep.ru-record ==) | + | exten => s,1,NoOp(== START macro-fetg.uz-record ==) |
- | same => n,Set(CallerID=${ARG1}) | + | same => n,Set(CallerID=${ARG1}) |
- | same => n,Set(CalleeID=${ARG2}) | + | same => n,Set(CalleeID=${ARG2}) |
- | same => n,NoOp(CalleeID=${CalleeID}, CallerID=${CallerID}) | + | same => n,Set(CUTTEDCHANNEL=${CUT(CHANNEL,,1)}) |
- | same => n,NoOp(VISTEPRURECORDING = ${VISTEPRURECORDING}) | + | same => n,Set(CUTTEDCHANNEL=${CUT(CUTTEDCHANNEL,/,2)}) |
- | same => n,GotoIf($["${VISTEPRURECORDING}" = "0"]?end) | + | same => n,NoOp(CalleeID=${CalleeID}, CallerID=${CallerID}) |
- | same => n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${CallerID}-${CalleeID}) | + | same => n,NoOp(FETGRURECORDING = ${FETGRURECORDING}) |
- | same => n,Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)}) | + | same => n,GotoIf($["${FETGRURECORDING}" = "0"]?end) |
- | same => n,System(mkdir -p ${MP3}/${datedir}) | + | same => n,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${CallerID}-${CalleeID}) |
- | same => n,Set(monopt=nice -n 19 /usr/bin/lame -b 32 --silent "${WAV}/${fname}.wav" "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3") | + | same => n,Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)}) |
- | same => n,Set(CDR(filename)=${fname}.mp3) | + | same => n,System(mkdir -p ${MP3}/${datedir}) |
- | same => n,Set(CDR(realdst)=${CalleeID}) | + | same => n,Set(monopt=nice -n 19 /usr/bin/lame -b 32 --silent "${WAV}/${fname}.wav" "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3") |
- | same => n,Set(CDR(realsrc)=${CallerID}) | + | same => n,Set(CDR(filename)=${fname}.mp3) |
- | same => n,MixMonitor(${WAV}/${fname}.wav,b,${monopt}) | + | same => n,Set(CDR(realdst)=${CalleeID}) |
- | same => n(end),MacroExit() | + | same => n,Set(CDR(realsrc)=${CallerID}) |
+ | same => n,ExecIf($["${CallerID:-10:10}" = "${CalleeID:-10:10}"]?Set(CDR(realsrc)=${CUTTEDCHANNEL})) | ||
+ | same => n,MixMonitor(${WAV}/${fname}.wav,b,${monopt}) | ||
+ | same => n(end),MacroExit() | ||
;пример использования | ;пример использования | ||
[from-internal-custom] | [from-internal-custom] | ||
;include => from-internal | ;include => from-internal | ||
- | exten => _XX.,1, Macro(vistep.ru-record,${CALLERID(number)},${EXTEN}) | + | exten => _XX.,1, Macro(fetg.uz-record,${CALLERID(number)},${EXTEN}) |
[from-pstn-custom] | [from-pstn-custom] | ||
- | exten => _XX.,1, Macro(vistep.ru-record,${CALLERID(number)},${EXTEN})</code> | + | exten => _XX.,1, Macro(fetg.uz-record,${CALLERID(number)},${EXTEN})</code> |
- Или у вас внезапно lua <code lua> | - Или у вас внезапно lua <code lua> | ||
WAV = "/opt/records/wav" -- Временный каталог с WAV | WAV = "/opt/records/wav" -- Временный каталог с WAV | ||
Строка 164: | Строка 170: | ||
- Для входа в систему статистики используйте email/пароль, которые сообщат вам инженеры технической поддержки. | - Для входа в систему статистики используйте email/пароль, которые сообщат вам инженеры технической поддержки. | ||
\\ | \\ | ||
- | На этом настройка завершена, приятного пользования! \\ По любым вопросам/неполадкам/пр. пишите нам на <support@vistep.ru> или прямо из интерфейса, в меню Help Desk. | + | На этом настройка завершена, приятного пользования! \\ По любым вопросам/неполадкам/пр. пишите нам на <support@fetg.uz> или прямо из интерфейса, в меню Help Desk. |
**Некоторые замечания по части MySQL.** | **Некоторые замечания по части MySQL.** | ||
Строка 178: | Строка 184: | ||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. | Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. | ||
- | MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'vistepru'@'%' \ | + | MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'fetguz'@'%' \ |
IDENTIFIED BY 'MySuperPassword111' WITH GRANT OPTION; | IDENTIFIED BY 'MySuperPassword111' WITH GRANT OPTION; | ||
flush privileges; | flush privileges; | ||
quit</code>\\ | quit</code>\\ | ||
- Также проверьте, что MySQL слушает не только 127.0.0.1, но и IP-адрес, по которому к нему будет обращаться система статистики. \\ За это в настройках MySQL отвечает параметр **bind-address**, проще всего закомментировать эту строку в my.cnf и перезагрузить демон MySQL, тогда сервис будет слушать все IP-адреса сервера. | - Также проверьте, что MySQL слушает не только 127.0.0.1, но и IP-адрес, по которому к нему будет обращаться система статистики. \\ За это в настройках MySQL отвечает параметр **bind-address**, проще всего закомментировать эту строку в my.cnf и перезагрузить демон MySQL, тогда сервис будет слушать все IP-адреса сервера. |