[AsteriskBrasil] RES: RES2: *Ramal atendido causa "Event: Hangup" . Porque?*
Rodrigo Pimenta Carvalho
pimenta em inatel.br
Quinta Agosto 2 17:31:35 BRT 2007
Prezado Diógenes.
Eu finalmente consegui estabelecer a conexão entre os ramais, seguindo suas
explicações. Obrigado.
Acontece que quando eu uso o X-Lite (ramal 200) para chamar o ramal 329, o
outro X-Lite (ramal 329) toca corretamente. Mas, o X-Lite (200) não dá som
de chamando, como num telefone comum. O 200 não dá qualquer som. Aí, quando
o 329 é atendido, o 200 começa a tocar e eu atendo o 200. Nesse ponto, a
conexão é estabelecida. Há alguma forma de fazer somente o 329 ter que ser
atendido? Ou seja, quando o 329 for atendido a conexão já é estabelecida com
o 200, como em telefones comuns? Estou perguntando isso , porque da forma
como está o meu projeto, está esquisito, já que o próprio x-lite que origina
a chamada também tem que atender.
O meu plano de discagem contem:
[internal]
exten=>123,1,Agi(agi://localhost/rodrigo.agi)
exten=>321,1,Dial(SIP/200)
O meu AGI contem o seguinte código:
OriginateAction originateAction;
ManagerResponse originateResponse;
originateAction = new OriginateAction();
originateAction.setChannel("SIP/329");
originateAction.setContext("internal");
originateAction.setActionId("teste de action ID");
originateAction.setAsync(true);
originateAction.setExten("321");
originateAction.setPriority(new Integer(1));
originateAction.setTimeout(new Long(30000));
// send the originate action and wait for a maximum of 30 seconds
for Asterisk
// to send a reply
originateResponse = managerConnection.sendAction(originateAction,
30000*10);
Portanto, no x-lite (ramal 200) eu apenas disco 123.
Abaixo segue a saída no CLI do asterisk.
-- Executing AGI("SIP/200-0885cb60", "agi://localhost/rodrigo.agi") in
new stack
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'manager' logged on from 127.0.0.1
== Manager 'manager' logged off from 127.0.0.1
agi://localhost/rodrigo.agi: FIM DOS TESTES DO MÃDULO * CALL *
-- AGI Script agi://localhost/rodrigo.agi completed, returning 0
-- Executing Dial("SIP/329-08863370", "SIP/200") in new stack
-- Called 200
-- SIP/200-088688b0 is ringing
-- SIP/200-088688b0 answered SIP/329-08863370
-- Attempting native bridge of SIP/329-08863370 and SIP/200-088688b0
== Spawn extension (internal, 321, 1) exited non-zero on
'SIP/329-08863370'
Considerando a fórmula "_XXX,1,Dial(SIP/${EXTEN})" que você me passou
anteriormente , estaria correto substituir as linhas do meu dialplan por ?:
exten=>123,1,Agi(agi://localhost/rodrigo.agi)
exten=>_123,2,Dial(SIP/${EXTEN})
Ou basta fazer ? :
exten=>123,1,Agi(agi://localhost/rodrigo.agi)
exten=>_XXX,1,Dial(SIP/${EXTEN})
Qualquer dica adicional será super útil.
Muito obrigado por sua colaboração.
Abraços.
Rodrigo Pimenta Carvalho.
==============================
_____
De: Dio Makibara [mailto:dioedu em yahoo.com.br]
Enviada em: quinta-feira, 2 de agosto de 2007 17:01
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] RES: Ramal atendido causa "Event: Hangup".
Porqu e?
Rodrigo,
Rodrigo Pimenta Carvalho <pimenta em inatel.br> escreveu:
Prezado Diógenes,
Realmente eu também acho que ainda não entendi bem como funciona a ação
Originate. Na verdade, eu entendi como chamar o ramal do destinatário e isso
funciona. Mas, eu ainda não entendi como conectar o ramal chamado 329 ao
chamador 200. Mas, agora com a sua dica, estou desconfiado então que deve
haver algo mais programado no dialplan, exatamente como você está sugerindo.
Acabei de dar uma olhada no meu dialplan (plano de discagem) e vi mesmo que
falta lá o que você sugere. Ou seja, no meu dialplan não existe uma extensão
200.
Ok. Eu vou tentar o que você está sugerindo e retorno se tive sucesso.
Agora, estou com uma nova dúvida de lógica:
De acordo com o que você está dizendo, isso significa que o ramal chamador
sempre deverá estar configurado no meu dialplan?? Se sim , entendo isso como
um problema, porque estou fazendo uma aplicação onde o usuário final irá
definir seus ramais, mas sem editar o dialplan. Seria tudo via AGI o máximo
possível. Esta idéia minha é incoerente?
Se no contexto default (e se seus ramais tiverem 3 digitos), voce tiver uma
extensão do tipo _XXX,1,Dial(SIP/${EXTEN}) voce vai conseguir ligar para
todos os ramais que quiser.
Não ?
Diógenes Eduardo Makibara
Alertas do Yahoo! Mail em seu celular. Saiba
<http://br.mobile.yahoo.com/mailalertas/> mais.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20070802/87d8b7d1/attachment-0001.html
Mais detalhes sobre a lista de discussão AsteriskBrasil