路由器如何知道哪个设备处理呼叫?

路由器如何知道哪个设备处理呼叫?

家庭路由器如何知道哪个连接的设备应该处理 VOIP 呼叫?是否有特定的广播被发送出去?我的家庭设置使用桥接模式下的模拟电话适配器 (ATA) 盒来处理呼叫,我想知道路由器如何知道将 SIP 数据包发送到哪里,因为没有使用端口转发或 ALG。

我尝试断开 ATA 并运行 Wireshark 来查找发送到其他设备的广播,但是什么也没有出现;也许路由器记得常用的设备?

我在另一个网站上找到一篇帖子,其中提到了保持连接活动的“注册过程”,我认为这意味着 ATA 注册了该线路,从那时起路由器只处理与呼叫相关的所有事务(SIP、实际呼叫/RTP 数据等)的单一连接?

如果您能提供任何信息,我们将不胜感激。谢谢。

答案1

你或多或少已经有了答案。

SIP 设备与服务器连接(注册)。在此过程中,路由器会看到内部 IP 和目的地,因此它使用连接跟踪来执行 NAT 并处理该设备的 SIP。

Linux 内核有专门的连接跟踪 sip 模块,许多路由器都使用它 -https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_sip.c

相关内容