Страница 1 из 1

Не появляется переменная TOUCH_MIXMONITOR_OUTPUT

Добавлено: 16 окт 2019, 11:55
Story
Была сделана запись разговора по нажатию кода - и на Asterisk 11-версии все работало.

Попытался повторить это на Asterisk 13.13.1 - перестала появляться переменная TOUCH_MIXMONITOR_OUTPUT.
Теперь не знаю, как определить записанный файл и послать его на почту (((

В features.conf определен код включения записи *3

Вот кусок кода, вроде все как обычно:

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

exten => 173,1,Set(DYNAMIC_FEATURES=automixmon)
exten => 173,n,Set(TOUCH_MIXMONITOR_FORMAT=WAV)
exten => 173,n,Set(TOUCH_MIXMONITOR=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 173,n,Dial(SIP/${EXTEN},90,txX)

exten => h,1,Noop()
exten => h,n,Dumpchan()
exten => h,n,GotoIf($[ $[ "foo${TOUCH_MIXMONITOR_OUTPUT}" == "foo" ] ] ]?stopall:)
exten => h,n,Noop(Здесь должно отправиться письмо)
exten => h,n,System(rm /var/spool/asterisk/monitor/${TOUCH_MIXMONITOR_OUTPUT}.WAV)
exten => h,n(stopall),Hangup()
Звоню на 173, нажимаю код - запись включается, файл создается. Но не появляется TOUCH_MIXMONITOR_OUTPUT - смотрю в Dumpchan()

Что можно сделать, чтобы она появилась?
Или есть другие способы определить имя записанного файла (именно для automixmon) ?

Re: Не появляется переменная TOUCH_MIXMONITOR_OUTPUT

Добавлено: 16 окт 2019, 14:33
Story
Да, и не устанавливается
SET(DYNAMIC_FEATURES=automixmon) - ругается Unknown DYNAMIC_FEATURES item 'automixmon' on channel SIP...

Что-то изменилось в порядке настройки One Touch Record?

Re: Не появляется переменная TOUCH_MIXMONITOR_OUTPUT

Добавлено: 17 окт 2019, 11:49
ded
Надо наверное просто добавить динамическую феатуру automixmon ?
CLI> features show

Re: Не появляется переменная TOUCH_MIXMONITOR_OUTPUT

Добавлено: 18 окт 2019, 09:08
Story
В [applicationmap] можно создавать феатуры используя существующие applications, типа MixMonitor и т.д.
А смысл включать MixMonitor, когда он и так включается по *3 ?
На всякий случай попробовал создать феатуру automixmon в features.conf, но это ничего не дало, кроме пропадания ошибки "Unknown DYNAMIC_FEATURES item 'automixmon'". Этого же результата можно добиться просто исключением из кода строки
exten => 173,1,Set(DYNAMIC_FEATURES=automixmon)
Пробовал и __DYNAMIC_FEATURES=automixmon - результат тот-же.
Пробовал на разных машинах и с разными версиями Asterisk 13.XX (13 версия - потому что в результате нужно на таком это сделать).

Запись по коду включается, я так понял, что основное здесь - наличие xX в команде Dial.
Каким образом получить имя записываемого файла - не могу понять.
Куда копать?

Re: Не появляется переменная TOUCH_MIXMONITOR_OUTPUT

Добавлено: 18 окт 2019, 16:31
Story
В результате перестал биться, так и не понял куда затерялась между каналами переменная TOUCH_MIXMONITOR_OUTPUT...
Сделал функцию записи по коду *5 своими костылями. Тут уж все настраивается и имя записываемого файла в том числе.
Привожу, что у меня получилось, может можно было проще, да ума не хватило:

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

файл features.conf

[applicationmap]
MixMonitor => *5,peer/both,Gosub(unpause-recording,s,1)
StopMixMonitor   => #5,peer/both,Gosub(pause-recording,s,1)


файл extensions.conf

[context1]
exten => 173,1,Set(DYNAMIC_FEATURES=MixMonitor#StopMixMonitor)
exten => 173,n,Set(__recordname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 173,n,Set(numrec_b=${EXTEN})
exten => 173,n,Set(numrec_a=${CALLERID(number)})
exten => 173,n,Set(SHARED(RECORDDATE,${CHANNEL})=no)
exten => 173,n,Dial(SIP/${EXTEN},90,t)
exten => 173,n,Hangup()

exten => h,1,Noop(record and mail)
exten => h,n,GotoIf($[ $[ "${SHARED(RECORDDATE)}" == "no" ] ] ]?stopall:) ; Проверка, что была запись разговора
exten => h,n,GotoIf($[ $[ "${numrec_a}" == "173" ] | $[ "${numrec_b}" == "173" ] ]?recordmail:nomail) ; Проверка, что номеру 173 разрешено записывать
exten => h,n(recordmail),System(\(echo 'Subject: ${recordname} call record'\; echo '\r\n\r\n The phone call has been recorded.'\;uuencode /var/spool/asterisk/monitor/${recordname}.WAV ${recordname}.wav\) | sendmail -f voice_record@yourdomain.ru -t user@yourdomain.ru)
exten => h,n(nomail),System(rm /var/spool/asterisk/monitor/${recordname}.WAV) ; Стирание файла после отсылки на почту
exten => h,n(stopall),Hangup()

[unpause-recording]
exten => s,1,Noop(Resuming Recording)
exten => s,n,MixMonitor(${recordname}.WAV,ai(out_name_record)p)
exten => s,n,Set(SHARED(RECORDDATE,${DYNAMIC_WHO_ACTIVATED})=${out_name_record})
exten => s,n,return

[pause-recording]
exten => s,1,Noop(Stopping Recording)
exten => s,n,StopMixMonitor()
exten => s,n,return