CommuniGate Pro
Version 5.1
シグナル
 
 
 
リアルタイムシグナル

リアルタイムシグナル

CommuniGate Pro サーバーの主な機能の一つとして、リアルタイムコミュニケーションがあります。 リアルタイムコミュニケーションではまず、CommuniGate Pro サーバーがシグナリングセンターとし て各種のソース(SIP モジュール、内部セッション、「コールレグ」、内部カーネルコンポーネントな ど) からリアルタイムシグナル(要求) を受け取ります。その後、CommuniGate Pro サーバー自体で 要求が処理(終了処理) されるか、リモートエンティティ(SIP プロトコル経由) に渡されるか、も しくは内部セッションと「コールレグ」に渡されるかのいずれかの処理が実行されます。

リアルタイムシグナル(要求) はそれぞれSignal モジュールによって処理され、要求ごとに何らか のプロビジョニング応答(「トライ」や「リング」など) や「最終」応答が生成されます。

AOR

リアルタイムコミュニケーションを行う場合、ユーザーはまず自分のデバイス(IP フォン、AV カン ファレンシングツール、インスタントメッセージングツールなど) を設定し、使用するSIP サー バーにオンラインで接続できるようにします。この設定により、ユーザーの「SIP 識別子」とネット ワーク(IP) アドレスがSIP サーバーに記憶され、そのユーザーが登録(レジストレーション) されます。

リアルタイムコミュニケーションのユーザー(SIP ユーザー) にはいずれも「SIP 識別子」があり、 この識別子はAOR (レコードのアドレス) とも呼ばれます。

ユーザーは、複数のコミュニケーションデバイス(IP フォン、デスクトップコンピュータ、ノート ブック上のインスタントメッセージングプログラムなど) を使用することもでき、その場合、複数の 登録がアクティブになります。

SIP ユーザーは登録を介して相互に通信でき、その際に必要なのは「SIP 識別子(AOR)」だけで、 ネットワークアドレスは不要です。

AOR の形式は、電子メールアドレスと同じくユーザー名@ ドメイン名です。CommuniGate Pro の場合 もユーザーのAOR は、そのユーザーの正規のアカウント名と同じです。つまり、SIP ユーザーの AOR 名は、そのユーザーの電子メールアドレスとまったく同じです。

CommuniGate Pro では、リアルタイムコミュニケーション処理にもすべてルータコンポーネントが使 われます。したがって、エイリアスやフォワーダなど、ルーティングが可能は要素はすべてリアルタ イムコミュニケーションでも有効です。


シグナル

シグナルは、リアルタイムの基本タスクです。いずれかのリアルタイムエンティティから別のリアル タイムエンティティにシグナルが送信され、その結果、コミュニケーションダイアログの開始や修 正、停止、またステータスの更新が行われます。

シグナルの送信元のリアルタイムエンティティで要求オブジェクトが生成され、その要求が CommuniGate Pro のSignal モジュールに送られます。Signal モジュールは、その要求を処理します。 ここで、必要に応じて要求が別のエンティティに送信されたり、送信元のエンティティに応答オブ ジェクトが返送されます。

CommuniGate Pro の多くのモジュールやコンポーネントはシグナルの処理が可能です。


要求の処理

Signal モジュールで要求が受信されると、その要求のターゲット(送り先) のURI (要求URI) が計 算されます。続いて、その要求URI (または要求ルートセットにある最初のルートURI) とルータコ ンポーネントを使って要求のデスティネーション(最終の送り先) が検出されます。この場合、ルー タから返った値に応じて、次のような処理が行われます。

下記は、CommuniGate Pro サーバー内部のシグナルフローを示した図です。

Signal Scheme

自動処理ルール

アドレス(要求) がルータで処理されると、アドレスはローカルエンティティまたはリモートエン ティティにリレーされますが、その前にサーバーワイドとクラスタワイドの自動処理ルールが適用さ れます。

自動処理ルールは、要求の処理方法を制御します。つまり、自動処理ルールを介して要求を別のデス ティネーションに送信したり、要求を拒否したりといった処理が可能です。

なお、自動処理ルールでは、要求のうちダイアログ開始要求だけが処理されます。


フォーク処理

