メインコンテンツまでスキップ

5.3. 共有外観ユーザーエージェント

共有外観機能をサポートする UA は, ダイアログ状態パッケージ [RFC4235] と共有外観拡張および第 13 節で定義されている 'shared' Event ヘッダーフィールドパラメータを使用します。

UA は, 第 5.2 節のダイアログパッケージ拡張を SUBSCRIBE [RFC6665], NOTIFY [RFC6665], PUBLISH [RFC3903] とともに使用します。ダイアログイベントパッケージの SUBSCRIBE, NOTIFY, PUBLISH リクエストには, 本仕様で要求される 'shared' Event ヘッダーフィールドパラメータが含まれます。

'shared' Event ヘッダーフィールドパラメータの存在は, UA が本仕様をサポートしていることを外観エージェントに伝えます。

初期化時, UA は AOR のダイアログイベントパッケージをサブスクライブし, SIP イベントフレームワーク [RFC6665] に従ってサブスクリプションを更新しなければなりません。SUBSCRIBE リクエストが失敗した場合, 外観エージェントが存在しない可能性があり, この AOR に対してこの機能はアクティブではありません。UA は, 条件が変更されたかどうかを確認するために, 4 時間以上の間隔でサブスクリプションを定期的に再試行してもよいです。

4 時間が選ばれたのは, サブスクリプションテストを UA あたり 1 日 6 回に制限するためです。この間隔を増やすと, この失敗トラフィックは減少しますが, 新しくアクティブ化された外観エージェントを発見するのに時間がかかります。

UA は, NOTIFY 内の 'shared' Event ヘッダーフィールドパラメータの存在を使用して, AOR の外観エージェントの存在を発見することもできます。

共有外観機能, コールピックアップ, 結合, ブリッジを実装する UA は, Replaces [RFC3891] または Join [RFC3911] を含む INVITE の送信をサポートしなければなりません。ユーザーエージェントクライアント (UAC) は, RFC 3891 および 3911 のルールに従ってユーザーエージェントサーバー (UAS) によって正しいダイアログが一致するように, Replaces または Join ヘッダーに to-tag および from-tag 情報を含める必要があります。

共有外観機能を実装し INVITE をサポートするすべての UA は, Replaces [RFC3891] または Join [RFC3911] ヘッダーフィールドを含む INVITE の受信をサポートしなければなりません。

ダイアログパッケージ情報を公開または通知する場合, UA は公開時に利用可能な最大のダイアログ識別セットを含めます。ただし, UA が他の UA による呼び出しへの参加またはピックアップを防止したい場合は, 情報を省略してもよいです。ダイアログ識別には, ローカルおよびリモートターゲット URI, call-id, to-tag, from-tag が含まれます。このダイアログ識別情報は [RFC4235] ではオプションですが, 共有外観機能では必須であり, 呼び出し制御操作を可能にします。呼び出しを保留にする場合, ダイアログパッケージ通知でこれを示すために "+sip.rendering=no" 機能タグを使用します。代わりに完全な SDP セッション記述を使用すると, エンドポイントが多くの余分な解析を行う必要があり, コードを不必要に複雑にし, エラーを招きます。

グループ内の他の UA のアイドル/アクティブ/アラート/保留状態を正確にレンダリングすることは, 共有外観機能の重要な部分です。

特定の外観番号を占有する必要がない (または気にしない) UA は, アウトバウンド呼び出しを行うために通常どおり INVITE を送信します。

呼び出しが緊急呼び出しである場合, UA は INVITE を送信する前に確認された占有を待ってはなりません。代わりに, 緊急呼び出しは PUBLISH トランザクションを待たずに進行しなければなりません。

UA が特定の外観番号を必要とする場合, UA はダイアログパッケージ PUBLISH リクエストを送信し, INVITE を送信する前に 2xx 応答を待たなければなりません。これは次の状況で必要です:

  1. ユーザーが発信呼び出しのために特定の外観番号を占有する場合 (たとえば, UA のユーザーインターフェースがこのメタファーを使用している場合, 外観を占有して「オフフック」にする)。

  2. ユーザーが発信呼び出しに外観番号を使用しないことを要求した場合 (すなわち, コンサルテーション呼び出し中, 保留音楽 [RFC7088] などの「サービスメディア」呼び出しの場合, または共有外観グループの一部とは見なされない呼び出しの場合)。

  3. ユーザーが既存の呼び出しに参加 (またはブリッジ) することを選択した場合。

  4. ユーザーが既存の呼び出しを置き換え (または取得) することを選択した場合。

