Network Working Group                                       J. Rosenberg
Request for Comments: 3680                                   dynamicsoft
Category: Standards Track                                     March 2004

A Session Initiation Protocol (SIP) Event Package for Registrations


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 (2004). All Rights Reserved.




This document defines a Session Initiation Protocol (SIP) event package for registrations. Through its REGISTER method, SIP allows a user agent to create, modify, and delete registrations. Registrations can also be altered by administrators in order to enforce policy. As a result, these registrations represent a piece of state in the network that can change dynamically. There are many cases where a user agent would like to be notified of changes in this state. This event package defines a mechanism by which those user agents can request and obtain such notifications.


Table of Contents


   1.  Introduction .................................................  2
   2.  Terminology ..................................................  3
   3.  Usage Scenarios ..............................................  3
       3.1.  Forcing Re-Authentication ..............................  3
       3.2.  Composing Presence .....................................  3
       3.3.  Welcome Notices ........................................  4
   4.  Package Definition ...........................................  4
       4.1.  Event Package Name .....................................  4
       4.2.  Event Package Parameters ...............................  5
       4.3.  SUBSCRIBE Bodies .......................................  5
       4.4.  Subscription Duration ..................................  5
       4.5.  NOTIFY Bodies ..........................................  6
       4.6.  Notifier Processing of SUBSCRIBE Requests ..............  6
       4.7.  Notifier Generation of NOTIFY Requests .................  7
             4.7.1.  The Registration State Machine .................  7
             4.7.2.  Applying the state machine .....................  9
       4.8.  Subscriber Processing of NOTIFY Requests ...............  9
       4.9.  Handling of Forked Requests ............................  9
       4.10. Rate of Notifications .................................. 10
       4.11. State Agents ........................................... 10
   5.  Registration Information ..................................... 10
       5.1.  Structure of Registration Information .................. 10
       5.2.  Computing Registrations from the Document .............. 14
       5.3.  Example ................................................ 15
       5.4.  XML Schema ............................................. 16
   6.  Example Call Flow ............................................ 18
   7.  Security Considerations ...................................... 21
   8.  IANA Considerations .......................................... 21
       8.1.  SIP Event Package Registration ......................... 21
       8.2.  application/reginfo+xml MIME Registration .............. 22
       8.3.  URN Sub-Namespace Registration for
             urn:ietf:params:xml:ns:reginfo ......................... 23
   9.  References ................................................... 23
       9.1.  Normative References ................................... 23
       9.2.  Informative References ................................. 24
   10. Contributors ................................................. 25
   11. Acknowledgements ............................................. 25
   12. Author's Address ............................................. 25
   13. Full Copyright Statement ..................................... 26
1. Introduction
1. はじめに

The Session Initiation Protocol (SIP) [1] provides all of the functions needed for the establishment and maintenance of communications sessions between users. One of the functions it provides is a registration operation. A registration is a binding between a SIP URI, called an address-of-record, and one or more contact URIs. These contact URIs represent additional resources that can be contacted in order to reach the user identified by the address-of-record. When a proxy receives a request within its domain of administration, it uses the Request-URI as an address-of-record, and uses the contacts bound to the address-of-record to forward (or redirect) the request.

セッション開始プロトコル(SIP)は、[1]のユーザーとの間の通信セッションの確立および維持に必要な機能の全てを提供します。それが提供する機能の一つは、登録操作です。登録は、SIP URIとの間の結合、アドレス・オブ・レコードと呼ばれ、一つ以上の接点のURIされます。これらの接触のURIは、アドレスのレコードで識別されるユーザーに到達するために接触させることができる追加のリソースを表します。プロキシは、投与のそのドメイン内の要求を受信すると、アドレス・オブ・レコードとしてのRequest-URIを使用し、アドレス・オブ・レコード要求を転送する(またはリダイレクト)するために結合された連絡先を使用します。

The SIP REGISTER method provides a way for a user agent to manipulate registrations. Contacts can be added or removed, and the current set of contacts can be queried. Registrations can also change as a result of administrator policy. For example, if a user is suspected of fraud, their registration can be deleted so that they cannot receive any requests. Registrations also expire after some time if not refreshed.

SIP REGISTERメソッドは、登録を操作するユーザエージェントのための方法を提供します。連絡先を追加または削除、および連絡先の現在のセットを照会することができることができます。登録は、管理者の政策の結果として変更することができます。ユーザーは、詐欺の疑いがある場合、彼らはすべての要求を受信できないように、例えば、その登録を削除することができます。リフレッシュされない場合は登録にもいくつかの時間後に期限切れ。

Registrations represent a dynamic piece of state maintained by the network. There are many cases in which user agents would like to know about changes to the state of registrations. The SIP Events Framework [2] defines a generic framework for subscription to, and notification of, events related to SIP systems. The framework defines the methods SUBSCRIBE and NOTIFY, and introduces the notion of a package. A package is a concrete application of the event framework to a particular class of events. Packages have been defined for user presence [9], for example. This specification defines a package for registration state.


2. Terminology

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 [3] and indicate requirement levels for compliant implementations.

この文書では、キーワード "MUST"、 "MUST NOT"、 "REQUIRED"、 "NOT SHALL"、 "推奨"、 "すべきではない" "べきである" "ないものと"、 "MAY"、および "オプション" BCP 14、RFC 2119に記載されているように、[3]に解釈されるべきであり、対応する実装の要求レベルを示します。

3. Usage Scenarios

There are many applications of this event package. A few are documented here for illustrative purposes.


3.1. Forcing Re-Authentication
3.1. 強制再認証

It is anticipated that many SIP devices will be wireless devices that will be always-on, and therefore, continually registered to the network. Unfortunately, history has shown that these devices can be compromised. To deal with this, an administrator will want to terminate or shorten a registration, and ask the device to re-register so it can be re-authenticated. To do this, the device subscribes to the registration event package for the address-of-record that it is registering contacts against. When the administrator shortens registration (for example, when fraud is suspected) the registration server sends a notification to the device. It can then re-register and re-authenticate itself. If it cannot re-authenticate, the expiration will terminate shortly thereafter.


3.2. Composing Presence
3.2. 作曲プレゼンス

An important concept to understand is the relationship between this event package and the event package for user presence [9]. User presence represents the willingness and ability of a user to communicate with other users on the network. It is composed of a set of contact addresses that represent the various means for contacting the user. Those contact addresses might represent the contact address for voice, for example. Typically, the contact address listed for voice will be an address-of-record. The status of that contact (whether its open or closed) may depend on any number of factors, including the state of any registrations against that address-of-record. As a result, registration state can be viewed as an input to the process which determines the presence state of a user. Effectively, registration state is "raw" data, which is combined with other information about a user to generate a document that describes the user's presence.


In fact, this event package allows for a presence server to be separated from a SIP registration server, yet still use registration information to construct a presence document. When a presence server receives a presence subscription for some user, the presence server itself would generate a subscription to the registration server for the registration event package. As a result, the presence server would learn about the registration state for that user, and it could use that information to generate presence documents.


3.3. Welcome Notices
3.3. ようこそ注意事項

