[要約] RFC 3326は、SIPにおけるReasonヘッダーフィールドについての仕様を定めています。このRFCの目的は、SIPセッションの終了やエラーの原因を通知するための標準化を提供することです。

Network Working Group                                     H. Schulzrinne
Request for Comments: 3326                           Columbia University
Category: Standards Track                                        D. Oran
                                                                   Cisco
                                                            G. Camarillo
                                                                Ericsson
                                                           December 2002
        

The Reason Header Field for the Session Initiation Protocol (SIP)

セッション開始プロトコル(SIP)のヘッダーフィールドの理由

Status of this Memo

本文書の位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の現在のエディションを参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2002). All Rights Reserved.

Copyright(c)The Internet Society(2002)。無断転載を禁じます。

Abstract

概要

For creating services, it is often useful to know why a Session Initiation Protocol (SIP) request was issued. This document defines a header field, Reason, that provides this information. The Reason header field is also intended to be used to encapsulate a final status code in a provisional response. This functionality is needed to resolve the "Heterogeneous Error Response Forking Problem", or HERFP.

サービスを作成するには、セッション開始プロトコル(SIP)リクエストが発行された理由を知ることがしばしば役立ちます。このドキュメントでは、この情報を提供するヘッダーフィールド、理由を定義します。また、ヘッダーフィールドは、暫定的な応答で最終的なステータスコードをカプセル化するために使用することも目的としています。この機能は、「不均一なエラー応答のフォーキング問題」またはHERFPを解決するために必要です。

Table of Contents

目次

   1.   Introduction ...............................................  2
   1.1. Terminology ................................................  3
   2.   The Reason Request Header Field ............................  3
   3.   Examples ...................................................  4
   3.1. Call Completed Elsewhere ...................................  4
   3.2. Refusing an Offer that Comes in a Response .................  4
   3.3. Third Party Call Control ...................................  5
   3.4. ISUP interworking ..........................................  5
   4.   IANA Considerations ........................................  6
   5.   Security Considerations ....................................  6
   6.   Acknowledgments ............................................  7
   7.   Authors' Addresses .........................................  7
   8.   Normative References .......................................  7
   9.   Full Copyright Statement ...................................  8
        
1. Introduction
1. はじめに

The same SIP [1] request can be issued for a variety of reasons. For example, a SIP CANCEL request can be issued if the call has completed on another branch or was abandoned before answer. While the protocol and system behavior is the same in both cases, namely, alerting will cease, the user interface may well differ. In the second case, the call may be logged as a missed call, while this would not be appropriate if the call was picked up elsewhere.

同じSIP [1]リクエストは、さまざまな理由で発行できます。たとえば、SIPキャンセル要求は、別のブランチで呼び出しが完了した場合、または回答の前に放棄された場合に発行できます。どちらの場合も、プロトコルとシステムの動作は同じですが、アラートは停止しますが、ユーザーインターフェイスは大きく異なる場合があります。2番目のケースでは、コールは不在着信として記録される場合がありますが、他の場所でコールがピックアップされた場合、これは適切ではありません。

Third party call controllers sometimes generate a SIP request upon reception of a SIP response from another dialog. Gateways generate SIP requests after receiving messages from a different protocol than SIP. In both cases the client may be interested in knowing what triggered the SIP request.

サードパーティコールコントローラーは、別のダイアログからのSIP応答を受信すると、SIPリクエストを生成する場合があります。ゲートウェイは、SIPとは異なるプロトコルからメッセージを受信した後、SIPリクエストを生成します。どちらの場合も、クライアントは、SIPリクエストをトリガーしたものを知ることに関心がある場合があります。

SIP responses already offer a means of informing the user of why a request failed. The simple mechanism in this document accomplishes something roughly similar for requests.

SIP応答はすでに、リクエストが失敗した理由をユーザーに通知する手段を提供しています。このドキュメントの単純なメカニズムは、リクエストについてほぼ類似したものを達成します。

An INVITE can sometimes be rejected not because the session initiation was declined, but because some aspect of the request was not acceptable. If the INVITE forked and resulted in a rejection, the error response may never be forwarded to the client unless all the other branches also reject the request. This problem is known as the "Heterogeneous Error Response Forking Problem", or HERFP. It is foreseen that a solution to this problem may involve encapsulating the final error response in a provisional response. The Reason header field is a candidate to be used for such encapsulation.

招待状は、セッションの開始が拒否されたためではなく、リクエストの一部の側面が受け入れられなかったために拒否されることがあります。招待状が分岐し、拒否された場合、他のすべてのブランチもリクエストを拒否しない限り、エラー応答がクライアントに転送されることはありません。この問題は、「不均一なエラー応答のフォーキング問題」またはHERFPとして知られています。この問題の解決策には、暫定的な応答での最終的なエラー応答のカプセル化が含まれる可能性があることが予見されています。ヘッダーフィールドの理由は、そのようなカプセル化に使用される候補者です。

