Страница 1 из 1

Asterisk (Elastix) Playback произвольного файла

Добавлено: 30 июн 2016, 06:57
svd
Всем доброго дня...

начал писать диал-план в котором мне от кучи разных условий необходимо воспроизводить разные файлы.
п.с. у меня установлен эластикс.

попробовал воспроизвести mp3 - не получилось, почитал, понял что задача не совсем правильная.
переключился на wav которые решил конвертить sox-ом в alaw, ulaw, gsm при помощи баш скрипта
#!/bin/bash
echo -** THIS SCRIPT REQUIRES LAME AND SOX TO WORK!**-
#Convert mp3 files to wav
for i in *.wav; do
val=${i%.wav}
sox -V $i -r 8000 -c 1 -t ul $val.ulaw
sox -V $i -r 8000 -c 1 -t al $val.alaw
sox -V $i -r 8000 -c 1 -t gsm $val.gsm
chown asterisk:asterisk $val.*
#rm -f "$i"
echo "** $i MP3 to WAV is complete"
done
всё конвертится, но не воспроизводится
[2016-06-30 11:51:17] NOTICE[14068][C-000000d3]: channel.c:4301 __ast_read: Dropping incompatible voice frame on SIP/033-0000010d of format alaw since our native format has changed to (ulaw)

и кажется когда добавил файл через меню SystemRecordings они начали воспроизводиться

но мне нужно будет динамически подтягивать, конвертить и воспроизводить файлы (буду использовать AGI)
такое ощущение что они добавились в базу, а команда Playback ищет запись в этой базе, и только потом уже, если нашла обращается к файлам

как это обойти?

Re: Asterisk (Elastix) Playback произвольного файла

Добавлено: 30 июн 2016, 07:27
svd
Пардон, всё заработало, видимо ошибка была где то ещё

вот работающий скрипт

Код: Выделить всё

#!/bin/bash
for i in *.wav; do
val=${i%.wav}
sox -V $i -r 8000 -c 1 -t ul $val.ulaw
sox -V $i -r 8000 -c 1 -t al $val.alaw
sox -V $i -r 8000 -c 1 -t gsm $val.gsm
chown asterisk:asterisk $val.*
mv $i $val.wavbackup
done

Re: Asterisk (Elastix) Playback произвольного файла

Добавлено: 30 июн 2016, 08:12
virus_net
Convert WAV audio files for use in Asterisk
+

Код: Выделить всё

*CLI> file convert
Usage: file convert <file_in> <file_out>
Convert from file_in to file_out. If an absolute path
is not given, the default Asterisk sounds directory
will be used.

Example:
file convert tt-weasels.gsm tt-weasels.ulaw

Re: Asterisk (Elastix) Playback произвольного файла

Добавлено: 20 июл 2016, 16:09
svd
баш-скрипт вызвать из AGI можно, я проверил и это у меня работает, а можно ли из AGI вызвать произвольную команду в CLI.
есть такой способ
$AGI->exec(playback,$file_name);
как его применить к команде file convert таким методом, я точно не знаю.
наверное можно, но не факт что удобно.

баш скрипт я запускаю примерно так из AGI

Код: Выделить всё

   //Запустим конвертер
   $run = "/var/lib/asterisk/sounds/cash-33speech/cash_convert.sh $full_file_name localhost";
   exec($run);
virus_net, если пробовал запускать из AGI, подскажи синтаксис команды формата $AGI->exec(...
чтоб тема была раскрыта полностью

Re: Asterisk (Elastix) Playback произвольного файла

Добавлено: 21 июл 2016, 08:51
virus_net
Что касается командной строки, то учимся читать хотя бы минимальный help:

Код: Выделить всё

# asterisk -h

Код: Выделить всё

...skiped...
   -r              Connect to Asterisk on this machine
   -x <cmd>        Execute command <cmd> (implies -r)
...skip...
svd писал(а):подскажи синтаксис команды формата $AGI->exec(...
http://www.voip-info.org/wiki/view/exec
exec
Usage: EXEC <application> <options>

EXAMPLE:
EXEC Dial Zap/g1/123456

Re: Asterisk (Elastix) Playback произвольного файла

Добавлено: 21 июл 2016, 12:42
svd
спасибо, бум учиться