A common service in current mobile networks are "welcome notices". When the user turns on their phone in a foreign country, they receive a message that welcomes them to the country, and provides information on transportation services, for example.


In order to implement this service in a SIP system, an application server can subscribe to the registration state of the user. When the user turns on their phone, the phone will generate a registration. This will result in a notification being sent to the application that the user has registered. The application can then send a SIP MESSAGE request [10] to the device, welcoming the user and providing any necessary information.

SIPシステムでは、このサービスを実現するために、アプリケーションサーバは、ユーザの登録状態に加入することができます。ユーザーが自分の携帯電話をオンにすると、電話は登録を生成します。これは、ユーザーが登録したアプリケーションに送信された通知になります。アプリケーションは、ユーザを歓迎し、必要な情報を提供する、デバイスにSIP MESSAGE要求[10]を送ることができます。

4. Package Definition

This section fills in the details needed to specify an event package as defined in Section 4.4 of [2].


4.1. Event Package Name
4.1. イベントパッケージ名

The SIP Events specification requires package definitions to specify the name of their package or template-package.

SIP Events仕様は、そのパッケージまたはテンプレートパッケージの名前を指定するには、パッケージの定義が必要です。

The name of this package is "reg". As specified in [2], this value appears in the Event header present in SUBSCRIBE and NOTIFY requests.

このパッケージの名前は、「REG」です。 [2]で指定されるように、この値は、SUBSCRIBE及びNOTIFYリクエスト中に存在するイベントヘッダに現れます。



Event: reg


4.2. Event Package Parameters
4.2. イベントパッケージのパラメータ

The SIP Events specification requires package and template-package definitions to specify any package specific parameters of the Event header that are used by it.


No package specific Event header parameters are defined for this event package.


4.3. SUBSCRIBE Bodies
4.3. ボディをSUBSCRIBE

The SIP Events specification requires package or template-package definitions to define the usage, if any, of bodies in SUBSCRIBE requests.

SIP Events仕様は、もしあればSUBSCRIBEリクエストで体で、使用法を定義するために、パッケージまたはテンプレート・パッケージの定義が必要です。

A SUBSCRIBE for registration events MAY contain a body. This body would serve the purpose of filtering the subscription. The definition of such a body is outside the scope of this specification.


A SUBSCRIBE for the registration package MAY be sent without a body. This implies that the default registration filtering policy has been requested. The default policy is:


o Notifications are generated every time there is any change in the state of any of the registered contacts for the resource being subscribed to. Those notifications only contain information on the contacts whose state has changed.


o Notifications triggered from a SUBSCRIBE contain full state (the list of all contacts bound to the address-of-record).


Of course, the server can apply any policy it likes to the subscription.


4.4. Subscription Duration
4.4. サブスクリプション期間

The SIP Events specification requires package definitions to define a default value for subscription durations, and to discuss reasonable choices for durations when they are explicitly specified.

SIP Events仕様は、サブスクリプション期間のデフォルト値を定義するためにパッケージ定義を必要とし、それらを明示的に指定された場合の期間のための合理的な選択肢を議論します。

Registration state changes as contacts are created through REGISTER requests, and then time out due to lack of refresh. Their rate of change is therefore related to the typical registration expiration. Since the default expiration for registrations is 3600 seconds, the default duration of subscriptions to registration state is slightly longer, 3761 seconds. This helps avoid any potential problems with coupling of subscription and registration refreshes. Of course, clients MAY include an Expires header in the SUBSCRIBE request asking for a different duration.


4.5. NOTIFY Bodies
4.5. ボディをNOTIFY

The SIP Events specification requires package definitions to describe the allowed set of body types in NOTIFY requests, and to specify the default value to be used when there is no Accept header in the SUBSCRIBE request.


The body of a notification of a change in registration state contains a registration information document. This document describes some or all of the contacts associated with a particular address-of-record. All subscribers and notifiers MUST support the "application/reginfo+xml" format described in Section 5. The subscribe request MAY contain an Accept header field. If no such header field is present, it has a default value of "application/reginfo+xml". If the header field is present, it MUST include "application/reginfo+xml", and MAY include any other types capable of representing registration information.

登録状態の変更の通知の本文は、登録情報の文書が含まれています。この文書では、特定のアドレス・オブ・レコードに関連付けられた連絡先の一部またはすべてを説明しています。すべての加入者及び届出者は、リクエストがAcceptヘッダーフィールドを含むかもしれサブスクライブ第5節に記載された「アプリケーション/ REGINFO + XML」フォーマットをサポートしなければなりません。このようなヘッダフィールドが存在しない場合、それは「アプリケーション/ REGINFO + XML」のデフォルト値を有しています。ヘッダフィールドが存在する場合、それは「アプリケーション/ REGINFO + XML」を含まなければなりません、及び登録情報を表すことができる任意の他のタイプを含むかもしれません。

Of course, the notifications generated by the server MUST be in one of the formats specified in the Accept header field in the SUBSCRIBE request.


4.6. Notifier Processing of SUBSCRIBE Requests
4.6. SUBSCRIBE要求の通知処理

The SIP Events framework specifies that packages should define any package-specific processing of SUBSCRIBE requests at a notifier, specifically with regards to authentication and authorization.


Registration state can be sensitive information. Therefore, all subscriptions to it SHOULD be authenticated and authorized before approval. Authentication MAY be performed using any of the techniques available through SIP, including digest, S/MIME, TLS or other transport specific mechanisms [1]. Authorization policy is at the discretion of the administrator, as always. However, a few recommendations can be made.

登録状態は、機密情報とすることができます。そのため、それへのすべてのサブスクリプションは、承認前に認証され、承認されるべきです。認証は、ダイジェストを含むS / MIME、TLSまたは他のトランスポート固有のメカニズム、SIPを介して利用可能な技術のいずれかを用いて行うことができる[1]。認可ポリシーは、いつものように、管理者の裁量です。しかし、いくつかの提言を行うことができます。

It is RECOMMENDED that a user be allowed to subscribe to their own registration state. Such subscriptions are useful when there are many devices that represent a user, each of which needs to learn the registration state of the other devices. We also anticipate that applications and automata will frequently be subscribers to the registration state. In those cases, authorization policy will typically be provided ahead of time.


4.7. Notifier Generation of NOTIFY Requests
4.7. NOTIFYリクエストの通知の生成

The SIP Event framework requests that packages specify the conditions under which notifications are sent for that package, and how such notifications are constructed.


To determine when a notifier should send notifications of changes in registration state, we define a finite state machine (FSM) that represents the state of a contact for a particular address-of-record. Transitions in this state machine MAY result in the generation of notifications. These notifications will carry information on the new state and the event which triggered the state change. It is important to note that this FSM is just a model of the registration state machinery maintained by a server. An implementation would map its own state machines to this one in an implementation-specific manner.


4.7.1. The Registration State Machine
4.7.1. 登録ステートマシン

