13.1 Overview 13.1 启动会话概述 When a user agent client desires to initiate a session (for example, audio, video, or a game), it formulates an INVITE request. The INVITE request asks a server to establish a session. This request may be forwarded by proxies, eventually arriving at one or more UAS that can potentially accept the invitation. These UASs will frequently need to query the user about whether to accept the invitation. After some time, those UASs can accept the invitation (meaning the session is to be established) by sending a 2xx response. If the invitation is not accepted, a 3xx, 4xx, 5xx or 6xx response is sent, depending on the reason for the rejection. Before sending a final response, the UAS can also send provisional responses (1xx) to advise the UAC of progress in contacting the called user. 当用户代理客户端希望发起会话(例如,音频、视频或游戏)时,它会制定INVITE请求。INVITE请求要求服务器建立会话。该请求可以由代理转发,最终到达可能接受邀请的一个或多个UAS。这些UA将经常需要询问用户是否接受邀请。一段时间后,这些UA可以通过发送2xx响应来接受邀请(意味着要建立会话)。如果邀请未被接受,将根据拒绝的原因发送3xx、4xx、5xx或6xx响应。在发送最终响应之前,UAS还可以发送临时响应(1xx)以告知UAC联系被叫用户的进展。 After possibly receiving one or more provisional responses, the UAC will get one or more 2xx responses or one non-2xx final response. Because of the protracted amount of time it can take to receive final responses to INVITE, the reliability mechanisms for INVITE transactions differ from those of other requests (like OPTIONS). Once it receives a final response, the UAC needs to send an ACK for every final response it receives. The procedure for sending this ACK depends on the type of response. For final responses between 300 and 699, the ACK processing is done in the transaction layer and follows one set of rules (See Section 17). For 2xx responses, the ACK is generated by the UAC core. 在可能接收到一个或多个临时响应之后,UAC将获得一个或更多个2xx响应或一个非2xx最终响应。由于接收对INVITE的最终响应可能需要较长的时间,INVITE事务的可靠性机制与其他请求(如OPTIONS)的可靠性机制不同。一旦收到最终响应,UAC就需要为收到的每个最终响应发送ACK。发送此ACK的过程取决于响应的类型。对于300到699之间的最终响应,ACK处理在事务层中完成,并遵循一组规则(见第17节)。对于2xx响应,ACK由UAC核心生成。 A 2xx response to an INVITE establishes a session, and it also creates a dialog between the UA that issued the INVITE and the UA that generated the 2xx response. Therefore, when multiple 2xx responses are received from different remote UAs (because the INVITE forked), each 2xx establishes a different dialog. All these dialogs are part of the same call. 对INVITE的2xx响应建立会话,并且它还在发出INVITE和生成2xx响应的UA之间创建对话。因此,当从不同的远程UA接收到多个2xx响应时(因为INVITE分叉),每个2xx建立一个不同的对话。所有这些对话都是同一个调用的一部分。 This section provides details on the establishment of a session using INVITE. A UA that supports INVITE MUST also support ACK, CANCEL and BYE.
本节提供有关使用INVITE建立会话的详细信息。支持INVITE的UA也必须支持ACK、CANCEL和BYE。