[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