1 | изначальная версия редактировать | |
Хочу писать в имя файла, ответившего на вызов (в примере всего один, т.к. это тестовый план). В CDR ответившего удается записать, а вот файл начинает писаться когда ещё не известно кто ответит. Выходит, что пишем не зная ещё конечное имя файла. После записи, файл нужно переименовать. Пробую сделать так. Срабатывает все, кроме System. В консоли видно, что команда отрабатывается и если скопировать её вывод в консоль системы, то файл переименовывается, т.е. команда в System передается верная, но, то ли файл ещё не создан в это время (пробовал добавлять sleep 5), то ли другая беда, хз.
[incoming-call-203013]
exten=>203013,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
same=>n,Set(dfname=${path2rec}/203013/${fname})
same=>n,Set(monopt=nice -n 19)
same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same=>n,MixMonitor(${dfname}.wav,,oggenc -Qq0 ${dfname}.wav && rm -f ${dfname}.wav)
same=>n,Dial(SIP/128,60,t)
same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
same=>n,Set(CDR(record)=${fname}_${DIALEDPEERNUMBER}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,System(mv ${dfname}.ogg ${dfname}_${DIALEDPEERNUMBER}.ogg)
2 | No.2 Revision редактировать |
Хочу писать в имя файла, ответившего на вызов (в примере всего один, т.к. это тестовый план). В CDR ответившего удается записать, а вот файл начинает писаться когда ещё не известно кто ответит. Выходит, что пишем не зная ещё конечное имя файла. После записи, файл нужно переименовать. Пробую сделать так. Срабатывает все, кроме System. В консоли видно, что команда отрабатывается и если скопировать её вывод в консоль системы, то файл переименовывается, т.е. команда в System передается верная, но, то ли файл ещё не создан в это время (пробовал добавлять sleep 5), то ли другая беда, хз.
[incoming-call-203013]
exten=>203013,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
same=>n,Set(dfname=${path2rec}/203013/${fname})
same=>n,Set(monopt=nice -n 19)
same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same=>n,MixMonitor(${dfname}.wav,,oggenc -Qq0 ${dfname}.wav && rm -f ${dfname}.wav)
same=>n,Dial(SIP/128,60,t)
same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
same=>n,Set(CDR(record)=${fname}_${DIALEDPEERNUMBER}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,System(mv ${dfname}.ogg ${dfname}_${DIALEDPEERNUMBER}.ogg)
Вот так удалось дописать ответившего в имя файла, здесь диалплан другого офиса, но они отличаются только номерами телефонов.
[incoming-call-rabotaem]
exten=>s,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/501&SIP/502,60,t)
same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
same=>n,Set(fname2=${fname}_${DIALEDPEERNUMBER})
same=>n,Set(dfname2=${path2rec}/${fname2})
same=>n,Set(CDR(record)=${fname2}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
3 | No.3 Revision редактировать |
Хочу писать в имя файла, ответившего на вызов (в примере всего один, т.к. это тестовый план). В CDR ответившего удается записать, а вот файл начинает писаться когда ещё не известно кто ответит. Выходит, что пишем не зная ещё конечное имя файла. После записи, файл нужно переименовать. Пробую сделать так. Срабатывает все, кроме System. В консоли видно, что команда отрабатывается и если скопировать её вывод в консоль системы, то файл переименовывается, т.е. команда в System передается верная, но, то ли файл ещё не создан в это время (пробовал добавлять sleep 5), то ли другая беда, хз.
[incoming-call-203013]
exten=>203013,1,Set(fname=${STRFTIME(${EPOCH},,%Y-%m-%d__%H-%M-%S)}__${CALLERID(number)}-${EXTEN})
same=>n,Set(dfname=${path2rec}/203013/${fname})
same=>n,Set(monopt=nice -n 19)
same=>n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same=>n,MixMonitor(${dfname}.wav,,oggenc -Qq0 ${dfname}.wav && rm -f ${dfname}.wav)
same=>n,Dial(SIP/128,60,t)
same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
same=>n,Set(CDR(record)=${fname}_${DIALEDPEERNUMBER}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,System(mv ${dfname}.ogg ${dfname}_${DIALEDPEERNUMBER}.ogg)
====== РЕШЕНИЕ ======
Вот так удалось дописать ответившего в имя файла, здесь диалплан другого офиса, но они отличаются только номерами телефонов.
[incoming-call-rabotaem]
exten=>s,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/501&SIP/502,60,t)
same=>n,Hangup
exten=>h,1,Set(CDR(dialedpeernumber)=${DIALEDPEERNUMBER})
same=>n,Set(fname2=${fname}_${DIALEDPEERNUMBER})
same=>n,Set(dfname2=${path2rec}/${fname2})
same=>n,Set(CDR(record)=${fname2}.ogg)
same=>n,Set(CDR(userfield)=in)
same=>n,System(oggenc ${dfname}.wav -Q -q 0 -o ${dfname2}.ogg && rm -f ${dfname}.wav)
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.