星号服务器 – 不能进行连续的出站呼叫

我现在遇到的一个问题是,如果我从同一个电话连续呼叫星号服务器,它可能会断开连接。 星号logging以下消息:

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

这就像世界上任何一部电话只能拨打一次星号服务器。 那我需要做一个

 > sip reload 

从Asteriskterminal让他们再次呼入。

我也可以做一个shell命令来重新加载sip

星号-rx'sip reload'

但是,当我将这个命令添加到每分钟运行的crontab时,它不起作用。 shell命令只有在我手动运行时才起作用。

任何人都可以告诉我如何让呼叫者不止一次打电话给我的星号服务器? 这里是我的sip.conf和extensions.conf(所有其他文件未触及)。

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 

其他细节我注意到,每次在extensions.conf中执行Dial()命令时,即使双方都挂断了电话,也不会触发任何行。 举个例子:

 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 

在Dial()命令之后,代码停止执行…这可能解释为什么我不能连续调用这个函数,这是因为该行仍然是活动的?

这是我的新的extensions.conf似乎已经解决了这个问题

 [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() 

所以我做的三个改变是在Dial()命令中增加了exten => s,1,System(asterisk -rx 'sip reload')语句, [closechannel]上下文和,30,g 。 每次有人试图呼入时,System命令强制重新加载sip。g标志告诉星号在呼叫方断开连接后继续执行代码。

这似乎是“最”的时代。