ArcFi,
Я пробовал давать полный путь до бинарей, то же самое. Права доступа должны быть, удаление же происходит из скрипта.
Vlad.V,
вот кусок диалплана
[incoming-call-rabotaem]
exten=>t,1,Goto(${EXTEN},1)
exten=>i,1,Goto(${EXTEN},1)
exten=>_X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
same=>n,Set(dfname=${path2rec}/${fname})
same=>n,Set(monopt=nice -n 19)
same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same=>n,MixMonitor(${dfname}.wav)
same=>n,Dial(SIP/165&SIP/166,9,t)
same=>n,Dial(SIP/165&SIP/166&SIP/401&SIP/402&SIP/101&SIP/102&SIP/103&SIP/104&SIP/105&SIP/106,6,t)
same=>n,Dial(SIP/165&SIP/166&SIP/401&SIP/402&SIP/101&SIP/102&SIP/103&SIP/104&SIP/105&SIP/106&SIP/$
same=>n,Hangup
exten=>h,1,NoOp()
same=>n,Set(fname2=${fname}_${DIALEDPEERNUMBER})
same=>n,Set(fname2=${REPLACE(fname2,"/","_")})
same=>n,Set(dfname2=${path2rec}/${fname2})
same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
; same=>n,System(/admin/ast_dial_rec ${dfname}.wav ${dfname2}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,Set(CDR(record)=${fname2}.ogg)
same=>n,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
Жму, внутри h, потому, что хочу писать в имя файла ${DIALEDPEERNUMBER}, а оно неопределено в момент запуска MixMonitor(). Вообще можно от этого отказаться, так как все равно сейчас записи из веб-интерфейса прослушиваются, мб если указать скрипт здесь, будет норм?
same=>n,MixMonitor(${dfname}.wav,,/admin/ast_dial_rec ${dfname}.wav ${dfname}.ogg)
но почему-то в этом случае он вообще не отрабатывает, остается лежать *.wav.
Пользователь решил продолжить мысль [time]05 Декабрь 2014, 15:13:45[/time]:
Vlad.V,
другой канал это local/sip-number, который используется при переводе звонка. Чтобы запись была одна от ответа оператором1, до разговора с оператором2 включительно я юзаю AUDIOHOOK_INHERIT.
Пользователь решил продолжить мысль 05 Декабря 2014, 08:15:18:
ArcFi,
#!/bin/bash
set -x
exec &>>/tmp/script.log
/bin/sleep 5
if /bin/ls "$1"
then
if /bin/fuser "$1"
then
exit 0
else
echo "convert"
#/usr/bin/oggenc "$1" -Q -q 0 -o "$2"
#/bin/rm "$1"
fi
fi
exit 0
но в логе вижу следующее:
+ /bin/sleep 5
+ /bin/ls /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
/var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
+ /bin/fuser /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
+ echo convert
convert
+ exit 0
+ /bin/sleep 5
+ /bin/ls /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
/var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
+ /bin/fuser /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
+ echo convert
convert
+ exit 0
т.е. сжатие запускается даже когда файл занят, для проверки запускаю из консоли и занимаю файл плеером.
+ /bin/sleep 5
+ /bin/ls /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
/var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
+ /bin/fuser /var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav
/var/spool/asterisk/monitor/2014-12-04__18-16-16__4957776675-990114.wav: 15654
+ exit 0
Видно, что тут норм.