[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