[要約] RFC 4730は、SIPイベントパッケージであるKPMLに関するものであり、DTMF信号の送信や受信を可能にするためのプロトコルを提供します。このRFCの目的は、SIPセッション中にキープレス刺激を処理するための標準化された方法を提供することです。

Network Working Group                                          E. Burger
Request for Comments: 4730                      Cantata Technology, Inc.
Category: Standards Track                                       M. Dolly
                                                               AT&T Labs
                                                           November 2006
        

A Session Initiation Protocol (SIP) Event Package for Key Press Stimulus (KPML)

キープレス刺激用のセッション開始プロトコル(SIP)イベントパッケージ(KPML)

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 IETF Trust (2006).

Copyright(c)The IETF Trust(2006)。

Abstract

概要

This document describes a SIP Event Package "kpml" that enables monitoring of Dual Tone Multi-Frequency (DTMF) signals and uses Extensible Markup Language (XML) documents referred to as Key Press Markup Language (KPML). The kpml Event Package may be used to support applications consistent with the principles defined in the document titled "A Framework for Application Interaction in the Session Initiation Protocol (SIP)". The event package uses SUBSCRIBE messages and allows for XML documents that define and describe filter specifications for capturing key presses (DTMF Tones) entered at a presentation-free User Interface SIP User Agent (UA). The event package uses NOTIFY messages and allows for XML documents to report the captured key presses (DTMF tones), consistent with the filter specifications, to an Application Server. The scope of this package is for collecting supplemental key presses or mid-call key presses (triggers).

このドキュメントでは、デュアルトーン多頻度(DTMF)信号の監視を可能にするSIPイベントパッケージ「KPML」について説明し、キープレスマークアップ言語(KPML)と呼ばれる拡張可能なマークアップ言語(XML)ドキュメントを使用します。KPMLイベントパッケージは、「セッション開始プロトコル(SIP)におけるアプリケーションインタラクションのフレームワーク」というタイトルのドキュメントで定義されている原則と一致するアプリケーションをサポートするために使用できます。イベントパッケージは、購読メッセージを使用し、プレゼンテーションのないユーザーインターフェイスSIPユーザーエージェント(UA)に入力されたキープレス(DTMFトーン)をキャプチャするためのフィルター仕様を定義および説明するXMLドキュメントを許可します。イベントパッケージでは、Notifyメッセージを使用し、XMLドキュメントがキャプチャされたキープレス(DTMFトーン)を報告して、フィルター仕様と一致してアプリケーションサーバーに報告します。このパッケージの範囲は、補足キープレスまたはミッドコールキープレス(トリガー)を収集するためのものです。

Table of Contents

目次

   1. Introduction ....................................................4
      1.1. Conventions Used in This Document ..........................5
   2. Protocol Overview ...............................................5
   3. Key Concepts ....................................................6
      3.1. Subscription Duration ......................................6
      3.2. Timers .....................................................7
      3.3. Pattern Matches ............................................8
      3.4. Digit Suppression .........................................12
      3.5. User Input Buffer Behavior ................................14
      3.6. DRegex ....................................................16
           3.6.1. Overview ...........................................16
           3.6.2. Operation ..........................................18
      3.7. Monitoring Direction ......................................20
      3.8. Multiple Simultaneous Subscriptions .......................20
   4. Event Package Formal Definition ................................21
      4.1. Event Package Name ........................................21
      4.2. Event Package Parameters ..................................21
      4.3. SUBSCRIBE Bodies ..........................................22
      4.4. Subscription Duration .....................................22
      4.5. NOTIFY Bodies .............................................22
      4.6. Subscriber Generation of SUBSCRIBE Requests ...............22
      4.7. Notifier Processing of SUBSCRIBE Requests .................23
      4.8. Notifier Generation of NOTIFY Requests ....................25
      4.9. Subscriber Processing of NOTIFY Requests ..................27
      4.10. Handling of Forked Requests ..............................28
      4.11. Rate of Notifications ....................................28
      4.12. State Agents and Lists ...................................28
      4.13. Behavior of a Proxy Server ...............................29
   5. Formal Syntax ..................................................29
      5.1. DRegex ....................................................29
      5.2. KPML Request ..............................................30
      5.3. KPML Response .............................................33
   6. Enumeration of KPML Status Codes ...............................34
   7. IANA Considerations ............................................34
      7.1. SIP Event Package Registration ............................34
      7.2. MIME Media Type application/kpml-request+xml ..............35
      7.3. MIME Media Type application/kpml-response+xml .............35
      7.4. URN Sub-Namespace Registration for
           urn:ietf:xml:ns:kpml-request ..............................35
      7.5. URN Sub-Namespace Registration for
           urn:ietf:xml:ns:kpml-response .............................36
      7.6. KPML Request Schema Registration ..........................37
      7.7. KPML Response Schema Registration .........................37
   8. Security Considerations ........................................37
   9. Examples .......................................................38
      9.1. Monitoring for Octothorpe .................................38
         9.2. Dial String Collection ....................................39
   10. Call Flow Examples ............................................40
      10.1. Supplemental Digits ......................................40
      10.2. Multiple Applications ....................................45
   11. References ....................................................52
      11.1. Normative References .....................................52
      11.2. Informative References ...................................53
   Appendix A.  Contributors .........................................54
   Appendix B.  Acknowledgements .....................................54
        
1. Introduction
1. はじめに

This document describes a SIP Event Package "kpml" that enables monitoring of key presses and utilizes XML documents referred to as Key Press Markup Language (KPML). KPML is a markup [14] that enables presentation-free User Interfaces as described in the Application Interaction Framework [15]. The Key Press Stimulus Package is a SIP Event Notification Package [5] that uses the SUBSCRIBE and NOTIFY methods of SIP. The subscription filter and notification report bodies use the Keypad Markup Language, KPML.

このドキュメントでは、キープレスの監視を可能にし、キープレスマークアップ言語(KPML)と呼ばれるXMLドキュメントを使用するSIPイベントパッケージ「KPML」について説明します。KPMLは、アプリケーションインタラクションフレームワーク[15]で説明されているように、プレゼンテーションのないユーザーインターフェイスを可能にするマークアップ[14]です。キープレス刺激パッケージは、SIPイベント通知パッケージ[5]で、サブスクライブとSIPのメソッド通知を使用します。サブスクリプションフィルターおよび通知レポート本体は、キーパッドマークアップ言語KPMLを使用します。

The "kpml" event package requires the definition of two new MIME types, two new URN sub-namespaces, and two schemas for the KPML Request and the KPML Response. The scope of this package is for collecting supplemental key presses or mid-call key presses (triggers). This capability allows an Application Server service provider to monitor (filter) for a set of DTMF patterns at a SIP User Agent located in either an end-user device or a gateway.

「KPML」イベントパッケージでは、KPML要求とKPML応答の2つの新しいMIMEタイプ、2つの新しいURNサブネームスペース、2つのスキーマの定義が必要です。このパッケージの範囲は、補足キープレスまたはミッドコールキープレス(トリガー)を収集するためのものです。この機能により、アプリケーションサーバーサービスプロバイダーは、エンドユーザーデバイスまたはゲートウェイのいずれかにあるSIPユーザーエージェントでDTMFパターンのセットを監視(フィルター)できます。

In particular, the "kpml" event package enables "dumb phones" and "gateways" that receive signals from dumb phones to report user key-press events. Colloquially, this mechanism provides for "digit reporting" or "Dual Tone Multi-Frequency (DTMF) reporting." The capability eliminates the need for "hair-pinning" (routing media into and then out of the same device) through a Media Server or duplicating all the DTMF events, when an Application Server needs to trigger mid-call service processing on DTMF digit patterns.

特に、「KPML」イベントパッケージでは、「ダムホン」と「ゲートウェイ」を有効にして、ダムフォンから信号を受信してユーザーキープレスイベントを報告します。口語的には、このメカニズムは「桁レポート」または「デュアルトーン多周波(DTMF)レポートを提供します。この機能により、アプリケーションサーバーがDTMFデジットパターンで中間コールサービス処理をトリガーする必要がある場合、メディアサーバーを介して「ヘアピニング」(同じデバイスにメディアをルーティングしてから同じデバイスから外します)の必要性を排除します。。

A goal of KPML is to fit in an extremely small memory and processing footprint.

KPMLの目標は、非常に小さなメモリと処理フットプリントに収まることです。

The name of the XML document, KPML, reflects its legacy support role. The public switched telephony network (PSTN) accomplished signaling by transporting DTMF tones in the bearer channel (in-band signaling) from the user terminal to the local exchange.

XMLドキュメントの名前であるKPMLは、そのレガシーサポートの役割を反映しています。パブリックスイッチングテレフォニーネットワーク(PSTN)は、ユーザー端末からローカルエクスチェンジにBearerチャネル(インバンドシグナリング)でDTMFトーンを輸送することにより、シグナリングを達成しました。

Voice-over-IP networks transport in-band signals with actual DTMF waveforms or RFC 2833 [10] packets. In RFC 2833, the signaling application inserts RFC 2833 named signal packets as well as, or instead of, generating tones in the media path. The receiving application receives the signal information in the media stream.

実際のDTMF波形またはRFC 2833 [10]パケットを使用したボイスオーバーIPネットワークインバンド信号のトランスポート。RFC 2833では、シグナリングアプリケーションは、メディアパスでトーンを生成するだけでなく、またはその代わりに、信号パケットという名前のRFC 2833を挿入します。受信アプリケーションは、メディアストリーム内の信号情報を受信します。

RFC 2833 tones are ideal for conveying telephone-events point-to-point in a Real-time Transport Protocol (RTP) stream, as in the context of straightforward sessions like a 2-party call or a simple, centrally mixed conference. However, there are other environments where additional or alternative requirements are needed. These other environments include protocol translation and complex call control.

RFC 2833トーンは、2パーティのコールやシンプルな中心的な会議などの簡単なセッションのコンテキストのように、リアルタイムトランスポートプロトコル(RTP)ストリームで電話ポイントツーポイントを伝えるのに理想的です。ただし、追加または代替の要件が必要な他の環境があります。これらの他の環境には、プロトコル翻訳と複雑なコールコントロールが含まれます。

An interested application could request notifications of every key press. However, many of the use cases for such signaling show that most applications are interested in only one or a few keystrokes. Thus a mechanism is needed for specifying to the user's interface what stimuli the application requires.

興味のあるアプリケーションは、すべてのキープレスの通知を要求できます。ただし、このようなシグナル伝達のユースケースの多くは、ほとんどのアプリケーションが1つまたは少数のキーストロークのみに関心があることを示しています。したがって、ユーザーのインターフェイスにアプリケーションに必要な刺激を指定するためには、メカニズムが必要です。

1.1. Conventions Used in This Document
1.1. このドキュメントで使用されている規則

RFC 2119 [1] provides the interpretations for the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" found in this document.

RFC 2119 [1]は、キーワード「必須」、「必須」、「必須」、「shall」、「suff」、 "nove"、 "buld"、 "becommended"、 "may"の解釈を提供します。、およびこのドキュメントにある「オプション」。

The Application Interaction Framework document [15] provides the interpretations for the terms "User Device", "SIP Application", and "User Input". This document uses the term "Application" and "Requesting Application" interchangeably with "SIP Application".

アプリケーションインタラクションフレームワークドキュメント[15]は、「ユーザーデバイス」、「SIPアプリケーション」、および「ユーザー入力」という用語の解釈を提供します。このドキュメントでは、「アプリケーション」と「アプリケーションの要求」という用語を「SIPアプリケーション」と交換可能に使用します。

Additionally, the Application Interaction Framework document discusses User Device Proxies. A common instantiation of a User Device Proxy is a Public Switched Telephone Network (PSTN) gateway. Because the normative behavior of a presentation-free User Interface is identical for a presentation-free SIP User Agent and a presentation-free User Device Proxy, this document uses "User Device" for both cases.

2. Protocol Overview
2. プロトコルの概要

The "kpml" event package uses explicit subscription notification requests using the SIP SUBSCRIBE and NOTIFY methods. An Application that wants to collect digits creates an application/kpml-request+xml document with the digit patterns of interest to the Application and places this document in its SUBSCRIBE request. SIP SUBSCRIBE messages are routed to the User Interface using standard SIP request routing. KPML Subscriptions do not fork. The KPML request contained in the SUBSCRIBE message identifies the target media stream by referencing the dialog identifiers corresponding to the session responsible for the media stream. Once a subscription is established, the User Interface sends application/kpml-response+xml documents in NOTIFY requests when digits are collected or when timeouts or errors occur.

「KPML」イベントパッケージは、SIPサブスクライブおよび通知メソッドを使用して、明示的なサブスクリプション通知要求を使用します。数字を収集したいアプリケーションは、アプリケーションに興味のある数字パターンを備えたアプリケーション/KPML-Request XMLドキュメントを作成し、このドキュメントをサブスクライブリクエストに配置します。SIPサブスクライブメッセージは、標準のSIPリクエストルーティングを使用してユーザーインターフェイスにルーティングされます。KPMLサブスクリプションはフォークしません。サブスクライブメッセージに含まれるKPML要求は、メディアストリームの責任のあるセッションに対応するダイアログ識別子を参照することにより、ターゲットメディアストリームを識別します。サブスクリプションが確立されると、ユーザーインターフェイスは、桁が収集されたとき、またはタイムアウトまたはエラーが発生したときに通知リクエストでアプリケーション/KPML応答XMLドキュメントを送信します。

A KPML subscription can be persistent or one-shot. Persistent requests are active until the subscription terminates, the Application replaces the request, the Application deletes the request by sending a null document on the dialog, or the Application explicitly deletes the subscription by sending a SUBSCRIBE with an expires value of zero (0).

KPMLサブスクリプションは、永続的またはワンショットにすることができます。サブスクリプションが終了するまで、永続的な要求はアクティブになり、アプリケーションがリクエストを置き換えるか、アプリケーションはダイアログにnullドキュメントを送信してリクエストを削除するか、アプリケーションはゼロ(0)の有効な値でサブスクライブを送信してサブスクリプションを明示的に削除します。

One-shot requests terminate the subscription upon the receipt of DTMF values that provide a match. The "persist" KPML element specifies whether the subscription remains active for the duration specified in the SUBSCRIBE message or if it automatically terminates upon a pattern match.

ワンショットリクエストは、一致を提供するDTMF値を受け取ったときにサブスクリプションを終了します。「永続」KPML要素は、サブスクライブメッセージで指定された期間、サブスクリプションがアクティブのままであるかどうか、またはパターンマッチで自動的に終了するかどうかを指定します。

NOTIFY messages can contain XML documents. If the User Interface matches a digitmap, the NOTIFY message (response) contains an XML document that indicates the User Input detected and whether the User Interface suppressed the representation of User Input, such as tones, or RFC 2833, from the media streams. If the User Interface encountered an error condition, such as a timeout, this will also be reported.

通知メッセージにはXMLドキュメントを含めることができます。ユーザーインターフェイスがデジットマップと一致する場合、Notifyメッセージ(応答)には、ユーザー入力が検出されたXMLドキュメントと、メディアストリームからのトーンやRFC 2833などのユーザー入力の表現が抑制されたかどうかを示します。ユーザーインターフェイスがタイムアウトなどのエラー条件に遭遇した場合、これも報告されます。

3. Key Concepts
3. 重要な概念
3.1. Subscription Duration
3.1. サブスクリプション期間

KPML recognizes two types of subscriptions: one-shot and persistent. Persistent subscriptions have two sub-types: continuous notify and single-notify.

KPMLは、ワンショットと永続的な2種類のサブスクリプションを認識します。永続的なサブスクリプションには、連続通知とsingle-notifyの2つのサブタイプがあります。

One-shot subscriptions terminate after a pattern match occurs and a report is issued in a NOTIFY message. If the User Interface detects a key press stimulus that triggers a one-shot KPML event, then the User Interface (notifier) MUST set the "Subscription-State" in the NOTIFY message to "terminated". At this point, the User Interface MUST consider the subscription expired.

ワンショットサブスクリプションは、パターンマッチが発生し、通知メッセージでレポートが発行された後に終了します。ユーザーインターフェイスがワンショットKPMLイベントをトリガーするキープレス刺激を検出した場合、ユーザーインターフェイス(notifier)は、[終了]に「サブスクリプションステート」を「サブスクリプション状態」に設定する必要があります。この時点で、ユーザーインターフェイスはサブスクリプションの有効期限が切れていると考える必要があります。

Persistent subscriptions remain active at the User Interface, even after a match. For continuous-notify persistent subscriptions, the User Interface will emit a NOTIFY message whenever the User Input matches a subscribed pattern. For single-notify persistent subscriptions, the user device will emit a NOTIFY message at the first match, but will not emit further NOTIFY messages until the Application issues a new subscription request on the subscription dialog.

永続的なサブスクリプションは、試合後でもユーザーインターフェイスでアクティブなままです。継続的な承認の永続的なサブスクリプションの場合、ユーザーインターフェイスは、ユーザー入力がサブスクライブパターンと一致するたびにNotifyメッセージを放出します。Single-notify Persistentサブスクリプションの場合、ユーザーデバイスは最初の試合でNotifyメッセージを放出しますが、アプリケーションがサブスクリプションダイアログに新しいサブスクリプションリクエストを発行するまで、さらに通知メッセージを発しません。

NOTE: The single-notify persistent subscription enables lock-step (race-free) quarantining of User Input between different digit maps.

注:Single-notify永続的なサブスクリプションにより、異なる数字マップ間のユーザー入力のロックステップ(レースフリー)検疫が可能になります。

The "persist" attribute to the <pattern> tag in the KPML subscription body affects the lifetime of the subscription.

KPMLサブスクリプション本体の<pattern>タグに対する「永続的な」属性は、サブスクリプションの寿命に影響します。

If the "persist" attribute is "one-shot", then once there is a match (or no match is possible), the subscription ends after the User Interface notifies the Application.

「永続的な」属性が「ワンショット」である場合、一致したら(または一致しない)、ユーザーインターフェイスがアプリケーションに通知した後にサブスクリプションが終了します。

If the "persist" attribute is "persist" or "single-notify", then the subscription ends when the Application explicitly ends it or the User Interface terminates the subscription.

「永続的な」属性が「永続的」または「単一ノチー」である場合、アプリケーションが明示的に終了するか、ユーザーインターフェイスがサブスクリプションを終了するとサブスクリプションが終了します。

If the User Interface does not support persistent subscriptions, it returns a NOTIFY message with the KPML status code set to 531. If there are digits in the buffer and the digits match an expression in the SUBSCRIBE filter, the User Interface prepares the appropriate NOTIFY response message.

