Objetivo
Possibilitar a realização de chamadas de voz para contas Google Talk de forma interativa utilizando um servidor
Asterisk conectado a um servidor
XMPP.
Requisitos
Servidor Asterisk integrado com um servidor XMPP (
Openfire,
ejabberd,
Prosody, etc…) e com o Google Talk. Saiba como realizar esta integração
aqui.
O procedimento
O contexto aqui proposto é bastante simples e atende somente um ramal (já que envia a mensagem para um usuário específico). Você pode aprimorá-lo utilizando
AEL ou
AGI possibilitando assim estender o recurso para todos usuários de seu domínio XMPP.
O contexto funciona da seguinte maneira: o usuário disca para o número *48255* (*GTALK*) e recebe uma mensagem em seu cliente XMPP solicitando o destino da chamada. Após informar o endereço Google Talk do destinatário o Asterisk realiza a “discagem” e o usuário de imediato já passa a escutar o tom de chamada, como em qualquer outra ligação realizada.
O contexto:
[togtalk]
exten => *48255*,1,Answer() ; atende a chamada
same => n,Set(CANAL=${CUT(CHANNEL,,1)}) ; Armazena o canal que efetuou a chamada
same => n,NoOp(Discando Gtalk de ${CANAL}) ; Mensagens no asterisk
same => n,NoOp(Mandando mensagem para marcelo@xmpp.dominio.com.br) ; Mensagens no Asterisk
same => n,JabberSend(xmpp,marcelo@xmpp.dominio.com.br,Discando Google Talk – Informe a conta de destino) ; Envia msg para o usuário solicitando o endereço GTalk do destinatário
same => n,Set(OPCAO=${JABBER_RECEIVE(xmpp,marcelo@xmpp.dominio.com.br,30)}) ; Aguarda 30 segundos pela resposta do usuário
same => n,JabberSend(xmpp,marcelo@xmpp.dominio.com.br,Discando para ${OPCAO}) ; Envia msg para o usuário informando para onde irá discar
same => n,Dial(gtalk/asterisk-gtalk/${OPCAO}) ; Realiza a chamada
same => n,HangUp
Finalizando
Como podemos observar trata-se de um recurso muito útil e de fácil implementação.
Caso você desenvolva um contexto mais elaborado não deixe de compartilhá-lo através dos comentários.
🙂
UPDATE 30/05/2012
Segue exemplo de configuração do jabber.conf:
[asterisk-gtalk]
type=client
serverhost=talk.google.com
username=myuser@gmail.com/Talk
secret=mysecret
port=5222
usetls=yes
usesasl=yes
statusmessage=”Asterisk Server”
timeout=100
Curtir isso:
Curtir Carregando...
Relacionado