INVITE SIP事务中ACK的必要性

时间:2014-11-18 23:53:08

标签: sip voip

我只是好奇,从本地终点确认远程终点200个OK响应的根本原因是什么? RFC 3261声明它是出于稳定目的而需要的,但没有详细说明。我想到的唯一原因就是呼叫分叉的情况。因此,如果AOR在多个端点处注册并且这些端点同时响应200 OK消息,则ACK将实际指示哪个远程方将参与对等连接。是否有任何其他理由以ACK结束和邀请握手?

1 个答案:

答案 0 :(得分:0)

这是因为SIP需要一些响应(实际上只有INVITE响应)才能在底层传输不可靠的情况下(例如使用UDP)可靠地传输。

ACK请求是(UAC用户代理客户端)让UAS(用户代理服务器)知道它收到对INVITE请求的最终响应的方式。如果不采用像ACK请求这样的东西,总会存在UAS响应无法通过UAC并且呼叫将处于不正确状态的风险。

ACK请求在呼叫分配中没有任何特定的作用。如果您在具有多个端点的呼叫中描述了BYE请求将被发送到任何不需要的呼叫支路。无论UAC是否希望该呼叫段继续进行,ACK响应请求仍然需要发送给任何响应的UAS。