Initially, the Reason header field defined here appears to be most useful for BYE and CANCEL requests, but it can appear in any request within a dialog, in any CANCEL request and in any response whose status code explicitly allows the presence of this header field.

最初に、ここで定義されているヘッダーフィールドの理由は、Byeおよびキャンセル要求に最も役立つように見えますが、ダイアログ内のリクエスト、キャンセル要求、およびステータスコードがこのヘッダーフィールドの存在を明示的に許可する応答で表示できます。

Note that the Reason header field is usually not needed in responses because the status code and the reason phrase already provide sufficient information.

ステータスコードと理由フレーズはすでに十分な情報を提供しているため、通常、ヘッダーフィールドが応答では必要ないことに注意してください。

Clients and servers are free to ignore this header field. It has no impact on protocol processing.

クライアントとサーバーは、このヘッダーフィールドを無料で無視できます。プロトコル処理には影響しません。

1.1 Terminology
1.1 用語

In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 [2] and indicate requirement levels for compliant SIP implementations.

このドキュメントでは、キーワードが「必須」、「必須」、「必須」、「shall」、「shall "、" low "of" bould "、" becommented "、"、 "、"、 "optional"BCP 14、RFC 2119 [2]で説明されているように解釈され、準拠したSIP実装の要件レベルを示します。

2. The Reason Header Field
2. ヘッダーフィールドの理由

The Reason header field MAY appear in any request within a dialog, in any CANCEL request and in any response whose status code explicitly allows the presence of this header field. The syntax of the header field follows the standard SIP parameter syntax.

ヘッダーフィールドは、ダイアログ内の任意のリクエスト、キャンセル要求、およびステータスコードがこのヘッダーフィールドの存在を明示的に許可する応答で表示される場合があります。ヘッダーフィールドの構文は、標準のSIPパラメーター構文に従います。

 Reason            =  "Reason" HCOLON reason-value *(COMMA reason-value)
 reason-value      =  protocol *(SEMI reason-params)
 protocol          =  "SIP" / "Q.850" / token
 reason-params     =  protocol-cause / reason-text
                      / reason-extension
 protocol-cause    =  "cause" EQUAL cause
 cause             =  1*DIGIT
 reason-text       =  "text" EQUAL quoted-string
 reason-extension  =  generic-param
        

The following values for the protocol field have been defined:

プロトコルフィールドの次の値が定義されています。

SIP: The cause parameter contains a SIP status code.

SIP:原因パラメーターには、SIPステータスコードが含まれています。

Q.850: The cause parameter contains an ITU-T Q.850 cause value in decimal representation.

Q.850:原因パラメーターには、10進表現にITU-T Q.850原因値が含まれています。

Examples are:

例は次のとおりです。

      Reason: SIP ;cause=200 ;text="Call completed elsewhere"
      Reason: Q.850 ;cause=16 ;text="Terminated"
      Reason: SIP ;cause=600 ;text="Busy Everywhere"
      Reason: SIP ;cause=580 ;text="Precondition Failure"
        

Proxies generating a CANCEL request upon reception of a CANCEL from the previous hop that contains a Reason header field SHOULD copy it into the new CANCEL request.

プロキシキャンセルリクエストは、理由ヘッダーフィールドが含まれる前のホップからキャンセルを受信すると、新しいキャンセルリクエストにコピーする必要があります。

In normal SIP operation, a SIP status code in a response provides the client with information about the request that triggered the response, the session parameters, or the user. For example, a 405 (Method not allowed) response indicates that the request contained an unsupported method. A 488 (Not Acceptable Here) indicates that the session parameters are unacceptable and a 486 (Busy Here) provides information about the status of the user.

通常のSIP操作では、応答のSIPステータスコードは、応答、セッションパラメーター、またはユーザーをトリガーするリクエストに関する情報をクライアントに提供します。たとえば、405(許可されていない方法)の応答は、リクエストにサポートされていない方法が含まれていたことを示しています。488(ここでは受け入れられません)は、セッションパラメーターが受け入れられないことを示し、486(ここでは忙しい)がユーザーのステータスに関する情報を提供します。

Any SIP status code MAY appear in the Reason header field of a request. However, status codes that provide information about the user and about session parameters are typically useful for implementing services whereas status codes intended to report errors about a request are typically useful for debugging purposes.

SIPステータスコードは、リクエストのヘッダーフィールドの理由に表示される場合があります。ただし、ユーザーに関する情報とセッションパラメーターに関する情報を提供するステータスコードは、通常、サービスの実装に役立ちますが、リクエストに関するエラーを報告することを目的としたステータスコードは、通常デバッグ目的に役立ちます。