The underlying state machine for a registration is shown in Figure 1. The machine is very simple. An instance of this machine is associated with each address-of-record. When there are no contacts registered to the address-of-record, the state machine is in the init state. It is important to note that this state machine exists, and is well-defined, for each address-of-record in the domain, even if there are no contacts registered to it. This allows a user agent to subscribe to an address-of-record, and learn that there are no contacts registered to it. When the first contact is registered to that address-of-record, the state machine moves from init to active.


                           |            |
                           |    Init    |
                           |            |
                           |            |
                           |   Active   |
                           |            |
                           |            |
                           | Terminated |
                           |            |

Figure 1: Registration State Machine


As long as there is at least one contact bound to the address-of-record, the state machine remains in the active state. When the last contact expires or is removed, the registration transitions to terminated. From there, it immediately transitions back to the init state. This transition is invisible, in that it MUST NOT ever be reported to a subscriber in a NOTIFY request.


This allows for an implementation optimization whereby the registrar can destroy the objects associated with the registration state machine once it enters the terminated state and a NOTIFY has been sent. Instead, the registrar can assume that, if the objects for that state machine no longer exist, the state machine is in the init state.


In addition to this state machine, each registration is associated with a set of contacts, each of which is modeled with its own state machine. Unlike the FSM for the address-of-record, which exists even when no contacts are registered, the per-contact FSM is instantiated when the contact is registered, and deleted when it is removed. The diagram for the per-contact state machine is shown in Figure 2. This FSM is identical to the registration state machine in terms of its states, but has many more transition events.


When a new contact is added, the FSM for it is instantiated, and it moves into the active state. Because of that, the init state here is transient. There are two ways in which it can become active. One is through an actual SIP REGISTER request (corresponding to the registered event), and the other is when the contact is created administratively, or through some non-SIP means (the created event).

新しい連絡先が追加されると、それのためのFSMがインスタンス化され、それはアクティブ状態に移行します。そのため、ここでは初期状態は一時的です。それがアクティブになることができる2つの方法があります。一つは、(登録されたイベントに対応する)は、実際のSIP REGISTERリクエストを介して行われ、コンタクトが管理、またはいくつかの非SIP手段(作成されたイベント)を介して作成されたときに他のです。

                                 |      | refreshed
                                 |      | shortened
                                 V      |
    +------------+            +------------+            +------------+
    |            |            |            |            |            |
    |    Init    |----------->|   Active   |----------->| Terminated |
    |            |            |            |            |            |
    +------------+ registered +------------+ expired    +------------+
                   created                   deactivated

Figure 2: Contact State Machine


The FSM remains in the active state so long as the contact is bound to the address-of-record. When a contact is refreshed through a REGISTER request, the FSM stays in the same state, but a refreshed event is generated. Likewise, when an administrator modifies the expiration time of a binding (without deleting the binding) to trigger the contact to re-register and possibly re-authenticate, the FSM stays in the active state, but a shortened event is generated.


When the contact is no longer bound to the address-of-record, the FSM moves to the terminated state, and once a NOTIFY is sent, the state machine is destroyed. As a result, the terminated state is effectively transient. There are several reasons this can happen. The first is an expiration, which occurs when the contact was not refreshed by a REGISTER request. The second reason is deactivated. This occurs when the administrator has removed the contact as a valid binding, but still wishes the client to attempt to re-register the contact. In contrast, the rejected event occurs when an active contact is removed by the administrator, but re-registrations will not help to re-establish it. This might occur if a user does not pay their bills, for example. The probation event occurs when an active contact is removed by the administrator, and the administrator wants the client to re-register, but to do so at a later time. The unregistered event occurs when a REGISTER request sets the expiration time of that contact to zero.

接触がもはやアドレスのレコードにバインドされている場合は、FSMは終了ステートに移行していないし、NOTIFYが送られると、ステートマシンは破壊されます。その結果、終了状態が効果的に一時的です。この現象が発生することができますいくつかの理由があります。最初の接触は、REGISTERリクエストによってリフレッシュされなかった場合に発生する有効期限です。第二の理由は停止されます。これにより、管理者は有効なバインディングとして連絡先を削除した場合に発生しますが、それでも連絡先を再登録しようとするクライアントを希望します。対照的に、能動的接触が管理者によって削除されたときに、拒否されたイベントが発生しますが、再登録を再確立することに役立つことはありません。ユーザは、例えば、彼らの手形を支払わない場合、これが発生する可能性があります。アクティブな接触が管理者によって削除されたときに保護観察イベントが発生し、管理者がクライアントを再登録するのではなく、後でそうすることを望んでいます。 REGISTER要求がゼロにその連絡先の有効期限を設定した場合未登録事象が発生します。

4.7.2. Applying the state machine
4.7.2. ステートマシンを適用します

The server MAY generate a notification to subscribers when any event occurs in either the address-of-record or per-contact state machines, except for the transition from terminated to init in the address-of-record state machine. As noted above, a notification MUST NOT be sent in this case. For other transitions, whether the server sends a notification or not is policy dependent. However, several guidelines are defined.


As a general rule, when a subscriber is authorized to receive notifications about a set of registrations, it is RECOMMENDED that notifications contain information about those contacts which have changed state (and thus triggered a notification), instead of delivering the current state of every contact in all registrations. However, notifications triggered as a result of a fetch operation (a SUBSCRIBE with Expires of 0) SHOULD result in the full state of all contacts for all registrations to be present in the NOTIFY.


4.8. Subscriber Processing of NOTIFY Requests
4.8. NOTIFYリクエストのサブスクライバ処理

The SIP Events framework expects packages to specify how a subscriber processes NOTIFY requests in any package specific ways, and in particular, how it uses the NOTIFY requests to construct a coherent view of the state of the subscribed resource. Typically, the NOTIFY will only contain information for contacts whose state has changed. To construct a coherent view of the total state of all registrations, the subscriber will need to combine NOTIFYs received over time. The details of this process depend on the document format used to convey registration state. Section 5 outlines the process for the application/reginfo+xml format.

SIPイベントフレームワークでは、パッケージは、加入者のプロセスは、それがサブスクライブされたリソースの状態のコヒーレントなビューを構築するNOTIFYリクエストをどのように使用するか、任意のパッケージの特定の方法で、特にNOTIFY要求する方法を指定することを期待します。一般的に、唯一の状態変更された連絡先の情報が含まれていますNOTIFY。すべての登録の合計状態のコヒーレントなビューを構築するために、加入者が時間をかけて受け取ったのNOTIFYを結合する必要があります。このプロセスの詳細については、登録状態を伝えるために使用される文書の形式によって異なります。第5章では、アプリケーション/ REGINFO + xml形式のためのプロセスの概要を説明します。

4.9. Handling of Forked Requests
4.9. フォーク要求の処理

The SIP Events framework mandates that packages indicate whether or not forked SUBSCRIBE requests can install multiple subscriptions.


Registration state is normally stored in some repository (whether it be co-located with a proxy/registrar or in a separate database). As such, there is usually a single place where the contact information for a particular address-of-record is resident. This implies that a subscription for this information is readily handled by a single element with access to this repository. There is, therefore, no compelling need for a subscription to registration information to fork. As a result, a subscriber MUST NOT create multiple dialogs as a result of a single subscription request. The required processing to guarantee that only a single dialog is established is described in Section 4.4.9 of the SIP Events framework [2].


