Asterisk Server - Não é possível fazer chamadas de saída consecutivas

3

Um dos problemas que estou tendo agora é que, se eu ligar em tempos consecutivos para o servidor de asterisco do mesmo telefone , ele poderá ser desconectado. O asterisco registra a seguinte mensagem:

[Aug 14 10:24:56] NOTICE[20537]: chan_sip.c:19477 handle_request_invite: Failed to authenticate device <sip:[email protected]:5070>;tag=781ab8fb-co19342-INS016

É como qualquer telefone do mundo só pode ligar uma vez para o servidor asterisco. Então eu preciso fazer um

> sip reload

do terminal do Asterisk para que eles liguem novamente.

Eu também posso fazer um comando shell assim para recarregar o sip

asterisk -rx 'sip reload'

Mas quando eu adiciono este comando ao crontab para ser executado a cada minuto, ele não funciona. O comando shell só funciona se eu o executar manualmente.

Alguém pode me dizer como posso permitir que os chamadores liguem para o meu servidor asterisco mais de uma vez? Aqui estão o meu sip.conf e extensions.conf (todos os outros arquivos intocados).

sip.conf

[general]
register => mysipuser:mysippass@localhost:5071
context=default

[mysipuser]
type=friend
secret=mysippass
username=mysipuser
host=111.111.111.111
port=5071
fromuser=mysipuser
canreinvite=no
insecure=very
qualify=2000
dtmfmode=inband
nat=no
context=default

extensions.conf

[default]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(vm-extension)
exten => s,n,WaitExten()

exten => 0011,1,Goto(outbound,s,1)

exten => 11,1,Dial(SIP/mysipuser/5555555555) ;calls 555-555-5555
exten => 11,n,Hangup ; this line never gets executed

exten => 77,1,Dial(SIP/mysipuser/1111111111) ;calls 111-111-1111
exten => 77,n,Hangup ; this line never gets executed


[outbound]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(vm-extension)
exten => s,n,WaitExten()

exten => _NXXNXXNXXX,1,Dial(SIP/mysipuser/${EXTEN})
exten => _NXXNXXNXXX,n,Hangup

Detalhes adicionais Notei que toda vez que eu executo o comando Dial () no extensions.conf, nenhuma das linhas depois que ele é disparado, mesmo que ambas as partes desliguem o telefone. Então, por exemplo:

exten => 11,1,Dial(SIP/mysipuser/5555555555)
exten => 11,n,System(echo 'hello world'>test.txt) ; this line and any line below do not fire
exten => 11,n,Hangup

O código pára de executar após o comando Dial () ... que pode explicar por que não consigo chamar vezes consecutivas ... é porque a linha ainda está ativa?

    
por John 14.08.2010 / 16:35

1 resposta

0

Este é o meu novo extensions.conf que parece ter resolvido o problema

[default]
exten => s,1,System(asterisk -rx 'sip reload') ; hack to force sip reload
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(vm-extension)
exten => s,n,WaitExten()

exten => 0011,1,Goto(outbound,s,1)

exten => 11,1,Dial(SIP/mysipuser/5555555555,30,g) ;calls 555-555-5555
exten => 11,n,Goto(closechannel,s,1)

exten => 77,1,Dial(SIP/mysipuser/1111111111,30,g) ;calls 111-111-1111
exten => 77,n,Goto(closechannel,s,1)


[outbound]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(vm-extension)
exten => s,n,WaitExten()

exten => _NXXNXXNXXX,1,Dial(SIP/mysipuser/${EXTEN})
exten => _NXXNXXNXXX,n,Hangup

[closechannel]
exten => s,1,System(asterisk -rx 'sip reload')
exten => s,n,Hangup()

As três alterações que fiz foram a adição da instrução exten => s,1,System(asterisk -rx 'sip reload') , [closechannel] context e ,30,g ao comando Dial (). O comando do Sistema força uma recarga de sip toda vez que alguém tenta ligar. O sinalizador ,g diz ao asterisco para continuar executando o código depois que as partes chamando se desconectam.

Isso parece funcionar "na maioria das vezes".

    
por 14.08.2010 / 20:44

Tags