VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

macro-record-enable

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

Ответить
blackvalex
Сообщения: 73
Зарегистрирован: 20 авг 2011, 16:59
Откуда: Новосибирск

macro-record-enable

Сообщение blackvalex »

Дано FreePBX
Для записи разговоров используется macro-record-enable
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

[macro-record-enable]
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMixMonitor()
exten => s,n(check),ExecIf($["${ARG1}"=""]?MacroExit())
exten => s,n,GotoIf($["${ARG2}"="Group"]?Group:OUT)
exten => s,n(Group),Set(LOOPCNT=${FIELDQTY(ARG1,-)})
exten => s,n,Set(ITER=1)
exten => s,n(begin),GotoIf($["${CUT(DB(AMPUSER/${CUT(ARG1,-,${ITER})}/recording),=,3)}" != "Always"]?continue)
exten => s,n,Set(TEXTEN=${CUT(ARG1,-,${ITER})})
exten => s,n,Noop(Recording enable for ${TEXTEN})
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(continue),Set(ITER=$[${ITER}+1])
exten => s,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)
exten => s,n(OUT),GotoIf($["${ARG2}"="IN"]?IN)
exten => s,n,ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),\\\|,1):4}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=OUT${ARG1}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(IN),ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),\\\|,2):3}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => s,n,MacroExit()
Мне нужно игнорировать наличие Always в настройках экстеншн.

Поскольку extensions_additional.conf редактировать не рекомендуется, в extensions_custom.conf создаю [macro-record-enable-custom]
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

Код: Выделить всё

[macro-record-enable-custom]
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check) 
exten => s,n,ResetCDR(w) exten => s,n,StopMixMonitor() 
exten => s,n(check),ExecIf($["${ARG1}"=""]?MacroExit()) 
exten => s,n,GotoIf($["${ARG2}"="Group"]?Group:OUT) 
exten => s,n(Group),Set(LOOPCNT=${FIELDQTY(ARG1,-)}) 
exten => s,n,Set(ITER=1) 
exten => s,n(begin),GotoIf($["${CUT(DB(AMPUSER/${CUT(ARG1,-,${ITER})}/recording),=,3)}"!= "Always"]?continue) 
exten => s,n,Set(TEXTEN=${CUT(ARG1,-,${ITER})}) 
exten => s,n,Noop(Recording enable for ${TEXTEN}) 
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID}) 
exten => s,n,Goto(record) exten => s,n(continue),Set(ITER=$[${ITER}+1]) 
exten => s,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin) 
exten => s,n(OUT),GotoIf($["${ARG2}"="IN"]?IN) 
exten => s,n,Noop(Recording enable for ${ARG1}) 
exten => s,n,Set(CALLFILENAME=OUT${ARG1}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID}) 
exten => s,n,Goto(record) 
exten => s,n(IN),Noop(Recording enable for ${ARG1}) 
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID}) 
exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => s,n,MacroExit()
Но [macro-record-enable-custom] не выполняется. Подскажите, что не так?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: macro-record-enable

Сообщение ded »

Все макросы отрабатываются с экстеном s,1,.... чтобы вернуть все значения переменных в ту точку диал плана, из которой он вызывался. Поэтому стандартные инклюды для макросов типа macro-record-enable-custom не работают. Потому что мачится совпадение s,1,.. которое найдётся в теле основного диалплана макроса, и в инклюд macro-record-enable-custom он уже не полезет искать.

Надо использовать задуманные конструкции диалплана -overrride
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: macro-record-enable

Сообщение zzuz »

... что очень подробно описано в файле /etc/asterisk/extensions.conf ...
Линия24 - Системы Массового Телефонного Обслуживания
blackvalex
Сообщения: 73
Зарегистрирован: 20 авг 2011, 16:59
Откуда: Новосибирск

Re: macro-record-enable

Сообщение blackvalex »

ded писал(а): Надо использовать задуманные конструкции диалплана -overrride
Спасибо, заработало
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH