Asterisk,SIP重传超时

11

我已经从一个Asterisk(version 11.2.1)服务器创建了一个sip通道到另一个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).

有什么想法吗?


你能在没有干线(A-B)配置的情况下在你的服务器“A”上调用DDI吗?以确保你的拨号计划是正确的。 - pce
是的,它在没有干线配置的情况下完美地工作。主要问题是通话在38秒后被断开,在38秒之前我可以听到音频文件,一旦通话达到第38秒,它就会掉线。 - Vivek Raj
所以...你解决问题了吗? - Riad
是的,正如我在下面提到的那样,这是由于sip.conf中的NAT设置造成的。 - Vivek Raj
请标记为已解决 😉将以下关于编程的内容从英语翻译成中文。只返回翻译后的文本: - lmo
5个回答

10
默认情况下,Asterisk在通话建立后发送RE-INVITE请求。但是,市场上大多数SIP客户端和SIP服务器不接受RE-INVITE请求。因此,当Asterisk在通话建立后发送RE-INVITE时,对方不会回应该请求。所以,在32秒后,Asterisk会挂断通话。如果您的客户端软件不接受RE-INVITE请求,则需要禁用Asterisk的RE-INVITE功能来解决问题。为此,您需要编辑Asterisk中的sip.conf文件,并包含以下内容:
canreinvite = no

6

我已经移除了防火墙设置,这个问题与防火墙无关。在sip.conf中,我使用了nat=force_rport,comedia来进行NAT设置。 - Vivek Raj
从调试日志中可以看出,Asterisk服务器'B'一直显示重传#{1-9}(NAT),其中{1-9}表示重传尝试次数。 - Vivek Raj
2
重新传输#3(NAT)到111.XXX.XXX.X:5060: SIP / 2.0 200 OK 通过:SIP / 2.0 / UDP 111.XXX.XXX.X:5060; branch = z9hG4bK5e38e44b; received = 111.XXX.XXX.X; rport = 5060 从:<sip:07428239333@111.XXX.XXX.X>; tag = as086c55da 至:<sip:6603XXXX@175.XXX.XXX.X>; tag = as36de7a5b 呼叫ID:72cd617b6e36fd187315d5fd5d892e5d@111.XXX.XXX.X:5060 CSeq:102 INVITE 服务器:Asterisk PBX 11.7.0 允许:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY,INFO,PUBLISH 支持:替换,计时器 会话过期:1800; refresher = uas 联系人:<sip:6603XXXX@10.XXX.XXX.X:5060> 内容类型:application / sdp - Vivek Raj
所以你遇到了像我说的那样的 NAT 或防火墙问题。 - arheops
谢谢您的回复,请为我提供解决这个问题的方案。 - Vivek Raj
设置 NAT/修复防火墙。 - arheops

2
这些事件通常与NAT问题有关。
如果您确定这不是您的问题,请查看路由器配置。一些路由器默认配置了“SIP ALG”选项。
在某些情况下,应该关闭此选项,因为实现不完整。
试一试,让我知道它是否正常工作即可。

2
谢谢您的建议。实际上我早就解决了,这是由于NAT设置引起的。我已经解决了这个问题。 - Vivek Raj
@Vivek,你如何解决这个与Nat相关的问题?你指的是哪种具体的Nat? - alireza

0

请确保在 /etc/asterisk/sip.conf 文件中的 'externip=' 参数中填写了正确的 IP 地址。


0

听起来像是网络地址转换问题。 您能否分享您的SIP配置,以便我们查看一下?

您是否设置了您的extenip和localip?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接