[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