Signal モジュールによる要求の処理の際、その要求のAOR (レコードのアドレス) セットとコンタク トセットが処理されます。この処理をフォーク処理といい、AOR セットのアドレスを使って次のような処理が行われます。

AOR (要求) の処理中に2xx 応答が受信された場合、AOR 処理は停止します。その要求がINVITE 要 求だったときには、未処理の要求のうち、そのAOR 以外のAOR にリレーされる要求はすべてキャ ンセルされます。

AOR セットのAOR の処理がすべて完了すると、Signal モジュールから「最良」の処理結果(応答) が要求のソースに返送されます。

処理対象のAOR のルート先が非ローカルアドレスだった場合、そのアドレスはコンタクトセットに 格納されます。

処理対象のAOR のルート先がローカルグループだった場合、そのグループの全メンバーがAOR セットに追加されます。

処理対象のAOR のルート先がローカルアカウントだった場合、そのアカウントのアクティブのすべ ての登録情報(そのアカウントのユーザーが使用しているデバイスの登録済みアドレス) がコンタク トセットに格納されます。

AOR がAOR セットに既に存在していたときには、そのAOR はAOR セットには追加されません。

コンタクトアドレスがコンタクトセットに既に存在していたときには、そのコンタクトアドレスはコ ンタクトセットには追加されません。

コンタクトアドレスがコンタクトセットに追加される場合、そのアドレスが次のようにしてチェック されます。
追加されるコンタクトアドレスがローカルノードのアドレスだった場合、そのノードに要求が渡さ れ、そのノードで処理されます。
追加されるコンタクトアドレスが外部のアドレスだった場合、SIP モジュールに要求が渡されリレー されます。

ローカルエンティティまたは外部エンティティからリダイレクトタイプの応答が返ったときには、初 期AOR (要求URI) がチェックされます。

Signal コンポーネントの設定

Signal コンポーネントの設定は、WebAdmin インターフェイスで可能です。設定する場合、 [Settings] セクションの[RealTime] ページを開きます。

処理
ログレベル: プロセス: 制限:
ログレベル
Signal コンポーネントがサーバーログに記録する情報のレベルを指定できます。この設定は 通常、[Failure] (復旧不可能な問題のみ記録)、[Major] (シグナル処理レポートを出 力)、[Problems] (復旧不可能な問題、シグナル処理レポート、非致命的エラーを出力) の いずれかにしておきます。Signal コンポーネントに何か問題が発生していると考えられると きは、[Low-Level] または[All Info] を選択します。この場合、シグナルの内部処理 に関する情報もシステムログに記録されます。なお、問題が解決すれば、上記の3 つのいず れかの設定に戻します。[Low-Level] または[All Info] のままにしておくと、システ ムログファイルのサイズが短時間で増加します。
Signal コンポーネントによってシステムログに記録されたレコードには、SIGNAL タグが付 けられます。
制限
このオプションでは、Signal コンポーネントが同時に扱うことができるシグナル「タスク」 の最大数を指定できます。同時タスクの数が、この上限を超えると、新規のシグナルタスク は拒否されます。また、エラー応答がシグナルの送信元に送られます。
プロセス
Signal コンポーネントでは、同時に複数のプロセッサ(スレッド) による処理が可能です。 また、単一のプロセッサでは、複数のシグナルタスクの処理が可能です( したがって同時に 相当数のシグナルタスクの処理が可能です)。自動処理ルールによる処理は時間がかかりま す。使用する自動処理ルールの数が多いときには、このオプションを使ってプロセッサ数を 増やすことでシグナル処理を高速化できます。

Sending Signals from Accounts

The CommuniGate Pro Server requires user authentication for certain Requests.

When requests are sent remotely via SIP, authentication is performed with the SIP モジュール server component.
The XIMSS and XMPP modules send all Signals authenticated, on behalf of the logged-in Account.
The Real-Time Applications send Signals authenticated, on behalf of their current Account (unless the Application has impersonated itself as "nobody").

処理
  全ての外向けINVITEを認証  
全ての外向けINVITEを認証
If this option is selected, the Signal component tries to ルート the addresses in From fields of the call-type Requests. If the From address is a local Account address and the request is not authenticated, the Signal component rejects it with the "authentication required" error code.

When a call-type Signal (an initial INVITE request with audio-video Session Descriptor) is authenticated, the Signal Module peforms additional processing of the authenticated Account.

