суббота, 1 мая 2010 г.

Asterisk - советы

Советы с блога  - http://my-debian.blogspot.com/
Проверяем запущен ли asterisk
#!/bin/sh
p=`ps aux | grep asterisk | grep SCREEN | wc -l`
if [ $p -ne 1 ]
then
killall asterisk
/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcd
else
echo 'asterisk is started' > /dev/null
fi 

Заметка по утелите screen
Иногда бывает нужно, чтобы запускаемая программа или процесс висели в "отдельной" консоли. Можно, конечно, запустить 2 и более ssh-клиентов, но это не решает некоторых проблем и является несколько неудобным(при определенных условиях).
Решением проблемы является утилита screen. В репозитариях она присутствует. Установить ее можно следающим образом:

$sudo apt-get install screenВ моем случае стоит задача запустить сервер ip-телефонии asterisk при загрузке Debian Linux не только в фоне, но и чтобы можно было подключиться к консоли asterisk. Для этого в файле /etc/rc.local я прописал автозапуск следующим образом:

/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcdТеперь у нас asterisk запуститься в отдельной консоли. Возникает вопрос: "как к ней(консоли) подключиться?". А очень просто. Необходимо выполнить команду:

screen -r asteriskЧтобы выйти из консоли необходимо просто нажать сочетание клавишь: зажимаете Ctrl и последовательно "A"->"D". Так мы уводим консоль "asterisk" снова в фоновый режим.

PS Для еще более быстрого переключения в консоль я в файле ".bashrc", который находиться в моем домашнем каталоге прописал алиас:

alias asterscr='screen -r asterisk'Теперь чтобы подключиться к asterisk в косоли можно просто ввести:

#asterscr


Конвертация wav в gsm
Часто при работе с asterisk возникает необходимость конвертировать файлы форматов wav и gsm. Сделать это без потери качества можно так:
gsm to wav:

$ sox infile.gsm -r 44100 -a outfile.wavwav to gsm:

$ sox foo-in.wav -r 8000 -c 1 -s -w foo-out.wav resample -ql

Запись разговора в mp3
Так как по работе часто приходится звонить на телефоны разнообразных техподдержек, то часто слышишь, что ведется запись разговора. Захотелось и мне такую штуку сделать, чтобы потом можно было доказать, что ты не слон и говорил именно то, что говорил, а не то что подумали на той стороне телефонной трубки.


Путем сложных поисков в гугле нашел несколько способов записи разговоров, но всё они записывали в wav и размер был соответствующим, а это меня не устраивало, как говорится в одном анекдоте: появился анлимный инет, осталось найти анлимный винт. Была у меня сначала идея регулярно переобжимать в mp3. Но потом нашёл параметры чтобы сразу после разговора обжималось с wav в mp3.


    exten = > 3,n, Set(CALLFILENAME=${STRFTIME(${EPOCH},,%y-%m-%d__%H-%M)}_${CALLERID(name)});
    exten = >; 3,n, Set(monopt=nice —n 19 /usr/bin/lame —b 16 —noshort —silent "/var/spool/asterisk/monitor/${CALLFILENAME}.wav» "/var/spool/asterisk/monitor/${CALLFILENAME}.mp3» && rm —f "/var/spool/asterisk/monitor/${CALLFILENAME}.wav»)
    exten = > 3,n, MixMonitor(${CALLFILENAME}.wav|b|${monopt});
    exten = > 3,n, Dial(SIP/7002&SIP/7003,20,tTm)
    exten = > 3,n, GotoIfTime(10:00—19:00|mon-fri|*|*?mobiln-admin,1)
    exten = > 3,n, StopMonitor;


По поводу параметров lame, эти были подобраны опытным путем, вроде как самый малый размер чтобы нормально послушать.
Да, кстати, разговор пишется только если на второй стороне взяли трубку, то есть файл не пустой. 

Комментариев нет:

Отправить комментарий