4.10. Rate of Notifications
4.10. 通知のレート

The SIP Events framework mandates that packages define a maximum rate of notifications for their package.


For reasons of congestion control, it is important that the rate of notifications not become excessive. As a result, it is RECOMMENDED that the server not generate notifications for a single subscriber at a rate faster than once every 5 seconds.


4.11. State Agents
4.11. 州のエージェント

The SIP Events framework asks packages to consider the role of state agents in their design.


State agents have no role in the handling of this package.


5. Registration Information
5.1. Structure of Registration Information
5.1. 登録情報の構造

Registration information is an XML document [4] that MUST be well-formed and SHOULD be valid. Registration information documents MUST be based on XML 1.0 and MUST be encoded using UTF-8. This specification makes use of XML namespaces for identifying registration information documents and document fragments. The namespace URI for elements defined by this specification is a URN [5], using the namespace identifier 'ietf' defined by [6] and extended by [7]. This URN is:

登録情報は、XML文書良く形成しなければならないと有効である必要があり[4]です。登録情報の文書は、XML 1.0に基づいていなければならないとUTF-8を使用してエンコードされなければなりません。この仕様は、登録情報の文書や文書の断片を識別するためのXML名前空間を使用しています。この仕様によって定義された要素の名前空間URIは、名前空間識別子「IETF」[6]で定義され、[7]によって拡張を使用して、URN [5]です。このURNは以下のとおりです。



A registration information document begins with the root element tag "reginfo". It consists of any number of "registration" sub-elements, each of which contains the registration state for a particular address-of-record. The registration information for a particular address-of-record MUST be contained within a single "registration" element; it cannot be spread across multiple "registration" elements within a document. Other elements from different namespaces MAY be present for the purposes of extensibility; elements or attributes from unknown namespaces MUST be ignored. There are two attributes associated with the "reginfo" element, both of which MUST be present:


        version: This attribute allows the recipient of registration
                 information documents to properly order them.  Versions
                 start at 0, and increment by one for each new document
                 sent to a subscriber.  Versions are scoped within a subscription.  Versions MUST be representable using a
                 32 bit integer.

state: This attribute indicates whether the document contains the full registration state, or whether it contains only information on those registrations which have changed since the previous document (partial).


Note that the document format explicitly allows for conveying information on multiple addresses-of-record. This enables subscriptions to groups of registrations, where such a group is identified by some kind of URI. For example, a domain might define as a subscribable resource that generates notifications when the state of any address-of-record in the domain changes.


The "registration" element has a list of any number of "contact" sub-elements, each of which contains information on a single contact. Other elements from different namespaces MAY be present for the purposes of extensibility; elements or attributes from unknown namespaces MUST be ignored. There are three attributes associated with the "registration" element, all of which MUST be present:


aor: The aor attribute contains a URI which is the address-of-record this registration refers to.


id: The id attribute identifies this registration. It MUST be unique amongst all other id attributes present in other registration elements conveyed to the subscriber within the scope of their subscription. In particular, if two URI identifying an address-of-record differ after their canonicalization according to the procedures in step 5 of Section 10.3 of RFC 3261 [1], the id attributes in the "registration" elements for those addresses-of-record MUST differ. Furthermore, the id attribute for a "registration" element for a particular address-of-record MUST be the same across all notifications sent within the subscription.

ID:id属性は、この登録を識別します。これは、それらのサブスクリプションの範囲内で加入者に搬送他の登録要素中に存在する他のすべてのid属性の中で一意でなければなりません。具体的には、2 URIアドレス・オブ・レコードを識別するは、RFC 3261のセクション10.3のステップ5の手順に従って、それらの正規化した後に異なる場合、[1]、IDは、これらのアドレス・オブ・レコードの「登録」要素の属性異なっていなければなりません。さらに、特定のアドレス・オブ・レコードの「登録」要素のid属性は、サブスクリプション内で送信されるすべての通知の間で同じでなければなりません。

state: The state attribute indicates the state of the registration. The valid values are "init", "active" and "terminated".


The "contact" element contains a "uri" element, an optional "display-name" element, and an optional "unknown-param" element. Other elements from different namespaces MAY be present for the purposes of extensibility; elements or attributes from unknown namespaces MUST be ignored. There are several attributes associated with the "contact" element which MUST be present:


id: The id attribute identifies this contact. It MUST be unique amongst all other id attributes present in other contact elements conveyed to the subscriber within the scope of their subscription. In particular, if the URI for two contacts differ (based on the URI comparison rules in RFC 3261 [1]), the id attributes for those contacts MUST differ. However, unlike the id attribute for an address-of-record, if the URI for two contacts are the same, their id attributes SHOULD be the same across notifications. This requirement is at SHOULD strength, and not MUST strength, since it is difficult to compute such an id as a function of the URI without retaining additional state. No hash function applied to the URI can, in fact, meet a MUST requirement. This is because equality of the SIP URI is not transitive. However, a hash function which includes unknown URI parameters (that is, any not defined in RFC 3261), will always result in a value that is the different if two URI are different, and usually the same if the URI are equal.

ID:id属性は、この連絡先を特定します。これは、それらのサブスクリプションの範囲内で加入者に搬送他の接触要素中に存在する他のすべてのid属性の中で一意でなければなりません。二つの接点のためのURIは、([1] RFC 3261にURI比較ルールに基づいて)異なる場合、特に、それらの連絡先のID属性が異なっていなければなりません。 2人の連絡先のURIが同じである場合は、アドレス・オブ・レコードのid属性とは異なり、彼らのid属性は、通知の間で同じである必要があります。追加の状態を保持することなくURIの関数としてそのようなIDを計算することは困難であるので、この要件は、SHOULD強度、及びてはいけません強度です。 URIに適用されませハッシュ関数は、実際には、MUST要件を満たすことはできません。 SIP URIの平等が推移ではないためです。しかし、未知のURIパラメータ(すなわち、RFC 3261で定義されていないいずれかである)を含むハッシュ関数は、常にURIが等しい場合、2つのURIが異なる、通常同じである場合に異なる値をもたらすであろう。

state: The state attribute indicates the state of the contact. The valid values are "active" and "terminated".


event: The event attribute indicates the event which caused the contact state machine to go into its current state. Valid values are registered, created, refreshed, shortened, expired, deactivated, probation, unregistered and rejected.


If the event attribute has a value of shortened, the "expires" attribute MUST be present. It contains an unsigned long integer which indicates the number of seconds remaining until the binding is due to expire. This attribute MAY be included with any event attribute value for which the state of the contact is active.


If the event attribute has a value of probation, the "retry-after" attribute MUST be present. It contains an unsigned long integer which indicates the amount of seconds after which the owner of the contact is expected to retry its registration.


The optional "duration-registered" attribute conveys the amount of time that the contact has been bound to the address-of-record, in seconds. The optional "q" attribute conveys the relative priority of this contact compared to other registered contacts. The optional "callid" attribute contains the current Call-ID carried in the REGISTER that was last used to update this contact, and the optional "cseq" attribute contains the last CSeq value present in a REGISTER request that updated this contact value.


