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

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

Проблемы Asterisk без вэб-оболочек и их решения

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

Ответить
Story
Сообщения: 9
Зарегистрирован: 16 сен 2010, 16:10

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

Сообщение 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) ?
Story
Сообщения: 9
Зарегистрирован: 16 сен 2010, 16:10

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

Сообщение Story »

Да, и не устанавливается
SET(DYNAMIC_FEATURES=automixmon) - ругается Unknown DYNAMIC_FEATURES item 'automixmon' on channel SIP...

Что-то изменилось в порядке настройки One Touch Record?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Надо наверное просто добавить динамическую феатуру automixmon ?
CLI> features show
Story
Сообщения: 9
Зарегистрирован: 16 сен 2010, 16:10

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

Сообщение 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.
Каким образом получить имя записываемого файла - не могу понять.
Куда копать?
Story
Сообщения: 9
Зарегистрирован: 16 сен 2010, 16:10

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

Сообщение 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
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH