[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