The "uri" element contains the URI associated with that contact. The "display-name" element contains the display name for the contact. The "display-name" element MAY contain the xml:lang attribute to indicate the language of the display name.

「URI」の要素は、その連絡先に関連付けられたURIが含まれています。 「表示名」の要素は、連絡先の表示名が含まれています。 「表示名」の要素は、XMLを含むかもしれ:langは表示名の言語を示すために属性。

The "unknown-param" element is used to convey contact header field parameters that are not specified in RFC 3261. One example are the user agent capability parameters specified in [11]. Each "unknown-param" element describes a single contact header field parameter. The name of the parameter is contained in the mandatory name attribute of the "unknown-param" element, and the value of the parameter is the content of the "unknown-param" element. For contact header field parameters that have no value, the content of the "unknown-param" element is empty.

「未知PARAM」要素は、RFC 3261の一例で指定されていないコンタクトヘッダフィールドパラメータを伝えるために使用されている[11]で指定されたユーザエージェントの能力パラメータです。各「未知のparam」要素は、単一のコンタクトヘッダフィールドのパラメータを記述します。パラメータの名前は、「未知のparam」要素の必須のname属性に含まれ、パラメータの値が「不明-PARAM」要素の内容です。値を持たないコンタクトヘッダフィールドパラメータについては、「未知PARAM」要素の内容は空です。

5.2. Computing Registrations from the Document
5.2. ドキュメントからのコンピューティング登録

Typically, the NOTIFY for registration information will only contain information about those contacts whose state has changed. To construct a coherent view of the total state of all registrations, a subscriber will need to combine NOTIFYs received over time. The subscriber maintains a table for each registration it receives information for. Each registration is uniquely identified by the "id" attribute in the "registration" element. Each table contains a row for each contact in that registration. Each row is indexed by the unique ID for that contact. It is conveyed in the "id" attribute of the "contact" element. The contents of each row contain the state of that contact as conveyed in the "contact" element. The tables are also associated with a version number. The version number MUST be initialized with the value of the "version" attribute from the "reginfo" element in the first document received. Each time a new document is received, the value of the local version number, and the "version" attribute in the new document, are compared. If the value in the new document is one higher than the local version number, the local version number is increased by one, and the document is processed. If the value in the document is more than one higher than the local version number, the local version number is set to the value in the new document, the document is processed, and the subscriber SHOULD generate a refresh request to trigger a full state notification. If the value in the document is less than the local version, the document is discarded without processing.

一般的に、唯一の状態変更されているそれらの連絡先に関する情報が含まれます、登録情報を通知します。すべての登録の合計状態のコヒーレントなビューを構築するために、加入者が時間をかけて受け取ったのNOTIFYを結合する必要があります。加入者は、それがための情報を受信し、各登録用テーブルを維持します。各登録は、一意「登録」要素の「id」属性によって識別されます。各テーブルは、登録中の各連絡先の行を含んでいます。各行は、その連絡先の一意のIDによってインデックスされます。それは、「接触」要素の「id」属性に搬送されます。 「接触」要素に搬送される各列の内容は、その連絡先の状態を含みます。テーブルもバージョン番号に関連付けられています。バージョン番号は、受信した最初の文書で「REGINFO」要素から「バージョン」属性の値で初期化されなければなりません。新しいドキュメントが受信されるたびに、新しい文書内のローカルバージョン番号、および「バージョン」属性の値は、比較されます。新しい文書の値がローカルのバージョン番号より1高い場合、ローカルのバージョン番号が1増加され、ドキュメントが処理されます。文書内の値がローカルのバージョン番号より以上高い場合、ローカルのバージョン番号が新しい文書内の値に設定され、文書が処理され、加入者は、完全な状態の通知をトリガするためにリフレッシュ要求を生成する必要があります。文書内の値がローカルのバージョンよりも小さい場合は、文書が処理せずに廃棄されます。

The processing of the document depends on whether it contains full or partial state. If it contains full state, indicated by the value of the "state" attribute in the "reginfo" element, the contents of all tables associated with this subscription are flushed. They are re-populated from the document. A new table is created for each "registration" element, and a new row in each table is created for each "contact" element. If the reginfo contains partial state, as indicated by the value of the "state" attribute in the "reginfo" element, the document is used to update the existing tables. For each "registration" element, the subscriber checks to see if a table exists for that registration. This check is done by comparing the value in the "id" attribute of the "registration" element with the ID associated with the table. If a table doesn't exist for that registration, one is created. For each "contact" element in the registration, the subscriber checks to see whether a row exists for that contact. This check is done by comparing the ID in the "id" attribute of the "contact" element with the ID associated with the row. If the contact doesn't exist in the table, a row is added, and its state is set to the information from that "contact" element. If the contact does exist, its state is updated to be the information from that "contact" element. If a row is updated or created, such that its state is now terminated, that entry MAY be removed from the table at any time.

文書の処理は、それが完全または部分的な状態が含まれているかどうかに依存します。それは完全な状態が含まれている場合は、「REGINFO」要素の「状態」属性の値によって示され、このサブスクリプションに関連するすべてのテーブルの内容がフラッシュされます。これらは、文書から再移入されます。新しいテーブルは、各「登録」要素のために作成され、各テーブルに新しい行がそれぞれ「接触」要素のために作成されます。 REGINFOが部分状態が含まれている場合、「REGINFO」要素の「状態」属性の値によって示されるように、ドキュメントは、既存のテーブルを更新するために使用されます。各「登録」要素について、加入者は、テーブルはその登録のために存在するかどうかを確認します。このチェックは、テーブルに関連付けられているIDと「登録」要素の「id」属性の値を比較することによって行われます。テーブルは、その登録のために存在しない場合は、1が作成されます。登録中の各「接触」要素について、加入者は、行がその接触のために存在するかどうかをチェックします。このチェックは、行に関連付けられたIDとの「接触」要素の「ID」属性にIDを比較することによって行われます。接触がテーブルに存在しない場合、行が追加され、その状態はその「接触」要素からの情報に設定されています。接触が存在しない場合、その状態は、「接触」要素からの情報に更新されます。行が更新または作成されている場合は、その状態が今終了したように、そのエントリは、いつでもテーブルから除去することができます。

5.3. Example
5.3. 例

The following is an example registration information document:


<?xml version="1.0"?> <reginfo xmlns="urn:ietf:params:xml:ns:reginfo" xmlns:xsi="" version="0" state="full"> <registration aor="" id="as9" state="active"> <contact id="76" state="active" event="registered" duration-registered="7322" q="0.8"> <uri></uri> </contact> <contact id="77" state="terminated" event="expired" duration-registered="3600" q="0.5"> <uri></uri> </contact> </registration> </reginfo>

