情况:
我有一个关于ACK消息(黄色)的问题,该消息从Asterisk发送到被叫方(电话B),在被叫方发送其200 OK + SDP消息(紫色)后发送。我所说的Asterisk呼叫流程如下:
我的测试网络:
笔记本电脑+软电话 ---- Asterisk ---- 笔记本电脑+软电话
问题:
我测试过的所有Linux软电话(Twinkle、SFLPhone、Ekiga-Softon、Linphone和QuteCom)都不等待ACK即可开始RTP会话。我在Asterisk服务器上使用iptables过滤了ACK消息,RTP会话仍然开始了。但是由于我的项目意图,我希望等待ACK消息,然后开始RTP会话。是否有一种方法、开关、命令或首选项可以让软电话等待接收到ACK消息后再开始RTP流?
附加信息:
我搜索了很多资料,并发现一些设备,例如iiNet品牌的Belkin VoIP路由器,它具有以下选项:在接收ACK之前启动RTP会话[默认值:关闭]因此,我想必须有一种方法可以让RTP会话在接收到ACK后开始。
同时,我发现最佳实践是会话直接在发送200 OK + SDP后开始。但是如上所述,这对我的项目来说是不足够的。
图像来源:
http://www.panoramisk.com/101/asterisk-and-voice-transport/en/