[AsteriskBrasil] Trunk IAX

Fernando Lino da Silva fernando em erimatoeste.com.br
Sexta Janeiro 25 09:54:12 BRST 2013


Cenário:

Possuo duas lojas interligadas por trunkiax e as ligações internamente
funcionam perfeitamente mas preciso fazer um call-back agendado caso o ramal
da outra loja esteja ocupado. 

Da maneira que está implementado hoje, é possível monitorar que o call-back
chega até a outra loja mostra que está chamando(‘ringing’) através do putty
em seguida mostra Atendido (‘answered’) mas não retorna.

Meu DialPlan(extensions.conf) ficou algo assim:

 

Versão do Asterisk  1.4.36

 

 

[interno]

exten => _10[5-9]X,3,Dial(IAX2/trunkiax/${EXTEN},200,tT)       

exten => _10[5-9]X,4,GotoIf($[${DIALSTATUS} = CHANUNAVAIL | ${DIALSTATUS} =
CONGESTION | ${DIALSTATUS} = BUSY]?6:5)

exten => _10[5-9]X,5,Hangup() 

exten => _10[5-9]X,6,Noop(** RAMAL OCUPADO - COM OPÇÃO DE CALLBACK **)  

exten => _10[5-9]X,7,Set(R-DESTINO=${EXTEN})


exten => _10[5-9]X,8,Playback(custom/Tecle 6)


exten => _10[5-9]X,9,Read(digito||1|6)  

exten => _10[5-9]X,10,GotoIf($[${digito} = 6]?callback-hidraulica,s,1) 

exten => _10[5-9]X,11,Hangup()

 

 

Esse é o contexto do CallBack Agendado

[callback-hidraulica]

exten => s,1,Set(RAMAL-DESTINO=${R-DESTINO})

exten => s,n,Set(RAMAL-ORIGEM=${CALLERID(num)})

exten => s,n,System(/var/lib/asterisk/scripts/callback-agendado-filial.sh
${RAMAL-ORIGEM} ${RAMAL-DESTINO})

exten => s,n,Playback(custom/Callback Agendado Ativo)

exten => s,n,Hangup()   

 

 

 

Shell Script (callback-agendado.sh)

#!/bin/bash

 

make_callfile()

{ 

ORIGEM=$1

DESTINO=$2

 

#Verifica se já existe esse callback na fila

if [ -e /var/spool/asterisk/outgoing/$(date +%d%m%Y)-$DESTINO-$ORIGEM.call
]; then

        exit;

fi

 

 

CALLFILE=$(cat <<-EOF1 

Channel: IAX2/trunkiax/$ORIGEM

MaxRetries: 30

RetryTime: 5

WaitTime: 10

Context: interno

Extension: $DESTINO

Priority: 1)

 

FILE_NAME=$TEMP_SPOOL/$(date +%d%m%Y)-$DESTINO-$ORIGEM.call

echo "$CALLFILE" >> $FILE_NAME

chown root /$FILE_NAME

chmod 777 /$FILE_NAME

mv /$FILE_NAME /var/spool/asterisk/outgoing

} 

 

#VARIAVEIS DIRETORIOS

ASTERISK_CFG="/etc/asterisk" 

TEMP_SPOOL="/var/spool/asterisk" 

 

make_callfile "$2" "$1"

 

exit

 

; CONTEXTO TRUNK IAX DE INTERLIGACAO 

 

register=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              

[trunkiax]   

username=trunkiax

qualify=yes

type=friend

secret=xxxxxxxxxxxxxxxxxxxxxxx

host=dynamic

trunk=yes

context=entrada-loja1

requirecalltoken=no

disallow=all

allow=g729

allow=gsm

allow=g723

 

Att.

Fernando Lino da Silva
 <mailto:fernando em erimatoeste.com.br> fernando em erimatoeste.com.br

 

http://www.erimat.com.br/img/logo.gif

 

(17)2139-3950

 

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130125/3bf59277/attachment-0001.htm 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : não disponível
Tipo  : image/gif
Tam   : 11160 bytes
Descr.: não disponível
Url   : http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130125/3bf59277/attachment-0001.gif 


Mais detalhes sobre a lista de discussão AsteriskBrasil