ユーザーインターフェイスが永続的なサブスクリプションをサポートしていない場合、KPMLステータスコードが531に設定された通知メッセージを返します。バッファに数字があり、桁がサブスクライブフィルターの式と一致する場合、ユーザーインターフェイスは適切な通知応答を準備しますメッセージ。

The values of the "persist" attribute are case sensitive.

「永続的な」属性の値は、ケースに敏感です。

3.2. Timers
3.2. タイマー

To address the various key press collection scenarios, three timers are defined. They are the extra, critical, and inter-digit timers.

さまざまなキープレスコレクションシナリオに対処するために、3つのタイマーが定義されています。それらは、余分な、批判的で、桁の間のタイマーです。

o The inter-digit timer is the maximum time to wait between digits. Note: unlike Media Gateway Control Protocol (MGCP) [11] or H.248 [12], there is no start timer, as that concept does not apply in the KPML context.

o 桁間タイマーは、数字間で待機する最大時間です。注:Media Gateway Controlプロトコル(MGCP)[11]またはH.248 [12]とは異なり、KPMLコンテキストではその概念が適用されないため、開始タイマーはありません。

o The critical timer is the time to wait for another digit if the collected digits can match more than one potential pattern.

o 重要なタイマーは、収集された数字が複数の潜在的なパターンに一致する場合、別の数字を待つ時間です。

o The extra timer is the time to wait for another digit if the collected digits can only match one potential pattern, but a longer match for this pattern is possible.

o

The User Interface MAY support an inter-digit timeout value. This is the amount of time the User Interface will wait for User Input before returning a timeout error result on a partially matched pattern. The application can specify the inter-digit timeout as an integer number of milliseconds by using the "interdigittimer" attribute to the <pattern> tag. The default is 4000 milliseconds. If the User Interface does not support the specification of an inter-digit timeout, the User Interface MUST silently ignore the specification. If the User Interface supports the specification of an inter-digit timeout, but not to the granularity specified by the value presented, the User Interface MUST round up the requested value to the closest value it can support.

ユーザーインターフェイスは、桁の間のタイムアウト値をサポートする場合があります。これは、部分的に一致したパターンでタイムアウトエラー結果を返す前に、ユーザーインターフェイスがユーザー入力を待つ時間です。アプリケーションは、<pattern>タグに「Interdigittimer」属性を使用することにより、整数のミリ秒として桁内タイムアウトを指定できます。デフォルトは4000ミリ秒です。ユーザーインターフェイスが桁内タイムアウトの仕様をサポートしていない場合、ユーザーインターフェイスは仕様を静かに無視する必要があります。ユーザーインターフェイスが桁間タイムアウトの仕様をサポートしているが、提示された値で指定された粒度に対してではない場合、ユーザーインターフェイスは要求された値をサポートできる最も近い値にまとめる必要があります。

The purpose of the inter-digit timeout is to protect applications from starting to match a pattern, yet never returning a result. This can occur, for example, if the user accidentally enters a key that begins to match a pattern. However, since the user accidentally entered the key, the rest of the pattern never comes. Moreover, when the user does enter a pattern, since they have already entered a key, the pattern may not match or may not match as expected. Likewise, consider the case where the user thinks they entered a key press, but the User Interface does not detect the key. This could occur when collecting ten digits, but the device actually only receives 9. In this case, the User Interface will wait forever for the tenth key press, while the user becomes frustrated wondering why the application is not responding.

ディジット間タイムアウトの目的は、アプリケーションがパターンの一致を開始しないように保護することですが、結果を返すことはありません。これは、たとえば、ユーザーが誤ってパターンと一致し始めるキーに入ると発生する可能性があります。ただし、ユーザーが誤ってキーを入力したため、パターンの残りの部分は決してありません。さらに、ユーザーが既にキーを入力しているため、ユーザーがパターンを入力すると、パターンが一致しないか、予想どおりに一致しない場合があります。同様に、ユーザーがキープレスを入力したが、ユーザーインターフェイスがキーを検出しないと考えている場合を検討してください。これは10桁を収集するときに発生する可能性がありますが、デバイスは実際には9のみを受信します。この場合、ユーザーインターフェイスは10番目のキープレスを永久に待ちますが、ユーザーはアプリケーションが応答しない理由を不満になります。

The User Interface MAY support a critical-digit timeout value. This is the amount of time the User Interface will wait for another key press when it already has a matched <regex> but there is another, longer <regex> that may also match the pattern. The application can specify the critical-digit timeout as an integer number of milliseconds by using the "criticaldigittimer" attribute to the <pattern> tag. The default is 1000 milliseconds.

ユーザーインターフェイスは、クリティカル桁のタイムアウト値をサポートする場合があります。これは、ユーザーインターフェイスが既に<Regex>を既に持っているときに別のキープレスを待つ時間ですが、パターンと一致する可能性のある別の、長い<regex>があります。アプリケーションは、<pattern>タグに「critivaldigittimer」属性を使用することにより、整数数のミリ秒としてクリティカル桁のタイムアウトを指定できます。デフォルトは1000ミリ秒です。

The purpose of the critical-digit timeout is to allow the application to collect longer matches than the shortest presented. This is unlike MGCP [11], where the shortest match gets returned. For example, if the application registers for the patterns "0011", "011", "00", and "0", the critical-digit timeout enables the User Interface to distinguish between "0", "00", "011", and "0011". Without this feature, the only value that the User Interface can detect is "0".

クリティカル桁のタイムアウトの目的は、提示された最短のマッチよりも長い一致を収集できるようにすることです。これは、最短の一致が返されるMGCP [11]とは異なります。たとえば、アプリケーションがパターン「0011」、「011」、「00」、および「0」のパターンを登録する場合、クリティカル桁のタイムアウトにより、ユーザーインターフェイスが「0」、「00」、「011」を区別できます。、および「0011」。この機能がなければ、ユーザーインターフェイスが検出できる値は「0」です。

The User Interface MAY support an extra-digit timeout value. This is the amount of time the User Interface will wait for another key press when it already has matched the longest <regex>. The application can specify the extra-digit timeout as an integer number of milliseconds by using the "extradigittimer" attribute to the <pattern> tag. The default is 500 milliseconds. If there is no enterkey specified, then the User Interface MAY default the exteradigittimer to zero.

ユーザーインターフェイスは、桁外のタイムアウト値をサポートする場合があります。これは、ユーザーインターフェイスが最長の<regex>を既に一致させている場合、別のキープレスを待つ時間です。このアプリケーションは、<pattern>タグに「adadigittimer」属性を使用することにより、整数数のミリ秒として桁外のタイムアウトを指定できます。デフォルトは500ミリ秒です。EnterKeyが指定されていない場合、ユーザーインターフェイスはExteradigittimerをゼロにデフォルトでデフォルトする場合があります。

The purpose of the extra-digit timeout is to allow the User Interface to collect the enterkey. Without this feature, the User Interface would match the pattern, and the enterkey would be buffered and returned as the next pattern.

桁外のタイムアウトの目的は、ユーザーインターフェイスがEnterKeyを収集できるようにすることです。この機能がなければ、ユーザーインターフェイスはパターンと一致し、EnterKeyはバッファリングされ、次のパターンとして返されます。

3.3. Pattern Matches
3.3. パターンマッチ

During the subscription lifetime, the User Interface may detect a key press stimulus that triggers a KPML event. In this case, the User Interface (notifier) MUST return the appropriate KPML document.

サブスクリプションの寿命の間、ユーザーインターフェイスは、KPMLイベントをトリガーするキープレス刺激を検出する場合があります。この場合、ユーザーインターフェイス(Notifier)は、適切なKPMLドキュメントを返す必要があります。

The pattern matching logic works as follows. KPML User Interfaces MUST follow the logic presented in this section so that different implementations will perform deterministically on the same KPML document given the same User Input.

パターンマッチングロジックは次のように機能します。KPMLユーザーインターフェイスは、このセクションで表示されているロジックに従って、同じユーザー入力が与えられた同じKPMLドキュメントで異なる実装が決定的に実行されるようにする必要があります。

A kpml request document contains a <pattern> element with a series of <regex> tags. Each <regex> element specifies a potential pattern for the User Interface to match. The Section 5.1 describes the DRegex, or digit regular expression, language.

KPMLリクエストドキュメントには、一連の<regex>タグを備えた<pattern>要素が含まれています。各<regex>要素は、ユーザーインターフェイスが一致する潜在的なパターンを指定します。セクション5.1では、DREGEX、または桁の正規表現、言語について説明します。

The pattern match algorithm matches the longest regular expression. This is the same mode as H.248.1 [12] and not the mode presented by MGCP [11]. The pattern match algorithm choice has an impact on determining when a pattern matches. Consider the following KPML document.

パターンマッチアルゴリズムは、最長の正規表現と一致します。これは、H.248.1 [12]と同じモードであり、MGCP [11]によって提示されたモードではありません。パターンマッチアルゴリズムの選択は、パターンがいつ一致するかを決定することに影響を与えます。次のKPMLドキュメントを検討してください。

   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern>
       <regex>0</regex>
       <regex>011</regex>
     </pattern>
   </kpml-request>
        

Figure 1: Greedy Matching

図1:貪欲なマッチング

In Figure 1, if we were to match on the first found pattern, the string "011" would never match. This happens because the "0" rule would match first.

図1では、最初に見つかったパターンに一致する場合、文字列「011」は決して一致しません。これは、「0」ルールが最初に一致するために起こります。

While this behavior is what most applications desire, it does come at a cost. Consider the following KPML document snippet.

この動作はほとんどのアプリケーションが望むものですが、コストがかかります。次のKPMLドキュメントスニペットを検討してください。

     <regex>x{7}</regex>
     <regex>x{10}</regex>
        

Figure 2: Timeout Matching

図2:タイムアウトマッチング

Figure 2 shows a typical North American dial plan. From an application perspective, users expect a seven-digit number to respond quickly, not waiting the typical inter-digit critical timer (usually four seconds). Conversely, the user does not want the system to cut off their ten-digit number at seven digits because they did not enter the number fast enough.

図2は、典型的な北米のダイヤル計画を示しています。アプリケーションの観点から見ると、ユーザーは7桁の数字が迅速に応答することを期待しており、典型的な桁の批判的なタイマー(通常は4秒)を待っていません。逆に、ユーザーは、システムが十分に速く番号を入力しなかったため、7桁の数字を7桁で遮断することを望んでいません。

