Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
configure_freepbx_for_cloud_version [2019/02/13 18:58] Евгений Романенко |
configure_freepbx_for_cloud_version [2023/02/16 13:44] Евгений Романенко |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
==== Вводная ==== | ==== Вводная ==== | ||
- | * Данная инструкция написана используя FreePBX версии 13.0.191.11 с Asterisk 13.14.0 на борту. \\ При возникновении каких-либо сложностей/вопросов с более ранними/поздними версиями системы, просьба написать нам на <support@vistep.ru>. | + | * Данная инструкция написана, используя FreePBX версии 13.0.191.11 с Asterisk 13.14.0 на борту. \\ При возникновении каких-либо сложностей/вопросов с более ранними/поздними версиями системы, просьба написать нам на <support@vistep.ru>. |
* Для выполнения описанных ниже действий понадобится: \\ - умение подключиться к серверу по ssh \\ - умение редактировать файлы в текстовом редакторе (nano/vim/emacs/etc) \\ - ясная голова и хорошее настроение ;-) | * Для выполнения описанных ниже действий понадобится: \\ - умение подключиться к серверу по ssh \\ - умение редактировать файлы в текстовом редакторе (nano/vim/emacs/etc) \\ - ясная голова и хорошее настроение ;-) | ||
Строка 34: | Строка 34: | ||
UPDATE cdr SET realsrc=src; | UPDATE cdr SET realsrc=src; | ||
UPDATE cdr SET realdst=dst;</code> | UPDATE cdr SET realdst=dst;</code> | ||
- | - Пришло время последнего, но отнюдь не маловажного шага в разрезе конфигурирования таблицы cdr - научим АТС записывать данные во вновь созданные поля. \\ \\ Отредактируйте /etc/asterisk/extensions_override_freepbx.conf, внеся в него <code>[sub-record-check] | + | - Пришло время последнего, но отнюдь не маловажного шага в разрезе конфигурирования таблицы 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) | ||
Строка 91: | Строка 101: | ||
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)) | ||
Строка 101: | Строка 114: | ||
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}) | ||
Строка 184: | Строка 198: | ||
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}} *на запрос в скрине не ориентируйтесь, там я специально добавил условие, чтобы сократить выхлоп | ||
- С препарированием нашей АТС по части БД закончили! \\ Переходим к настройке синхронизации БД и файлов записей разговоров в облако ViStep.RU. Для этого воспользуйтесь инструкцией - https://wiki.vistep.ru/doku.php?id=cloud_daemon_sync | - С препарированием нашей АТС по части БД закончили! \\ Переходим к настройке синхронизации БД и файлов записей разговоров в облако ViStep.RU. Для этого воспользуйтесь инструкцией - https://wiki.vistep.ru/doku.php?id=cloud_daemon_sync | ||
- | - Для входа в систему статистики используйте данные авторизации (Email-адрес/Пароль для авторизации) из регистрационного письма. | + | - Для входа в систему статистики используйте данные авторизации (Email-адрес/Пароль) из регистрационного письма. |
На этом все настройки завершены. \\ Если вы все сделали правильно, то через какое-то время (зависит от размера БД) сможете воспользоваться всеми отчетами системы статистики ViStep.RU в своем личном кабинете. \\ Повторюсь, если у вас остались вопросы и/или есть предложения/замечания, пишите нам на <support@vistep.ru>. | На этом все настройки завершены. \\ Если вы все сделали правильно, то через какое-то время (зависит от размера БД) сможете воспользоваться всеми отчетами системы статистики ViStep.RU в своем личном кабинете. \\ Повторюсь, если у вас остались вопросы и/или есть предложения/замечания, пишите нам на <support@vistep.ru>. |