ダイアログの確立前に UA が外観を占有する場合 (上記リストの 1 と 2), すべてのダイアログ情報が利用可能であるとは限らないことに注意してください。特に, UA が宛先 URI を知る前に外観を占有しようとする試みを公開する場合, 最小限またはダイアログ情報が利用できない可能性があります。たとえば, 場合によっては, 呼び出しのローカルターゲット URI のみが既知です: ダイアログ情報はありません。From タグと Call-ID が最初の PUBLISH に存在しなかった場合, この情報が利用可能になり次第, 新しい PUBLISH を送信しなければなりません。

最初の公開により, 外観エージェントはこの UA の外観番号を予約します。公開にダイアログ識別子 (Call-ID または local-tag など) がない場合, 外観エージェントは, いくつかのダイアログ識別子を含む 2 番目の公開まで, UA の特定のダイアログに外観番号を割り当てることができません。

この公開状態は, 早期ダイアログ状態中に [RFC3903] で説明されているように更新されます。そうしないと, 外観エージェントが外観番号を再割り当てする可能性があります。ダイアログが確認状態に移行すると, 公開更新は不要です。

本仕様は, 外観エージェントが UA 公開以外に UA ダイアログの状態について学習する他の手段を持つことを想定しています。本仕様では, PUBLISH は望ましいおよび意図された外観番号操作を示すために使用されます。ダイアログが早期から確認に移行すると, この役割は終了します。したがって, 公開更新は必要ありません。

外観番号は, AOR に関連するアクティブおよび保留中のダイアログの省略ラベルです。この拡張を使用して構築された多くの機能とサービスは, この情報を人間のユーザーに正しくレンダリングすることに依存しています。さらに, この機能のグループの性質は, 異なるベンダーと異なるモデル間でレンダリングが類似している必要があることを意味します。そうしないと, これらのプロトコル拡張の価値と有用性が大幅に低下します。この機能のために正しく設計されたユーザーインターフェースでは, アクティブおよび保留中の各ダイアログの外観番号は, 明示的に (すなわち, 外観番号によって) または暗黙的に (番号付けと順序をユーザーに明確にするユーザーインターフェースメタファーを使用して) ユーザーにレンダリングされます。各ダイアログの遠端 ID (リモートパーティ ID など) は, 外観番号の有用な代替品ではありません。各外観の状態もレンダリングされます (アイドル, アクティブ, ビジー, 結合など)。UA は, 他の SIP ダイアログ識別子を含む 1 つ以上の <joined-dialog> 要素の存在によって, ダイアログのセットが結合 (ブリッジまたはミックス) されていることを知ることができます。ダイアログの外観番号は, 外観エージェントからの <appearance> 要素を含むダイアログパッケージ通知, または着信 INVITE の 'appearance' Alert-Info パラメータから学習できます。それらが競合する場合, ダイアログパッケージ通知が優先されます。

ユーザーは外観番号を選択してから呼び出しを放棄する (オンフックに戻る) 場合があります。この場合, UA は [RFC3903] で説明されているように PUBLISH でイベント状態を削除することにより, 外観番号を解放します。これを行わないと, 外観エージェントによる不要な操作が必要になり, 共有外観グループ内の他の UA が使用できる外観番号を占有します。

UA は, 着信呼び出しに応答する可能性が高い場合にのみ AOR に対して登録すべきです。UA が主に共有外観グループ呼び出しのステータスを監視し, 呼び出しをピックアップまたは結合する場合, UA は AOR に対して登録するのではなく, AOR をサブスクライブするだけにすべきです。監視 UA がサブスクライブするだけでなく登録すると, 大量の不要なネットワークトラフィックが生成されます。

サブスクライブされたすべての UA は, 着信 INVITE の試行状態のダイアログパッケージ NOTIFY を受信します。

UA は, INVITE またはその他のリクエストの Alert-Info ヘッダーフィールドに 'appearance' パラメータを挿入してはなりません。

外観エージェントのみがこれを行う責任があります。