One approach to this problem is to have an explicit dial string terminator. Often, it is the pound key (#). Now, consider the following snippet.

この問題に対するアプローチの1つは、明示的なダイヤル文字列ターミネーターを持つことです。多くの場合、それはポンドキーです(#)。次に、次のスニペットを検討してください。

   <regex>x{7}#</regex>
   <regex>x{10}#</regex>
        

Figure 3: Timeout Matching with Enter

図3:Enterとのタイムアウトマッチング

The problem with the approach in Figure 3 is that the "#" will appear in the returned dial string. Moreover, one often wants to allow the user to enter the string without the dial string termination key. In addition, using explicit matching on the key means one has to double the number of patterns, e.g., "x{7}", "x{7}#", "x{10}", and "x{10}#".

図3のアプローチの問題は、「#」が返されたダイヤル文字列に表示されることです。さらに、ダイヤル文字列終端キーなしでユーザーが文字列を入力できるようにすることがよくあります。さらに、キーの明示的な一致を使用すると、パターンの数を2倍にする必要があります。「。

The approach used in KPML is to have an explicit "Enter Key", as shown in the following snippet.

KPMLで使用されるアプローチは、次のスニペットに示すように、明示的な「Enterキー」を持つことです。

   <pattern enterkey="#">
     <regex>x{7}</regex>
     <regex>x{10}</regex>
   </pattern>
        

Figure 4: Timeout Matching with Enter Key

図4:Enterキーとのタイムアウトマッチング

In Figure 4, the enterkey attribute to the <pattern> tag specifies a string that terminates a pattern. In this situation, if the user enters seven digits followed by the "#" key, the pattern matches (or fails) immediately. KPML indicates a terminated nomatch with a KPML status code 402.

図4では、<pattern>タグへのEnterKey属性は、パターンを終了する文字列を指定します。この状況では、ユーザーが7桁に入ると、「#」キーが続くと、パターンはすぐに一致します(または失敗します)。KPMLは、KPMLステータスコード402を備えた終了ノマッチを示します。

NOTE: The enterkey is a string. The enterkey can be a sequence of key presses, such as "**".

注:Enterキーは文字列です。Enterキーは、「**」などのキープレスのシーケンスにすることができます。

Some patterns look for long-duration key presses. For example, some applications look for long "#" or long "*".

一部のパターンでは、長期のキープレスを探しています。たとえば、一部のアプリケーションは、長い「#」または長い「*」を探します。

KPML uses the "L" modifier to <regex> characters to indicate long key presses. The following KPML document looks for a long pound of at least 3 seconds.

KPMLは、「L」モディファイアを<Regex>文字に使用して、長いキープレスを示します。次のKPMLドキュメントでは、少なくとも3秒以上の長いポンドを探します。

   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern long="3000">
       <regex>L#</regex>
     </pattern>
   </kpml-request>
        

Long Pound

長いポンド

The request can specify what constitutes "long" by setting the long attribute to the <pattern>. This attribute is an integer representing the number of milliseconds. If the user presses a key for longer than "long" milliseconds, the Long modifier is true. The default length of the long attribute is 2500 milliseconds.

リクエストは、<パターン>に長い属性を設定することにより、「長い」を構成するものを指定できます。この属性は、ミリ秒数を表す整数です。ユーザーが「長い」ミリ秒よりも長い間キーを押すと、長い修飾子が真です。長い属性のデフォルトの長さは2500ミリ秒です。

User Interfaces MUST distinguish between long and short input when the KPML document specifies both in a document. However, if there is not a corresponding long key press pattern in a document, the User Interface MUST match the key press pattern irrespective of the length of time the user presses the key.

ユーザーインターフェイスは、KPMLドキュメントが両方のドキュメントで指定する場合、長い入力と短い入力を区別する必要があります。ただし、ドキュメントに対応する長いキープレスパターンがない場合、ユーザーインターフェイスは、ユーザーがキーを押す時間の長さに関係なくキープレスパターンと一致する必要があります。

As an example, in the following snippet in Figure 6, the User Interface discriminates between a long "*" and a normal "*", but any length "#" will match the pattern.

例として、図6の次のスニペットでは、ユーザーインターフェイスは長い「*」と通常の「*」を区別しますが、任意の長さの「#」はパターンと一致します。

   <pattern>
     <regex tag="short_star">*</regex>
     <regex tag="long_star">L*</regex>
     <regex>#</regex>
   </pattern>
        

Figure 6: Long and Short Matching

図6:長い一致と短いマッチング

Some User Interfaces are unable to present long key presses. An example is an old private branch exchange (PBX) phone set that emits fixed-length tones when the user presses a key. To address this issue, the User Interface MAY interpret a succession of presses of a single key to be equivalent to a long key press of the same key. The Application indicates it wants this behavior by setting the "longrepeat" attribute to the <pattern> to "true".

一部のユーザーインターフェイスでは、長いキープレスを表示できません。例は、ユーザーがキーを押すと固定長のトーンを放出する古いプライベートブランチエクスチェンジ(PBX)電話セットです。この問題に対処するために、ユーザーインターフェイスは、単一のキーの一連のプレスを解釈して、同じキーの長いキープレスに相当するようにすることができます。アプリケーションは、<パターン>に「longRepeat」属性を「true」に設定することにより、この動作を必要とすることを示しています。

The KPML document specifies if the patterns are to be persistent by setting the "persist" attribute to the <pattern> tag to "persist" or "single-notify". Any other value, including "one-shot", indicates the request is a one-shot subscription. If the User Interface does not support persistent subscriptions, it returns a KPML document with the KPML status code set to 531. If there are digits in the buffer and the digits match an expression in the KPML document, the User Interface emits the appropriate kpml notification.

KPMLドキュメントは、<pattern>タグに「永続的な」属性を「永続的」または「single-notify」に設定することにより、パターンが永続的であるかどうかを指定します。「One-Shot」を含むその他の値は、リクエストがワンショットサブスクリプションであることを示しています。ユーザーインターフェイスが永続的なサブスクリプションをサポートしていない場合、KPMLステータスコードが531に設定されたKPMLドキュメントを返します。バッファに数字があり、桁がKPMLドキュメントに式と一致する場合、ユーザーインターフェイスは適切なKPML通知を発します。

Note the values of the "persist" attribute are case sensitive.

注意してください。「永続的な」属性の値は大文字と小文字を区別します。

Some User Interfaces may support multiple regular expressions in a given pattern request. In this situation, the application may wish to know which pattern triggered the event.

一部のユーザーインターフェイスは、特定のパターンリクエストで複数の正規表現をサポートする場合があります。この状況では、アプリケーションは、どのパターンがイベントをトリガーしたかを知りたい場合があります。

KPML provides a "tag" attribute to the <regex> tag. The "tag" is an opaque string that the User Interface sends back in the notification report upon a match in the digit map. In the case of multiple matches, the User Interface MUST choose the longest match in the KPML document. If multiple matches match the same length, the User Interface MUST choose the first expression listed in the subscription KPML document based on KPML document order.

KPMLは、<Regex>タグに「タグ」属性を提供します。「タグ」は、ユーザーインターフェイスが桁マップの一致時に通知レポートに送信する不透明な文字列です。複数の一致の場合、ユーザーインターフェイスはKPMLドキュメントで最も長い一致を選択する必要があります。複数の一致が同じ長さに一致する場合、ユーザーインターフェイスは、KPMLドキュメントの注文に基づいてサブスクリプションKPMLドキュメントにリストされている最初の式を選択する必要があります。

If the User Interface cannot support multiple regular expressions in a pattern request, the User Interface MUST return a KPML document with the KPML status code set to 532. If the User Interface cannot support the number of regular expressions in the pattern request, the User Interface MUST return a KPML document with the KPML status code set to 534.

ユーザーインターフェイスがパターン要求で複数の正規式をサポートできない場合、ユーザーインターフェイスはKPMLステータスコードを532に設定してKPMLドキュメントを返す必要があります。ユーザーインターフェイスがパターンリクエストの正規表現の数をサポートできない場合、ユーザーインターフェイスはユーザーインターフェイスをKPMLステータスコードを534に設定してKPMLドキュメントを返す必要があります。

NOTE: We could mandate a minimum number of regular expressions that a User Interface must support per subscription request and globally. However, such minimums tend to become designed-in, hard-coded limits. For guidance, one should be able to easily handle tens of expressions per subscription and thousands globally. A good implementation should have effectively no limits. That said, to counter possible denial-of-service attacks, implementers of User Interfaces should be aware of the 534 and 501 status codes and feel free to use them.

注:ユーザーインターフェイスがサブスクリプションリクエストごとにグローバルにサポートする必要がある最低数の正規表現を義務付けることができます。ただし、このような最小値は、設計されたハードコードの制限になる傾向があります。ガイダンスのために、サブスクリプションごとに数十の表現と世界中の数千の表現を簡単に処理できるはずです。優れた実装には、効果的に制限がないはずです。とはいえ、サービス拒否攻撃の可能性に対抗するために、ユーザーインターフェイスの実装者は534および501のステータスコードを認識し、自由に使用してください。

3.4. Digit Suppression
3.4. 桁抑制

Under basic operation, a KPML User Interface will transmit in-band tones (RFC 2833 [10] or actual tone) in parallel with User Input reporting.

基本的な操作では、KPMLユーザーインターフェイスは、ユーザー入力レポートと並行してバンドイントーン(RFC 2833 [10]または実際のトーン)を送信します。

NOTE: If KPML did not have this behavior, then a User Interface executing KPML could easily break called applications. For example, take a personal assistant that uses "*9" for attention. If the user presses the "*" key, KPML will hold the digit, looking for the "9". What if the user just enters a "*" key, possibly because they accessed an interactive voice response (IVR) system that looks for "*"? In this case, the "*" would get held by the User Interface, because it is looking for the "*9" pattern. The user would probably press the "*" key again, hoping that the called IVR system just did not hear the key press. At that point, the User Interface would send both "*" entries, as "**" does not match "*9". However, that would not have the effect the user intended when they pressed "*".

注:KPMLにこの動作がなかった場合、KPMLを実行するユーザーインターフェイスは、アプリケーションと呼ばれるアプリケーションを簡単に破損する可能性があります。たとえば、「*9」を使用して注意を払うパーソナルアシスタントを使用します。ユーザーが「*」キーを押すと、KPMLが「9」を探して桁を保持します。ユーザーが「*」キーを入力するだけで、おそらく「*」を探しているインタラクティブな音声応答(IVR)システムにアクセスしたためですか?この場合、「*9」パターンを探しているため、「*」はユーザーインターフェイスによって保持されます。ユーザーは、おそらく「*」キーを再び押して、呼び出されたIVRシステムがキープレスを聞いていないことを望んでいます。その時点で、ユーザーインターフェイスは両方の「*」エントリを送信します。「**」は「*9」と一致しません。ただし、ユーザーが「*」を押したときに意図した効果はありません。

On the other hand, there are situations where passing through tones in-band is not desirable. Such situations include call centers that use in-band tone spills to initiate a transfer.

一方、バンド内のトーンを通過することが望ましくない状況があります。このような状況には、移転を開始するために帯域内のトーン流出を使用するコールセンターが含まれます。

For those situations, KPML adds a suppression tag, "pre", to the <regex> tag. There MUST NOT be more than one <pre> tag in any given <regex> tag.

これらの状況では、KPMLは<regex>タグに抑制タグ「pre」を追加します。任意の<regex>タグに1つ以上の<pre>タグがあることはありません。

If there is only a single <pattern> and a single <regex>, suppression processing is straightforward. The end-point passes User Input until the stream matches the regular expression <pre>. At that point, the User Interface will continue collecting User Input, but will suppress the generation or pass-through of any in-band User Input.

単一の<パターン>と単一の<regex>のみがある場合、抑制処理は簡単です。エンドポイントは、ストリームが正規表現<pre>と一致するまでユーザー入力を渡します。その時点で、ユーザーインターフェイスはユーザー入力の収集を継続しますが、帯域内ユーザーの入力の生成またはパススルーを抑制します。

If the User Interface suppressed stimulus, it MUST indicate this by including the attribute "suppressed" with a value of "true" in the notification.

ユーザーインターフェイスが刺激を抑制した場合、通知に「true」の値で「抑制」された属性を含めることにより、これを示す必要があります。

Clearly, if the User Interface is processing the KPML document against buffered User Input, it is too late to suppress the transmission of the User Input, as the User Interface has long sent the stimulus. This is a situation where there is a <pre> specification, but the "suppressed" attribute will not be "true" in the notification. If there is a <pre> tag that the User Interface matched and the User Interface is unable to suppress the User Input, it MUST set the "suppressed" attribute to "false".

明らかに、ユーザーインターフェイスがバッファリドユーザー入力に対してKPMLドキュメントを処理している場合、ユーザーインターフェイスが刺激を長い間送信しているため、ユーザー入力の送信を抑制するには遅すぎます。これは、<pre>仕様がある状況ですが、「抑制された」属性は通知では「真の」ものではありません。ユーザーインターフェイスが一致し、ユーザーインターフェイスがユーザー入力を抑制できない<pre>タグがある場合、「suptressed」属性を「false」に設定する必要があります。

A KPML User Interface MAY perform suppression. If it is not capable of suppression, it ignores the suppression attribute. It MUST set the "suppressed" attribute to "false". In this case, the pattern to match is the concatenated pattern of pre+value.

KPMLユーザーインターフェイスは、抑制を実行する場合があります。抑制ができない場合、抑制属性を無視します。「抑制された」属性を「false」に設定する必要があります。この場合、一致するパターンは、プリ値の連結パターンです。

At some point in time, the User Interface will collect enough User Input to the point it matches a <pre> pattern. The interdigittimer attribute indicates how long to wait for the user to enter stimulus before reporting a time-out error. If the interdigittimer expires, the User Interface MUST issue a time-out report, transmit the suppressed User Input on the media stream, and stop suppression.

ある時点で、ユーザーインターフェイスは、A <pre>パターンと一致するポイントまで十分なユーザー入力を収集します。Interdigittimer属性は、タイムアウトエラーを報告する前にユーザーが刺激に入るのを待つ時間を示します。Interdigittimerの有効期限が切れる場合、ユーザーインターフェイスはタイムアウトレポートを発行し、抑制されたユーザー入力をメディアストリームに送信し、抑制を停止する必要があります。

Once the User Interface detects a match and it sends a NOTIFY request to report the User Input, the User Interface MUST stop suppression. Clearly, if subsequent User Input matches another <pre> expression, then the User Interface MUST start suppression.

ユーザーインターフェイスが一致を検出し、ユーザー入力を報告するために通知リクエストを送信すると、ユーザーインターフェイスは抑制を停止する必要があります。明らかに、後続のユーザー入力が別の<pre>式と一致する場合、ユーザーインターフェイスは抑制を開始する必要があります。

After suppression begins, it may become clear that a match will not occur. For example, take the expression

抑制が始まった後、一致が発生しないことが明らかになる可能性があります。たとえば、式を取ります

   <regex><pre>*8</pre>xxx[2-9]xxxxxx</regex>
        

At the point the User Interface receives "*8", it will stop forwarding stimulus. Let us say that the next three digits are "408". If the next digit is a zero or one, the pattern will not match.

ユーザーインターフェイスが「*8」を受信する時点で、刺激の転送を停止します。次の3桁は「408」であるとしましょう。次の数字がゼロまたは1の場合、パターンは一致しません。

NOTE: It is critically important for the User Interface to have a sensible inter-digit timer. This is because an errant dot (".") may suppress digit sending forever.

注:ユーザーインターフェイスが賢明な桁の間タイマーを持つことが非常に重要です。これは、誤ったドット( "。")が桁の送信を永久に抑制する可能性があるためです。

Applications should be very careful to indicate suppression only when they are fairly sure the user will enter a digit string that will match the regular expression. In addition, applications should deal with situations such as no-match or time-out. This is because the User Interface will hold digits, which will have obvious User Interface issues in the case of a failure.

アプリケーションは、ユーザーが正規表現と一致する数字の文字列を入力することをかなり確信している場合にのみ、抑制を示すように非常に注意する必要があります。さらに、アプリケーションは、試合やタイムアウトなどの状況に対処する必要があります。これは、ユーザーインターフェイスが数字を保持し、失敗の場合に明らかなユーザーインターフェイスの問題があるためです。

3.5. User Input Buffer Behavior
3.5. ユーザー入力バッファの動作

User Interfaces MUST buffer User Input upon receipt of an authenticated and accepted subscription. Subsequent KPML documents apply their patterns against the buffered User Input. Some applications use modal interfaces where the first few key presses determine what the following key presses mean. For a novice user, the application may play a prompt describing what mode the application is in. However, "power users" often barge through the prompt.

ユーザーインターフェイスは、認証されたサブスクリプションを受け取ったときにユーザー入力をバッファする必要があります。後続のKPMLドキュメントは、バッファリングされたユーザー入力に対してパターンを適用します。一部のアプリケーションでは、最初のいくつかのキープレスが次のキープレスの意味を決定するモーダルインターフェイスを使用します。初心者のユーザーの場合、アプリケーションは、アプリケーションがどのモードにあるかを説明するプロンプトを再生する場合があります。ただし、「パワーユーザー」はしばしばプロンプトをはるかにします。

User Interfaces MUST NOT provide a subscriber with digits that were detected prior to the authentication and authorization of that subscriber. Without prohibition, a subscriber might be able to gain access to calling card or other information that predated the subscriber's participation in the call. Note that this prohibition MUST be applied on a per-subscription basis.

ユーザーインターフェイスは、そのサブスクライバーの認証と承認の前に検出された数字をサブスクライバーに提供してはなりません。禁止がなければ、サブスクライバーは、サブスクライバーのコールへの参加に先行するコーリングカードまたはその他の情報にアクセスできる可能性があります。この禁止は、サブスクリプションごとに適用する必要があることに注意してください。

KPML provides a <flush> tag in the <pattern> element. The default is not to flush User Input. Flushing User Input has the effect of ignoring key presses entered before the installation of the KPML subscription. To flush User Input, include the tag

KPMLは、<pattern>要素で<フラッシュ>タグを提供します。デフォルトは、ユーザー入力をフラッシュすることではありません。フラッシングユーザー入力は、KPMLサブスクリプションのインストール前に入力されたキープレスを無視する効果があります。ユーザー入力をフラッシュするには、タグを含めます

<flush>yes</flush> in the KPML subscription document. Note that this directive affects only the current subscription dialog/id combination.

<フラッシュ>はい</flush> KPMLサブスクリプションドキュメント。この指令は、現在のサブスクリプションダイアログ/IDの組み合わせのみに影響することに注意してください。

Lock-step processing of User Input is where the User Interface issues a notification, the Application processes the notification while the User Interface buffers additional User Input, the Application requests more User Input, and only then does the User Interface notify the Application based on the collected User Input. To direct the User Interface to operate in lock-step mode, set the <pattern> attribute persist="single-notify".

ユーザー入力のロックステップ処理ユーザーインターフェイスが通知を発行する場所、アプリケーションは通知を処理し、ユーザーインターフェイスは追加のユーザー入力をバッファリングし、アプリケーションはより多くのユーザー入力を要求します。収集されたユーザー入力。ユーザーインターフェイスをロックステップモードで動作させるように指示するには、<pattern>属性astest = "single-notify"を設定します。

The User Interface MUST be able to process <flush>no</flush>. This directive is effectively a no-op.

ユーザーインターフェイスは、<フラッシュ> no </flush>を処理できる必要があります。この指令は事実上、No-opです。

Other string values for <flush> may be defined in the future. If the User Interface receives a string it does not understand, it MUST treat the string as a no-op.

<フラッシュ>の他の文字列値は、将来定義される場合があります。ユーザーインターフェイスがわからない文字列を受信した場合、文字列をNO-OPとして扱う必要があります。

If the user presses a key that cannot match any pattern within a <regex> tag, the User Interface MUST discard all buffered key presses up to and including the current key press from consideration against the current or future KPML documents on a given dialog. However, as described above, once there is a match, the User Interface buffers any key presses the user entered subsequent to the match.

ユーザーが<Regex>タグ内でパターンに一致できないキーを押すと、ユーザーインターフェイスは、特定のダイアログの現在または将来のKPMLドキュメントに対する検討から現在のキープレスをすべて含めて、すべてのバッファリングされたキープレスを破棄し、含める必要があります。ただし、上記のように、一致すると、ユーザーインターフェイスは、マッチの後に入力したキーを押します。

NOTE: This behavior allows applications to receive only User Input that is of interest to them. For example, a pre-paid application only wishes to monitor for a long pound. If the user enters other stimulus, presumably for other applications, the pre-paid application does not want notification of that User Input. This feature is fundamentally different than the behavior of Time Division Multiplexer (TDM)-based equipment where every application receives every key press.

注:この動作により、アプリケーションは興味深いユーザー入力のみを受信できます。たとえば、プリペイドアプリケーションは、長いポンドのみ監視したいと考えています。おそらく他のアプリケーションの場合、ユーザーが他の刺激を入力した場合、プリペイドアプリケーションでは、そのユーザー入力の通知を必要としません。この機能は、すべてのアプリケーションがすべてのキープレスを受信する時点マルチプレクサ(TDM)ベースの機器の動作と根本的に異なります。

To limit reports to only complete matches, set the "nopartial" attribute to the <pattern> tag to "true". In this case, the User Interface attempts to match a rolling window over the collected User input.

レポートを完全な一致のみに制限するには、<pattern>タグに「nopartial」属性を「true」に設定します。この場合、ユーザーインターフェイスは、収集されたユーザー入力上のローリングウィンドウを一致させようとします。

KPML subscriptions are independent. Thus, it is not possible for the current document to know if a following document will enable barging or want User Input flushed. Therefore, the User Interface MUST buffer all User Input, subject to the forced_flush caveat described below.

KPMLサブスクリプションは独立しています。したがって、現在のドキュメントが、以下のドキュメントでは、バージングを有効にするか、ユーザー入力をフラッシュしたいかどうかを知ることはできません。したがって、ユーザーインターフェイスは、以下に説明するforced_flushの警告を条件として、すべてのユーザー入力をバッファリングする必要があります。

On a given SUBSCRIBE dialog with a given id, the User Interface MUST buffer all User Input detected between the time of the report and the receipt of the next document, if any. If the next document indicates a buffer flush, then the interpreter MUST flush all collected User Input from consideration from KPML documents received on that dialog with the given event id. If the next document does not indicate flushing the buffered User Input, then the interpreter MUST apply the collected User Input (if possible) against the digit maps presented by the script's <regex> tags. If there is a match, the interpreter MUST follow the procedures in Section 5.3. If there is no match, the interpreter MUST flush all of the collected User Input.

特定のIDを使用した特定のサブスクライブダイアログで、ユーザーインターフェイスは、レポートの時間と次のドキュメントの受領の間に検出されたすべてのユーザー入力をバッファリングする必要があります。次のドキュメントがバッファフラッシュを示している場合、インタープリターは、特定のイベントIDを使用してそのダイアログで受信したKPMLドキュメントからの考慮事項から収集されたすべてのユーザー入力をフラッシュする必要があります。次のドキュメントがバッファーされたユーザー入力をフラッシュすることを示していない場合、インタープリターは、スクリプトの<regex>タグによって提示された桁マップに対して収集されたユーザー入力(可能であれば)を適用する必要があります。一致がある場合、通訳者はセクション5.3の手順に従う必要があります。一致がない場合、インタープリターは収集されたすべてのユーザー入力をフラッシュする必要があります。

Given the potential for needing an infinite buffer for User Input, the User Interface MAY discard the oldest User Input from the buffer. If the User Interface discards digits, when the User Interface issues a KPML notification, it MUST set the forced_flush attribute of the <response> tag to "true". For future use, the Application MUST consider any non-null value, other than "false", that it does not understand to be the same as "true".

ユーザー入力に無限のバッファーが必要な可能性があるため、ユーザーインターフェイスはバッファから最も古いユーザー入力を破棄する場合があります。ユーザーインターフェイスが数字を破棄した場合、ユーザーインターフェイスがKPML通知を発行した場合、<応答>タグのforced_flush属性を「true」に設定する必要があります。将来の使用のために、アプリケーションは「偽」以外の非ヌル値を「真」と同じと理解していないことを考慮する必要があります。

NOTE: The requirement to buffer all User Input for the entire length of the session is not onerous under normal operation. For example, if one has a gateway with 8,000 sessions, and the gateway buffers 50 key presses on each session, the requirement is only 400,000 bytes, assuming one byte per key press.

注:セッションの全長のすべてのユーザー入力をバッファリングする要件は、通常の操作では面倒ではありません。たとえば、8,000セッションのあるゲートウェイがあり、ゲートウェイが各セッションで50キーのプレスをバッファする場合、要件はキープレスごとに1バイトを想定して400,000バイトしかありません。

Unless there is a suppress indicator in the digit map, it is not possible to know if the User Input is for local KPML processing or for other recipients of the media stream. Thus, in the absence of a suppression indicator, the User Interface transmits the User Input to the far end in real time, using either RFC 2833, generating the appropriate tones, or both.

数字マップに抑制インジケーターがない限り、ユーザー入力がローカルKPML処理用か、メディアストリームの他の受信者のかどうかを知ることはできません。したがって、抑制インジケーターがない場合、ユーザーインターフェイスは、RFC 2833を使用して、適切なトーンを生成するRFC 2833を使用して、ユーザー入力をリアルタイムでファーエンドに送信します。

3.6. DRegex
3.6. Dregex
3.6.1. Overview
3.6.1. 概要

This subsection is informative in nature.

このサブセクションは本質的に有益です。

The Digit REGular EXpression (DRegex) syntax is a telephony-oriented mapping of POSIX Extended Regular Expressions (ERE) [13].

桁の正規表現(Dregex)構文は、POSIX拡張正規表現(ERE)のテレフォニー指向のマッピングです[13]。

KPML does not use full POSIX ERE for the following reasons.

KPMLは、以下の理由で完全なPOSIX EREを使用しません。

o KPML will often run on high density or extremely low power and memory footprint devices.

o KPMLは、多くの場合、高密度または非常に低い電力およびメモリフットプリントデバイスで実行されます。

o Telephony application convention uses the star symbol ("*") for the star key and "x" for any digit 0-9. Requiring the developer to escape the star ("\*") and expand the "x" ("[0-9]") is error prone. This also leads DRegex to use the dot (".") to indicate repetition, which was the function of the unadorned star in POSIX ERE.

o テレフォニーアプリケーションコンベンションでは、スターキーにスターシンボル( "*")、任意の桁0-9に「x」を使用します。開発者がスター( "\*")を逃れ、「x」( "[0-9])を展開するように要求すると、エラーが発生しやすくなります。これにより、DregexはDOT( "。")を使用して繰り返しを示すようになります。

o Implementation experience with MGCP [11] and H.248.1 [12] has been that implementers and users have a hard time understanding the precedence of the alternation operator ("|"). This is due both to an under-specification of the operator in those documents and conceptual problems for users. Thus, the SIPPING Working Group concluded that DRegex should not support alternation. That said, each KPML <pattern> element may contain multiple regular expressions (<regex> elements). Thus, it is straightforward to have pattern alternatives (use multiple <regex> elements) without the problems associated with the alternation operator ("|"). Thus, DRegex does not support the POSIX alternation operator.

o

o DRegex includes character classes (characters enclosed in square brackets). However, the negation operator inside a character class only operates on numbers. That is, a negation class implicitly includes A-D, *, and #. Including A-D, *, and # in a negation operator is a no-op. Those familiar with POSIX would expect negation of the digits 4 and 5 (e.g., "[^45]") to include all other characters (including A-D, R, *, and #), while those familiar with telephony digit maps would expect negation to implicitly exclude non-digit characters. Since the complete character set of DRegex is very small, constructing a negation class using A-D, R, *, and # requires the user to specify the positive inverse mapping. For example, to specify all key presses, including A-D and *, except #, the specification would be "[0-9A-D*]" instead of "[^#R]".

o Dregexには、文字クラス(正方形の括弧で囲まれた文字)が含まれます。ただし、キャラクタークラス内の否定演算子は、数値でのみ動作します。つまり、否定クラスには暗黙的にA-D、 *、および#が含まれます。否定演算子には、A-D、 *、および#を含むことはopです。POSIXに精通している人は、数字4と5(例:[^45]」)の否定が他のすべての文字(A-D、R、 *、および#を含む)を含めることを期待しますが、テレフォニーの指のマップに精通している人は否定を期待するでしょう暗黙的に非桁の文字を除外します。Dregexの完全な文字セットは非常に小さく、A-d、r、 *、および#を使用して否定クラスを構築するため、ユーザーに正の逆マッピングを指定する必要があります。たとえば、A-dおよび *を含むすべてのキープレスを指定するには、#を除き、仕様は「[^#r]」ではなく「[0-9a-d *]」になります。

The following table shows the mapping from DRegex to POSIX ERE.

次の表は、DregexからPosix ereへのマッピングを示しています。

                          +--------+-----------+
                          | DRegex | POSIX ERE |
                          +--------+-----------+
                          | *      | \*        |
                          | .      | *         |
                          | x      | [0-9]     |
                          | [xc]   | [0-9c]    |
                          +--------+-----------+
        

Table 1: DRegex to POSIX ERE Mapping

表1:DREGEXからPOSIX EREマッピング

The first substitution, which replaces a star for an escaped star, is because telephony application designers are used to using the star for the (very common) star key. Requiring an escape sequence for this common pattern would be error prone. In addition, the usage found in DRegex is the same as found in MGCP [11] and H.248.1 [12].

脱出された星の星を置き換える最初の置換は、テレフォニーアプリケーションデザイナーが(非常に一般的な)星キーに星を使用することに慣れているためです。この共通パターンにエスケープシーケンスを必要とすることは、エラーが発生しやすいでしょう。さらに、Dregexで見つかった使用法は、MGCP [11]およびH.248.1 [12]で見つかったものと同じです。

Likewise, the use of the dot instead of star is common usage from MGCP and H.248.1, and reusing the star in this context would also be confusing and error prone.

同様に、星の代わりにドットを使用することは、MGCPとH.248.1からの一般的な使用であり、このコンテキストで星を再利用することも混乱し、エラーが発生しやすくなります。

The "x" character is a common indicator of the digits 0 through 9. We use it here, continuing the convention. Clearly, for the case "[xc]", where c is any character, the substitution is not a blind replacement of "[0-9]" for "x", as that would result in "[[0-9]c]", which is not a legal POSIX ERE. Rather, the substitution for "[xc]" is "[0-9c]".

「x」文字は、桁0から9の一般的な指標です。ここで使用して、慣習を継続します。明らかに、cは任意のキャラクターであるケース「[xc]」の場合、置換は「x」の「[0-9]」の盲目的な置換ではありません。]」、これは法的なposixではありません。むしろ、「[xc]」の代替は「[0-9c]」です。

NOTE: "x" does not include the characters *, #, R, or A through D.

Users need to take care not to confuse the DRegex syntax with POSIX EREs. They are NOT identical. In particular, there are many features of POSIX EREs that DRegex does not support.

ユーザーは、DREGEXの構文をPOSIX ERESと混同しないように注意する必要があります。それらは同一ではありません。特に、DregexがサポートしていないPosix eresには多くの機能があります。

As an implementation note, if one makes the substitutions described in the above table, then a standard POSIX ERE engine can parse the digit string. However, the mapping does not work in the reverse (POSIX ERE to DRegex) direction. DRegex only implements the normative behavior described below.

実装ノートとして、上記の表に記載されている置換を行うと、標準のPOSIX EREエンジンが桁の文字列を解析できます。ただし、マッピングは逆(posix ere to dregex)方向に機能しません。Dregexは、以下に説明する規範的な動作のみを実装します。

3.6.2. Operation
3.6.2.

White space is removed before parsing DRegex. This enables sensible pretty printing in XML without affecting the meaning of the DRegex string.

Dregexを解析する前に、空白は除去されます。これにより、Dregex Stringの意味に影響を与えることなく、XMLで賢明なきれいな印刷が可能になります。

The following rules demonstrate the use of DRegex in KPML.

以下のルールは、KPMLでのDregexの使用を示しています。

   +---------+---------------------------------------------------------+
   | Entity  | Matches                                                 |
   +---------+---------------------------------------------------------+
   | c       | digits 0-9, *, #, R, and A-D (case insensitive)         |
   | *       | the * character                                         |
   | #       | the # character                                         |
   | R       | The R (Register Recall) key                             |
   | [c]     | Any character in selector                               |
   | [^d]    | Any digit (0-9) not in selector                         |
   | [r1-r2] | Any character in range from r1 to r2, inclusive         |
   | x       | Any digit 0-9                                           |
   | {m}     | m repetitions of previous pattern                       |
   | {m,}    | m or more repetitions of previous pattern               |
   | {,n}    | At most n (including zero) repetitions of previous      |
   |         | pattern                                                 |
   | {m,n}   | At least m and at most n repetitions of previous        |
   |         | pattern                                                 |
   | Lc      | Match the character c if it is "long"; c is a digit 0-9 |
   |         | and A-D, #, or *.                                       |
   +---------+---------------------------------------------------------+
        

DRegex Entities

Dregexエンティティ

For ranges, the A-D characters are disjoint from the 0-9 characters. If the device does not have an "R" key, the device MAY report a hook flash as an R character.

       +--------------+--------------------------------------------+
       | Example      | Description                                |
       +--------------+--------------------------------------------+
       | 1            | Matches the digit 1                        |
       | [179]        | Matches 1, 7, or 9                         |
       | [2-9]        | Matches 2, 3, 4, 5, 6, 7, 8, 9             |
       | [^15]        | Matches 0, 2, 3, 4, 6, 7, 8, 9             |
       | [02-46-9A-D] | Matches 0, 2, 3, 4, 6, 7, 8, 9, A, B, C, D |
       | x            | Matches 0, 1, 2, 3, 4, 5, 6, 7, 8, 9       |
       | *6[179#]     | Matches *61, *67, *69, or *6#              |
       | x{10}        | Ten digits (0-9)                           |
       | 011x{7,15}   | 011 followed by seven to fifteen digits    |
       | L*           | Long star                                  |
       +--------------+--------------------------------------------+
        

DRegex Examples

Dregexの例

3.7. Monitoring Direction
3.7. 監視方向

SIP identifies dialogs by their dialog identifier. The dialog identifier is the remote-tag, local-tag, and Call-ID entities defined in RFC 3261 [4].

SIPは、ダイアログ識別子によるダイアログを識別します。ダイアログ識別子は、RFC 3261 [4]で定義されているリモートタグ、ローカルタグ、およびコールIDエンティティです。

One method of determining the dialog identifier, particularly for third-party applications, is the SIP Dialog Package [17].

特にサードパーティのアプリケーションのダイアログ識別子を決定する1つの方法は、SIPダイアログパッケージです[17]。

For most situations, such as a monaural point-to-point call with a single codec, the stream to monitor is obvious. In such situations the Application need not specify which stream to monitor.

単一のコーデックを使用したモナルポイントツーポイントコールなどのほとんどの状況では、監視するストリームは明らかです。このような状況では、アプリケーションは監視するストリームを指定する必要はありません。

But there may be ambiguity in specifying only the SIP dialog to monitor. The dialog may specify multiple SDP streams that could carry key press events. For example, a dialog may have multiple audio streams. Wherever possible, the User Interface MAY apply local policy to disambiguate which stream or streams to monitor. In order to have an extensible mechanism for identifying streams, the mechanism for specifying streams is as an element content to the <stream> tag. The only content defined today is the <stream>reverse</stream> tag.

ただし、監視するSIPダイアログのみを指定することにはあいまいさがある場合があります。ダイアログでは、キープレスイベントを実行できる複数のSDPストリームを指定する場合があります。たとえば、ダイアログには複数のオーディオストリームがある場合があります。可能な限り、ユーザーインターフェイスはローカルポリシーを適用して、どのストリームまたはストリームを監視するかを明確にします。ストリームを識別するための拡張可能なメカニズムを持つために、ストリームを指定するメカニズムは、<stream>タグの要素コンテンツとしてです。今日定義されている唯一のコンテンツは、<stream> reverse </stream>タグです。

By default, the User Interface monitors key presses emanating from the User Interface. Given a dialog identifier of Call-ID, local-tag, and remote-tag, the User Interface monitors the key presses associated with the local-tag.

デフォルトでは、ユーザーインターフェイスは、ユーザーインターフェイスから発せられるキープレスを監視します。Call-ID、ローカルタグ、およびリモートタグのダイアログ識別子が与えられた場合、ユーザーインターフェイスはローカルタグに関連付けられたキープレスを監視します。

In the media proxy case, and potentially other cases, there is a need to monitor the key presses arriving from the remote user agent. The optional <stream> element to the <request> tag specifies which stream to monitor. The only legal value is "reverse", which means to monitor the stream associated with the remote-tag. The User Interface MUST ignore other values.

メディアプロキシのケース、および潜在的に他のケースでは、リモートユーザーエージェントから到着するキープレスを監視する必要があります。タグのオプション<stream>要素は、監視するストリームを指定します。唯一の法的価値は「リバース」です。つまり、リモートタグに関連するストリームを監視することを意味します。ユーザーインターフェイスは、他の値を無視する必要があります。

NOTE: The reason this is a tag is so individual stream selection, if needed, can be addressed in a backwards-compatible way. Further specification of the stream to monitor is the subject of future standardization.

注:これがタグである理由は、必要に応じて個々のストリーム選択が後方互換の方法で対処できるためです。監視するストリームのさらなる仕様は、将来の標準化の主題です。

3.8. Multiple Simultaneous Subscriptions
3.8. 複数の同時サブスクリプション

An Application MAY register multiple User Input patterns in a single KPML subscription. If the User Interface supports multiple, simultaneous KPML subscriptions, the Application installs the subscriptions either in a new SUBSCRIBE-initiated dialog or on an existing SUBSCRIBE-initiated dialog with a new event id tag. If the User Interface does not support multiple, simultaneous KPML subscriptions, the User Interface MUST respond with an appropriate KPML status code.

アプリケーションは、単一のkpmlサブスクリプションに複数のユーザー入力パターンを登録する場合があります。ユーザーインターフェイスが複数の同時のKPMLサブスクリプションをサポートする場合、アプリケーションは新しいサブスクライブ開始ダイアログまたは新しいイベントIDタグを備えた既存のサブスクライブ開始ダイアログのいずれかにサブスクリプションをインストールします。ユーザーインターフェイスが複数の同時のKPMLサブスクリプションをサポートしていない場合、ユーザーインターフェイスは適切なKPMLステータスコードで応答する必要があります。

Some User Interfaces may support multiple key press event notification subscriptions at the same time. In this situation, the User Interface honors each subscription individually and independently.

一部のユーザーインターフェイスは、複数のキープレスイベント通知サブスクリプションを同時にサポートする場合があります。この状況では、ユーザーインターフェイスは各サブスクリプションを個別に、そして独立して授与します。

A SIP user agent may request multiple subscriptions on the same SUBSCRIBE dialog, using the id parameter to the kpml event request.

SIPユーザーエージェントは、IDパラメーターをKPMLイベントリクエストに使用して、同じサブスクライブダイアログで複数のサブスクリプションを要求できます。

One or more SIP user agents may request independent subscriptions on different SIP dialogs, although reusing the same dialog for multiple subscriptions is NOT RECOMMENDED.

1つ以上のSIPユーザーエージェントは、さまざまなSIPダイアログで独立したサブスクリプションをリクエストする場合がありますが、複数のサブスクリプションについて同じダイアログを再利用することは推奨されません。

If the User Interface does not support multiple, simultaneous subscriptions, the User Interface MUST return a KPML document with the KPML status code set to 533 on the dialog that requested the second subscription. The User Interface MUST NOT modify the state of the first subscription on account of the second subscription attempt.

ユーザーインターフェイスが複数の同時サブスクリプションをサポートしていない場合、ユーザーインターフェイスは、2番目のサブスクリプションを要求したダイアログのKPMLステータスコードを533に設定してKPMLドキュメントを返す必要があります。ユーザーインターフェイスは、2回目のサブスクリプションの試みのために最初のサブスクリプションの状態を変更してはなりません。

4. Event Package Formal Definition
4. イベントパッケージの正式な定義
4.1. Event Package Name
4.1. イベントパッケージ名

This document defines a SIP Event Package as defined in RFC 3265 [5]. The event-package token name for this package is:

このドキュメントでは、RFC 3265 [5]で定義されているSIPイベントパッケージを定義しています。このパッケージのイベントパッケージトークン名は次のとおりです。

"kpml"

「KPML」

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

This package defines three Event Package parameters: call-id, remote-tag, and local-tag. These parameters MUST be present, to identify the subscription dialog. The User Interface matches the local-tag against the to tag, the remote-tag against the from tag, and the call-id against the Call-ID.

このパッケージでは、3つのイベントパッケージパラメーター、Call-ID、リモートタグ、およびローカルタグを定義しています。サブスクリプションダイアログを特定するには、これらのパラメーターを存在する必要があります。ユーザーインターフェイスは、Toタグ、From Tagに対するリモートタグ、およびCall-IDに対するCall-IDに対してローカルタグと一致します。

The ABNF for these parameters is below. It refers to many constructions from the ABNF of RFC 3261, such as EQUAL, DQUOTE, and token.

これらのパラメーターのABNFは以下にあります。これは、等しい、dquote、トークンなど、RFC 3261のABNFからの多くの構造を指します。

call-id = "call-id" EQUAL ( token / DQUOTE callid DQUOTE ) ;; NOTE: any DQUOTEs inside callid MUST be escaped! remote-tag = "remote-tag" EQUAL token local-tag = "local-tag" EQUAL token If any call-ids contain embedded double-quotes, those double-quotes MUST be escaped using the backslash-quoting mechanism. Note that the call-id parameter may need to be expressed as a quoted string. This is because the ABNF for the callid production and the word production, which is used by callid (both from RFC 3261 [1]), allow some characters (such as "@", "[", and ":") that are not allowed within a token.

call-id = "call-id" equal(token / dquote callid dquote);;注:callid内のdquotesは逃げる必要があります!remote-tag = "remote-tag"等しいトークンローカルタグ= "ローカルタグ"等しいトークン任意のコールアイドに埋め込まれたダブルクォートが含まれている場合、バックスラッシュ引用メカニズムを使用してそれらのダブルクォートを脱出する必要があります。call-idパラメーターは、引用された文字列として表現する必要がある場合があることに注意してください。これは、Callidの生産とCallid(両方ともRFC 3261 [1]から)が使用する単語の生産のABNFが、一部の文字(「@」、」["、": "など)を許可するためです。トークン内で許可されていません。

4.3. SUBSCRIBE Bodies
4.3. サブスクライブボディ

Applications using this event package include an application/ kpml-request+xml body in SUBSCRIBE requests to indicate which digit patterns they are interested in. The syntax of this body type is formally described in Section 5.2.

このイベントパッケージを使用したアプリケーションには、サブスクライブリクエストにアプリケーション/ KPML-Request XMLボディが含まれており、関心がある数字パターンを示します。このボディタイプの構文は、セクション5.2で正式に説明されています。

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

The subscription lifetime should be longer than the expected call time. Subscriptions to this event package MAY range from minutes to weeks. Subscriptions in hours or days are more typical and are RECOMMENDED. The default subscription duration for this event package is 7200 seconds.

サブスクリプションの寿命は、予想される呼び出し時間よりも長くなければなりません。このイベントパッケージのサブスクリプションは、数分から数週間の範囲です。時間または日のサブスクリプションはより典型的であり、推奨されます。このイベントパッケージのデフォルトのサブスクリプション期間は7200秒です。

Subscribers MUST be able to handle the User Interface returning an Expires value smaller than the requested value. Per RFC 3265 [5], the subscription duration is the value returned by the Notifier in the 200 OK Expires header.

加入者は、要求された値よりも小さい値を返す値を返すユーザーインターフェイスを処理できる必要があります。RFC 3265 [5]ごとに、サブスクリプション期間は、200 ok有効期限が切れているnotifierによって返される値です。

4.5. NOTIFY Bodies
4.5. 機関に通知します

NOTIFY requests can contain application/kpml-response+xml (KPML Response) bodies. The syntax of this body type is formally described in Section 5.3. NOTIFY requests in immediate response to a SUBSCRIBE request MUST NOT contain a body unless they are notifying the subscriber of an error condition or previously buffered digits.

通知リクエストには、アプリケーション/KPML応答XML(KPML応答)ボディを含めることができます。このボディタイプの構文は、セクション5.3で正式に説明されています。サブスクライブリクエストに即座に応答してリクエストに通知してください。エラー条件または以前にバッファリングされた数字のサブスクライバーに通知しない限り、本体を含めてはなりません。

Notifiers MAY send notifications with any format acceptable to the subscriber (based on the subscriber's inclusion of these formats in an Accept header). A future extension MAY define other NOTIFY bodies. If no "Accept" header is present in the SUBSCRIBE, the body type defined in this document MUST be assumed.

通知者は、サブスクライバーに受け入れられる任意のフォーマットで通知を送信する場合があります(サブスクライバーがこれらの形式を受け入れヘッダーに含めることに基づいています)。将来の拡張は、他の通知機関を定義する場合があります。サブスクライブに「受け入れる」ヘッダーが存在しない場合、このドキュメントで定義されているボディタイプを想定する必要があります。

4.6. Subscriber Generation of SUBSCRIBE Requests
4.6. サブスクライバー生成サブスクライブリクエスト

A kpml request document contains a <pattern> element with a series of <regex> tags. Each <regex> element specifies a potential pattern for the User Interface to match. Section 5.1 describes the DRegex, or digit regular expression, language.

KPMLリクエストドキュメントには、一連の<regex>タグを備えた<pattern>要素が含まれています。各<regex>要素は、ユーザーインターフェイスが一致する潜在的なパターンを指定します。セクション5.1では、DREGEX、または桁の正規表現、言語について説明します。

KPML specifies key press event notification filters. The MIME type for KPML requests is application/kpml-request+xml.

KPMLは、キープレスイベント通知フィルターを指定します。KPMLリクエストのMIMEタイプは、Application/KPML-Request XMLです。

The KPML request document MUST be well formed and SHOULD be valid. KPML documents MUST conform to XML 1.0 [14] and MUST use UTF-8 encoding.

KPML要求ドキュメントは適切に形成されている必要があり、有効である必要があります。KPMLドキュメントは、XML 1.0 [14]に準拠する必要があり、UTF-8エンコーディングを使用する必要があります。

Because of the potentially sensitive nature of the information reported by KPML, subscribers SHOULD use sips: and MAY use S/MIME on the content.

KPMLが報告した情報の潜在的に敏感な性質のため、加入者はSIPを使用する必要があります。コンテンツでS/MIMEを使用する場合があります。

Subscribers MUST be prepared for the notifier to insist on authentication of the subscription request. Subscribers MUST be prepared for the notifier to insist on using a secure communication channel.

購読者は、サブスクリプションリクエストの認証を主張するために、通知者のために準備する必要があります。サブスクライバーは、安全な通信チャネルの使用を主張するために、通知者のために準備する必要があります。

4.7. Notifier Processing of SUBSCRIBE Requests
4.7. サブスクライブリクエストの通知者処理

The user information transported by KPML is potentially sensitive. For example, it could include calling card or credit card numbers. Thus the User Interface (notifier) MUST authenticate the requesting party in some way before accepting the subscription.

KPMLによって輸送されるユーザー情報は、潜在的に敏感です。たとえば、コーリングカードまたはクレジットカード番号を含めることができます。したがって、ユーザーインターフェイス(Notifier)は、サブスクリプションを受け入れる前に、何らかの方法で要求パーティを認証する必要があります。

User Interfaces MUST implement SIP Digest authentication as required by RFC 3261 [4] and MUST implement the sips: scheme and TLS.

ユーザーインターフェイスは、RFC 3261 [4]で要求されるSIPダイジェスト認証を実装する必要があり、SIPS:スキームとTLSを実装する必要があります。

Upon authenticating the requesting party, the User Interface determines if the requesting party has authorization to monitor the user's key presses. The default authorization policy is to allow a KPML subscriber who can authenticate with a specific identity to monitor key presses from SIP sessions in which the same or equivalent authenticated identity is a participant. In addition, KPML will often be used, for example, between "application servers" (subscribers) and PSTN gateways (notifiers) operated by the same domain or federation of domains. In this situation a notifier MAY be configured with a list of subscribers which are specifically trusted and authorized to subscribe to key press information related to all sessions in a particular context.

リクエストパーティを認証すると、ユーザーインターフェイスは、要求者がユーザーのキープレスを監視する許可があるかどうかを判断します。デフォルトの承認ポリシーは、特定のIDで認証できるKPMLサブスクライバーが、同じまたは同等の認証されたアイデンティティが参加者であるSIPセッションのキープレスを監視できるようにすることです。さらに、KPMLは、たとえば、「アプリケーションサーバー」(サブスクライバー)と同じドメイン連邦で動作するPSTNゲートウェイ(通知者)の間で使用されることがよくあります。この状況では、特定のコンテキストでのすべてのセッションに関連するキープレス情報を購読することを特別に信頼し、承認されたサブスクライバーのリストで通知者を構成することができます。

The User Interface returns a Contact URI that may have GRUU [9] properties in the Contact header of a SIP INVITE, 1xx, or 2xx response.

ユーザーインターフェイスは、SIP Invite、1XX、または2XX応答のコンタクトヘッダーにGruu [9]プロパティを持つ可能性のあるContact URIを返します。

After authorizing the request, the User Interface checks to see if the request is to terminate a subscription. If the request will terminate the subscription, the User Interface does the appropriate processing, including the procedures described in Section 5.2.

リクエストを承認した後、ユーザーインターフェイスは、リクエストがサブスクリプションを終了するかどうかを確認するためにチェックします。要求がサブスクリプションを終了する場合、ユーザーインターフェイスはセクション5.2で説明されている手順を含む適切な処理を行います。

If the request has no KPML body, then any KPML document running on that dialog and addressed by the event id, if present, immediately terminates. This is a mechanism for unloading a KPML document while keeping the SUBSCRIBE-initiated dialog active. This can be important for secure sessions that have high costs for session establishment. The User Interface follows the procedures described in Section 5.2.

リクエストにKPMLボディがない場合、そのダイアログで実行され、イベントIDで対処されているKPMLドキュメントは、すぐに終了します。これは、購読開始ダイアログをアクティブに保ちながらKPMLドキュメントを降ろすためのメカニズムです。これは、セッションの確立に高コストを備えた安全なセッションにとって重要です。ユーザーインターフェイスは、セクション5.2で説明されている手順に従います。

If the dialog referenced by the kpml subscription does not exist, the User Interface follows the procedures in Section 5.3. Note the User Interface MUST issue a 200 OK to the SUBSCRIBE request before issuing the NOTIFY, as the SUBSCRIBE itself is well formed.

KPMLサブスクリプションによって参照されるダイアログが存在しない場合、ユーザーインターフェイスはセクション5.3の手順に従います。注ユーザーインターフェイスは、サブスクライブ自体が適切に形成されているため、Notifyを発行する前にサブスクライブリクエストに200 OKを発行する必要があります。

If the request has a KPML body, the User Interface parses the KPML document. The User Interface SHOULD validate the XML document against the schema presented in Section 5.2. If the document is not valid, the User Interface rejects the SUBSCRIBE request with an appropriate error response and terminates the subscription. If there is a loaded KPML document on the subscription, the User Interface unloads the document.

リクエストにKPMLボディがある場合、ユーザーインターフェイスはKPMLドキュメントを解析します。ユーザーインターフェイスは、セクション5.2で提示されたスキーマに対してXMLドキュメントを検証する必要があります。ドキュメントが有効でない場合、ユーザーインターフェイスは、適切なエラー応答でサブスクライブリクエストを拒否し、サブスクリプションを終了します。サブスクリプションにロードされたKPMLドキュメントがある場合、ユーザーインターフェイスはドキュメントをアンロードします。

In addition, if there is a loaded KPML document on the subscription, the end device unloads the document.

さらに、サブスクリプションにロードされたKPMLドキュメントがある場合、エンドデバイスはドキュメントをアンロードします。

Following the semantics of SUBSCRIBE, if the User Interface receives a resubscription, the User Interface MUST terminate the existing KPML request and replace it with the new request.

購読のセマンティクスに従って、ユーザーインターフェイスが再サブスクリプションを受信した場合、ユーザーインターフェイスは既存のKPML要求を終了し、新しいリクエストに置き換える必要があります。

It is possible for the INVITE usage of the dialog to terminate during key press collection. The cases enumerated here are explicit subscription termination, automatic subscription termination, and underlying (INVITE-initiated) dialog termination.

ダイアログの招待状の使用は、キープレスコレクション中に終了する可能性があります。ここに列挙されているケースは、明示的なサブスクリプション終了、自動サブスクリプション終了、および基礎となる(招待状)ダイアログ終了です。

If a SUBSCRIBE request has an expires of zero (explicit SUBSCRIBE termination), includes a KPML document, and there is buffered User Input, then the User Interface attempts to process the buffered digits against the document. If there is a match, the User Interface MUST generate the appropriate KPML report with the KPML status code of 200. The SIP NOTIFY body terminates the subscription by setting the subscription state to "terminated" and a reason of "timeout".

サブスクライブリクエストの有効期限がゼロ(明示的な購読終了)が含まれ、KPMLドキュメントが含まれ、バッファーユーザー入力がある場合、ユーザーインターフェイスはドキュメントに対するバッファリングされた数字を処理しようとします。一致がある場合、ユーザーインターフェイスは、KPMLステータスコード200の適切なKPMLレポートを生成する必要があります。SIP通知ボディは、サブスクリプション状態を「終了」と「タイムアウト」の理由に設定することによりサブスクリプションを終了します。

If the SUBSCRIBE request has an expires of zero and no KPML body or the expires timer on the SUBSCRIBE-initiated dialog fires at the User Interface (notifier), then the User Interface MUST issue a KPML report with the KPML status code 487, Subscription Expired. The report also includes the User Input collected up to the time the expires timer expired or when the subscription with expires equal to zero was processed. This could be the null string.

購読要求の有効期限がゼロで、kpmlボディがない場合、またはユーザーインターフェイス(notifier)でサブスクライティングされたダイアログファイアーのタイマーが有効期限が切れている場合、ユーザーインターフェイスはKPMLステータスコード487でKPMLレポートを発行する必要があります。。レポートには、期限が切れる時までに収集されたユーザー入力も含まれています。これはヌル文字列になる可能性があります。

Per the mechanisms of RFC 3265 [5], the User Interface MUST terminate the SIP SUBSCRIBE dialog. The User Interface does this via the SIP NOTIFY body transporting the final report described in the preceding paragraph. In particular, the subscription state will be "terminated" and a reason of "timeout".

RFC 3265 [5]のメカニズムに従って、ユーザーインターフェイスはSIPサブスクライブダイアログを終了する必要があります。ユーザーインターフェイスは、前の段落で説明されている最終レポートを輸送するSIP通知機関を介してこれを行います。特に、サブスクリプション状態は「終了」され、「タイムアウト」の理由があります。

Terminating the subscription when a dialog terminates ensures reauthorization (if necessary) for attaching to subsequent subscriptions.

ダイアログが終了したときにサブスクリプションを終了すると、後続のサブスクリプションに添付するための再承認(必要に応じて)が保証されます。

If a SUBSCRIBE request references a dialog that is not present at the User Interface, the User Interface MUST generate a KPML report with the KPML status code 481, Dialog Not Found. The User Interface terminates the subscription by setting the subscription state to "terminated".

サブスクライブリクエストがユーザーインターフェイスに存在しないダイアログを参照する場合、ユーザーインターフェイスはKPMLステータスコード481でKPMLレポートを生成する必要があります。ダイアログは見つかりません。ユーザーインターフェイスは、サブスクリプション状態を「終了」に設定することにより、サブスクリプションを終了します。

If the KPML document is not valid, the User Interface generates a KPML report with the KPML status code 501, Bad Document. The User Interface terminates the subscription by setting the subscription state to "terminated".

KPMLドキュメントが有効でない場合、ユーザーインターフェイスは、KPMLステータスコード501であるBad Documentを使用してKPMLレポートを生成します。ユーザーインターフェイスは、サブスクリプション状態を「終了」に設定することにより、サブスクリプションを終了します。

If the document is valid but the User Interface does not support a namespace in the document, the User Interface MUST respond with a KPML status code 502, Namespace Not Supported.

ドキュメントが有効であるが、ユーザーインターフェイスがドキュメント内の名前空間をサポートしていない場合、ユーザーインターフェイスはKPMLステータスコード502、名前空間でサポートされていない応答する必要があります。

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

Immediately after a subscription is accepted, the Notifier MUST send a NOTIFY with the current location information as appropriate based on the identity of the subscriber. This allows the Subscriber to resynchronize its state.

サブスクリプションが受け入れられた直後に、通知者は、サブスクライバーの身元に基づいて、必要に応じて現在の位置情報を含む通知を送信する必要があります。これにより、サブスクライバーは状態を再同期させることができます。

The User Interface (notifier in SUBSCRIBE/NOTIFY parlance) generates NOTIFY requests based on the requirements of RFC 3265 [5]. Specifically, if a SUBSCRIBE request is valid and authorized, it will result in an immediate NOTIFY.

ユーザーインターフェイス(購読/Notify Parlanceの通知者)は、RFC 3265の要件に基づいて通知要求を生成します[5]。具体的には、購読要求が有効で承認されている場合、即時の通知になります。

The KPML payload distinguishes between an initial NOTIFY and a NOTIFY informing of key presses. If there is no User Input buffered at the time of the SUBSCRIBE (see below) or the buffered User Input does not match the new KPML document, then the immediate NOTIFY MUST NOT contain a KPML body. If User Interface has User Input buffered that results in a match using the new KPML document, then the NOTIFY MUST return the appropriate KPML document.

KPMLペイロードは、初期通知とキープレスの通知通知を区別します。サブスクライブ時にバッファリングされたユーザー入力がない場合(以下を参照)、またはバッファーされたユーザー入力が新しいKPMLドキュメントと一致しない場合、即時の通知にKPMLボディを含めてはなりません。ユーザーインターフェイスにユーザー入力がバッファリングされている場合、新しいKPMLドキュメントを使用して一致する場合、Notifyは適切なKPMLドキュメントを返す必要があります。

The NOTIFY in response to a SUBSCRIBE request has no KPML if there are no matching buffered digits. An example of this is in Figure 10.

サブスクライブリクエストに応じた通知には、バッファリングされた桁が一致しない場合、KPMLはありません。この例は図10にあります。

If there are buffered digits in the SUBSCRIBE request that match a pattern, then the NOTIFY message in response to the SUBSCRIBE request MUST include the appropriate KPML document.

パターンに一致するサブスクライブリクエストにバッファリングされた数字がある場合、サブスクライブリクエストに応じたNotifyメッセージには、適切なKPMLドキュメントを含める必要があります。

   NOTIFY sip:application@example.com SIP/2.0
   Via: SIP/2.0/UDP proxy.example.com
   Max-Forwards: 70
   To: <sip:application@example.com>
   From: <sip:endpoint@example.net>
   Call-Id: 439hu409h4h09903fj0ioij
   Subscription-State: active; expires=7200
   CSeq: 49851 NOTIFY
   Event: kpml
        

Figure 10: Immediate NOTIFY Example

図10:すぐに通知例

All subscriptions MUST be authenticated, particularly those that match on buffered input.

すべてのサブスクリプションは、特にバッファー入力に一致するサブスクリプションを認証する必要があります。

KPML specifies the key press notification report format. The MIME type for KPML reports is application/kpml-response+xml. The default MIME type for the kpml event package is application/ kpml-response+xml.

KPMLキープレス通知レポート形式を指定します。KPMLレポートのMIMEタイプは、Application/KPML-Response XMLです。KPMLイベントパッケージのデフォルトのMIMEタイプは、Application/ KPML-Response XMLです。

If the requestor is not using a secure transport protocol such as TLS for every hop (e.g., by using a sips: URI), the User Interface SHOULD use S/MIME to protect the user information in responses.

要求者が、すべてのホップにTLSなどの安全なトランスポートプロトコルを使用していない場合(たとえば、SIPS:URIを使用することにより)、ユーザーインターフェイスはS/MIMEを使用して応答のユーザー情報を保護する必要があります。

When the user enters key presses that match a <regex> tag, the User Interface will issue a report.

ユーザーが<regex>タグに一致するキーを押すと、ユーザーインターフェイスがレポートを発行します。

After reporting, the interpreter terminates the KPML session unless the subscription has a persistence indicator. If the subscription does not have a persistence indicator, the User Interface MUST set the state of the subscription to "terminated" in the NOTIFY report.

報告後、サブスクリプションに永続性インジケーターがない限り、通訳者はKPMLセッションを終了します。サブスクリプションに永続性インジケーターがない場合、ユーザーインターフェイスは、notifyレポートでサブスクリプションの状態を「終了」するように設定する必要があります。

If the subscription does not have a persistence indicator, to collect more digits, the requestor must issue a new request.

サブスクリプションに永続的なインジケータがない場合、より多くの数字を収集するために、要求者は新しいリクエストを発行する必要があります。

NOTE: This highlights the "one shot" nature of KPML, reflecting the balance of features and ease of implementing an interpreter.

注:これは、KPMLの「ワンショット」の性質を強調し、特徴のバランスと通訳の実装の容易さを反映しています。

KPML reports have two mandatory attributes, code and text. These attributes describe the state of the KPML interpreter on the User Interface. Note the KPML status code is not necessarily related to the SIP result code. An important example of this is where a legal SIP subscription request gets a normal SIP 200 OK followed by a NOTIFY, but there is something wrong with the KPML request. In this case, the NOTIFY would include the KPML status code in the KPML report. Note that from a SIP perspective, the SUBSCRIBE and NOTIFY were successful. Also, if the KPML failure is not recoverable, the User Interface will most likely set the Subscription-State to "terminated". This lets the SIP machinery know the subscription is no longer active.

KPMLレポートには、コードとテキストの2つの必須属性があります。これらの属性は、ユーザーインターフェイス上のKPMLインタープリターの状態を説明しています。注KPMLステータスコードは、必ずしもSIP結果コードに関連しているわけではありません。この重要な例は、法的SIPサブスクリプションリクエストが通常のSIP 200 OKに続いて通知を取得する場合ですが、KPMLリクエストには何か問題があります。この場合、NotifyにはKPMLレポートにKPMLステータスコードが含まれます。SIPの観点から、購読と通知は成功したことに注意してください。また、KPML障害が回復できない場合、ユーザーインターフェイスはサブスクリプション状態を「終了」に設定する可能性が最も高くなります。これにより、SIP機械はサブスクリプションがアクティブではなくなっていることがわかります。

If a pattern matches, the User Interface will emit a KPML report. Since this is a success report, the code is "200", and the text is "OK".

パターンが一致する場合、ユーザーインターフェイスはKPMLレポートを発します。これは成功レポートであるため、コードは「200」で、テキストは「OK」です。

The KPML report includes the actual digits matched in the digit attribute. The digit string uses the conventional characters '*' and '#' for star and octothorpe, respectively. The KPML report also includes the tag attribute if the regex that matched the digits had a tag attribute.

KPMLレポートには、数字属性に一致する実際の数字が含まれています。数字文字列は、それぞれStarとOctothorpeに従来の文字「*」と「#」を使用します。KPMLレポートには、数字に一致するRegexにタグ属性がある場合、タグ属性も含まれています。

If the subscription requested digit suppression and the User Interface suppressed digits, the suppressed attribute indicates "true". The default value of suppressed is "false".

サブスクリプションが桁の抑制を要求し、ユーザーインターフェイスが数字を抑制した場合、抑制された属性は「true」を示します。抑制されたデフォルト値は「false」です。

NOTE: KPML does not include a timestamp. There are a number of reasons for this. First, what timestamp would it include? Would it be the time of the first detected key press? The time the interpreter collected the entire string? A range? Second, if the RTP timestamp is a datum of interest, why not simply get RTP in the first place? That all said, if it is really compelling to have the timestamp in the response, it could be an attribute to the <response> tag.

注:KPMLにはタイムスタンプは含まれていません。これにはいくつかの理由があります。まず、どのタイムスタンプが含まれますか?最初に検出されたキープレスの時期でしょうか?通訳者が文字列全体を収集した時。範囲?第二に、RTPタイムスタンプが関心のあるデータムである場合、そもそもRTPを取得してみませんか?それは、応答にタイムスタンプを持っていることが本当に説得力がある場合、それは<応答>タグの属性になる可能性があります。

Note that if the monitored (INVITE-initiated) dialog terminates, the notifier still MUST explicitly terminate the KPML subscriptions monitoring that dialog.

監視されている(招待された)ダイアログが終了する場合、Notifierはそのダイアログを監視するKPMLサブスクリプションを明示的に終了する必要があることに注意してください。

4.9. Subscriber Processing of NOTIFY Requests
4.9. 通知要求のサブスクライバー処理

If there is no KPML body, it means the SUBSCRIBE was successful. This establishes the dialog if there is no buffered User Input to report.

KPMLボディがない場合、購読が成功したことを意味します。これにより、報告するバッファーユーザー入力がない場合にダイアログが確立されます。

If there is a KPML document, and the KPML status code is 200, then a match occurred.

KPMLドキュメントがあり、KPMLステータスコードが200の場合、一致が発生します。

If there is a KPML document, and the KPML status code is between 400 and 499, then an error occurred with User Input collection. The most likely cause is a timeout condition.

KPMLドキュメントがあり、KPMLステータスコードが400〜499の場合、ユーザー入力コレクションでエラーが発生しました。最も可能性の高い原因は、タイムアウト条件です。

If there is a KPML document, and the KPML status code is between 500 and 599, then an error occurred with the subscription. See Section 6 for more on the meaning of KPML status codes.

KPMLドキュメントがあり、KPMLステータスコードが500〜599の場合、サブスクリプションでエラーが発生しました。KPMLステータスコードの意味については、セクション6を参照してください。

The subscriber MUST be mindful of the subscription state. The User Interface may terminate the subscription at any time.

サブスクライバーは、サブスクリプション状態に留意する必要があります。ユーザーインターフェイスは、いつでもサブスクリプションを終了する場合があります。

4.10. Handling of Forked Requests
4.10. フォークリクエストの処理

Forked requests are NOT ALLOWED for this event type. This can be ensured if the Subscriptions to this event package are sent to SIP URIs that have GRUU properties.

4.11. Rate of Notifications
4.11.

The User Interface MUST NOT generate messages faster than 25 messages per second, or one message every 40 milliseconds. This is the minimum time period for MF digit spills. Even 30-millisecond DTMF, as one sometimes finds in Japan, has a 20-millisecond off time, resulting in a 50-millisecond interdigit time. This document strongly RECOMMENDS AGAINST using KPML for digit-by-digit messaging, such as would be the case if the only <regex> is "x".

ユーザーインターフェイスは、1秒あたり25のメッセージ、または40ミリ秒ごとに1つのメッセージよりも速くメッセージを生成してはなりません。これは、MF桁の流出の最小期間です。日本で時々発見されるように、30ミリ秒のDTMFでさえ、20ミリオフの時間があり、その結果、50ミリ秒間の間隔時間があります。このドキュメントでは、<regex>が「x」である場合の場合のような、桁ごとのメッセージにKPMLを使用することを強くお勧めします。

The sustained rate of notification shall be no more than 100 Notifies per minute.

持続的な通知率は、1分あたりの通知を100回以内にするものとします。

The User Interface MUST reliably deliver notifications. Because there is no meaningful metric for throttling requests, the User Interface SHOULD send NOTIFY messages over a congestion-controlled transport, such as TCP.

ユーザーインターフェイスは、通知を確実に配信する必要があります。スロットリングリクエストに意味のあるメトリックがないため、ユーザーインターフェイスは、TCPなどの輻輳制御トランスポートを介して通知メッセージを送信する必要があります。

Note that all SIP implementations are already required to implement SIP over TCP.

TCPを介してSIPを実装するには、すべてのSIP実装がすでに必要であることに注意してください。

4.12. State Agents and Lists
4.12. 州のエージェントとリスト

KPML requests are sent to a specific SIP URI, which may have GRUU properties, and they attempt to monitor a specific stream that corresponds with a specific target dialog. Consequently, implementers MUST NOT define state agents for this event package or allow subscriptions for this event package to resource lists using the event list extension [18].

KPMLリクエストは、Gruuプロパティを備えた特定のSIP URIに送信され、特定のターゲットダイアログに対応する特定のストリームを監視しようとします。したがって、実装者は、このイベントパッケージの州エージェントを定義したり、このイベントパッケージのサブスクリプションをイベントリスト拡張子[18]を使用してリソースリストに許可したりしてはなりません。

4.13. Behavior of a Proxy Server
4.13. プロキシサーバーの動作

There are no additional requirements on a SIP Proxy, other than to transparently forward the SUBSCRIBE and NOTIFY methods as required in SIP.

SIPプロキシには、SIPで必要に応じてメソッドを透過的に転送し、通知する以外に、追加の要件はありません。

5. Formal Syntax
5. 正式な構文
5.1. DRegex
5.1. Dregex

The following definition follows RFC 4234 [2]. The definition of DIGIT is from RFC 4234, namely, the characters "0" through "9". Note the DRegexCharacter is not a HEXDIG from RFC 4234. In particular, DRegexCharacter includes neither "E" nor "F". Note that DRegexCharacter is case insensitive.

次の定義は、RFC 4234 [2]に従います。数字の定義は、RFC 4234、つまり文字「0」から「9」からのものです。DregexcharacterはRFC 4234のHexdigではありません。特に、Dregexcharacterには「e」も「F」も含まれていません。Dregexcharacterは症例ではないことに注意してください。

   DRegex           = 1*( DRegexPosition [ RepeatCount ] )
   DRegexPosition   = DRegexSymbol / DRegexSet
   DRegexSymbol     = [ "L" ] DRegexCharacter
   DRegexSet        = "[" 1*DRegexSetList "]"
   DRegexSetList    = DRegexCharacter [ "-" DRegexCharacter ]
   DRegexCharacter  = DIGIT / "A" / "B" / "C" / "D" / "R" / "*" / "#" /
                            "a" / "b" / "c" / "d" / "r"
   RepeatCount      = "." / "{" RepeatRange "}"
   RepeatRange      = Count / ( Count "," Count ) /
                              ( Count "," ) / ( "," Count )
   Count            = 1*DIGIT
        

ABNF for DRegex

Note that future extensions to this document may introduce other characters for DRegexCharacter, in the scheme of H.248.1 [12] or possibly as named strings or XML namespaces.

このドキュメントへの将来の拡張は、H.248.1 [12]のスキーム、またはおそらく文字列またはXMLネームスペースのように、Dregexcharacterの他の文字を紹介する可能性があることに注意してください。

5.2. KPML Request
5.2. KPMLリクエスト

The following syntax for KPML requests uses the XML Schema [8].

KPML要求の次の構文では、XMLスキーマ[8]を使用します。

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:kpml-request"
    xmlns="urn:ietf:params:xml:ns:kpml-request"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
     <xs:element name="kpml-request">
       <xs:annotation>
         <xs:documentation>IETF Keypad Markup Language Request
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:sequence>
           <xs:element name="stream" minOccurs="0">
             <xs:complexType>
               <xs:choice>
                 <xs:element name="reverse" minOccurs="0"/>
                 <xs:any namespace="##other"/>
               </xs:choice>
             </xs:complexType>
           </xs:element>
           <xs:element name="pattern">
             <xs:complexType>
               <xs:sequence>
                 <xs:element name="flush" minOccurs="0">
                   <xs:annotation>
                     <xs:documentation>
                       Default is to not flush buffer
                     </xs:documentation>
                   </xs:annotation>
                   <xs:complexType>
                     <xs:simpleContent>
                       <xs:extension base="xs:string"/>
                     </xs:simpleContent>
                   </xs:complexType>
                 </xs:element>
                 <xs:element name="regex" maxOccurs="unbounded">
                   <xs:annotation>
                     <xs:documentation>
                       Key press notation is a string to allow
                       for future extension of non-16 digit
                       keypads or named keys
                     </xs:documentation>
                   </xs:annotation>
        
                   <xs:complexType mixed="true">
                     <xs:choice>
                       <xs:element name="pre" minOccurs="0">
                         <xs:complexType>
                           <xs:simpleContent>
                             <xs:extension base="xs:string"/>
                           </xs:simpleContent>
                         </xs:complexType>
                       </xs:element>
                       <xs:any namespace="##other"/>
                     </xs:choice>
                     <xs:attribute name="tag" type="xs:string"
                                   use="optional"/>
                   </xs:complexType>
                 </xs:element>
               </xs:sequence>
               <xs:attribute name="persist" use="optional">
                 <xs:annotation>
                   <xs:documentation>Default is "one-shot"
                   </xs:documentation>
                 </xs:annotation>
                 <xs:simpleType>
                   <xs:restriction base="xs:string">
                     <xs:enumeration value="one-shot"/>
                     <xs:enumeration value="persist"/>
                     <xs:enumeration value="single-notify"/>
                   </xs:restriction>
                 </xs:simpleType>
               </xs:attribute>
               <xs:attribute name="interdigittimer"
                             type="xs:integer"
                             use="optional">
                 <xs:annotation>
                   <xs:documentation>Default is 4000 (ms)
                   </xs:documentation>
                 </xs:annotation>
               </xs:attribute>
               <xs:attribute name="criticaldigittimer"
                             type="xs:integer"
                             use="optional">
                 <xs:annotation>
                   <xs:documentation>Default is 1000 (ms)
                   </xs:documentation>
                 </xs:annotation>
               </xs:attribute>
               <xs:attribute name="extradigittimer"
                             type="xs:integer"
                             use="optional">
        
                 <xs:annotation>
                   <xs:documentation>Default is 500 (ms)
                   </xs:documentation>
                 </xs:annotation>
               </xs:attribute>
               <xs:attribute name="long" type="xs:integer"
                             use="optional"/>
               <xs:attribute name="longrepeat" type="xs:boolean"
                             use="optional"/>
               <xs:attribute name="nopartial" type="xs:boolean"
                             use="optional">
                 <xs:annotation>
                   <xs:documentation>Default is false
                   </xs:documentation>
                 </xs:annotation>
               </xs:attribute>
               <xs:attribute name="enterkey" type="xs:string"
                             use="optional">
                 <xs:annotation>
                   <xs:documentation>No default enterkey
                   </xs:documentation>
                 </xs:annotation>
               </xs:attribute>
             </xs:complexType>
           </xs:element>
         </xs:sequence>
         <xs:attribute name="version" type="xs:string"
                       use="required"/>
       </xs:complexType>
     </xs:element>
   </xs:schema>
        

Figure 12: XML Schema for KPML Requests

図12:KPMLリクエストのXMLスキーマ

5.3. KPML Response
5.3. KPML応答

The following syntax for KPML responses uses the XML Schema [8].

KPML応答の次の構文では、XMLスキーマ[8]を使用しています。

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:kpml-response"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:ietf:params:xml:ns:kpml-response"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
     <xs:element name="kpml-response">
       <xs:annotation>
         <xs:documentation>IETF Keypad Markup Language Response
         </xs:documentation>
       </xs:annotation>
       <xs:complexType>
         <xs:attribute name="version" type="xs:string"
                       use="required"/>
         <xs:attribute name="code" type="xs:string"
                       use="required"/>
         <xs:attribute name="text" type="xs:string"
                       use="required"/>
         <xs:attribute name="suppressed" type="xs:boolean"
                       use="optional"/>
         <xs:attribute name="forced_flush" type="xs:string"
                       use="optional">
           <xs:annotation>
             <xs:documentation>
               String for future use for e.g., number of digits lost.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
         <xs:attribute name="digits" type="xs:string"
                       use="optional"/>
         <xs:attribute name="tag" type="xs:string" use="optional">
           <xs:annotation>
             <xs:documentation>Matches tag from regex in request
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
       </xs:complexType>
     </xs:element>
   </xs:schema>
        

XML Schema for KPML Responses

KPML応答のXMLスキーマ

6. Enumeration of KPML Status Codes
6. KPMLステータスコードの列挙

KPML status codes broadly follow their SIP counterparts. Codes that start with a 2 indicate success. Codes that start with a 4 indicate failure. Codes that start with a 5 indicate a server failure, usually a failure to interpret the document or to support a requested feature.

KPMLステータスコードは、SIPのカウンターパートを広く追跡します。2から始まるコードは成功を示します。4から始まるコードは、障害を示します。5から始まるコードは、通常、ドキュメントの解釈の失敗、または要求された機能をサポートしないことを示します。

KPML clients MUST be able to handle arbitrary status codes by examining the first digit only.

KPMLクライアントは、最初の数字のみを調べることにより、任意のステータスコードを処理できる必要があります。

Any text can be in a KPML report document. KPML clients MUST NOT interpret the text field.

すべてのテキストは、KPMLレポートドキュメントに記載できます。KPMLクライアントはテキストフィールドを解釈してはなりません。

        +------+--------------------------------------------------+
        | Code | Text                                             |
        +------+--------------------------------------------------+
        | 200  | Success                                          |
        | 402  | User Terminated without Match                    |
        | 423  | Timer Expired                                    |
        | 481  | Dialog Not Found                                 |
        | 487  | Subscription Expired                             |
        | 501  | Bad Document                                     |
        | 502  | Namespace Not Supported                          |
        | 531  | Persistent Subscriptions Not Supported           |
        | 532  | Multiple Regular Expressions Not Supported       |
        | 533  | Multiple Subscriptions on a Dialog Not Supported |
        | 534  | Too Many Regular Expressions                     |
        +------+--------------------------------------------------+
        

Table 4: KPML Status Codes

表4:KPMLステータスコード

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

This document registers a new SIP Event Package, two new MIME types, and two new XML namespaces.

このドキュメントは、新しいSIPイベントパッケージ、2つの新しいMIMEタイプ、2つの新しいXMLネームスペースを登録します。

7.1. SIP Event Package Registration
7.1. SIPイベントパッケージ登録
   Package name:  kpml
   Type:  package
   Contact:  Eric Burger, <e.burger@ieee.org>
   Change Controller:  SIPPING Working Group delegated from the IESG
   Published Specification:  RFC 4730
        
7.2. MIME Media Type application/kpml-request+xml
7.2. MIMEメディアタイプアプリケーション/KPML-Request XML

MIME media type name: application MIME subtype name: kpml-request+xml Required parameters: none Optional parameters: Same as charset parameter application/xml as specified in XML Media Types [3] Encoding considerations: See RFC 3023 [3]. Security considerations: See Section 10 of RFC 3023 [3] and Section 8 of RFC 4730 Interoperability considerations: See RFC 2023 [3] and RFC 4730 Published specification: RFC 4730 Applications which use this media type: Session-oriented applications that have primitive User Interfaces. Change controller: SIPPING Working Group delegated from the IESG Personal and email address for further information: Eric Burger <e.burger@ieee.org> Intended usage: COMMON

MIMEメディアタイプ名:アプリケーションMIMEサブタイプ名:KPML-REQUEST XML必須パラメーター:なしオプションパラメーター:XMLメディアタイプで指定されているCharsetパラメーターアプリケーション/XMLと同じ[3]エンコードに関する考慮事項:RFC 3023 [3]を参照してください。セキュリティの考慮事項:RFC 3023 [3]のセクション10 [3]およびRFC 4730のセクション8を参照してください。インターフェイス。Change Controller:詳細については、IESGの個人および電子メールアドレスから委任されたワーキンググループをすすりました:Eric Burger <e.burger@ieee.org>意図した使用法:common

7.3. MIME Media Type application/kpml-response+xml
7.3. MIMEメディアタイプアプリケーション/KPML応答XML

MIME media type name: application MIME subtype name: kpml-response+xml Required parameters: none Optional parameters: Same as charset parameter application/xml as specified in XML Media Types [3] Encoding considerations: See RFC 3023 [3]. Security considerations: See Section 10 of RFC 3023 [3] and Section 8 of RFC 4730 Interoperability considerations: See RFC 2023 [3] and RFC 4730 Published specification: RFC 4730 Applications which use this media type: Session-oriented applications that have primitive User Interfaces. Change controller: SIPPING Working Group delegated from the IESG Personal and email address for further information: Eric Burger <e.burger@ieee.org> Intended usage: COMMON

MIMEメディアタイプ名:アプリケーションMIMEサブタイプ名:KPML応答XML必須パラメーター:なしオプションパラメーター:XMLメディアタイプで指定されているCharsetパラメーターアプリケーション/XMLと同じ[3]エンコード考慮事項:RFC 3023 [3]を参照してください。セキュリティの考慮事項:RFC 3023 [3]のセクション10 [3]およびRFC 4730のセクション8を参照してください。インターフェイス。Change Controller:詳細については、IESGの個人および電子メールアドレスから委任されたワーキンググループをすすりました:Eric Burger <e.burger@ieee.org>意図した使用法:common

7.4. URN Sub-Namespace Registration for urn:ietf:xml:ns:kpml-request
7.4. urnのurn sub-namespace登録:ietf:xml:ns:kpml-request
   URI: urn:ietf:params:xml:ns:kpml-request
        

Registrant Contact: The IESG <iesg@ietf.org> XML:

登録者の連絡先:iesg <iesg@ietf.org> xml:

   <?xml version="1.0"?>
   <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML Basic 1.0//EN"
             "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
       <meta http-equiv="content-type"
             content="text/html;charset=iso-8859-1"/>
       <title>Key Press Markup Language Request</title>
     </head>
     <body>
       <h1>Namespace for Key Press Markup Language Request</h1>
       <h2>urn:ietf:params:xml:ns:kpml-request</h2>
       <p>
   <a href="ftp://ftp.rfc-editor.org/in-notes/RFC4730.txt">RFC 4730</a>.
       </p>
     </body>
   </html>
        
7.5. URN Sub-Namespace Registration for urn:ietf:xml:ns:kpml-response
7.5. urnのurn sub-namespace登録:ietf:xml:ns:kpml-response
   URI: urn:ietf:params:xml:ns:kpml-response
        
   Registrant Contact: The IESG <iesg@ietf.org>
        

XML:

XML:

   <?xml version="1.0"?>
   <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML Basic 1.0//EN"
             "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
       <meta http-equiv="content-type"
             content="text/html;charset=iso-8859-1"/>
       <title>Key Press Markup Language Response</title>
     </head>
     <body>
       <h1>Namespace for Key Press Markup Language Response</h1>
       <h2>urn:ietf:params:xml:ns:kpml-response</h2>
       <p>
   <a href="ftp://ftp.rfc-editor.org/in-notes/rfc4730.txt">RFC 4730</a>.
       </p>
     </body>
   </html>
        
7.6. KPML Request Schema Registration
7.6. KPML要求スキーマ登録

Per RFC 3688 [7], IANA registered the XML Schema for KPML as referenced in Section 5.2 of RFC 4730.

RFC 3688 [7]ごとに、IANAは、RFC 4730のセクション5.2で参照されているように、KPMLのXMLスキーマを登録しました。

   URI: urn:ietf:params:xml:schema:kpml-request
        
   Registrant Contact: <iesg@ietf.org>
        
7.7. KPML Response Schema Registration
7.7. KPML応答スキーマ登録

Per RFC 3688 [7], IANA registered the XML Schema for KPML as referenced in Section 5.3 of RFC 4730.

RFC 3688 [7]ごとに、IANAは、RFC 4730のセクション5.3で参照されているように、KPMLのXMLスキーマを登録しました。

   URI: urn:ietf:params:xml:schema:kpml-response
        

Registrant Contact: IETF, SIPPING Work Group <sipping@ietf.org>, Eric Burger <e.burger@ieee.org>.

登録者の連絡先:IETF、Sipping Work Group <Sipping@ietf.org>、Eric Burger <e.burger@ieee.org>。

8. Security Considerations
8. セキュリティに関する考慮事項

The user information transported by KPML is potentially sensitive. For example, it could include calling card or credit card numbers. This potentially private information could be provided accidentally if the notifier does not properly authenticate or authorize a subscription. Similarly private information (such as a credit card number or calling card number) could be revealed to an otherwise legitimate subscriber (one operating an IVR) if digits buffered earlier in the session are provided unintentionally to the new subscriber.

KPMLによって輸送されるユーザー情報は、潜在的に敏感です。たとえば、コーリングカードまたはクレジットカード番号を含めることができます。この潜在的に個人情報は、宛先がサブスクリプションを適切に認証または承認しない場合、誤って提供できます。同様に、セッションの前半でバッファリングされた数字が新しいサブスクライバーに提供されている場合、それ以外の場合は合法的なサブスクライバー(1つはIVRを操作する)に個人情報(クレジットカード番号やコーリングカード番号など)を明らかにすることができます。

Likewise, an eavesdropper could view KPML digit information if it is not encrypted, or an attacker could inject fraudulent notifications unless the messages or the SIP path over which they travel are integrity protected.

同様に、盗聴者は、暗号化されていない場合、KPML桁情報を表示することができます。また、攻撃者は、メッセージまたは移動するSIPパスが整合性保護されていない限り、不正通知を注入できます。

Therefore, User Interfaces MUST NOT downgrade their own security policy. That is, if a User Interface policy is to restrict notifications to authenticated and authorized subscribers over secure communications, then the User Interface must not accept an unauthenticated, unauthorized subscription over an insecure communication channel.

したがって、ユーザーインターフェイスは独自のセキュリティポリシーを格下げしてはなりません。つまり、ユーザーインターフェイスポリシーが安全な通信を介して認証および承認されたサブスクライバーへの通知を制限する場合、ユーザーインターフェイスは、不安定な通信チャネルを介して認証されていない、許可されていないサブスクリプションを受け入れてはなりません。

As an XML markup, all of the security considerations of RFC 3023 [3] and RFC 3406 [6] MUST be met. Pay particular attention to the robustness requirements of parsing XML.

XMLマークアップとして、RFC 3023 [3]およびRFC 3406 [6]のセキュリティに関するすべての考慮事項を満たす必要があります。XMLの解析の堅牢性要件に特に注意してください。

Key press information is potentially sensitive. For example, it can represent credit card, calling card, or other personal information. Hijacking sessions allow unauthorized entities access to this sensitive information. Therefore, signaling SHOULD be secure, e.g., use of TLS and sips: SHOULD be used. Moreover, the information itself is sensitive so S/MIME or other appropriate mechanisms SHOULD be used.

キープレス情報は潜在的に敏感です。たとえば、クレジットカード、コーリングカード、またはその他の個人情報を表すことができます。ハイジャックセッションにより、不正なエンティティがこの機密情報にアクセスできます。したがって、シグナリングは安全である必要があります。たとえば、TLSおよびSIPの使用:使用する必要があります。さらに、情報自体が敏感であるため、S/MIMEまたは他の適切なメカニズムを使用する必要があります。

Subscriptions MUST be authenticated in some manner. As required by the core SIP [4] specification, all SIP implementations MUST support digest authentication. In addition, User Interfaces MUST implement support for the sips: scheme and SIP over TLS. Subscribers MUST expect the User Interface to demand the use of an authentication scheme. If the local policy of a User Interface is to use authentication or secure communication channels, the User Interface MUST reject subscription requests that do not meet that policy.

サブスクリプションは、何らかの方法で認証される必要があります。Core SIP [4]仕様で要求されるように、すべてのSIP実装はDigest認証をサポートする必要があります。さらに、ユーザーインターフェイスは、SIPのサポートを実装する必要があります:スキームとTLS上のSIP。加入者は、ユーザーインターフェイスが認証スキームの使用を要求することを期待する必要があります。ユーザーインターフェイスのローカルポリシーが認証または安全な通信チャネルを使用する場合、ユーザーインターフェイスはそのポリシーを満たさないサブスクリプションリクエストを拒否する必要があります。

User Interfaces MUST begin buffering User Input upon receipt of an authenticated and accepted subscription. This buffering is done on a per-subscription basis.

ユーザーインターフェイスは、認証されたサブスクリプションを受け取ったときにユーザー入力のバッファリングを開始する必要があります。このバッファリングは、サブスクリプションごとに行われます。

9. Examples
9. 例

This section is informative in nature. If there is a discrepancy between this section and the normative sections above, the normative sections take precedence.

このセクションは本質的に有益です。このセクションと上記の規範セクションの間に矛盾がある場合、規範的セクションが優先されます。

9.1. Monitoring for Octothorpe
9.1. Octothorpeの監視

A common need for pre-paid and personal assistant applications is to monitor a conversation for a signal indicating a change in user focus from the party they called through the application to the application itself. For example, if you call a party using a pre-paid calling card, and the party you call redirects you to voice mail, digits you press are for the voice mail system. However, many applications have a special key sequence, such as the octothorpe (#, or pound sign) or *9, that terminate the called party session and shift the user's focus to the application.

プリペイドおよびパーソナルアシスタントアプリケーションの一般的な必要性は、アプリケーションを通じてアプリケーション自体へのユーザーの焦点の変更を示す信号の会話を監視することです。たとえば、プリペイドのコーリングカードを使用してパーティーに電話をかけ、電話をかけるパーティーがボイスメールにリダイレクトする場合、プレスする桁はボイスメールシステム用です。ただし、多くのアプリケーションには、呼び出されたパーティーセッションを終了し、ユーザーの焦点をアプリケーションにシフトする、Octothorpe(#、またはPound Sign)や *9などの特別なキーシーケンスがあります。

Figure 16 shows the KPML for long octothorpe.

図16は、長いOctothorpeのKPMLを示しています。

   <?xml version="1.0"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern>
       <regex>L#</regex>
     </pattern>
   </kpml-request>
        

Figure 16: Long Octothorpe Example

図16:長いOctothorpeの例

The regex value L indicates the following digit needs to be a long-duration key press.

regex値lは、次の数字が長時間のキープレスである必要があることを示します。

9.2. Dial String Collection
9.2. 文字列コレクションをダイヤルします

In this example, the User Interface collects a dial string. The application uses KPML to quickly determine when the user enters a target number. In addition, KPML indicates what type of number the user entered.

この例では、ユーザーインターフェイスがダイヤル文字列を収集します。アプリケーションはKPMLを使用して、ユーザーがターゲット番号をいつ入力するかをすばやく決定します。さらに、KPMLは、ユーザーが入力した数値のタイプを示します。

   <?xml version="1.0"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern>
       <regex tag="local-operator">0</regex>
       <regex tag="ld-operator">00</regex>
       <regex tag="vpn">7[x][x][x]</regex>
       <regex tag="local-number7">9xxxxxxx</regex>
       <regex tag="RI-number">9401xxxxxxx</regex>
       <regex tag="local-number10">9xxxxxxxxxx</regex>
       <regex tag="ddd">91xxxxxxxxxx</regex>
       <regex tag="iddd">011x.</regex>
     </pattern>
   </kpml-request>
        

Figure 17: Dial String KPML Example Code

図17:文字列kpmlの例コードをダイヤルします

Note the use of the "tag" attribute to indicate which regex matched the dialed string. The interesting case here is if the user entered "94015551212". This string matches both the "9401xxxxxxx" and

「タグ」属性の使用に注意して、どのregexがダイヤルされた文字列と一致したかを示します。ここで興味深いケースは、ユーザーが「94015551212」を入力した場合です。この文字列は、「9401xxxxxxxx」との両方と一致します

"9xxxxxxxxxx" regular expressions. Both expressions are the same length. Thus the KPML interpreter will pick the "9401xxxxxxx" string, as it occurs first in document order. Figure 18 shows the response.

「9xxxxxxxxxx」正規表現。両方の式は同じ長さです。したがって、KPMLインタープリターは、ドキュメントの順序で最初に発生するため、「9401xxxxxxxx」文字列を選択します。図18は応答を示しています。

   <?xml version="1.0"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-resposne"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="94015551212" tag="RI-number"/>
        

Figure 18: Dial String KPML Response

図18:文字列KPML応答をダイヤルします

10. Call Flow Examples
10. フローの例を呼び出します
10.1. Supplemental Digits
10.1. 補足桁

This section gives a non-normative example of an application that collects supplemental digits. Supplemental digit collection is where the network requests additional digits after the caller enters the destination address. A typical supplemental dial string is four digits in length.

このセクションでは、補足桁を収集するアプリケーションの非規範的な例を示します。補足桁の収集は、発信者が宛先アドレスに入るとネットワークが追加の数字を要求する場所です。典型的な補足的なダイヤル文字列の長さは4桁です。

   Ingress Gateway      Application Server       Egress Gateway
          |                      |                      |
          |                      |                      |
          |                      |                      |
          |(1) INVITE            |                      |
          |-------------------------------------------->|
          |                      |                      |
          |                      |                      |
          |(2) 200 OK            |                      |
          |<--------------------------------------------|
          |                      |                      |
          |                      |                      |
          |(3) ACK               |                      |
          |-------------------------------------------->|
          |                      |                      |
          |                      |                      |
          |(4) SUBSCRIBE (one-shot)                     |
          |<---------------------|                      |
          |                      |                      |
          |                      |                      |
          |(5) 200 OK            |                      |
          |--------------------->|                      |
          |                      |                      |
          |                      |                      |
          |(6) NOTIFY            |                      |
          |--------------------->|                      |
          |                      |                      |
          |                      |                      |
          |(7) 200 OK            |                      |
          |<---------------------|                      |
          |                      |                      |
          |                      |                      |
          |(8)                   |                      |
          |......................|                      |
          |                      |                      |
          |                      |                      |
          |(9) NOTIFY (digits)   |                      |
          |--------------------->|                      |
          |                      |                      |
          |                      |                      |
          |(10) 200 OK           |                      |
          |<---------------------|                      |
          |                      |                      |
          |                      |                      |
          |                      |                      |
          |                      |                      |
        

Figure 19: Supplemental Digits Call Flow

図19:補足桁はフローを呼び出します

In messages (1-3), the ingress gateway establishes a dialog with an egress gateway. The application learns the dialog ID through out-of-band mechanisms, such as the Dialog Package or being co-resident with the egress gateway. Part of the ACK message is below, to illustrate the dialog identifiers.

   ACK sip:gw@subA.example.com SIP/2.0
   Via: ...
   Max-Forwards: ...
   Route: ...
   From: <sip:phn@example.com>;tag=jfh21
   To: <sip:gw@subA.example.com>;tag=onjwe2
   Call-ID: 12345592@subA.example.com
   ...
        

In message (4), the application the requests that gateway collect a string of four key presses.

メッセージ(4)では、アプリケーションは、ゲートウェイのリクエストが4つのキープレスの文字列を収集します。

   SUBSCRIBE sip:gw@subA.example.com SIP/2.0
   Via: SIP/2.0/TCP client.subB.example.com;branch=q4i9ufr4ui3
   From: <sip:ap@subB.example.com>;tag=567890
   To: <sip:gw@subA.example.com>
   Call-ID: 12345601@subA.example.com
   CSeq: 1 SUBSCRIBE
   Contact: <sip:ap@client.subB.example.com>
   Max-Forwards: 70
   Event: kpml ;remote-tag="sip:phn@example.com;tag=jfh21"
               ;local-tag="sip:gw@subA.example.com;tag=onjwe2"
               ;call-id="12345592@subA.example.com"
   Expires: 7200
   Accept: application/kpml-response+xml
   Content-Type: application/kpml-request+xml
   Content-Length: 292
        

<?xml version="1.0" encoding="UTF-8"?> <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd" version="1.0"> <pattern persist="one-shot"> <regex>xxxx</regex> </pattern> </kpml-request> Message (5) is the acknowledgement of the subscription request.

<?xml version = "1.0" encoding = "utf-8"?> <kpml-request xmlns = "urn:ietf:params:xml:ns:kpml-request" xmlns:xsi = "http://www.w333.org/2001/xmlschema-instance "xsi:schemalocation =" urn:ietf:params:xml:ns:kpml-request kpml-request.xsd "バージョン=" 1.0 "> <パターン永続=" on-shot "> <regex> xxxx </regex> </pattern> </kpml-request>メッセージ(5)は、サブスクリプション要求の承認です。

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP subB.example.com;branch=q4i9ufr4ui3;
        received=192.168.125.12
   From: <sip:ap@subB.example.com>;tag=567890
   To: <sip:gw@subA.example.com>;tag=1234567
   Call-ID: 12345601@subA.example.com
   CSeq: 1 SUBSCRIBE
   Contact: <sip:gw27@subA.example.com>
   Expires: 3600
   Event: kpml
        

Message (6) is the immediate notification of the subscription.

メッセージ(6)は、サブスクリプションの即時通知です。

   NOTIFY sip:ap@client.subB.example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=gw27id4993
   To: <sip:ap@subB.example.com>;tag=567890
   From: <sip:gw@subA.example.com>;tag=1234567
   Call-ID: 12345601@subA.example.com
   CSeq: 1000 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3599
   Max-Forwards: 70
   Content-Length: 0
        

Message (7) is the acknowledgement of the notification message.

メッセージ(7)は、通知メッセージの承認です。

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP subA.example.com;branch=gw27id4993
   To: <sip:ap@subB.example.com>;tag=567890
   From: <sip:gw@subA.example.com>;tag=1234567
   Call-ID: 12345601@subA.example.com
   CSeq: 1000 NOTIFY
        

Some time elapses (8).

しばらく経過する(8)。

The user enters the input. The device provides the notification of the collected digits in message (9). Since this was a one-shot subscription, note the Subscription-State is "terminated".

ユーザーが入力を入力します。このデバイスは、メッセージ(9)に収集された数字の通知を提供します。これはワンショットサブスクリプションであったため、サブスクリプション状態が「終了」されていることに注意してください。

   NOTIFY sip:ap@client.subB.example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=gw27id4993
   To: <sip:ap@subB.example.com>;tag=567890
   From: <sip:gw@subA.example.com>;tag=1234567
   Call-ID: 12345601@subA.example.com
   CSeq: 1001 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: terminated
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 258
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="4336"/>
        

Message (10) is the acknowledgement of the notification.

メッセージ(10)は、通知の承認です。

   SIP/2.0 200 OK
   Via: SIP/2.0/TCP subA.example.com;branch=gw27id4993
   To: <sip:ap@subB.example.com>;tag=567890
   From: <sip:gw@subA.example.com>;tag=1234567
   Call-ID: 12345601@subA.example.com
   CSeq: 1001 NOTIFY
        
10.2. Multiple Applications
10.2. 複数のアプリケーション

This section gives a non-normative example of multiple applications. One application collects a destination number to call. That application then waits for a "long pound." During the call, the call goes to a personal assistant application, which interacts with the user. In addition, the personal assistant application looks for a "short pound."

For clarity, we do not show the INVITE dialogs.

明確にするために、招待状のダイアログは表示されません。

   Gateway           Card Application      Personal Assistant
      |                      |                      |
      |                      |                      |
      |                      |                      |
      |(1) SUBSCRIBE (persistent)                   |
      |<---------------------|                      |
      |                      |                      |
      |                      |                      |
      |(2) 200 OK            |                      |
      |--------------------->|                      |
      |                      |                      |
      |                      |                      |
      |(3) NOTIFY            |                      |
      |--------------------->|                      |
      |                      |                      |
      |                      |                      |
      |(4) 200 OK            |                      |
      |<---------------------|                      |
      |                      |                      |
      |                      |                      |
      |(5)                   |                      |
      |......................|                      |
      |                      |                      |
      |                      |                      |
      |(6) NOTIFY (tag=card) |                      |
      |--------------------->|                      |
      |                      |                      |
      |                      |                      |
      |(7) 200 OK            |                      |
      |<---------------------|                      |
      |                      |                      |
      |                      |                      |
      |(8)                   |                      |
      |......................|                      |
      |                      |                      |
      |                      |                      |
      |(9) NOTIFY (tag=number)                      |
        
      |--------------------->|                      |
      |                      |                      |
      |                      |                      |
      |(10) 200 OK           |                      |
      |<---------------------|                      |
      |                      |                      |
      |                      |                      |
      |(11) SUBSCRIBE        |                      |
      |<--------------------------------------------|
      |                      |                      |
      |                      |                      |
      |(12) 200 OK           |                      |
      |-------------------------------------------->|
      |                      |                      |
      |                      |                      |
      |(13) NOTIFY           |                      |
      |-------------------------------------------->|
      |                      |                      |
      |                      |                      |
      |(14) 200 OK           |                      |
      |<--------------------------------------------|
      |                      |                      |
      |                      |                      |
      |(15)                  |                      |
      |.............................................|
      |                      |                      |
      |                      |                      |
      |(16) NOTIFY (tag=number)                     |
      |-------------------------------------------->|
      |                      |                      |
      |                      |                      |
      |(17) 200 OK           |                      |
      |<--------------------------------------------|
      |                      |                      |
      |                      |                      |
      |(18)                  |                      |
      |.............................................|
      |                      |                      |
      |                      |                      |
      |(19) NOTIFY (tag=#)   |                      |
      |-------------------------------------------->|
      |                      |                      |
      |                      |                      |
      |(20) 200 OK           |                      |
      |<--------------------------------------------|
      |                      |                      |
      |                      |                      |
      |(21)                  |                      |
        
      |.............................................|
      |                      |                      |
      |                      |                      |
      |(22) NOTIFY (tag=number)                     |
      |-------------------------------------------->|
      |                      |                      |
      |                      |                      |
      |(23) 200 OK           |                      |
      |<--------------------------------------------|
      |                      |                      |
      |                      |                      |
      |(24)                  |                      |
      |.............................................|
      |                      |                      |
      |                      |                      |
      |(25) NOTIFY (L#)      |                      |
      |--------------------->|                      |
      |                      |                      |
      |                      |                      |
      |(26) 200 OK           |                      |
      |<---------------------|                      |
      |                      |                      |
      |                      |                      |
      |                      |                      |
      |                      |                      |
        

Figure 27: Multiple Application Call Flow

図27:複数のアプリケーションコールフロー

Message (1) is the subscription request for the card number.

メッセージ(1)は、カード番号のサブスクリプションリクエストです。

   SUBSCRIBE sip:gw@subA.example.com SIP/2.0
   Via: SIP/2.0/TCP client.subB.example.com;branch=3qo3j0ouq
   From: <sip:ap@subB.example.com>;tag=978675
   To: <sip:gw@subA.example.com>
   Call-ID: 12345601@subA.example.com
   CSeq: 20 SUBSCRIBE
   Contact: <sip:ap@client.subB.example.com>
   Max-Forwards: 70
   Event: kpml ;remote-tag="<sip:phn@example.com;tag=jfi23>"
               ;local-tag="sip:gw@subA.example.com;tag=oi43jfq"
               ;call-id="12345598@subA.example.com"
   Expires: 7200
   Accept: application/kpml-response+xml
   Content-Type: application/kpml-request+xml
   Content-Length: 339
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern persist="persist">
       <regex tag="card">x{16}</regex>
       <regex tag="number">x{10}</regex>
     </pattern>
   </kpml-request>
        

Messages (2-4) are not shown, for brevity. Message (6) is the notification of the card number.

Brevityのために、メッセージ(2-4)は表示されません。メッセージ(6)は、カード番号の通知です。

   NOTIFY sip:ap@client.subB.example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=3qo3j0ouq
   To: <sip:ap@subB.example.com>;tag=978675
   From: <sip:gw@subA.example.com>;tag=9783453
   Call-ID: 12345601@subA.example.com
   CSeq: 3001 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3442
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 271
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="9999888877776666"/>
        

Message (7) is the acknowledgement of the notification. Time goes by in (8). Message (9) is the notification of the dialed number.

メッセージ(7)は、通知の承認です。時間が経ちます(8)。メッセージ(9)は、ダイヤル番号の通知です。

   NOTIFY sip:ap@client.subB.example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=3qo3j0ouq
   To: <sip:ap@subB.example.com>;tag=978675
   From: <sip:gw@subA.example.com>;tag=9783453
   Call-ID: 12345601@subA.example.com
   CSeq: 3001 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3542
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 278
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="2225551212" tag="number"/>
        

Message (11) is the request for long-pound monitoring.

メッセージ(11)は、長いポンドモニタリングのリクエストです。

   SUBSCRIBE sip:gw@subA.example.com SIP/2.0
   Via: SIP/2.0/TCP client.subB.example.com;branch=3qo3j0ouq
   From: <sip:ap@subB.example.com>;tag=978675
   To: <sip:gw@subA.example.com>
   Call-ID: 12345601@subA.example.com
   CSeq: 21 SUBSCRIBE
   Contact: <sip:ap@client.subB.example.com>
   Max-Forwards: 70
   Event: kpml ;remote-tag="<sip:phn@example.com;tag=jfi23>"
               ;local-tag="sip:gw@subA.example.com;tag=oi43jfq"
               ;call-id="12345598@subA.example.com"
   Expires: 7200
   Accept: application/kpml-response+xml
   Content-Type: application/kpml-request+xml
   Content-Length: 295
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd"
         version="1.0">
     <pattern persist="single-notify">
       <regex>L#</regex>
     </pattern>
   </kpml-request>
        

Message (13) is the request from the personal assistant application for number and pound sign monitoring.

メッセージ(13)は、数字とポンドの標識監視のためのパーソナルアシスタントアプリケーションからのリクエストです。

   SUBSCRIBE sip:gw@subA.example.com SIP/2.0
   Via: SIP/2.0/TCP pahost.example.com;branch=xzvsadf
   From: <sip:pa@example.com>;tag=4rgj0f
   To: <sip:gw@subA.example.com>
   Call-ID: 93845@pahost.example.com
   CSeq: 21 SUBSCRIBE
   Contact: <sip:pa12@pahost.example.com>
   Max-Forwards: 70
   Event: kpml ;remote-tag="<sip:phn@example.com;tag=jfi23>"
               ;local-tag="sip:gw@subA.example.com;tag=oi43jfq"
               ;call-id="12345598@subA.example.com"
   Expires: 7200
   Accept: application/kpml-response+xml
   Content-Type: application/kpml-request+xml
   Content-Length: 332
        

<?xml version="1.0" encoding="UTF-8"?> <kpml-request xmlns="urn:ietf:params:xml:ns:kpml-request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "urn:ietf:params:xml:ns:kpml-request kpml-request.xsd" version="1.0"> <pattern persist="persist"> <regex tag="number">x{10}</regex> <regex tag="#">#</regex> </pattern> </kpml-request> Message (18) is the notification of the number collected.

<?xml version = "1.0" encoding = "utf-8"?> <kpml-request xmlns = "urn:ietf:params:xml:ns:kpml-request" xmlns:xsi = "http://www.w333.org/2001/xmlschema-instance "xsi:schemalocation =" urn:ietf:params:xml:ns:kpml-request kpml-request.xsd "バージョン=" 1.0 "> <パターン永続="永続 "> <regexタグ= "number"> x {10} </regex> <regex tag = "#">#</regex> </pattern> </kpml-request>メッセージ(18)は、収集された数の通知です。

   NOTIFY sip:pa@example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=xzvsadf
   To: <sip:pa@example.com>;tag=4rgj0f
   From: <sip:gw@subA.example.com>;tag=9788823
   Call-ID: 93845@pahost.example.com
   CSeq: 3021 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3540
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 278
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK" digits="3335551212" tag="number"/>
        

Message (21) is the notification of pound sign detected.

   NOTIFY sip:pa@example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=xzvsadf
   To: <sip:pa@example.com>;tag=4rgj0f
   From: <sip:gw@subA.example.com>;tag=9788823
   Call-ID: 93845@pahost.example.com
   CSeq: 3022 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3540
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 264
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="#" tag="#"/>
        

Message (27) is the notification of long pound to the card application.

メッセージ(27)は、カードアプリケーションへの長いポンドの通知です。

   NOTIFY sip:ap@client.subB.example.com SIP/2.0
   Via: SIP/2.0/UDP subA.example.com;branch=3qo3j0ouq
   To: <sip:ap@subB.example.com>;tag=978675
   From: <sip:gw@subA.example.com>;tag=9783453
   Call-ID: 12345601@subA.example.com
   CSeq: 3037 NOTIFY
   Contact: <sip:gw27@subA.example.com>
   Event: kpml
   Subscription-State: active;expires=3216
   Max-Forwards: 70
   Content-Type: application/kpml-response+xml
   Content-Length: 256
        
   <?xml version="1.0" encoding="UTF-8"?>
   <kpml-response xmlns="urn:ietf:params:xml:ns:kpml-response"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
           "urn:ietf:params:xml:ns:kpml-response kpml-response.xsd"
         version="1.0"
         code="200" text="OK"
         digits="#"/>
        
11. References
11. 参考文献
11.1. Normative References
11.1. 引用文献

[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

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

[2] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005.

[2] Crocker、D.、ed。およびP. Overell、「構文仕様のためのBNFの増強:ABNF」、RFC 4234、2005年10月。

[3] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[3] Murata、M.、St。Laurent、S。、およびD. Kohn、「XML Media Types」、RFC 3023、2001年1月。

[4] 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.

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

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

[5] Roach、A。、「セッション開始プロトコル(SIP)特異的イベント通知」、RFC 3265、2002年6月。

[6] Daigle, L., van Gulik, D., Iannella, R., and P. Faltstrom, "Uniform Resource Names (URN) Namespace Definition Mechanisms", BCP 66, RFC 3406, October 2002.

[6] Daigle、L.、Van Gulik、D.、Iannella、R。、およびP. Faltstrom、「ユニフォームリソース名(URN)名前空間定義メカニズム」、BCP 66、RFC 3406、2002年10月。

[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] Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn, "XML Schema Part 1: Structures", W3C REC REC-xmlschema-1-20010502, May 2001.

[8] Thompson、H.、Beech、D.、Maloney、M。、およびN. Mendelsohn、「XML Schema Part 1:Structures」、W3c Rec Rec-XMLSchema-1-20010502、2001年5月。

11.2. Informative References
11.2. 参考引用

[9] Rosenberg, J., "Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)", Work in Progress, June 2006.

[9] Rosenberg、J。、「セッション開始プロトコル(SIP)でグローバルにルーティング可能なユーザーエージェント(UA)URIS(GRUU)を取得および使用している」、2006年6月、進行中の作業。

[10] Schulzrinne, H. and S. Petrack, "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals", RFC 2833, May 2000.

[10] Schulzrinne、H。およびS. Petrack、「DTMFディジット、テレフォニートーン、テレフォニーシグナルのRTPペイロード」、RFC 2833、2000年5月。

[11] Andreasen, F. and B. Foster, "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 3435, January 2003.

[11] Andreasen、F。およびB. Foster、「Media Gateway Control Protocol(MGCP)バージョン1.0」、RFC 3435、2003年1月。

[12] Groves, C., Pantaleo, M., Anderson, T., and T. Taylor, "Gateway Control Protocol Version 1", RFC 3525, June 2003.

[12] Groves、C.、Pantaleo、M.、Anderson、T。、およびT. Taylor、「Gateway Control Protocolバージョン1」、RFC 3525、2003年6月。

[13] Institute of Electrical and Electronics Engineers, "Information Technology - Portable Operating System Interface (POSIX) - Part 1: Base Definitions, Chapter 9", IEEE Standard 1003.1, June 2001.

[13] Institute of Electrical and Electronics Engineers、「情報技術 - ポータブルオペレーティングシステムインターフェイス(POSIX) - パート1:基本定義、第9章」、IEEE Standard 1003.1、2001年6月。

[14] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler, "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C REC REC-xml-20001006, October 2000.

[14] Bray、T.、Paoli、J.、Sperberg-Mcqueen、C。、およびE. Maler、「拡張可能なマークアップ言語(XML)1.0(第2版)」、W3C Rec Rec-XML-20001006、2000年10月。

[15] Rosenberg, J., "A Framework for Application Interaction in the Session Initiation Protocol (SIP)", Work in Progress, July 2005.

[15] Rosenberg、J。、「セッション開始プロトコル(SIP)におけるアプリケーションインタラクションのフレームワーク」、2005年7月の作業。

[16] Burger, E., Van Dyke, J., and A. Spitzer, "Media Server Control Markup Language (MSCML) and Protocol", RFC 4722, November 2006.

[16] Burger、E.、Van Dyke、J。、およびA. Spitzer、「Media Server Control Markup Language(MSCML)およびProtocol」、RFC 4722、2006年11月。

[17] Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-Initiated Dialog Event Package for the Session Initiation Protocol (SIP)", RFC 4235, November 2005.

[17] Rosenberg、J.、Schulzrinne、H。、およびR. Mahy、「セッション開始プロトコル(SIP)の招待状のダイアログイベントパッケージ」、RFC 4235、2005年11月。

[18] Roach, A., Campbell, B., and J. Rosenberg, "A Session Initiation Protocol (SIP) Event Notification Extension for Resource Lists", RFC 4662, August 2006.

[18] Roach、A.、Campbell、B。、およびJ. Rosenberg、「セッション開始プロトコル(SIP)イベント通知リソースリストの拡張機能」、RFC 4662、2006年8月。

Appendix A. Contributors
付録A. 貢献者

Ophir Frieder of the Illinois Institute of Technology collaborated on the development of the buffer algorithm.

Jeff Van Dyke worked enough hours and wrote enough text to be considered an author under the old rules.

ジェフ・ヴァン・ダイクは十分な時間を費やし、古いルールの下で著者と見なされるのに十分なテキストを書きました。

Robert Fairlie-Cuninghame, Cullen Jennings, Jonathan Rosenberg, and we were the members of the Application Stimulus Signaling Design Team. All members of the team contributed to this work. In addition, Jonathan Rosenberg postulated DML in his "A Framework for Stimulus Signaling in SIP Using Markup" draft.

ロバート・フェアリー・クニンガメ、カレン・ジェニングス、ジョナサン・ローゼンバーグ、そして私たちはアプリケーション刺激シグナリング設計チームのメンバーでした。チームのすべてのメンバーがこの作業に貢献しました。さらに、ジョナサン・ローゼンバーグは、「マークアップドラフトを使用したSIPでの刺激シグナル伝達のフレームワーク」でDMLを仮定しました。

This version of KPML has significant influence from MSCML [16], the SnowShore Media Server Control Markup Language. Jeff Van Dyke and Andy Spitzer were the primary contributors to that effort.

KPMLのこのバージョンは、Snowshore Media Server Control Markup LanguageであるMSCML [16]から大きな影響を与えます。ジェフ・ヴァン・ダイクとアンディ・スピッツァーは、その努力の主な貢献者でした。

Rohan Mahy did a significant reorganization of the content, as well as providing considerable moral support in the production of this document.

Rohan Mahyは、コンテンツの大幅な再編成を行い、この文書の作成においてかなりの道徳的支援を提供しました。

That said, any errors, misinterpretation, or fouls in this document are our own.

とはいえ、このドキュメントのエラー、誤解、またはファウルは私たち自身のものです。

Appendix B. Acknowledgements
付録B. 謝辞

Hal Purdy and Eric Cheung of AT&T Laboratories helped immensely through many conversations and challenges.

AT&T LaboratoriesのHal PurdyとEric Cheungは、多くの会話や課題を通して非常に役立ちました。

Steve Fisher of AT&T Laboratories suggested the digit suppression syntax and provided excellent review of the document.

AT&T LaboratoriesのSteve Fisherは、桁抑制の構文を提案し、ドキュメントの優れたレビューを提供しました。

Terence Lobo of SnowShore Networks made it all work.

SnowshoreネットワークのTerence Loboはすべて機能しました。

Jerry Kamitses, Swati Dhuleshia, Shaun Bharrat, Sunil Menon, and Bryan Hill helped with clarifying the buffer behavior and DRegex syntax.

Jerry Kamitses、Swati Dhuleshia、Shaun Bharrat、Sunil Menon、およびBryan Hillは、バッファーの動作とDregexの構文を明確にするのを助けました。

Silvano Brewster and Bill Fenner of AT&T Laboratories and Joe Zebarth of Nortel helped considerably with making the text clear and DRegex tight.

AT&T LaboratoriesのSilvano BrewsterとBill FennerとNortelのJoe Zebarthは、テキストを透明にしてきれいにするのを大いに助けました。

Bert Culpepper and Allison Mankin gave an early version of this document a good scouring.

バート・カルペッパーとアリソン・マンキンは、このドキュメントの初期バージョンに良い洗掘を与えました。

Scott Hollenbeck provided XML and MIME review. Tim Bray pointed out the general issue of UTF-8 versus UTF-16 with XML.

Scott HollenbeckはXMLとMimeのレビューを提供しました。ティム・ブレイは、XMLを使用したUTF-8対UTF-16の一般的な問題を指摘しました。

Authors' Addresses

著者のアドレス

Eric Burger Cantata Technology, Inc. 18 Keewaydin Dr. Salem, NH 03079 USA

Eric Burger Cantata Technology、Inc。18 Keewaydin Dr. Salem、NH 03079 USA

   EMail: eburger@cantata.com
        

Martin Dolly AT&T Labs

Martin Dolly AT&Tラボ

   EMail: mdolly@att.com
        

Full Copyright Statement

完全な著作権声明

Copyright (C) The IETF Trust (2006).

Copyright(c)The IETF Trust(2006)。

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.

この文書は、BCP 78に含まれる権利、ライセンス、および制限の対象となり、そこに記載されている場合を除き、著者はすべての権利を保持しています。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST, AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

このドキュメントとここに含まれる情報は、「現状」に基づいて提供され、貢献者、彼/彼女が代表する組織(もしあれば)、インターネット協会、IETFトラスト、インターネットエンジニアリングタスクフォースは免責明示的または暗示されたすべての保証。ここでの情報の使用が、商品性または特定の目的に対する適合性の権利または黙示的な保証を侵害しないという保証を含むがこれらに限定されない。

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.

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 http://www.ietf.org/ipr.

IETF事務局に行われたIPR開示のコピーと、利用可能にするライセンスの保証、またはこの仕様の実装者またはユーザーによるそのような独自の権利の使用のための一般的なライセンスまたは許可を取得するための試みの結果を取得できます。http://www.ietf.org/iprのIETFオンラインIPRリポジトリから。

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-ipr@ietf.org.

IETFは、関心のある当事者に、著作権、特許、または特許出願、またはこの基準を実装するために必要なテクノロジーをカバーする可能性のあるその他の独自の権利を注意深く招待します。ietf-ipr@ietf.orgのIETFへの情報をお問い合わせください。

Acknowledgement

謝辞

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

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