<?xml version = "1.0"?> <のxmlns = REGINFOのxmlns "壷:IETF:のparams:XML::NSをREGINFO":XSI = "" バージョン= "0" 状態= "フル"> <登録AOR = "" ID = "AS9" 状態= "アクティブ"> <連絡先ID = "76" 状態= "アクティブ" イベントは= "登録します"持続登録= "7322" Q = "0.8"> <URI> </ URI> </接点> <連絡先ID = "77" 状態= "終了" イベント= "期限切れ"持続登録= "3600" Q = "0.5"> <URI> </ URI> </接触> </登録> </ REGINFO>

5.4. XML Schema
5.4. XMLスキーマ

The following is the schema definition of the reginfo format:


<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:ietf:params:xml:ns:reginfo" xmlns:tns="urn:ietf:params:xml:ns:reginfo" xmlns:xs="" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- This import brings in the XML language attribute xml:lang--> <xs:import namespace="" schemaLocation=""/> <xs:element name="reginfo"> <xs:complexType> <xs:sequence> <xs:element ref="tns:registration" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="version" type="xs:nonNegativeInteger" use="required"/> <xs:attribute name="state" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="full"/> <xs:enumeration value="partial"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="registration"> <xs:complexType> <xs:sequence> <xs:element ref="tns:contact" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="aor" type="xs:anyURI" use="required"/> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="state" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="init"/> <xs:enumeration value="active"/> <xs:enumeration value="terminated"/> </xs:restriction>

xmlns "REGINFO壷:IETF:のparams:XML::NS":の<?xml version = "1.0" エンコード= "UTF-8"?> <XSスキーマのtargetNamespace = TNS = "壷:IETF:のparams:XML:NS :REGINFO」のxmlns:XS = "" のelementFormDefault = " "資格" attributeFormDefault =" 修飾されていない> < - このインポートは、XML言語の属性xmlにもたらします:!lang-- > <XS:インポート名前空間= "" のschemaLocation = "" /> <XS:要素名= "REGINFO"> <XS:complexTypeの> <XS:シーケンス> <XS:要素REF = "TNS:登録" のminOccurs = "0" のmaxOccurs = "無制限" /> <XS:任意の名前空間= "##他"のprocessContents =" 緩い」のminOccurs = "0" のmaxOccurs = "無制限" /> </ XS:シーケンス> <XS:属性名= "バージョン" タイプ= "XS:NonNegativeIntegerの" 使用= "必要" /> <XS:名前= "状態" 使用属性= "必要"> <XS:単純> <XS:制限ベース= "XS:文字列"> <XS:列挙値= "フル" /> <XS:列挙値= "部分" / > </ XS:制限> </ XS:単純> </ XS:属性> </ XS:complexTypeの> </ XS:要素> <XS:要素名= "登録"> <XS:complexTypeの> <XS:配列> <XS:要素REF = "TNS:接触" のminOccurs = "0" のmaxOccurs = "無制限" /> <XS:任意の名前空間= "##その他" のprocessContents = = "0" のmaxOccurs = "無制限" /> </ XS "LAX" のminOccurs:シーケンス> <XS:属性名= "AOR" タイプ= "XS:anyURIの" 使用= "必須" /> <XS:属性名= "ID" タイプ= "XS:文字列" の使用は、= /> <XS "必要": "必要" 属性名= "状態" の使用を=> <XS:単純> <XS:制限ベース= "XS:文字列"> < XS:列挙値= "INIT" /> <XS:列挙値= "アクティブ" /> <XS:列挙値= "終了" /> </ XS:制限>

</xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="contact"> <xs:complexType> <xs:sequence> <xs:element name="uri" type="xs:anyURI"/> <xs:element name="display-name" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="xml:lang" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="unknown-param" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="state" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="active"/> <xs:enumeration value="terminated"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="event" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="registered"/> <xs:enumeration value="created"/> <xs:enumeration value="refreshed"/> <xs:enumeration value="shortened"/> <xs:enumeration value="expired"/> <xs:enumeration value="deactivated"/> <xs:enumeration value="probation"/>

</ XS:単純> </ XS:属性> </ XS:complexTypeの> </ XS:要素> <XS:要素名= "接触"> <XS:complexTypeの> <XS:シーケンス> <XS:要素名= "URI" タイプ= "XS:anyURIの" /> <XS:要素名= "表示名" のminOccurs = "0"> <XS:complexTypeの> <XS:simpleContentを> <XS:増設ベース= "XS:文字列" > <XS:属性REF = "XML:LANG" 使用= "オプション" /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素> <XS:要素名=」不明-PARAM "のminOccurs = "0" のmaxOccurs = "無制限"> <XS:complexTypeの> <XS:simpleContentを> <XS:拡張ベース= "XS:文字列"> <XS:属性名= "名前" タイプ=" XS :文字列」使用= "必須" /> </ XS:拡張> </ XS:simpleContentを> </ XS:complexTypeの> </ XS:要素は> <XS:任意の名前空間= " "LAX ##他の"=のprocessContents" minOccurs = "0" のmaxOccurs = "無制限" /> </ XS:シーケンス> <XS:属性名= "状態" 使用は= "必要"> <XS:単純> <XS:制限ベース= "XS:文字列"> <XS:列挙値= "アクティブ" /> <XS:列挙値= "終了" /> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性名= "EV ENT」の使用は= "必要"> <XS:単純> <XS:制限ベース= "XS:文字列"> <XS:列挙値= "登録" /> <XS:列挙値= "作成" /> <XS:列挙値= "リフレッシュ" /> <XS:列挙値= "短縮" /> <XS:列挙値= "期限切れ" /> <XS:列挙値= "非アクティブ化" /> <XS:列挙値は= "執行猶予" />

<xs:enumeration value="unregistered"/> <xs:enumeration value="rejected"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="duration-registered" type="xs:unsignedLong"/> <xs:attribute name="expires" type="xs:unsignedLong"/> <xs:attribute name="retry-after" type="xs:unsignedLong"/> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="q" type="xs:string"/> <xs:attribute name="callid" type="xs:string"/> <xs:attribute name="cseq" type="xs:unsignedLong"/> </xs:complexType> </xs:element> </xs:schema>

<XS:列挙値= "未登録" /> <XS:列挙値= / "拒否"> </ XS:制限> </ XS:単純> </ XS:属性> <XS:属性名= "持続登録"タイプ=" XS:なunsignedLong "/> <XS:属性名=" 期限が切れ」タイプ= "XS:なunsignedLong" /> <XS:属性名= "リトライ-後" タイプ= "XS:なunsignedLong" /> <XS :属性名= "ID" タイプ= "XS:文字列" 使用= "必要" /> <XS:属性名= "Q" タイプ= "XS:文字列" /> <XS:属性名= "callid" タイプ= "XS:文字列" /> <XS:属性名= "のCSeq" タイプ= "XS:なunsignedLong" /> </ XS:complexTypeの> </ XS:要素> </ XS:スキーマ>

6. Example Call Flow
        User              Registrar          Application
          |                   |(1) SUBSCRIBE      |
          |                   |Event:reg          |
          |                   |<------------------|
          |                   |(2) 200 OK         |
          |                   |------------------>|
          |                   |(3) NOTIFY         |
          |                   |------------------>|
          |                   |(4) 200 OK         |
          |                   |<------------------|
          |(5) REGISTER       |                   |
          |------------------>|                   |
          |(6) 200 OK         |                   |
          |<------------------|                   |
          |                   |(7) NOTIFY         |
          |                   |------------------>|
          |                   |(8) 200 OK         |
          |                   |<------------------|
          |(9) MESSAGE        |                   |

