В результате перестал биться, так и не понял куда затерялась между каналами переменная 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