0105 Require

Assuming the UAS decides that it is the proper element to process the

   request, it examines the Require header field, if present.

 

   The Require header field is used by a UAC to tell a UAS about SIP

   extensions that the UAC expects the UAS to support in order to

   process the request properly.  Its format is described in Section

   20.32.  If a UAS does not understand an option-tag listed in a

   Require header field, it MUST respond by generating a response with

   status code 420 (Bad Extension).  The UAS MUST add an Unsupported

   header field, and list in it those options it does not understand

   amongst those in the Require header field of the request.

 

   Note that Require and Proxy-Require MUST NOT be used in a SIP CANCEL

   request, or in an ACK request sent for a non-2xx response.  These

   header fields MUST be ignored if they are present in these requests.

 

   An ACK request for a 2xx response MUST contain only those Require and

   Proxy-Require values that were present in the initial request.

 

   Example:

 

      UAC->UAS:   INVITE sip:[email protected] SIP/2.0

                  Require: 100rel

 

      UAS->UAC:   SIP/2.0 420 Bad Extension

                  Unsupported: 100rel

 

      This behavior ensures that the client-server interaction will

      proceed without delay when all options are understood by both

      sides, and only slow down if options are not understood (as in the

      example above).  For a well-matched client-server pair, the

      interaction proceeds quickly, saving a round-trip often required

      by negotiation mechanisms.  In addition, it also removes ambiguity

      when the client requires features that the server does not

      understand.  Some features, such as call handling fields, are only

      of interest to end systems.

發佈了117 篇原創文章 · 獲贊 0 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章