附上原文,供参考:
- 5 UPDATE Handling
5.1 Sending an UPDATE
The UPDATE request is constructed as would any other request within an existing dialog, as described in Section 12.2.1 of RFC 3261. It MAY be sent for both early and confirmed dialogs, and MAY be sent by either caller or callee. Although UPDATE can be used on confirmed dialogs, it is RECOMMENDED that a re-INVITE be used instead. This is because an UPDATE needs to be answered immediately, ruling out the possibility of user approval. Such approval will frequently be needed, and is possible with a re-INVITE.
【加粗的部分和大意就是尽管UPDATE可用于confiremed dialog也就是收到了200 OK for invite之后,但建立用re-INVITE来代替。
原因是UPDATE需要立即应该,排除了用户同意(批准)的可能性。但这种用户同意(的场景)是比较常见的,这就需要用re-INVITE来做。但我不太确认这个用户同意是什么含义或场景。】
另外,RFC3311里对"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"这些有严格的定义。
只有MUST、REQUIRED和SHALL没有满足,才是违反规范的。
【MUST This word, or the terms "REQUIRED" or "SHALL", mean that the definition is an absolute requirement of the specification.】
但RECOMMENDED和SHOULD是等价的,只是个建议,没按这个做,也不算违反规范。
【SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.】
还有一些相关的原文,也附上,供参考:
UPDATE:
In that sense, it is like a re-INVITE, but unlike re-INVITE, it can be sent before the initial INVITE has been completed. This makes it very useful for updating session parameters within early dialogs.【这段说了和re-invite的区别】
As a result, a solution is needed that allows the caller or callee to provide updated session information before a final response to the initial INVITE request is generated. The UPDATE method, defined here, fulfills that need. It can be sent by a UA within a dialog (early or confirmed) to update session parameters without impacting the dialog state itself.
【update在early-dialog中使用时,不影响dialog自身的状态。但reinvite会有影响。】
Operation of this extension is straightforward. The caller begins with an INVITE transaction, which proceeds normally. Once a dialog is established, either early or confirmed, the caller can generate an UPDATE method that contains an SDP offer [3] for the purposes of updating the session. The response to the UPDATE method contains the answer. Similarly, once a dialog is established, the callee can send an UPDATE with an offer, and the caller places its answer in the 2xx to the UPDATE.