[AsteriskBrasil] Ramais ficam presos [Phantom call]

Gustavo Zamboni gzamboni em zael.com.br
Sexta Março 13 10:19:27 BRT 2009


Bom dia Giancarlo,

Eu tive um problema similar,
Na verdade depois descobri que não era um problema e sim uma 
configuração mal feita.
Eu sempre tinha as minhas linhas presas e quando alguem tentava ligar ou 
fazer ligação sempre dava ocupado ou que as linhas estavam em uso.
No final descobri que as vezes os usuários faziam bridge entre ligações 
externas.

Exemplo: um usuário ligava para o numero externo X depois dava flash e 
ligava para um outro numero externo Y e fazia o bridge. (mesmo que ele 
nem conseguisse fazer a ligação parao Y, bastava ele apertar o '0' (o 
número para chamar ligações externas no meu dialplan) e colocar no 
gancho  ele já fazia o bridge.

Como solução eu fiz algumas configurações no meu dialplan para evitar 
isso, vou resumi-las abaixo:

// esta verificação fica no contexto interno e verifica quando o usuário 
aperta ou o 0 ou o 9 que são os numeros que caem no contexto externo no 
meu dialplan.
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Faz Checagem para não deixar fazer brigde entre canais externos


exten=>_[90].,1,GotoIf($[${CHANNEL(channeltype)}=Zap]?liberado) // Fiz 
esta excessao para liberar o meu fax que é um canal ZAP, caso seja zap 
libera, se não, vai para proxima linha
exten=>_[90].,n,Set(GROUP()=${CHANNEL(channeltype)}/${CALLERID(num)}) 
//seta o numero do grupo para o canal
exten=>_[90].,n,GotoIf($[${GROUP_COUNT()} > 1]?barra) //seleciona o 
numero de canais para o grupo especificado, se for maior que 1, barra
exten=>_[90].,n,GotoIf($[${SIPPEER(${CALLERID(num)}:curcalls)} = 
0]?liberado:barra) //verifica o numero de ligações sippeer do usuario, 
por isso antes eu liberei os canais zaps, pois esta função não funciona 
para ZAP.

exten=>_[90].,n(barra),Verbose(barrado gcount=${GROUP_COUNT()} 
ccalls=${SIPPEER(${CALLERID(num)}:curcalls)}) // barro e exibo no 
console porque foi barrado
exten=>_[90].,n,SoftHangup(${CHANNEL(channeltype)}/${CALLERID(num)},a) 
//desligo qualquer ligação que esteja "pendurada" deste ramal
exten=>_[90].,n,Hangup() //hangup

exten=>_[90].,n(liberado),Verbose(liberado gcount=${GROUP_COUNT()} 
ccalls=${SIPPEER(${CALLERID(num)}:curcalls)}) //caso esteja liberado eu 
gravo a minha ligação e vou para o contexto externo.

exten=>_[90].,n,Set(Calltime=${STRFTIME(${EPOCH},,%C%y%m%d-%H%M)});
exten=>_[90].,n,Set(CALLFILENAME=${Calltime}-${EXTEN}-${UNIQUEID});
exten=>_[90].,n,MixMonitor(${CALLFILENAME}.wav)
exten=>_[90].,n,Goto(externo,${EXTEN:0},1)


Faça alguns testes,
Espero ter ajudado,


Atenciosamente,

Gustavo Zamboni

Giancarlo Rubio escreveu:
> Srs boa tarde:
>
> Estou com um problema que está me dando dor de cabeça. Tenho 8 linhas
> vono conectada a um asterisk, todas as chamadas caem numa fila comum
> sendo que existem 8 atendentes que atendem essas chamadas em modo
> ring-all. Desses 8 atendentes 4 estão numa localidade remota e os
> outros 4 estão em outro lugar. Todos eles estão atrás de nat mais
> funcionamen perfeitamente (escutam e falam).
>
> Meu problema está que a conexão em qualquer ponta cai e a chamada fica
> presa no servidor infinitamente e esse ramal se torna indisponivel até
> eu reiniciar o asterisk e derrubar todas as chamadas presas.
>
> Já usei as opções no DIAL(sS) para derrubar uma chamada se detectar
> mais de 60 seg de silencio, estou usando em todos ramais SIP a opção
> silencedetecthangup=25 [1], já li o bug 207 da digium [2] mais nada
> parece resolver. Eu penso que seja algum parâmetro na fila que esteja
> deixando a ligação fantasma
>
> Alguem tem alguma dica/sugestão ou o que for para me ajudar??
>
> ** Minha fila (tudo que for maior que 20 min de chamada está preso no servidor)
>
> Channel              Context              Extension        Prio State
>  Application  Data                      CallerID        Duration
> Accountcode BridgedTo
> SIP/3003-0a1d65b8    from-internal                            1 Up
>  Bridged Call Local/3003 em from-internal- 3003            00:00:55
>       Local/3003 em from-inte
> Local/3003 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3003||sSr             41XXXXXXXX      00:00:56
>       SIP/3003-0a1d65b8
> Local/3003 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb3ada0 41XXXXXXXX      00:00:56
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40638115  41XXXXXXXX      00:01:06
>      Local/3003 em from-inte
> SIP/3005-0a479f60    from-internal                            1 Up
>  Bridged Call Local/3005 em from-internal- 3005            00:01:12
>       Local/3005 em from-inte
> Local/3005 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3005||sSr             41XXXXXXXX      00:01:13
>       SIP/3005-0a479f60
> Local/3005 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb37920 41XXXXXXXX      00:01:13
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40638115  41XXXXXXXX      00:01:29
>      Local/3005 em from-inte
> SIP/3008-add0f320    from-internal                            1 Up
>  Bridged Call Local/3008 em from-internal- 3008            00:20:26
>       Local/3008 em from-inte
> Local/3008 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3008||sSr             48XXXXXXXX      00:20:26
>       SIP/3008-add0f320
> Local/3008 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb0f030 48XXXXXXXX      00:20:26
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40529082  48XXXXXXXX      00:20:50
>      Local/3008 em from-inte
> SIP/3002-adc20510    from-internal                            1 Up
>  Bridged Call Local/3002 em from-internal- 3002            00:21:31
>       Local/3002 em from-inte
> Local/3002 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3002||sSr             44XXXXXXXX      00:21:32
>       SIP/3002-adc20510
> Local/3002 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb25560 44XXXXXXXX      00:21:32
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40529445  44XXXXXXXX      00:21:42
>      Local/3002 em from-inte
> SIP/3001-adc03c08    from-internal                            1 Up
>  Bridged Call Local/3001 em from-internal- 3001            00:21:48
>       Local/3001 em from-inte
> Local/3001 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3001||sSr             47XXXXXXXX      00:21:48
>       SIP/3001-adc03c08
> Local/3001 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb105c0 47XXXXXXXX      00:21:48
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40639114  47XXXXXXXX      00:21:58
>      Local/3001 em from-inte
> SIP/3007-0a4b9ca8    from-internal                            1 Up
>  Bridged Call Local/3007 em from-internal- 3007            00:22:14
>       Local/3007 em from-inte
> Local/3007 em from-inte macro-dial           s                   7 Up
>  Dial         SIP/3007||sSr             43XXXXXXXX      00:22:15
>       SIP/3007-0a4b9ca8
> Local/3007 em from-inte from-internal        s                   1 Up
>  Bridged Call SIP/vono.linha1-adb00468 43XXXXXXXX      00:22:15
>      SIP/vono.linha1-adb
> SIP/vono.linha1-adb verifica-prefixo     s                   3 Up
> Queue        10901|t||custom/40529131  43XXXXXXXX      00:22:25
>      Local/3007 em from-inte
>
>
> [1]http://bugs.digium.com/view.php?id=207
> [2]http://www.voip-info.org/wiki/view/Asterisk+sip+silencedetecthangup
>
>
>
>   




Mais detalhes sobre a lista de discussão AsteriskBrasil