#!/bin/sh -v # 2gsn2wav - Cria um arquivo WAV a partir de dois aruqivos GSM (IN e OUT) # # 2007 06 26 Modificado por Moacir - Baseando-se em http://www.zlabinger.at/asterisk/2wav2mp3 # # uso: 2gsm2wav # Desenvolvido para Asterisk Monitor(gsm,${PathCompletoArquivoGravacao},m) # # extensions.conf: # # [globals] # MONITOR_EXEC/usr/local/bin/2gsm2wav # Caminho do aplicativo SOX (Usado para converter o arquivo para WAV) SOX=/usr/bin/sox # Caminho do aplicativo SOXMIX (Usado para juntar os dois arquivos IN/OUT) SOXMIX=/usr/bin/soxmix # Variaveis da Linha de Comando - Parametros ArquivoGSM1="$1" ArquivoGSM2="$2" ArquivoWAVSaida=`echo $3|sed s/.wav//` #Log das operacoes echo $1 $2 $3 >>/var/log/asterisk/Log_Conversao_2gsm2wav.log #Verifica se os arquivos passados como parametros existem test ! -r $ArquivoGSM1 && exit test ! -r $ArquivoGSM2 && exit #Ajusta o Balanço para -1/1, converte o arquivo de mono para stereo # Arquivo 1 /bin/nice -n 10 $SOX $ArquivoGSM1 -c 2 -t wav $ArquivoGSM1-tmp.wav pan -1 # Arquivo 2 /bin/nice -n 10 $SOX $ArquivoGSM2 -c 2 -t wav $ArquivoGSM2-tmp.wav pan 1 #Este bloco de codigo faz um "substring" mno caminho do arquivo, para retirar a extensão ".gsm" #Como não tenho muito conhecimento em scripts, foi a forma que eu conseguir fazer. Tamanho=${#ArquivoWAVSaida} Tamanho=$(($Tamanho-5)) ArquivoWAV=$(echo ${ArquivoWAVSaida:1} |cut -c1-${Tamanho}) #Executa o SOXMIX para juntar os dois arquivos (IN e OUT) em apenas um arquivo WAV. /bin/nice -n 10 $SOXMIX -v 1 -t wav $ArquivoGSM1-tmp.wav -v 1 -t wav $ArquivoGSM2-tmp.wav -v 1 -t wav $ArquivoWAV.wav #Remove os arquivos temporarios test -w $ArquivoGSM1-tmp.wav && rm $ArquivoGSM1-tmp.wav test -w $ArquivoGSM2-tmp.wav && rm $ArquivoGSM2-tmp.wav #Remove os arquivos .gsm (IN e OUT) test -w $ArquivoGSM2 && rm $ArquivoGSM2 test -w $ArquivoGSM1 && rm $ArquivoGSM1