The Signal component can limit the number of "calls" an Account can place over a specified period of time.

フロー制御
右記の送信コール数以上で拒否 in
右記の送信コール数以上で拒否
Use this option to specify a time period and the maximum number of call Signals the Account can place within that time period. If more calls are placed, they are rejected without processing.

アカウントへの送信

AOR セットの中の最初のAOR (要求URI に指定されているAOR) がローカルアカウントのアドレス で、かつ要求がINVITE 要求だった場合、そのアカウントの登録情報とともに、そのアカウントのリ アルタイム設定が取り出されます。

An Account can have Automated Signal Rules, which are retrieved with Account device registrations. These Rules are "mixed" with the Domain-wide Rules specified for the Account Domain and are applied to all requests sent to the Account.

The Signal component controls how many "calls" (initial INVITE requests with audio-video Session Descriptors) an Account receives over a specified period of time.

フロー制御
右記の受信コール数以上で拒否 in
右記の受信コール数以上で拒否
Use this option to specify a time period and the maximum number of call Signals the Account can receive within that time period. If more Signals are received, they are rejected without processing.

サービスコール

要求のルート先がローカルドメインの*nnnn ( nnnnは任意の10 進数字で始まる数字列) だった場 合、その要求は発信元(要求のFrom: に格納されているアドレス) にリルートされます。

この処理を利用することで、ユーザーは*nnnn を発信し、サーバーに対してサービスを要求できま す。つまり、要求はユーザー自身のアカウントにルートされるため、セルフコール(自己呼び出し) アプリケーションの起動が可能です。この場合、セルフコールアプリケーションでは、要求のTo: フィールドのアドレスを使って、そのコールが「サービスコール」であることが認識されます。


レジストラサービス

CommuniGate Pro ユーザーが通信デバイスを使用する場合、そのデバイスをユーザーが登録しなけれ ばなりません。この登録により、デバイスが別のエンティティからの要求を受信できるようになりま す。

ユーザーがデバイスを登録する場合、登録要求が送信されますが、このときユーザー認証が必要で す。

アカウントのユーザーは、そのアカウントの資格(認証情報) を使って別のアカウントの登録情報を 変更することもできます。ただし、ユーザーには、別のアカウントが属しているドメインについて [CanImpersonate] (インパーソネート) アクセス権が付与されていなければなりません。

管理者は、レジストラサービスの設定を行うことができます。設定する場合、WebAdmin インター フェイスの[Settings] セクションの[SIP] ページを開きます。

サービス
認証時間: 最少: デフォルト: 最大:
MS RTC: メンバー(Roster)統合
認証時間: 最少
このオプションでは、登録の最小有効期間(時間長) を指定できます。
登録要求に指定されている登録有効期間が、ここで指定した期間より短かった場合、その登 録要求の処理は拒否されます。また、最小有効期間を格納した応答が返送されます。その 後、エンティティ(通常、SIP デバイス) では、有効期間の変更後、登録要求を再度、送信 できます。
認証時間: デフォルト
デフォルトの登録期間を指定できます。登録要求に登録有効期間が指定されていなかったと きには、ここで指定したデフォルトの期間が使用されます。
認証時間: 最大
このオプションでは、登録の最大有効期間(時間長) を指定できます。
登録要求に指定されている登録有効期間が、ここで指定した期間より長かった場合、ここで指定した期間に短縮されます。

イベントパッケージ

Signal モジュールは、イベントパッケージ(複数) をサポートしています。要求がSUBSCRIBE 要求 で、そのターゲットがローカルアカウントの場合、その要求はイベントパッケージを使ってSignal モ ジュール自体で処理されます。このとき要求は、そのアカウントの登録済みエンティティ(デバイ ス) には転送さません。

Signal モジュールにより各アカウントについてそれぞれ、そのアカウントの「状態」が管理されま す。この管理は、Signal モジュールがサポートしているイベントパッケージごとに独立して行われま す。アカウントの「状態」は、単一もしくは複数のエンティティによって必要に応じて更新され、そ の後、Signal モジュールによって単一の「状態情報」に統合されます。この「統合状態情報」に変更 があった場合、Signal モジュールからNOTIFY 要求が更新後の「統合状態情報」とともに全スクライ ブドエンティティに送信されます。

