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

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


configure_freepbx_for_cloud_version

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
configure_freepbx_for_cloud_version [2022/10/05 10:57]
Евгений Романенко
configure_freepbx_for_cloud_version [2023/10/31 12:26] (текущий)
Denis Babak
Строка 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(_FETGUZREALDST=${FROM_DID}) 
 +exten => _.,​n,​Set(_FETGUZREALSRC=${CALLERID(num)}) 
 +exten => _.,​n,​Set(CDR(realsrc)=${FETGUZREALSRC}) 
 +exten => _.,​n,​Set(CDR(realdst)=${FETGUZREALDST}) 
 +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)
Строка 74: Строка 85:
 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(${VISTEPRUREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG3})) +exten => recordcheck,​n,​ExecIF($[${LEN(${FETGUZREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG3})) 
-exten => recordcheck,​n,​ExecIF($[${LEN(${VISTEPRUREALSRC})}]?​NoOP():​Set(CDR(realsrc)=${FROMEXTEN}))+exten => recordcheck,​n,​ExecIF($[${LEN(${FETGUZREALSRC})}]?​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,​Gosub(sub-check_recordfiles,​s,​1(${ARG2}))
 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})
 exten => recordcheck,​n,​Set(__MIXMON_ID=${LOCAL_MIXMON_ID}) exten => recordcheck,​n,​Set(__MIXMON_ID=${LOCAL_MIXMON_ID})
Строка 105: Строка 117:
 exten => in,​n,​Set(FROMEXTEN=unknown) exten => in,​n,​Set(FROMEXTEN=unknown)
 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,Set(_FETGUZREALDST=${ARG2}) 
-exten => in,n,Set(_VISTEPRUREALSRC=${FROMEXTEN}) +exten => in,n,Set(_FETGUZREALSRC=${FROMEXTEN}) 
-exten => in,​n,​Set(CDR(realsrc)=${VISTEPRUREALSRC}) +exten => in,​n,​Set(CDR(realsrc)=${FETGUZREALSRC}) 
-exten => in,​n,​Set(CDR(realdst)=${VISTEPRUREALDST})+exten => in,​n,​Set(CDR(realdst)=${FETGUZREALDST})
 exten => in,​n,​Gosub(recordcheck,​1(${ARG3},​in,​${ARG2})) exten => in,​n,​Gosub(recordcheck,​1(${ARG3},​in,​${ARG2}))
 exten => in,​n,​Return() exten => in,​n,​Return()
  
 exten => exten,​1,​Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2}) exten => exten,​1,​Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2})
-exten => exten,​n,​ExecIF($[${LEN(${VISTEPRUREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG2})) +exten => exten,​n,​ExecIF($[${LEN(${FETGUZREALDST})}]?​NoOP():​Set(CDR(realdst)=${ARG2})) 
-exten => exten,​n,​ExecIF($[${LEN(${VISTEPRUREALSRC})}]?​NoOP():​Set(CDR(realsrc)=${FROMEXTEN}))+exten => exten,​n,​ExecIF($[${LEN(${FETGUZREALSRC})}]?​NoOP():​Set(CDR(realsrc)=${FROMEXTEN}))
 exten => exten,​n,​Set(CDR(cnum)=${FROMEXTEN}) exten => exten,​n,​Set(CDR(cnum)=${FROMEXTEN})
 exten => exten,​n,​Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?​external:​internal)}) exten => exten,​n,​Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?​external:​internal)})
Строка 167: Строка 179:
 exten => parking,​n,​ExecIf($[!${LEN(${RECMODE})}]?​Set(RECMODE=dontcare)) exten => parking,​n,​ExecIf($[!${LEN(${RECMODE})}]?​Set(RECMODE=dontcare))
 exten => parking,​n,​Gosub(recordcheck,​1(${RECMODE},​parked,​${USER})) exten => parking,​n,​Gosub(recordcheck,​1(${RECMODE},​parked,​${USER}))
-exten => parking,​n,​Return() +exten => parking,​n,​Return()</​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 \\ **Код проверен на FreePBX 13.0.191.11 и 14.0.2.10** \\ Если мажорная (13 в данном примере) версия FreePBX ​ у вас отличается,​ то контекст [sub-record-check] может быть немного другим. Напишите нам на <​support@fetg.uz>​ и мы поможем с написанием диалплана данного контекста. ​+
   - С cdr разобрались,​ дело за queue_log. Эта таблица нужна нам для того, чтобы понимать какие события происходили в очередях Asterisk. Перво-наперво создадим ее <code sql>​CREATE TABLE `queue_log` (   - С cdr разобрались,​ дело за queue_log. Эта таблица нужна нам для того, чтобы понимать какие события происходили в очередях Asterisk. Перво-наперво создадим ее <code sql>​CREATE TABLE `queue_log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,​  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,​
configure_freepbx_for_cloud_version.txt · Последние изменения: 2023/10/31 12:26 — Denis Babak