Figure 3: Example Call Flow


This section provides an example call flow, shown in Figure 3. It shows an implementation of the welcome notice application described in Section 3.3. First, the application SUBSCRIBEs to the registration event package for the desired user (1):


SUBSCRIBE SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnashds7 From:;tag=123aa9 To: Call-ID: CSeq: 9887 SUBSCRIBE Contact: Event: reg Max-Forwards: 70 Accept: application/reginfo+xml

SUBSCRIBE SIP / 2.0経由:SIP / 2.0 / UDP;ブランチ= z9hG4bKnashds7から;タグ= 123aa9へ:SIP:joe@example.comコール-ID:9987@app.example.comのCSeq:9887は、連絡先をSUBSCRIBE:SIP:app.example.comイベント:REGマックス・フォワード:70受け入れ:アプリケーション/ REGINFO + XMLを

The registrar (which is acting as the notifier for the registration event package) generates a 200 OK to the SUBSCRIBE:

(登録イベントパッケージの通知として機能している)レジストラは、SUBSCRIBEに200 OKを生成します。

SIP/2.0 200 OK Via: SIP/2.0/UDP;branch=z9hG4bKnashds7 ;received= From:;tag=123aa9 To:;tag=xyzygg Call-ID: CSeq: 9987 SUBSCRIBE Contact: Expires: 3600

SIP / 2.0 200 OK経由:SIP / 2.0 / UDP;ブランチ= z9hG4bKnashds7は、受信=から;タグ= 123aa9へ。タグ= xyzyggコールID:9987@app.example.comのCSeq:9987問い合わせSUBSCRIBE:一口:server19.example.com有効期限:3600

The registrar then generates a notification (3) with the current state. Since there is no active registration, the state of the registration is "init":


NOTIFY SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnasaii From:;tag=xyzygg To:;tag=123aa9 Call-ID: CSeq: 1288 NOTIFY Contact: Event: reg Max-Forwards: 70 Content-Type: application/reginfo+xml Content-Length: ... SIP / 2.0経由:SIP NOTIFYのSIP / 2.0 / UDP;ブランチ= z9hG4bKnasaiiから;タグ= xyzyggへ。タグ= 123aa9のCall-ID:9987@app.example.comのCSeq:1288連絡先をNOTIFY:SIP:server19.example.comイベント:REGマックス・フォワード:70のContent-Type:アプリケーション/ REGINFO + XMLコンテンツ長.. 。

<?xml version="1.0"?> <reginfo xmlns="urn:ietf:params:xml:ns:reginfo" version="0" state="full"> <registration aor="" id="a7" state="init" /> </reginfo>

<?xml version = "1.0"?> <のxmlns = REGINFO "壷:IETF:のparams:XML:NSを:REGINFO" バージョン= "0" の状態= "フル"> <登録AOR =「 "ID =" A7" 状態= "INIT" /> </ REGINFO>

Later on, the user registers (5):


REGISTER SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnaaff From:;tag=99a8s To: Call-ID: CSeq: 9976 REGISTER Contact:

REGISTER SIP / 2.0経由:SIP / 2.0 / UDP;ブランチ= z9hG4bKnaaffから;タグ= 99a8sへ:SIP:joe@example.comコールID :88askjda9@pc34.example.comのCSeq:9976 REGISTERお問い合わせ

This results in a NOTIFY being generated to the application (7):


NOTIFY SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnasaij From:;tag=xyzygg To:;tag=123aa9 Call-ID: CSeq: 1289 NOTIFY Contact: Event: reg Max-Forwards: 70 Content-Type: application/reginfo+xml Content-Length: ... SIP / 2.0経由:SIP NOTIFYのSIP / 2.0 / UDP;ブランチ= z9hG4bKnasaijから;タグ= xyzyggへ。タグ= 123aa9のCall-ID:9987@app.example.comのCSeq:1289連絡先をNOTIFY:SIP:server19.example.comイベント:REGマックス・フォワード:70のContent-Type:アプリケーション/ REGINFO + XMLコンテンツ長.. 。

<?xml version="1.0"?> <reginfo xmlns="urn:ietf:params:xml:ns:reginfo" version="1" state="partial"> <registration aor="" id="a7" state="active"> <contact id="76" state="active" event="registered" duration-registered="0"> <uri></uri> </contact> </registration> </reginfo>

<?xml version = "1.0"?> <のxmlns = REGINFO "壷:IETF:のparams:XML:NSを:REGINFO" バージョン= "1" の状態= "部分"> <登録AOR =「 "ID =" A7" 状態= "アクティブ"> <連絡先ID = "76" 状態= "アクティブ" イベント= "登録された" 持続登録= "0"> <URI> < / URI> </連絡先> </登録> </ REGINFO>

The application can then send its instant message to the device (9):


MESSAGE SIP/2.0 Via: SIP/2.0/UDP;branch=z9hG4bKnashds8 From:;tag=123aa10 To: Call-ID: CSeq: 82779 MESSAGE Max-Forwards: 70 Content-Type: text/plain Content-Length: ...

MESSAGEの SIP / 2.0経由:SIP / 2.0 / UDP;ブランチ= z9hG4bKnashds8から;タグ= 123aa10へ:SIP:ジョー@例。 COM呼び出し-ID:9988@app.example.comのCSeq:82779 MESSAGEマックス・フォワード:70のContent-Type:text / plainのコンテンツの長さ:...

Welcome to the service!


7. Security Considerations

Security considerations for SIP event packages are discussed in RFC 3265 [2], and those considerations apply here.

SIPイベントパッケージのセキュリティの考慮事項は、RFC 3265で説明されている[2]、及びそれらの考慮事項が適用されます。

Registration information is sensitive, potentially private, information. Subscriptions to this event package SHOULD be authenticated and authorized according to local policy. Some policy guidelines are suggested in Section 4.6. In addition, notifications SHOULD be sent in such a way to ensure confidentiality, message integrity and verification of subscriber identity, such as sending subscriptions and notifications using a SIPS URL or protecting the notification bodies with S/MIME.

登録情報は敏感な、潜在的にプライベートな情報です。このイベントパッケージへのサブスクリプションは、ローカルポリシーに基づいて認証され、承認されるべきです。一部のポリシーガイドラインは、4.6節で提案されています。また、通知は、SIPSのURLを使用してサブスクリプションと通知を送信またはS / MIMEで通知体を保護するように、機密性、メッセージの完全性及び加入者識別の検証を確実にするような方法で送信されるべきです。

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

This document registers a new SIP Event Package, a new MIME type (application/reginfo+xml), and a new XML namespace.

この文書は、新しいSIPイベントパッケージ、新しいMIMEタイプ(アプリケーション/ REGINFO + XML)、および新しいXML名前空間を登録します。