Signal モジュールが管理するアカウントの状態は、PUBLISH 要求を介して外部エンティティによって 更新されます。

また、アカウントの状態は、イベントパッケージよっては非標準のSERVICE 要求を使って外部エン ティティにより更新されることもあります。

プレゼンス

Signal モジュールによってプレゼンスサーバーが実装されます。プレゼンス情報のフォーマットと しては、PIDF とXPIDF の2 種類がサポートされています。

REGISTER タイプの要求の場合、Signal モジュールによって特殊処理が実行されます。つまり、外部 エンティティ(SIP デバイス) から要求があり、その要求でSUBSCRIBE メソッドのサポートが示さ れている場合、そのエンティティとの間でプレゼンスサブスクリプションダイアログが確立されま す。
その後、外部エンティティから送られたNOTIFY 要求がすべてSignal モジュールで処理されると、そ のプレゼンス(存在=エンティティ) の「状態」(セグメント) がSignal モジュール上で管理されま す。

プレゼンスの状態(セグメント) は文字列で示され、あらかじめ用意されている文字列の中から使わ れます。文字列にはそれぞれ優先度があり、以下、優先度の低いものから順に列挙します。

上記の値をすべて合計した値( イベント合計値) が優先度が最高の値で、セグメントが存在しない場 合、値はoffline (オフライン) となります。

NOTIFY 要求が生成されると、イベント合計値がプレゼンスドキュメントに変換されます。プレゼン スドキュメントは、サポートされているフォーマット(PIDF とXPIDF) のいずれかで作成されま す。

メッセージサマリ

Signal モジュールによって、MWI ( メッセージ待機インディケーション) サービスが実装されます。 このサービスによりメッセージサマリが生成されます。メッセージサマリの情報フォーマットとして は、simple-message-summary フォーマットをサポートしています。

MWI サービスでは、CommuniGate Pro サーバーによって"INBOX" の「状態」(セグメント) が管理さ れます。セグメントの値は、
配列として生成されます。配列の要素は次の通りです。

イベント合計値は、配列の各要素の値の合計です。

simple-message-summary 情報フォーマットを使ってNOTIFY 要求が生成される際、配列の第1 要素の値が新規のボイスメッセージの数として使用されます。また、第2 要素の値から第1 要素の値を差し引いた値が古いボイスメッセージ(既読のボイスメッセージ) の数として使われます。
配列の第1 要素の値が非0 の場合、要素Messages-Waiting の値がyes に設定されます。0 のと きには、no にセットされます。

Subscription to the Message Summary package is available to the Account owner, and to other Accounts with the CanImpersonate Access Right.

登録

Signal モジュールによってレジストラモニタリングサービスが実装されます。情報フォーマットとし てはreginfo+xml がサポートされています。このサービスを介して、Signal モジュールから、アカ ウントに登録されている全エンティティに関する情報が各ネットワークエンティティ(SIP クライア ントなど) に送信されます。

アカウントのオーナーは、レジストレーションパッケージに対するサブスクリプション(レジストラ モニタリング) が可能です。また、ユーザーにCanImpersonate が付与されている場合、そのユー ザーは別のアカウントの資格においてレジストレーションパッケージに対するサブスクリプションが 可能です。


ローカルノード

CommuniGate Pro サーバーでは、必要に応じて動的に各種のリアルタイムノードが作成されます。

ノードはCommuniGate Pro サーバーの内部オブジェクトで、シグナル要求を受信し、要求に対する 応答を生成する機能があります。ノードにはまた、要求の送信と応答の処理の機能もあります。

ノードは、CommuniGate Pro の各種のコンポーネントやモジュールで使用され、その結果、シグナリ ング機能が実装されます。このようなコンポーネント、モジュールとしては次のものがあります。

Nodes コンポーネントに関する設定は、WebAdmin インターフェイスで行えます。設定する場合、 [Settings] セクションの[RealTime] ページを開き、[Nodes] リンクをクリックします。