A SIP message MAY contain more than one Reason value (i.e., multiple Reason lines), but all of them MUST have different protocol values (e.g., one SIP and another Q.850). An implementation is free to ignore Reason values that it does not understand.

SIPメッセージには、複数の理由値(つまり、複数の理由行)が含まれる場合がありますが、それらはすべて異なるプロトコル値(たとえば、1つのSIPと別のQ.850)を持っている必要があります。実装は、理解できない理由を自由に無視できます。

3. Examples
3. 例

This section contains a number of examples that illustrate the use of the Reason header field.

このセクションには、理由ヘッダーフィールドの使用を示す多くの例が含まれています。

3.1 Call Completed Elsewhere
3.1 他の場所で完了した呼び出し

A proxy forks an INVITE request and one of the branches returns a 200 (OK). The forking proxy includes this status code in a Reason header field in the CANCEL request that it sends to the rest of the branches.

プロキシは招待リクエストを分岐し、ブランチの1つが200(OK)を返します。フォーキングプロキシには、キャンセルリクエストの理由ヘッダーフィールドにこのステータスコードが含まれています。

3.2 Refusing an Offer that Comes in a Response
3.2 応答に来る申し出を拒否します

A client sends an empty INVITE and receives an unacceptable offer in a 200 (OK) response. The client sends an ACK with a correctly formatted answer and immediately sends a BYE to terminate the session. The client includes a 488 (Not Acceptable Here) status code in a Reason header field.

クライアントは空の招待状を送信し、200(OK)応答で受け入れられないオファーを受け取ります。クライアントは、正確にフォーマットされた回答でACKを送信し、すぐにセッションを終了するためにさようならを送信します。クライアントには、理由ヘッダーフィールドに488(ここでは受け入れられない)ステータスコードが含まれています。

3.3 Third Party Call Control
3.3 サードパーティのコールコントロール

The third party call controller of figure 1 tries to establish a session between A and B. However, user B is busy. The controller sends a BYE with the status code 486 (Busy Here) in a Reason header field.

図1のサードパーティコールコントローラーは、AとBの間のセッションを確立しようとしますが、ユーザーBはビジーです。コントローラーは、理由ヘッダーフィールドでステータスコード486(ここではビジー)でさようならを送信します。

      A                Controller            B
      |   INV  no SDP     |                  |
      |<------------------|                  |
      |                   |                  |
      |    200 SDP A1     |                  |
      |-----------------> |                  |
      |                   |                  |
      |   ACK  SDP held   |                  |
      |<------------------|                  |
      |                   |                  |
      |                   |   INV no SDP     |
      |                   |----------------->|
      |                   |                  |
      |                   |  486 Busy Here   |
      |                   |<-----------------|
      |                   |                  |
      |                   |       ACK        |
      |                   |----------------->|
      |     BYE (486)     |                  |
      |<------------------|                  |
      |                   |                  |
      |     200 OK        |                  |
      |-----------------> |                  |
      |                   |                  |
        

Figure 1: Third Party Call Control

図1:サードパーティのコールコントロール

3.4 ISUP interworking
3.4 ISUPインターワーキング

The PSTN gateway of figure 2 generates an INVITE that has to be CANCELed when a REL (release) message is received from the ISUP side. The CANCEL request contains the Q.850 cause value (16 Normal Call Clearing) of the REL message.

図2のPSTNゲートウェイは、ISUP側からREL(リリース)メッセージが受信されたときにキャンセルする必要がある招待状を生成します。キャンセル要求には、relメッセージのq.850原因値(16通常のコールクリアリング)が含まれています。

      A                Gateway               B
      |       IAM         |                  |
      |-----------------> |                  |
      |                   |     INVITE       |
      |                   |----------------->|
      |                   |                  |
      |                   |   100 Trying     |
      |                   |<-----------------|
      |     REL (16)      |                  |
      |-----------------> |                  |
      |                   | CANCEL (Q.850 16)|
      |                   |----------------->|
      |                   |      200 OK      |
      |                   |<-----------------|
        

Figure 2: ISUP Interworking

図2:ISUPインターワーキング

4. IANA Considerations
4. IANAの考慮事項

This document defines a new SIP header field, "Reason", according to Section 27 of RFC 3261.

このドキュメントでは、RFC 3261のセクション27によると、新しいSIPヘッダーフィールド「Reason」を定義しています。

Protocol values (and their associated protocol cause) to be used with this header field are registered by the IANA into a new sub-registry under http://www.iana.org/assignments/sip-parameters, labeled "Reason Protocols". Reason protocols MUST refer to either an ITU-T Recommendation number, an IETF protocol name or the recognized protocol identifier from another standardization organization. Protocol cause describes the source of the 'cause' field in the Reason header field.

