==== Envio e Recebimento de Fax no Asterisk ==== Galera vou colocar um passo a passo para a configuracão de FAX no asterisk, integrando com servico de e-mail. Resumidamente são necessárias as seguintes etapas para Receber e enviar FAX: Foi utilizado o **Ubuntu Server 10.04 LTS - Linux version 2.6.32-32-generic-pae** para a compilacão e configuracao do Asterisk. - Instalacão das bibliotecas (libspandsp-dev e libspandsp2) no Sistema operacional; - Compilacão do Asterisk com suporte ao módulo app_fax; - Criacão do Usuário SIP com o codec adequado para a linha telefónica (G711 ulaw); - Criacão do DialPlan para o recebimento de FAX, e envio via e-mail; - Criacão do DialPlan para envio do FAX; - Criacão Interface de Acesso para envio de FAX via WEB ==== Início da Configuracão ==== * //**root@PABX-IP:~#** aptitude install libspandsp-dev e libspandsp2// * //Compile o asterisk com suporte ao módulo app_fax.so// Step **Crie o ramal SIP com as seguinte especificacoes:** **root@PABX-IP:~# vim /etc/asterisk/sip.conf** [1005] type = friend secret = sua_senha_dificil qualify = yes nat = yes host = dynamic context = seu_contexto_externo callerid= ; Fax dtmfmode=rfc2833 t38pt_udptl = yes t38pt_rtp=no t38pt_tcp=no disallow=all allow=ulaw *//Criacão do Dial Plan para recebimento de FAX// **root@PABX-IP:~# vim /etc/asterisk/extensions.conf** [ramal_1005] exten => s,1,Set(FAXFILE=/var/spool/asterisk/fax/${STRFTIME(${EPOCH},,%Y%m%d)}_${CALLERID(num)}) exten => s,n,ReceiveFAX(${FAXFILE}.tif) ;; 1.6 use ReceiveFAX exten => s,n,System(/usr/bin/tiff2pdf -p letter -f ${FAXFILE}.tif -o ${FAXFILE}.pdf) **#Conversão de Tiff para PDF** exten => s,n,System(/usr/bin/mailx -s 'FAX Asterisk' seuemail@suaempresa.com.br < /etc/asterisk/msg_fax) **# Envio de e-mail ao chegar um novo FAX no servidor** ==== Configuracao para o Envio de FAX ==== Para o envio de FAX ser de uma forma ágil e de fácil acesso construi a seguinte estrutura lógica para enviar o FAX a partir de uma interface WEB. A interface executa os seguintes passos: * Passos executados pela Interface - Faz umpload do arquivo validando a extensão - Converte o arquivo carregado para o servidor para o formato **TIF** - Exibe um campo na página WEB que valida o número de destino de **FAX** * Passos executados pelo Servidor - Armazena o arquivo convertido para o formato **.TIF** - Pega como parámetro **"$1"** e **"$2"** as variáveis (Arquivo e Número destinatário) - Executa um Script shell que irá gerar um arquivo .call no diretório: **/var/spool/asterisk/outgoing** exemplo: **31129876_20110714.call**. ==== Script de envio de fax pelo terminal ==== #!/bin/sh FAX_SPOOL="/var/spool/asterisk/outgoing" FAX_FILE="$2" CHANNEL="DGV/g1" FAX_NUMBER="$1" CALL_DATE=`/bin/date +%d%m%y` CAT="/bin/cat" fn_create_file(){ $CAT < $FAX_SPOOL/$FAX_NUMBER-$CALL_DATE.call Channel: $CHANNEL/$FAX_NUMBER MaxRetries:5 RetryTime:30 WaitTime:10 Archive:yes Context:send-fax Extension:ramal_1005 Priority:1 Set:TIF=$FAX_FILE Set:NUMBER=$FAX_NUMBER Callerid:XXXX-XXXX EOF } fn_create_file; exit 0 #FIM Para executar o script: **root@PABX-IP:~# /root/send_fax.sh 34510098 /var/spool/asterisk/files/file_fax.tif** * Para que o script funcione, é necessário criar o contexto no extensions.conf com os seguintes parámetros: [send-fax] exten => s,1,NoOp(Sending fax to ${NUMBER}) exten => s,n,WaitExten(1) exten => s,n,SendFAX(${TIF}) exten => s,n,Hangup() ==== FIM ==== PS: Galera não consegui postar os arquivos de configuracões aqui neste WIKI. Caso alguem necessite me mande e-mail que envio e explico sem problemas! Boa sorte =)