Страница 1 из 1
Выполнение скрипта
Добавлено: 29 июл 2016, 15:39
corpse
Добрый день уважаемые форумчане.
Помогите понять причину, почему не выполняется скрипт/отследить его выполнение конвертирования записи разговоров из wav в mp3.
Все сделал по инструкции с этого сайта
http://uzlec.ru/zapis-telefonnyx-razgov ... eepbx.html
Консоль Asterisk-а показывает, что по окончанию разговора скрипт выполнился, но результата нет.
Если скрипт запустить вручную, то конвертирует.
Понимаю что вероятнее всего проблемы с правами, но не понимаю, как отдебажить запуск скрипта астериском.
Скрипт:
Код: Выделить всё
#!/bin/sh
if [ -z "${MIXMONFILE}" ]; then
MIXMONFILE=${1}/${2}.${3}
fi
if [ -z "${1}" ]; then
TEMPDIR="/var/spool/asterisk/monitor/"
else
TEMPDIR=${1}
fi
TEMPFILE=`/bin/mktemp -u -p ${TEMPDIR} mixmon-mp3.XXXXXXXXXX`
TEMPFILEMP3=${TEMPFILE}".mp3"
TEMPFILEWAV=${TEMPFILE}".wav"
SUDO="/usr/bin/sudo"
LOWNICE="/bin/nice -n 19 /usr/bin/ionice -c3"
${SUDO} ${LOWNICE} /usr/bin/lame --quiet --preset phone -h -v ${MIXMONFILE} ${TEMPFILEMP3}
${SUDO} ${LOWNICE} /usr/bin/ffmpeg -v quiet -y -i ${TEMPFILEMP3} -f wav -acodec copy ${TEMPFILEWAV}
${SUDO} /bin/chmod --reference=${MIXMONFILE} ${TEMPFILEWAV}
${SUDO} /bin/chown --reference=${MIXMONFILE} ${TEMPFILEWAV}
${SUDO} /bin/touch --reference=${MIXMONFILE} ${TEMPFILEWAV}
${SUDO} /bin/mv -f ${TEMPFILEWAV} ${MIXMONFILE}
${SUDO} /bin/rm -f ${TEMPFILEMP3} ${TEMPFILE}
Re: Выполнение скрипта
Добавлено: 29 июл 2016, 15:55
trscod
Вручную от какого пользователя пробовали?
Re: Выполнение скрипта
Добавлено: 29 июл 2016, 22:17
corpse
Root
Re: Выполнение скрипта
Добавлено: 30 июл 2016, 02:05
ded
su asterisk
Re: Выполнение скрипта
Добавлено: 30 июл 2016, 08:19
virus_net
просто запускайте по cron`у
Re: Выполнение скрипта
Добавлено: 31 июл 2016, 19:56
corpse
ded писал(а):su asterisk
Может кто подскажет. Установлен Elastix. Asterisk запускается под пользователем asterisk, о чем, как я понимаю, свидетельствует файл asterisk:
Код: Выделить всё
# User and group to run asterisk
AST_USER=asterisk
AST_GROUP=asterisk
Но при установке Elastix, говорят что такого пользователя не было, соответственно пароль под него не задавали и он ни кому не известен.
Можно ли каким либо образом его скинуть/узнать что это за юзер такой? Или придется заводить нового и перенастраивать, чтоб Asterisk запускался под ним.
Спасибо!
Re: Выполнение скрипта
Добавлено: 01 авг 2016, 00:07
ded
corpse, пробелы в системном администрировании Linux.
# ps auxwf|grep asterisk
покажет процессы asterisk и из под какого пользователя они выполняются
# cat /etc/passwd
покажет всех пользователей в системе.
Дальше найдите в интернет руководство системного администратора Linux (чтобы там узнать можно ли каким либо образом его скинуть/узнать что это за юзер такой?)
Re: Выполнение скрипта
Добавлено: 01 авг 2016, 09:01
corpse
ded, спасибо! Вчера реально тупил, зациклился что это именно пользователь asterisk и искал в гугле смену пароля именно для него. Там все ссылалось на amportal.conf
Соответственно возвращаясь к теме топика. Под пользователем asterisk скрипт успешно выполняется:
Код: Выделить всё
./mixmon-mp3.sh /var/spool/asterisk/monitor 20160731-183038-1469964638.13 wav
LAME 3.99.5 32bits (http://lame.sf.net)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
polyphase lowpass filter disabled
Encoding /var/spool/asterisk/monitor/20160731-183038-1469964638.13.wav
to /var/spool/asterisk/monitor/mixmon-mp3.tncMz30301.mp3
Encoding as 8 kHz single-ch MPEG-2.5 Layer III (8x) average 16 kbps qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
1405/1405 (100%)| 0:01/ 0:01| 0:01/ 0:01| 82.244x| 0:00
8 [ 657] **********************************************************************************
16 [ 572] ************************************************************************
24 [ 103] *************
32 [ 73] **********
40 [ 0]
48 [ 0]
56 [ 0]
64 [ 0]
---------------------------------------------------------------------------------------------
kbps mono % long switch short %
13.7 100.0 29.9 40.0 30.1
Writing LAME Tag...done
ReplayGain: -2.6dB
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 23:56:18 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 169kB time=101.16 bitrate= 13.7kbits/s
video:0kB audio:169kB global headers:0kB muxing overhead 0.040476%
Файл конвертируется и перезаписывается.
А Elastix (Asterisk) выполняет вроде скрипт, но по факту ни чего не происходит
Код: Выделить всё
== MixMonitor close filestream
== Executing [/var/asterisk/scripts/mixmon-mp3.sh /var/spool/asterisk/monitor/ 20160801-125703-1470031014.0 wav]
== End MixMonitor Recording DAHDI/1-1
Куда можно покопать?
Re: Выполнение скрипта
Добавлено: 01 авг 2016, 11:44
ded
У Вас конвертация
Executing [/var/asterisk/scripts/mixmon-mp3.sh /var/spool/asterisk/monitor/ 20160801-125703-1470031014.0 wav
начинается прежде, чем MixMonitor заканчивает работу -
End MixMonitor Recording DAHDI/1-1
Конвертацию надо делать на хэнгапе.
exten => h,1,
И скрипты свои не абы куда,
/var/asterisk/scripts/
а в
astagidir => /usr/share/asterisk/agi-bin хотя бы.
Re: Выполнение скрипта
Добавлено: 01 авг 2016, 12:51
corpse
ded писал(а):И скрипты свои не абы куда,
/var/asterisk/scripts/
а в
astagidir => /usr/share/asterisk/agi-bin хотя бы
Спасибо ded. Проблема действительно оказалась в каталоге запуска скрипта.
Удалось это выяснить, через запуск астериска в консоли командой:
Просто читал несколько статей про mixmonitor и конвертацию. Ни где не было привязки к папке запуска скрипта.
Еще раз спасибо!