Session SIP中会话、对话框和事务之间的区别?

Session SIP中会话、对话框和事务之间的区别?,session,transactions,dialog,sip,Session,Transactions,Dialog,Sip,会话、对话框和事务之间到底有什么区别 所有交易是否必须同时出现?交易 事务包括请求、收到的任何非最终(1xx)响应、最终响应(2xx、3xx、4xx、5xx或6xx)以及响应确认(ACK或PRACK),2xx响应确认除外。例如: SIP peer A sends an INVITE Request to SIP peer B SIP peer B returns a Response of 100 TRYING; this is a non-final Response, so the tran

会话、对话框和事务之间到底有什么区别

所有交易是否必须同时出现?

交易 事务包括请求、收到的任何非最终(1xx)响应、最终响应(2xx、3xx、4xx、5xx或6xx)以及响应确认(ACK或PRACK),2xx响应确认除外。例如:

SIP peer A sends an INVITE Request to SIP peer B
SIP peer B returns a Response of 100 TRYING; this is a non-final Response, so the transaction is not completed yet
SIP peer B returns 200 OK (a final response), accepting the invitation; this completes the transaction
基本上,一个完整的请求-响应

对话 对话只是两个SIP对等方之间的一系列事务。对话框的目的是设置、可能修改并拆除会话。因此命名为会话启动协议。由于在任何时候,两个SIP对等方之间都可能有许多正在进行的对话(例如,两个SIP服务器之间可能有许多同时进行的呼叫),因此通过标头中的From、To和Call ID字段来标识对话。因此,如果SIP对等方A同时收到两个BYE请求,它可以查看这些字段以确定它们属于哪个对话框。
您可能在对话框中看到的一组典型事务可能包括:

SIP peer A invites SIP peer B to a session and suggests a certain codec, but does not include authentication and so is rejected
SIP peer A again invites SIP peer B to a session, this time supplying authentication, and the invitation is accepted
SIP peer B sends an invitation to change the codec used, and it is accepted
SIP peer A ends the session
会议 会话只是在对等方之间流动的媒体流(例如音频或视频),通常由RTP(可能还有RTCP)数据包组成。例如,如果使用SIP进行语音呼叫,则会话是在端点之间发送的语音数据

要回答这个问题,您是否需要将这三者结合在一起,您需要事务和对话框来创建会话,而会话是协议的全部要点


包含对话框和事务的示例

据说,对话框由to标记、from标记和call-id组成。在您的解释中,它与to标记、from标记和call-id有何关联?我不理解这一部分。@rkm_Hodor由于两个对等方之间一次可能有许多对话正在进行(例如,两个SIP服务器之间有许多正在进行的呼叫),这些标记只是用来标识特定请求或响应属于哪个对话