[AsteriskBrasil] RES: Digivoice - Prendendo Portas (VB3030 e VB6060)

Marcelo/Porks marcelorossi em gmail.com
Sexta Maio 16 11:12:53 BRT 2008


Pessoal, hoje o problema aconteceu novamente e entrei em contato com o
pessoal da Digivoice.
O Email que segue é longo, mas temos algumas conclusões, então creio
que vale a pena ler.

O que reparamos foi o seguinte:

Houve uma Bridge entre o SIP/1105 e a DGV/2, no log full do asterisk
não havia registro de HangUp desta ligação.
Quando eu digitava
mg*CLI> core show channels
Channel              Location             State   Application(Data)
DGV/2                (None)               Up      Bridged Call(SIP/1105-085885a0
SIP/1105-085885a0    034531227 em salutar_in Up      Dial(DGV/g1/34531227||tT)
2 active channels
1 active calls

Dá para ver que os canais estão presos (pois a ligação já havia terminado)

Quando eu tentava dar um
mg*CLI> soft hangup SIP/1105-085885a0
mg*CLI> soft hangup DGV/2

Nada acontecia.

Ou seja, deu a entender que os canais estavam lá.. mas o asterisk
simplesmente não entendia que eles estavam lá. A porta DGV/2 estava
livre para minha operadora, pois quando alguém ligava para o meu
asterisk.. a ligação chegava pela Porta 2, entretanto o asterisk não
conseguia atender (acredito que por causa dos canais presos), e então
ficava aparecendo no CLI:
    -- Ringing on port 2 - callstate=9
    -- Ringing on port 2 - callstate=9
    -- Ringing on port 2 - callstate=9
    -- Ringing on port 2 - callstate=9

Abaixo segue o email que eu enviei para o Felipe da Digivoice:
-------------------------
Felipe, creio que tenho uma pequena 'luz' sobre o problema que
tratamos (com o Luciano também) esta manhã da porta estar presa.
O que conversei com o Luciano foi

Houve uma ligação do SIP/1105 saindo pela DGV/2 e não houve registro
de um HangUp nesta ligação.

Então eu andei conversando com o pessoal do #asterisk-br na
irc.freenode.net e acabei caindo no seguinte:

Ligação g: When the called party hangs up, exit to execute more
commands in the current context. (
http://www.voip-info.org/wiki-Asterisk+cmd+Dial )

O que concluímos é o seguinte:
Suponha o seguinte DialPlan:

exten => _., 1, Dial(DGV/g1/${EXTEN})
exten => _., 2, HangUp(0)

Se eu ligo para você, a gente conversa, e **EU** desligo a ligação,
então a segunda linha do meu dialplan (Hangup(0)) será executada
Se eu ligo para você, a gente conversa, e **VOCE** desliga a ligação,
então a segunda linha do meu dialplan **NAO** será executada

A menos que eu coloque a opção 'g' no meu comando 'Dial'.

Então para garantir que o HangUp sempre seja executado eu teria que
modificar meu DialPlan para o seguinte:
exten => _., 1, Dial(DGV/g1/${EXTEN},,g)
exten => _., 2, HangUp(0)

Se o problema realmente foi gerado porque não aconteceu um HangUp
creio que este parametro 'g' na app 'Dial' resolveria.

Fica ai a 'dica' para vocês pediram para seus clientes testarem

-- 
Marcelo Rossi
"This e-mail is provided "AS IS" with no warranties, and confers no rights."


More information about the AsteriskBrasil mailing list