このヘッダーフィールドで使用されるプロトコル値(およびそれに関連するプロトコルの原因)は、IANAによってhttp://www.iana.org/assignments/sip-parametersに基づいて新しいサブレジストリに登録されています。理由プロトコルは、ITU-Tの推奨番号、IETFプロトコル名、または別の標準化組織からの認識されたプロトコル識別子のいずれかを参照する必要があります。プロトコル原因は、理由ヘッダーフィールドの「原因」フィールドのソースを説明します。

The only entries in the registry for the time being are:

当分の間、レジストリの唯一のエントリは次のとおりです。

   Protocol Value   Protocol Cause            Reference
   --------------   ---------------           -----------
   SIP              Status code               RFC 3261
   Q.850            Cause value in decimal    ITU-T Q.850
                    representation
        
5. Security Considerations
5. セキュリティに関する考慮事項

Spoofing or removing the Reason header field from a response in a HERFP scenario can make it impossible for a client to update properly its previous request, making therefore session establishment impossible. Thus, it is RECOMMENDED that this header field is protected by a suitable integrity mechanism.

HERFPシナリオの応答からヘッダーフィールドをスプーフィングまたは削除すると、クライアントが以前の要求を適切に更新することを不可能にするため、セッションの確立は不可能になります。したがって、このヘッダーフィールドは、適切な整合性メカニズムによって保護されることをお勧めします。

properly its previous request, making therefore session establishment impossible. Thus, it is RECOMMENDED that this header field is protected by a suitable integrity mechanism.

適切に以前のリクエストにより、セッションの確立は不可能になります。したがって、このヘッダーフィールドは、適切な整合性メカニズムによって保護されることをお勧めします。

6. Acknowledgments
6. 謝辞

Jonathan Rosenberg, Rohan Mahy and Vijay K. Gurbani provided helpful comments and suggestions.

ジョナサン・ローゼンバーグ、ロハン・マヒー、ヴィジェイ・K・グルバニは、有益なコメントと提案を提供しました。

8. Normative References
8. 引用文献

[1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.

[1] Rosenberg、J.、Schulzrinne、H.、Camarillo、G.、Johnston、A.、Peterson、J.、Sparks、R.、Handley、M。、E。Schooler、 "SIP:SESSION INIATIATION Protocol"、RFC 3261、2002年6月。

[2] Bradner, S., "Key words for use in RFCs to indicate requirement levels," BCP 14, RFC 2119, March 1997.

[2] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、BCP 14、RFC 2119、1997年3月。

7. Authors' Addresses
7. 著者のアドレス

Henning Schulzrinne Dept. of Computer Science Columbia University 1214 Amsterdam Avenue New York, NY 10027 USA

コンピューターサイエンスコロンビア大学のヘニングシュルツリン部1214アムステルダムアベニューニューヨーク、ニューヨーク10027 USA

   EMail:  schulzrinne@cs.columbia.edu
        

David R. Oran Cisco Systems, Inc. Acton, MA USA

David R. Oran Cisco Systems、Inc。Acton、MA USA

   EMail:  oran@cisco.com
        

Gonzalo Camarillo Ericsson Advanced Signalling Research Lab. FIN-02420 Jorvas Finland

Gonzalo Camarillo Ericsson Advanced Signaling Research Lab。Fin-02420 Jorvas Finland

   EMail:  Gonzalo.Camarillo@ericsson.com
        
9. 完全な著作権声明

Copyright (C) The Internet Society (2002). All Rights Reserved.

Copyright(c)The Internet Society(2002)。無断転載を禁じます。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

このドキュメントと翻訳は他の人にコピーされて提供される場合があり、それについてコメントまたは説明する派生作品、またはその実装を支援することができます。、上記の著作権通知とこの段落がそのようなすべてのコピーとデリバティブ作品に含まれている場合。ただし、このドキュメント自体は、インターネット協会や他のインターネット組織への著作権通知や参照を削除するなど、いかなる方法でも変更できない場合があります。インターネット標準プロセスに従うか、英語以外の言語に翻訳するために必要な場合に従う必要があります。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上記の限られた許可は永続的であり、インターネット社会またはその後継者または譲受人によって取り消されることはありません。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書と本書に含まれる情報は、「現状」に基づいて提供されており、インターネット社会とインターネットエンジニアリングタスクフォースは、ここにある情報の使用が行われないという保証を含むがこれらに限定されないすべての保証を否認します。特定の目的に対する商品性または適合性の権利または黙示的な保証を侵害します。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFCエディター機能の資金は現在、インターネット協会によって提供されています。