処理
ログレベル: プロセス: 制限:
ログレベル
Local Nodes コンポーネントがサーバーログに記録する情報のレベルを指定できます。この設 定は通常、[Failure] (復旧不可能な問題のみ記録)、[Major] (シグナル処理レポートを 出力)、[Problems] (復旧不可能な問題、シグナル処理レポート、非致命的エラーを出力) のいずれかにしておきます。Local Nodes コンポーネントに何か問題が発生していると考えら れるときは、[Low-Level] または[All Info] を選択します。この場合、ノードの内部 処理に関する情報もシステムログに記録されます。なお、問題が解決すれば、上記の3 つの いずれかの設定に戻します。[Low-Level] または[All Info] のままにしておくと、シ ステムログファイルのサイズが短時間で増加します。
Local Nodes コンポーネントによってシステムログに記録されたレコードには、SIGNODE タ グが付けられます。
制限
このオプションでは、Local Nodes コンポーネントが同時に扱うことができるノードの最大数 を指定できます。ノードの数がこの最大数に達している場合、新規のノードの生成が試行さ れるとエラーが発生します。
プロセス
Local Nodes コンポーネントが同時に使用できるプロセッサ(スレッド) の数を指定できま す。この数のプロセッサによってノードが処理されます。単一のプロセッサは複数のノード タスクを扱えます。
ノード数が多く、各ノードの処理が時間のかかる処理(複雑なリアルタイムアプリケーショ ンによる処理など) の場合、このオプションを使ってプロセッサ数を増やします。

コールレグ

The Server creates special Local Nodes called Call Legs. Each Call Leg terminates signaling for one phone call. Each PBX Task is a Call Leg, and each XIMSS session can create one or more Call Legs to handle phone calls initiated or accepted by the XIMSS session user.

The settings in the Call Legs panel are applied to all types of Call Legs:

コールレグ
セッション期限切れ: 最少: デフォルト:
ホップ数制限:
UPDATEの通知:
セッション期限切れ
Use this setting to specify how often the parties should exchange the INVITE (or OPTION) requests to verify that the call has not been broken.
ホップ数制限
Use this setting to specify the Max-Forwards field value for the requests sent with Call Legs.

コール詳細レコード(CDR)

Signal モジュールによる処理がINVITE (開始) トランザクションとBYE (終了) トランザクション の場合、コール詳細レコード(CDR) を生成することができます。


生成されたCDR は、CDR ログファイルに格納されます。CDR ログファイルはテキストファイルで、 レコードはそれぞれ別々の行に記録されます。行のフォーマットは次の通りです。
hh:mm:ss.ddd cdr_data
hh:mm:ss.ddd は、このCDR レコードが生成された時刻で、hh は時、mm は分、ss は秒、dd はミリ 秒を表します。cdr_dataはCDR データ自体です。
モニター
コールCDR記録
コールCDR記録
このオプションを選択しておくと、CDR ログファイルが生成されます。

外部CDR プロセッサ(ヘルパーアプリケーション) を使用しているときには、Signal モジュールに よってCDR が生成され、そのCDR が外部プロセッサアプリケーションに送信されます。

CDR データテキストのフォーマットは次の通りです。
01 NNN-method <callID><fromTag><toTag> <from><to> [reqIP][respIP] flags
上で、
01
CDR フォーマットバージョン番号です。
NNN
トランザクション結果コード(数値) です。
Method
トランザクション処理の種類(INVITE、BYE)
callID, fromTag, toTag
ダイアログ識別子(Call-ID フィールド、From フィールドtag パラメータ、To フィール ドtag パラメータ) です。
注意: コールが受け手(被発呼) 側で終了(切断) され場合、BYE トランザクションの fromTag の値は、INVITE トランザクションのtoTagの値と同じです。コールが掛け手(発 呼) 側で終了(切断) された場合も同様です。
from, to
それぞれトランザクションのFrom フィールドとTo フィールドの値(URI) です。
reqIP
トランザクションの要求が受信されたネットワーク(IP) アドレス。
respIP
トランザクションの応答が受信されたネットワーク(IP) アドレス。
flags
オプションの要素(フラグ) で、区切り文字はスペース。
[auth:accountName]
トランザクションの要求が認証されると、このフラグが付加されます。accountNameは、認証された CommuniGate Pro アカウントの名前(アカウント名)。
[redir:accountName]
this element is added if the transaction request was redirected from a local Account. The accountName is the name of that CommuniGate Pro Account.
[billing:billingData]
this element is added if the transaction request has a P-Billing-Id field. The billingData is the field content.

CommuniGate® Pro Guide. Copyright © 1998-2007, Stalker Software, Inc.