我已经从One Asterisk(版本11.2.1)创建了一个sip中继,说'A'服务器到另一个Asterisk服务器(11.7.0)说'B',我得到sip响应200 ok.
但是当我开始在Asterisk A上调用DID时,呼叫将被路由到Asterisk'B',并且在38秒后呼叫已断开,显示以下警告:
Retransmission timeout reached on transmission 11bc71e029119e5877806ed40fcde691@111.xxx.xxx.xxx:5060 for seqno 102 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 32000ms with no response
Hanging up call 11bc71e029119e5877806ed40fcde691@111.xxx.xxx.xx:5060 - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
小智 8
默认情况下,Asterisk在建立呼叫后发送RE-INVITE请求.
但是市场上的大多数SIP客户端和SIP服务器都不接受RE-INVITE请求.因此,当Asterisk在建立呼叫后发送RE-INVITE时,另一方不回应该请求.因此,32秒后,Asterisk挂断电话.
要解决此问题,如果客户端软件不接受RE-INVITE请求,则需要禁用Asterisk的RE-INVITE功能.为此,您需要sip.conf在Asterisk中编辑该文件以包括:
canreinvite = no
Run Code Online (Sandbox Code Playgroud)
当您有 nat 问题或防火墙问题时,可能会发现这种情况
请参阅这篇文章 http://www.voip-info.org/wiki/view/Asterisk+SIP+NAT+solutions
有关详细信息,您可以使用以下命令启用 sip 调试
asterisk -r
sip set debug on
Run Code Online (Sandbox Code Playgroud)