
Так как Интернет кишит примерами по конвертации разговора, я взял один из предложенных вариантов и решил записать его у себя в бложике.
Создадим макрос «app-mp3-record» в extensions.conf
;—== begin of [app-mp3-record] ==—;
[macro-app-mp3-record]
exten => s,1,Set(monopt=nice -n 19 /usr/local/bin/lame -b 32 «${ARG1}${ARG2}.wav» «${ARG1}${ARG2}.mp3» && rm -f «${ARG1}${ARG2}.wav» && chmod 777 «${ARG1}${ARG2}.mp3» && rm -f «${ARG1}${UNIQUEID}.wav»)
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,MixMonitor(${ARG1}${ARG2}.wav,i(MIXMONITORID),${monopt})
;—== end of [app-mp3-record] ==—;
Теперь в место входящего звонка по городскому номеру 2755-343 вставляем вызов нашего макроса:
[incoming]exten => 2755343,1,Set(CHANNEL(musicclass)=welcom)same => n,Macro(app-mp3-record,/var/spool/asterisk/monitor/,${STRFTIME(${EPOCH},,%Y%m%d)}/${UNIQUEID})same => n,Answer()……. …….. ……… ……. …….. ……… ……. …….. ………
Здесь мы передали макросу через запятую каталог с текущей датой, туда будут записываться наши mp3 файлы. Это все для входящих звонков, для исходящих можно сделать так:
[macro-provaider]
exten => s,1,Macro(app-mp3,/var/spool/asterisk/monitor/,${STRFTIME(${EPOCH},,%Y%m%d)}/${UNIQUEID})same => n,Dial(SIP/${ARG2}@${ARG1},,t)
И сам контекст с вызовом макроса:
[provaider]
exten => _[78]70XXXXXXXX,1,Macro(provaider,+77016392412,+7${EXTEN:1})
Если много wav файлов, и их надо превратить в mp3, задействуйте скрипт /var/spool/asterisk/monitor/convert.sh:
#!/bin/bash minsize=44 for i in `find /var/spool/asterisk/monitor/ -name "*.wav"`; do size=$(du -b "$i" | cut -f 1); if [ "$size" -gt "$minsize" ]; then /bin/nice -n 19 /usr/bin/lame -b 16 --silent $i ${i%.*}.mp3; if [ -s "${i%.*}.mp3" ]; then rm -f $i; echo converted ${i%.*}.mp3; fi else rm -f $i; echo deleted $i; fi done
Этот скрипт переведет все файлы wav в mp3 в каталоге /var/spool/asterisk/monitor/.
Чтобы RTAG мог воспроизводить mp3 файлы, измените его конфиг файл conf.php — включив нужную опцию:
//Расширение записанных файлов$record_file_type = ‘mp3’;