8.1. SIP Event Package Registration
8.1. SIPイベントパッケージの登録

Package name: reg


Type: package


Contact: Jonathan Rosenberg, <>


Published Specification: RFC 3680.

公開された仕様:RFC 3680。

8.2. application/reginfo+xml MIME Registration
8.2. アプリケーション/ REGINFO +のxml MIME登録

MIME media type name: application


MIME subtype name: reginfo+xml

MIMEサブタイプ名:REGINFO + xmlの

Mandatory parameters: none


Optional parameters: Same as charset parameter application/xml as specified in RFC 3023 [8].

オプションのパラメータ:[8] RFC 3023で指定され、application / xmlのcharsetパラメータと同じです。

Encoding considerations: Same as encoding considerations of application/xml as specified in RFC 3023 [8].

符号化の考慮事項:アプリケーション/ XMLの符号化の考慮と同じRFC 3023に指定されている[8]。

Security considerations: See Section 10 of RFC 3023 [8] and Section 7 of this specification.

セキュリティの考慮事項:RFC 3023のセクション10 [8]、この仕様のセクション7を参照してください。

Interoperability considerations: none.


Published specification: This document.


Applications which use this media type: This document type is being used in notifications to alert SIP user agents that their registrations have expired and must be redone.


Additional Information:


Magic Number: None


File Extension: .rif or .xml


Macintosh file type code: "TEXT"


Personal and email address for further information: Jonathan Rosenberg, <>


Intended usage: COMMON


Author/Change controller: The IETF.


8.3. URN Sub-Namespace Registration for urn:ietf:params:xml:ns:reginfo
8.3. 骨壷のためのURNサブ名前空間の登録:IETF:のparams:XML:NS:REGINFO

This section registers a new XML namespace, as per the guidelines in [7].


URI: The URI for this namespace is urn:ietf:params:xml:ns:reginfo.


Registrant Contact: IETF, SIMPLE working group, <>, Jonathan Rosenberg <>.




BEGIN <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" ""> <html xmlns=""> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>Registration Information Namespace</title> </head> <body> <h1>Namespace for Registration Information</h1> <h2>urn:ietf:params:xml:ns:reginfo</h2> <p>See <a href=""> RFC3680</a>.</p> </body> </html> END

BEGINの<?xml version = "1.0"?> <!DOCTYPE htmlのをPUBLIC! " - // W3C // DTD XHTML Basicの1.0 // EN"「 basic10.dtd "> <HTMLのxmlns =" "> <HEAD> <META HTTP-当量=" コンテンツタイプ "コンテンツ=" text / htmlの;のcharset =イソ8859-1" /> <タイトル>登録情報名前空間</ TITLE> </ HEAD> <BODY> <H1>登録情報のための名前空間</ H1> <H2> URN:IETF:のparams:XML:NS:REGINFO </ H2> <P> <a href=""> RFC3680 </a>を参照してください。</ P> </ body> </ html>この終わり

9. References
9.1. Normative References
9.1. 引用規格

[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]ローゼンバーグ、J.、Schulzrinneと、H.、カマリロ、G.、ジョンストン、A.、ピーターソン、J.、スパークス、R.、ハンドレー、M.、およびE.学生、 "SIP:セッション開始プロトコル"、 RFC 3261、2002年6月。

[2] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002.

[2]ローチ、A.、 "セッション開始プロトコル(SIP)特異的イベント通知"、RFC 3265、2002年6月。

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

[3]ブラドナーの、S.、 "要件レベルを示すRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月を。

[4] W. W. W. C. (W3C), "Extensible markup language (xml) 1.0." The XML 1.0 spec can be found at

[4] W. W. W. C.(W3C)、 "拡張マークアップ言語(XML)1.0"。 XML 1.0仕様では、で見つけることができます。

[5] Moats, R., "URN Syntax", RFC 2141, May 1997.

[5]堀、R.、 "URN構文"、RFC 2141、1997年5月を。

[6] Moats, R., "A URN Namespace for IETF Documents", RFC 2648, August 1999.

[6]堀、R.、 "IETF文書のURN名前空間"、RFC 2648、1999年8月。

[7] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.

[7] Mealling、M.、 "IETF XMLレジストリ"、BCP 81、RFC 3688、2004年1月。

[8] Murata, M., St. Laurent, S. and D. Kohn, "XML media types", RFC 3023, January 2001.

[8]村田、M.、サンローラン、S.及びD.コーン、 "XMLのメディアタイプ"、RFC 3023、2001年1月。

9.2. Informative References
9.2. 参考文献

[9] Rosenberg, J., "Session initiation protocol (SIP) extensions for presence", Work In Progress.

[9]ローゼンバーグ、J.、 "セッション開始プロトコル(SIP)の存在のための拡張"、進行中の作業。

[10] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C. and D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging", RFC 3428, December 2002.

[10]キャンベル、B.、ローゼンバーグ、J.、Schulzrinneと、H.、のHuitema、C.及びD. Gurle、 "インスタントメッセージングのためのセッション開始プロトコル(SIP)拡張子"、RFC 3428、2002年12月。

[11] Schulzrinne, H. and J. Rosenberg, "Session initiation protocol (SIP) caller preferences and callee capabilities", Work In Progress.

[11] Schulzrinneと、H.およびJ.ローゼンバーグ、「セッション開始プロトコル(SIP)発呼者の選好と被呼機能」、進行中の作業。

[12] Mayer, G. and M. Beckmann, "Registration event package", Work In Progress.


10. Contributors

This document is based heavily on the registration event package originally proposed by Beckmann and Mayer in [12]. They can be contacted at:


Georg Mayer Siemens AG Hoffmannstr. 51 Munich 81359 Germany

ゲオルク・メイヤーシーメンスAG Hoffmannstr。 51ミュンヘン81359ドイツ



Mark Beckmann Siemens AG P.O. Box 100702 Salzgitter 38207 Germany

マーク・ベックマンシーメンスAGの私書箱ボックス100702 38207ザルツギッタードイツ



Rohan Mahy provided editorial work in order to progress this specification. His contact address is:


Rohan Mahy Cisco Systems 170 West Tasman Dr, MS: SJC-21/3/3


Phone: +1 408 526 8570 EMail:

電話:+1 408 526 8570 Eメール

11. Acknowledgements

We would like to thank Dean Willis for his support.


12. Author's Address

Jonathan Rosenberg dynamicsoft 600 Lanidex Plaza Parsippany, NJ 07054

ジョナサン・ローゼンバーグdynamicsoft 600 Lanidexプラザパーシッパニー、NJ 07054



13. Full Copyright Statement

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78 and except as set forth therein, the authors retain all their rights.

著作権(C)インターネット協会(2004)。この文書では、BCP 78に含まれる権利、ライセンスおよび制限があり、そこに記載された以外、作者は彼らのすべての権利を保有します。


この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットソサエティおよびインターネット・エンジニアリング・タスク・フォース放棄すべての保証、明示または、(もしあれば)後援ISに設けられています。黙示、情報の利用は、特定の目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証含むがこれらに限定されません。

Intellectual Property


The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at


The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at

IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。



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

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。