説明

コールの継続中の機能競合の検出と解決

【課題】コールの継続中の機能競合を検出し、解決する技術を開示する。特に、有限状態機械とそれに関連する方法によって、コールの継続中に呼び出された機能が、既に活性化されている別の機能と競合するときに検出し、両方の機能を同時に活性化しないように保証する。
【解決手段】解決のための3通りの異なる技術を開示する。第1の技術では、後からの機能の活性化を常に拒絶する。第2の技術では、前からの機能を常に非活性化にして、後からの機能をその後で活性化する。第3の技術では、2つの機能のうちの1つを、機能に割り付けられた優先度に基づき、活性化する機能として選択し、それらの機能をそれぞれ活性化または非活性化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には通信に関し、特に、コールの継続中(mid-call)の機能競合(feature interaction)の検出と解決に関する。
【背景技術】
【0002】
長年の間、広汎な通信の多様な機能が開発されてきた。例えば、コール転送、三者間コール、保留時音楽(hold on music)など。しかし複数の機能が電話のコールに採用されると、機能間の競合が、妨げられるべき方針を許可することやコールを失敗させることのような、予期しないまたは希望しない動作を引き起こすことがある。
【0003】
例えば、ミートミー(meet me)会議機能を介してコールがセットアップされ、その後に保留時音楽機能がそのコールの継続中に活性化されたと想定すると、もし、そのコールの一人の参加者が保留状態になった場合、その他の全てのコール参加者もその音楽を聞くことになる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
通常、テレフォニープラットホームの供給者は設計の時点で機能競合を予期しようと試みる。しかし、設計時点の技術の限界として、プラットホーム供給者の設計の範囲を越えて、サードパーティが新しい機能を付加して発生するであろう、機能競合を予期することは困難である。一方で、ランタイムの機能競合の検知や解決の技術は、通常、分散化したネットワーク環境の中で維持することが難しく、コールのセットアップ間に処理するのが不可能な計算のオーバーヘッドを必要とする、詳細なモデルに頼っている。
【課題を解決するための手段】
【0005】
本発明はコールの継続中の機能競合の検出と解決の技術を提供する。例示の実施形態では、有限状態機械とそれに相応する方法により、コールの継続中に呼び出された機能が、別のそれ以前に活性化された機能と競合している時には、それを検出し、両方の機能が同時に活性化されないことを保証する。
【0006】
例示の実施形態の最初の技術では、後の機能の活性化を常に拒否する。一方、第2の技術では、前の機能を常に拒否する。第3の技術では、2つの機能の一つを活性化された機能として選択し、それらの機能は、それに応じて、活性化または非活性化される。例示の実施形態では、第3の技術は、機能の優先度によって、2つの機能のどちらが支配的かを決定する。
【0007】
その例示の実施形態は、本発明の第1の例示の実施形態の方法を含む、機能競合の検出の異なる方法と組合わせて用いられる。更に、第2の例示の実施形態は、様々なネットワークトポロジーの中のVoIP(Voice Over Internet Protocol) コールのためのコールの継続中検出を提供するための、第3の例示の実施形態の技術と組み合わせて用いられる。
【0008】
その例示の実施形態は、第1の機能が活性化されることを示す第1の信号を受け取ること、コールの継続中に第2の機能が呼び出されることを示す第2の信号を受け取ること、そのコールの継続中に第1の機能と第2の機能が競合するかどうかを決定することを含む。
【図面の簡単な説明】
【0009】
【図1】本発明の第1の例示の実施形態での、複数参加者(multi-party)またはブリッジド・アピアランス(bridged-appearance)コールのための機能競合を検出し、解決する方法に関するフローチャート。
【図2】本発明の第2の例示の実施形態での、コールの継続中の機能競合を検出し解決するための、有限状態機械。
【図3】本発明の第2の例示の実施形態での、図2に示される有限状態機械200に関する方法のフローチャート。
【図4】本発明の第2の例示の実施形態での、図3に示されるタスク350を遂行するための第1の技術のフローチャート。
【図5】本発明の第2の例示の実施形態での、タスク350を遂行するための第2の技術のフローチャート。
【図6】本発明の第2の例示の実施形態での、タスク350を遂行するための第3の技術のフローチャート。
【図7】本発明の第3の例示の実施形態での、複数のレグのシグナリングパス(signaling path)を持つコールのための機能競合を検出し解決する、第1の方法のフローチャート。
【図8】本発明の第3の例示の実施形態での、複数のレグのシグナリングパスを持つコールのための機能競合を検出し解決する、第2の方法のフローチャート。
【図9】本発明の第4の例示の実施形態での、透過型のB2BUA(Back to back user agent)から構成される、例示のシグナリングパス。
【発明を実施するための形態】
【0010】
用語「コール」は通信端末ユーザーを巻き込む相互のコミュニケーションと定義する。コールは、従来の音声電話コール、VoIPコール、SIP(Session Initiation Protocol)セッション、インスタントメッセージ・セッション、テレビ会議、その他である。
【0011】
本発明の、第1の例示の実施形態では、機能競合を検出し、解決するために、5個の基本規則を用いる。その各々は、複数参加者コールのための1変数と、ブリッジド・アピアランスを持つコールのための1変数を有する。これらの規則のいくつかは、「トリートメント」について取り扱う。「トリートメント」とは、コールの継続中のある状態(即ち、コールがさえぎられた状態、コールがブロックされた状態)を取り扱うために、ネットワークによって発せられるアナウンスまたはトーンである。潜在的には、ある特定のコールにかかわる複数のトリートメントがあり得る。例えば、ひとつの機能は、コールの継続中にある参加者をビジートリートメントに接続し、一方、第2の機能は、同じコールの継続中に、ある参加者(同じ参加者または別の参加者)をネットワーク使用不可トリートメントに接続する。
【0012】
第1の例示の実施形態では、機能の挙動を詳細に表現するために、表現法を用いる。それは自動的な規則マッチングを容易にする付加的利益を有する。この表現法の例として、機能「コール転送」略して「CFU」はこの表現法で以下のように表現される。
CFU: TP:C; A,C → A,B
ここで
・「TP:C」は、エンドポイントCがトリガーを発する参加者(すなわち、機能が活性化されるエンドポイント)を意味する。
・矢印の左手側の「A,C」は エンドポイントAとエンドポイントCの間に元の接続(即ち、機能を活性化する前からのAとCの間の接続)があったことを意味する。「元の接続」を特許請求の範囲では、「旧接続」と称する。
・矢印の右手側の「A,B」は、エンドポイントAとエンドポイントBの間が、結果として得られた接続(すなわちその機能が活性化された後でAとBの間が接続)されたことを意味する。「結果としての接続」を特許請求の範囲では、「新接続」と称する。
【0013】
別の例では、機能「複数参加者コールへの加入」略して「ConfJoin」は、この表現法で以下のように表現される。
ConfJoin: TP:A;[A,C]A,B → A,B,C
ここで
・「TP:A」は、エンドポイントAがトリガーを発する参加者を意味し、
・矢印の左手側の「[A,C]」は エンドポイントAとエンドポイントCの間に元の接続があり、ホールド状態になっていることを意味し、
・矢印の左手側の「A,B」は エンドポイントAとエンドポイントBの間に元の接続があったことを意味し、
・矢印の右手側の「A,B,C」は、エンドポイントA,B,Cの間が結果として接続された(すなわち、AとB、AとC、BとCの間が結果として接続された)ことを意味する。
【0014】
「複数参加者コール」
複数参加者コールの規則1a
IF
機能1及び機能2が、同一のトリガーを発する参加者を有する
AND
(機能1の結果としての接続=機能2の結果としての接続
OR
機能1の元の接続=機能2の元の接続)
THEN
機能1と機能2は競合する。
【0015】
複数参加者コールの規則2a
IF
機能1の元の接続=機能2の結果としての接続
AND
機能2の元の接続=機能1の結果としての接続
THEN
機能1と機能2は競合する。
【0016】
複数参加者コールの規則3a
IF
機能2がトリートメントに接続し、
AND
{機能1の結果としての接続}∩{機能2の結果としての接続}
≠φ
AND
∃X∈{機能1の元の接続}
∃Y∈{機能1の結果としての接続}?
[発呼者(X)=発呼者(Y)∧
被呼者(X)≠被呼者(Y)]
OR
[発呼者(X)=被呼者(Y)∧
発呼者(Y)=被呼者(X)]

THEN
機能1と機能2は競合する。
【0017】
複数参加者コールの規則4a
IF
{機能1の結果としての接続}∩{機能2の元の接続}
≠φ
AND
[∃X∈{機能1の元の接続}
∃Y∈{機能1の結果としての接続}?
[発呼者(X)=被呼者(Y)∧
発呼者(Y)=被呼者(X)]]
OR
[∃X∈{機能2の元の接続}
∃Y∈{機能2の結果としての接続}?
[発呼者(X)=発呼者(Y)∧
被呼者(X)≠被呼者(Y)]]
THEN
機能1と機能2は競合する。
【0018】
複数参加者コールの規則5a
IF
機能1の元の接続=機能2の元の接続
≠φ
AND
[∃X∈{機能1の元の接続}
∃Y∈{機能1の結果としての接続}?
[被呼者(Y)=トリートメント ∧
発呼者(X)=トリガーを発する参加者(機能1)]]
OR
[∃X∈{機能2の元の接続}
∃Y∈{機能2の結果としての接続}?
[被呼者(Y)=トリートメント ∧
発呼者(X)=トリガーを発する参加者(機能2)]]
THEN
機能1と機能2は競合する。
【0019】
「ブリッジド・アピアランス(BAs)」
もしエンドポイントAがエンドポイントBをコールし、Bが既にエンドポイントCとブリッジド・アピアランスの状態の場合、Aは、Bと、更にCとも接続させられる。同様に、もしエンドポイントBがエンドポイントAをコールし、Bが既にエンドポイントCとブリッジド・アピアランスの状態の場合は、発呼者と被呼者を逆にして同じ接続が結果として得られる。表記法を用いて、第1のケースを次のように表現する。
BA:TP:B;A,B, → A,B−C
ここで「B−C」はBがCとブリッジド・アピアランスの状態であることを示す。第2のケースを次のように表現する。
BA:TP:B;B,A, → B−C,A
【0020】
以下の規則は、ブリッジド・アピアランスが既に存在するコールでの、2つの機能競合をを検出することができる。言い換えると、これらの規則はBA機能の活性化の後で適用される2つの機能の間の競合がある場合に、それを検出する。
【0021】
1以上のBAを有するコールに関する規則1b:規則1aと同一
IF
機能1及び機能2が同じトリガーを発する参加者を有する
AND
(機能1の結果としての接続=機能2の結果としての接続
OR
機能1の元の接続=機能2の元の接続)
THEN
機能1と機能2は競合する。
【0022】
1以上のBAを有するコールに関する規則2b:規則2aと同一
IF
機能1の元の接続=機能2の結果としての接続
AND
機能2の元の接続=機能1の結果としての接続
THEN
機能1と機能2は競合する。
【0023】
1以上のBAを有するコールに関する規則3b
IF
機能2がトリートメントに接続し、
AND
{BA上の参加者を含み、機能1の結果としての接続}∩
{BA上の参加者を含み、機能2の結果としての接続}
≠φ
AND
∃X∈{BA上の参加者を含み、機能1の元の接続}
∃Y∈{BA上の参加者を含み、機能1の結果としての接続}?
[発呼者(X)=発呼者(Y)∧
被呼者(X)≠被呼者(Y)]
OR
[発呼者(X)=被呼者(Y)∧
発呼者(Y)=被呼者(X)]

THEN
機能1と機能2は競合する。
【0024】
1以上のBAを有するコールに関する規則4b
IF
{BA上の参加者を含み、機能1の結果としての接続}∩
{BA上の参加者を含み、機能2の元の接続}
≠φ
AND
[∃X∈{BA上の参加者を含み、機能1の元の接続}
∃Y∈{BA上の参加者を含み、機能1の結果としての接続}?
[発呼者(X)=被呼者(Y)∧
発呼者(Y)=被呼者(X)]]
OR
[∃X∈{BA上の参加者を含み、機能2の元の接続}
∃Y∈{BA上の参加者を含み、機能2の結果としての接続}?
[発呼者(X)=発呼者(Y)∧
被呼者(X)≠被呼者(Y)]]
THEN
機能1と機能2は競合する。
【0025】
1以上のBAを有するコールに関する規則5b
IF
機能1の元の接続=機能2の元の接続
≠φ
AND
[∃X∈{BA上の参加者を含み、機能1の元の接続}
∃Y∈{BA上の参加者を含み、機能1の結果としての接続}?
[被呼者(Y)=トリートメント ∧
発呼者(X)=トリガーを発する者(機能1)]]
OR
[∃X∈{BA上の参加者を含み、機能2の元の接続}
∃Y∈{BA上の参加者を含み、機能2の結果としての接続}?
[被呼者(Y)=トリートメント ∧
発呼者(X)=トリガーを発する者(機能2)]]

THEN
機能1と機能2は競合する。
【0026】
図1は、本発明の第1の例示の実施形態での、複数参加者またはブリッジド・アピアランスコールのための機能競合を検出し、解決する方法のフローチャートを表している。図1に表わしたどのタスクが、同時に、または表わされているのとは異なる順序で、実行され得るかは、この技術分野の当業者には、この技術開示を読んだ後では自明となる
であろう。
【0027】
タスク110で、機能f1は、3以上のエンドポイント、1以上のブリッジド・アピアランス、またはその両方を有するコールに関する第1の機能へと初期化される。
【0028】
タスク120で、機能f2はコールCに関する第2の機能へと初期化される。
【0029】
タスク130は、機能f1及びf2が規則1a−5a及び規則1b−5bのいずれかに合致するかどうかを決定する。この技術分野の当業者には理解できるであろうが、そのような決定を実施するのに、本分野でよく知られた様々な方法がある。例えばエクスパートシステムの規則マッチングエンジン、論理プログラム、制約充足システム、単純な網羅的探索法、など。そして、タスク130を実施できる本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0030】
もしタスク130が機能f1と機能f2について規則が合致しないと決定した場合は、実行はタスク140に進み、そうでない場合には、実行はタスク150で続行される。
【0031】
タスク140では、よく知られたやり方で、機能f1と機能f2の両方が活性化される。タスク140の後で、図1の方法の実行は終了する。
【0032】
タスク150では、機能f1と機能f2の、双方ではなく一方が、よく知られたやり方で、活性化される。この技術分野の当業者には理解できるであろうが、タスク150が2つの機能のうちの1つを活性化のために選択する(すなわちタスク150が機能競合の解決を行う)方法は、種々存在する。例えば本発明のある実施形態の中で、タスク150が決定論的に最初に呼び出された機能を選択するかもしれないし、一方、本発明の別のある実施形態ではタスク150が決定論的に最後に呼び出された機能を選択するかもしれないし、更に、別のある実施形態では解決の別の方法、すなわち、以下に述べるような、そして第2の例示の実施形態と、図2から図6に関わるような別の方法が実施されるかもしれない。どんなケースでも、タスク150を実施することができる本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0033】
タスク150の後で、図1の方法の実行は終了する。
【0034】
この技術分野の当業者には理解できるであろうが、図1の方法は、種々のテレフォニープラットホームとプロトコル(例えばSIPを基盤としたVoIPテレフォニー、公衆電話網を介した従来からの回線交換テレフォニーなど)と共同して履行され得るし、そのようなプラットホームやプロトコルのためのこの方法に基づく本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0035】
「コールの継続中の機能競合検出・解決」
本発明の第2の例示の実施形態は、コールの継続中の機能競合の検出と解決(すなわち、コールの継続中機能競合検出・解決)を可能とする。第2の例示の実施形態の技術は、複数参加者コールやブリッジド・アピアランスを持つコールのためのコールの継続中機能競合検出・解決を提供するために、第1の例示の実施形態の技術と組み合わせることができる。
【0036】
図2は、本発明の第2の例示の実施形態での、コールの継続中の機能競合を検出し、解決するための有限状態機械(FSM)200を表している。図2に示すように、有限状態機械(FSM)200は状態201から206で構成されている。ここで、状態201は開始状態であり、状態205及び206は最終状態である。有限状態機械(FSM)200の中の、各々の孤(または指示された端)は、最初の状態から第2の状態への正当な遷移を示し、孤上のラベルは遷移の記述を与える。
【0037】
開始状態201では、機能f1が活性化される。本発明のある実施形態では、開始状態201へはコールセットアップの前に入るであろうし、また、一方、他のある実施形態ではコールのセットアップ中に入り、更に他のある実施形態ではコールセットアップの後でコールの継続中に入る。
【0038】
機能f2がコールの継続中に呼び出された場合には、有限状態機械(FSM)200は、開始状態201を離れて状態202に入る。
【0039】
状態202では、機能f1とf2に関する競合のチェックが行われる。もし競合があれば、有限状態機械(FSM)200は状態202を離れ、状態203に入る。
【0040】
状態203は、機能f1または機能f2がより高い優先度を有するかどうかによって、状態204、205、206のいずれかに遷移する。(機能の優先度、及び、機能f1とf2の一つを選択する解決の技術については、図3から図6を参照しながら以下に詳細に記述する。)もし、機能f1が機能f2に対して優先であれば、状態203は状態206に遷移する。もし、機能f2が機能f1に対して優先であり、かつ、機能f2が条件付きであれば、状態203は状態204に遷移する。もし、機能f2が機能f1に対して優先であり、かつ、機能f2が条件なしであれば、状態203は状態205に遷移する。
【0041】
状態204では、機能f2が使用されているかどうかのチェックがなされる。もし、使用されていれば状態204は状態205に遷移し、そうでなければ状態204は状態206に遷移する。
【0042】
最終状態205では、コールは機能f1なしで繰り返される。
【0043】
最終状態206では、次の機能が処理される。
【0044】
図3は、本発明の第2の例示の実施形態での、有限状態機械(FSM)200に関連した方法についてのフローチャートを表している。図3の中に表現されているどのタスクが、同時に、または表現されている順序とは異なる順序で、実行され得るかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0045】
タスク310では、よく知られたやり方で、機能f1が活性化されたことを示す最初の信号が受け取られる。この技術分野の当業者には理解できるであろうが、本発明のある実施形態では、この最初の信号は、スイッチによって受信され、別のある実施形態ではPBX(構内交換機)で受信され、更に別の実施形態では別のデータ処理システムから受信される。更に、この技術分野の当業者には理解できるであろうが、本発明のある実施形態では、機能f1は特定コールをかける前に、タスク310で活性化され、別のある実施形態では、特定コールの間に機能f1が活性化される。どの場合でも、タスク310の実行を可能にする本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0046】
タスク320では、第2の信号がコールの継続中に受け取られる。その第2の信号はコールの間に機能f2が呼び出されたことを示している。
【0047】
タスク330は、コールの間に、機能f1とf2が競合しているかどうかを決定する。この技術分野の当業者には理解できるであろうが、機能競合を検出する種々の方法がある。例えば、本発明のある実施形態では、機能競合は第1の例示の実施形態の規則の組から決定され、一方、別のある実施形態では、機能競合の検知は代替の技術により実施される。どんな場合でも、タスク330の実行を可能にする本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0048】
タスク340はタスク330の決定に基づき、分岐を行う。タスク330で機能f1とf2が競合していないと決定された場合は、実行はタスク350に進み、そうでない場合は、実行はタスク360で続けられる。
【0049】
タスク350では、機能f2が、よく知られたやり方で活性化される。タスク350の後は、図3の方法の実行は終了する。
【0050】
タスク360では、機能競合は解決される。この技術分野の当業者には理解できるであろうが、機能競合を解決する種々の方法がある。例えば、本発明のある実施形態では、機能競合を解決するために、以下に記述され、図4から図6に関連する、技術の一つが用いられ、別の実施形態では、機能競合を解決するために別の技術が用いられる。どんな場合でも、タスク360の実施が可能な本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0051】
タスク360の後で、図3の方法の実行は終了する。
【0052】
図4は、本発明の第2の例示の実施形態での、タスク360を実施するための第1の技術のフローチャートを表している。この第1の技術では、より早く活性化された機能(すなわち、機能f1)に、他の考慮(例えば、機能f1とf2の特性、機能f1の活性化と機能f2の要求の間の経過時間など)をせずに、不変の優先度が与えられる。
【0053】
タスク410では、機能f2の活性化は拒絶される。この技術分野の当業者には理解できるであろうが、ある実施形態では、拒絶は、なぜ機能f2が活性化されなかったのかという、ある形式の通知または説明が付属するが、別の実施形態では、活性化は付属するアクションなしで拒絶される。
【0054】
タスク410が完了すると、図4の技術と図3の方法は終了する。
【0055】
図5は、本発明の第2の例示の実施形態での、タスク360を遂行するための第2の技術のフローチャートを表している。この第2の技術では、後に活性化された機能(すなわち機能f2)は、他のことを考慮せずに、不変の優先度が与えられる。図5に表わされているどのタスクが、同時に、または表わされているのと違った順番で遂行されるかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0056】
タスク510で、機能f1は、よく知られたやり方で、非活性化される。
【0057】
タスク520で、機能f2は、よく知られたやり方で、活性化される。
【0058】
この技術分野の当業者には理解できるであろうが、本発明のある実施形態では、タスク510とタスク520には、これらのアクションに関するある形式の通告や説明が付属するが、ある別の実施形態では、どんな通告や説明も付属しない。
【0059】
タスク520が完了した後で、図5の技術及び図3の方法は終了する。
【0060】
図6は、本発明の第2の例示の実施形態に従って、タスク360を遂行するための第3の技術のフローチャートを表している。この第3の技術では、機能の優先度合は、機能に付与された「優先度」によって決定される。図6に表現されているどのタスクが、同時に、または表現されているのと違った順番で遂行されるかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0061】
タスク610は、機能f2が機能f1より高い優先度を有するかどうかをチェックする。もし、有しなければ、実行はタスク620に進み、そうでない場合は、実行はタスク630で続行される。
【0062】
タスク620では、機能f2の活性化は拒絶される。この技術分野の当業者には理解できるであろうが、ある実施形態では、拒絶は、なぜ機能f2が活性化されなかったのかという、ある形式の通知または説明が付属するが、別の実施形態では、活性化は付属するアクションなしで拒絶される。
【0063】
タスク620が完了した後で、図6の技術及び図3の方法は終了する。
【0064】
タスク630では、機能f1は、よく知られたやり方で、非活性化される。
【0065】
タスク640では、機能f2は、よく知られたやり方で、活性化される。
【0066】
この技術分野の当業者には理解できるであろうが、本発明のある実施形態では、タスク630とタスク640には、これらのアクションに関するある形式の通告や説明が付属するが、別の実施形態では、どんな通告や説明も付属しない。
【0067】
タスク640が完了した後で、図6の技術及び図3の方法は終了する。
【0068】
この技術分野の当業者には理解できるであろうが、本発明の別の態様では、機能1と機能2の間の優先度における「同点」は、機能1よりも機能2を選択して破られることもある。そのような代替の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0069】
この技術分野の当業者には理解できるであろうが、図3から図6の方法は、種々のテレフォニープラットホームとプロトコル(例えばSIPを基盤としたVoIPテレフォニー、公衆電話網を介した従来からの回線交換テレフォニーなど)と共同して履行され得るし、そのようなプラットホームやプロトコルのためのこの方法に基づく本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0070】
「複数レグのシグナリングパスを持つコールのためのコールの継続中検出」
本発明の第3の例示の実施形態は、複数レグのシグナリングパスを持つコールのための機能競合の検出と解決を可能にする。第3の例示の実施形態の技術は、複数のエンドポイント及び/またはブリッジド・アピアランスを持つ複数レグコールについてのコールの継続中機能競合を検出し、解決するために、第1及び第2の例示の実施形態の技術と組み合わせることができる。
【0071】
図7は、本発明の、第3の例示の実施形態での、複数レグのシグナリングパスを持つコールの機能競合を検知し、解決する第1の方法のフローチャートを表している。図7に表わされているどのタスクが、同時に、または表わされているのと違った順番で実施されるかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0072】
タスク710では、よく知られたやり方で、複数レグのシグナリングパスを持つコールのレグLのために、一つの機能が呼び出されることを示す信号が受け取られる。
【0073】
タスク720では、レグLに関する機能状態情報がそれに応じて更新され、ネットワークの適切なノードにストアされる。この技術分野の当業者には理解できるであろうが、本発明のある実施形態では、機能状態情報は、第4の例示の実施形態を参考にして以下に記述するように、1以上のB2BUAにストアされ、一方、別の実施形態では、機能状態情報は、別のタイプのノード、例えばスイッチ、サーバー、PBXなどにストアされる。どの場合でも、タスク720の実施を可能にする本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0074】
タスク730では、よく知られたやり方で、更新された機能状態情報が、そのコールのシグナリングパスにそって伝送される。
【0075】
タスク740では、必要に応じて、シグナリングパスのレグをクロスするアドレスマッピング(Address Mapping)が行われる。例えば、シグナリングパスにそったシグナリング要素が、そのパスの一部分にそったシグナリング要素のアドレスを削除する。このアドレス情報は通常シグナリング情報で搬送される。シグナリング要素は、別のシグナリング要素及びエンドポイントのためのアドレス情報を変更することもできる。このアドレス情報も通常シグナリング情報で搬送される。そのようなマッピングと変形(transformation)を用いて、内部のシグナリングトポロジーの詳細を外部のシグナリング要素及びエンドポイントから隠し、エンドポイントには見えないシグナリングパスへと変更することを許容する。タスク740でのアドレスマッピングは、機能競合検出の規則に、実際にそのコールでのエンドポイントであるという矛盾のない見方を与える。
【0076】
タスク750は、呼び出された機能が、(i)そのコールのシグナリングパスの異なるレグのための機能か、(ii)レグLのための別の機能かのいずれかと、競合するかどうかをチェックする。 もし、競合していれば、実行はタスク760に進み、そうでなければ実行はタスク770で継続される。
【0077】
タスク760では、よく知られたやり方で、その機能が活性化される。タスク760の後で、図7の方法の実行は終了する。
【0078】
タスク770では、機能競合が解決される。この技術分野の当業者には理解できるであろうが、機能競合を解決する種々の手段がある。例えば、本発明のある実施形態では、図4から6を参考にして上に述べた技術の1つが、機能競合を解決するために用いられ、一方、本発明の別の実施形態では、機能競合を解決するために、別の技術が用いられる。どんな場合でも、タスク770の実施を可能にする本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0079】
タスク770の後で、図7の方法の実行は終了する。
【0080】
図8は、本発明の第3の例示の実施形態に従って、複数レグのシグナリングパスを有するコールに関する機能競合を検出し解決するための第2の方法に関するフローチャートを表している。 図8のどのタスクが同時に、あるいは表したのと異なる順序で、遂行されうるかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0081】
タスク810では、新たなレグがコールに追加されるべきか、または、新たなレグが既にコールに追加されているか、を示す信号が受け取られる。
【0082】
タスク820では、よく知られたやり方で、新たなレグのための機能状態情報がそのコールのシグナリングパスにそって伝送される。
【0083】
タスク830では、必要に応じて、シグナリングパスのレグをクロスするアドレスマッピングが行われる。例えば、シグナリングパスにそったシグナリング要素が、別の方法でシグナリング情報の中で伝送されるであろう、そのパスの一部分にそったシグナリング要素のアドレスを削除する。そのようなシグナリング要素は、別の方法でシグナリング情報の中で伝送されるであろう、別のシグナリング要素及びエンドポイントのためのアドレス情報を変更することもできる。そのようなマッピングと変形は、内部のシグナリングトポロジーの詳細を外部のシグナリング要素及びエンドポイントから隠すために、また、1以上のエンドポイントには見えないシグナリングパスへと変更することを許容するために、使用される。タスク830でのアドレスマッピングは、機能競合検出の規則に、実際にそのコールでのエンドポイントであるという矛盾のない見方を与える。
【0084】
タスク840は、新たなレグのどんな機能状態情報が、そのコールのどの現存するレグのどの機能と競合するかどうかをチェックする。もし競合するならば、実行はタスク850に進み、そうでなければ実行はタスク860で続行する。
【0085】
タスク850では、よく知られたやり方で、機能が活性化される。タスク850の後で、図8の方法の実行は終了する。
【0086】
タスク860では、機能競合が解決される。この技術分野の当業者には理解できるであろうが、機能競合を解決する種々の手段がある。例えば、本発明のある実施形態では、図4から6を参考にして上に述べた技術の1つが、機能競合を解決するために用いられ、一方、本発明の別の実施形態では、機能競合を解決するために、別の技術が用いられる。どんな場合でも、タスク860を実施することができる本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0087】
タスク860の後で、図8の方法の実行は終了する。
【0088】
この技術分野の当業者には理解できるであろうが、図7及び図8の方法は、種々のテレフォニープラットホームとプロトコル(例えばSIPを基盤としたVoIPテレフォニー、公衆電話網を介した従来からの回線交換テレフォニーなど)と共同して履行され得るし、そのようなプラットホームやプロトコルのためのこの方法に基づく本発明の実施形態を、いかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0089】
「B2BUAを使ったVoIPのための実現方法」
第4の例示の実施形態は、上に述べた第1、第2、第3の例示の実施形態に従って、タスクを遂行することを可能とするVoIPコールのための実現方法を用意する。 このように第4の例示の実施形態は、コールの継続中機能競合検出・解決、複数レグのシグナリングパスを有するコール、複数参加者コール、及び、ブリッジド・アピアランスを有するコールを取り扱うことが可能である。
【0090】
第4の例示の実施形態へのアプローチは、分散され、それがVoIPテレフォニー及びSIPへの適用を容易にする。活性化された各々の機能が、SIPメッセージの中に、「トリガーを発する参加者」と「接続のタイプ」を含める。もし既にメッセージの中に1以上の記入事項があれば、それらは、現在の機能の記述に対してチェックされる。このように、必要ならどこでもアルゴリズムが実行され、中央の機能マネージャーは必要とされない。このことはそのアプローチを高度にスケラブル(拡張可能)にする。
【0091】
SIPについては、標準のSIPヘッダーは十分な詳細を提供していない。それゆえ要求される情報を伝達する追加のヘッダーが定義され、そのヘッダーはSIPメッセージに含まれることができる。2つのプライベートなヘッダーが、このアプローチに必要とする情報を伝達するために定義された。 P−ConTypeとP−Forwarded−Toである。P−ConTypeヘッダーは現在のセッションで活性化されている機能の説明を含んでおり、P−Forwarded−ToヘッダーはINVITEリクエストが別の参加者にリダイレクトされたときの、インバイトされた参加者のためのIDを含んでいる。
【0092】
機能シークエンスの間に、現在のSIPメッセージはP−ConTypeヘッダーに関してチェックされる。そのようなヘッダーが見つからない場合は、どんな別の機能も以前に活性化されておらず、従って機能競合は起こりえない。そのような場合は、新たなP−ConTypeヘッダーが、現在の機能を記述するメッセージに挿入される。例えば、転送機能に関しては、ヘッダーは次のようになる。
P-ConType: ID=Forward; TP=sip:bob@d254203.com;
OrigFrom=chris@discus.com;OrigTo=bob@d254203com;
FinalFrom=chris@discus.com;FinalTo=alice@d254203.com
【0093】
そのヘッダーは、IDのフィールド、トリガーを発した参加者、及び接続タイプを含む。IDはヘッダーの中に記述される機能を特定する。TPは、トリガーを発する参加者を含み、残る4つのフィールドは、接続タイプの4つのフィールドに対応する。
【0094】
第4の例示の実施形態では、B2BUAは、機能状態とコールレグに関するシグナリング情報をストアし、保持する。また、シグナリングパスにそってこの情報を伝送する。この技術分野の当業者には理解できるであろうが、B2BUAはSIPコールの両端へのユーザーエージェントとして機能し、コールの両端の間の全てのSIPシグナリングを、コールの確立から終了まで、処理する責任を持つ。SIPのクライアントにとって、B2BUAは一面では、ユーザーエージェントサーバーとして機能し、他面ではユーザーエージェントクライアントとして機能する。B2BUAは、コールマネージメント(例えば、課金、自動コール切断、コール転送など)、ネットワーク相互作用(たぶんプロトコルの適応を伴う)、 ネットワーク内部の秘匿(個人アドレス、ネットワークトポロジーなど)、2コールレグ間のコーデック変換などの追加の機能も提供する。 この技術分野の当業者には理解できるであろうが、B2BUAは、透過型B2BUAであったり、監視型B2BUAであったり、または、セッションボーダーコントローラー(SBC)として機能したりする。
【0095】
「透過型B2BUA」
透過型B2BUAには2つのケースがある。第1のケースは、透過型B2BUAは、P−ConTypeヘッダーを指示通り転送し、かつ、競合により機能が実行不可であることを送り返すことができる。これはヘッダーに何の情報変更もなく行われる。
【0096】
第2のケースでは、透過型B2BUAはいくつかのヘッダーで情報を変更する。このことは機能競合のアプローチにインパクトを与え得る。例えば、From/To/RequestURI内での変更を通してエンドポイントのアイデンティティを変更することにより、これらのヘッダー間のマッピング及びP−ConTypeヘッダーに含まれる情報が破壊される。その上、P−ConTypeヘッダーは、参加者の「以前の」アイデンティティを開示するかもしれない。そのため、B2BUAは、変更されたSIPヘッダー内と同じようにP−ConTypeヘッダー内の値の上に、同じアドレスマッピングを実施する必要がある。このマッピングは上方へのメッセージ及び下方へのメッセージのいずれにも発生する。
【0097】
図9は、本発明の第4の例示の実施形態での、第2のケースの、説明のためのSIPのシグナリングパス900を表している。図9に示すようにシグナリングパス900はユーザーエージェント901−1、901−2、サーバー902−1、902−2、及び透過型B2BUA903を含み、それらは図示するように接続され、更に2つのコールレグ904−1、904−2を含む。
【0098】
この技術分野ではよく知られたように、ユーザーエージェント901−1、901−2は、SIPのエンドポイントである。
【0099】
この技術分野ではよく知られたように、サーバー902−1、902−2は、SIPサーバーである。
【0100】
上記のように、透過型B2BUA903は、P−ConTypeヘッダー及び他のSIPヘッダー上に、アドレスマッピングを実施する。 ユーザーエージェント901−1、901−2、サーバー902−1、902−2及びB2BUA903の間のSIPメッセージは、シグナリングパス900の下に、よく知られた書き方で示されている。シグナリングパスが2以上の透過型B2BUA(すなわち鎖状B2BUA)で構成されている場合は、マッピングはそれぞれのB2BUAで発生する。このようにこの技術分野の当業者には理解できるであろうが、鎖状B2BUAの挙動は、単一B2BUAの場合の連続として見ることができる。
【0101】
「監視型B2BUA」
セッションの監視は、不可視(例えばLawful Interceptのような機能を通して)か可視(例えばSession Recordingのような機能を通して)である。不可視の監視は、そのコールの別のエンドポイントでは検知できないようにすべきである。それゆえ監視しているエンドポイントからのシグナリングは、他のエンドポイントから秘匿される必要がある。B2BUAはこの機能を提供することができるが、P−ConTypeヘッダーで妥協して解決されるべきプライバシーの問題がある。
【0102】
監視されるコールより高い優先度を持つことで、監視が不可視な場合には、 Lawful InterceptまたはSupervisor Monitoringなどの機能はいかなる機能競合問題よりも優先度を持つべきである。
別の言い方では、監視は、このことが監視を原因とする競合は取り扱わないことを意味したとしても、不可視に維持されるべきである。このようなシナリオの例は、監視している参加者(以下、監視者)が、監視されているコールの一参加者のスクリーニングリストにあったときである。そのようなシナリオでは、監視者に関する機能からのP−ConTypeヘッダーが、別の参加者のコールに送信されない。また、コールのセットアップは、これが別のエンドポイントで検出されて監視を開示することになるので、機能競合(機能の1つが不能)という理由で、決して繰り返されない。その代わり、そのような競合は、監視者の機能に優先度を与えることにより解決される。
【0103】
監視者が監視されているコールと等しいか、より低い優先度で不可視な場合には、監視は不可能である。そのようなシナリオの例は、監視が、あるコールにおいて活性化されており、しかも、コールの監視を許さない機能(例えばChief Executive Officerなど)を有する参加者がコールに参加するときである。
【0104】
監視が可視なときには、プライバシーの問題は適用されない。それゆえ、P−ConTypeヘッダーは通常の様式でメッセージに含まれ得る。更に、機能競合の解決は、発呼端または終端としてB2BUAを持つコールレグについて、そのコールレグ内での機能競合がそのB2BUAで解決されるという追加の条件付きで、以前の例示の実施形態で記述したように実施することができる。
【0105】
整合させることができない複数参加者コールのコールレグをまたいでの機能競合を持つことは可能であることに注意すべきである。そのような場合には、機能競合は異なるレグで非対称に分析されるべきである。
【0106】
「セッションボーダーコントローラー(SBCs)」
SBCの主な役割は、ドメインルーティング及びエンドポイントアイデンティティを外部のエンドポイント及びシグナリング要素から秘匿することである。当然に、この役割は第4の例示の実施形態の機能競合検出のアプローチと矛盾する。特にSBCは、P−ConTypeヘッダーの情報を転送しない。なぜならそのようにするとアイデンティティ及びそれらのアイデンティティで使用されている機能を開示するからである。
【0107】
しかしながら、1ドメイン内での機能競合分析は、各ドメイン内に機能競合の論理を隔離することで可能である。これは1ドメイン内で使用されるサービスの間の競合を解決するが、異なるドメインからのサービスを含むような競合を捕らえることはできない。
【0108】
代案として、SBCは、内部のトポロジーまたはシグナリングを開示しないやり方で機能競合のフィードバックをマッピングすることができる。例えば、ドメインの外部からの可視性を防止するために、P−ConTypeヘッダーからフィルターされた、隠れた機能のリストがあり得る。別の例では、公衆のエンドポイントのみがドメインの外部から可視とされる。当然ながら、そのようなアプローチのどれも、プライバシーの増加という利益と交換で、競合を取り扱う能力に影響を与えるという、トレードオフがある。この技術分野の当業者には理解できるであろうが、用いられる特定のポリシー(例えば、全てのP−ConTypeヘッダーの削除、あるP−ConTypeヘッダーのみの削除、ローカルドメイン内のみの機能競合を取り扱うこと、など)は、特定のドメインのプライバシー要求に基づく遂行決定であり、それゆえ、そのようなポリシーが、設定可能(コンフィギュラブル)であることは利点がある。
【0109】
この技術分野の当業者には理解できるであろうが、第4の例示の実施形態の重要なタスク(例えば、機能状態情報の維持と伝達、アドレスマッピングなど)が、1以上のB2BUAによって遂行されるとしても、別の実施形態ではこれらのタスクのいくつかまたは全てが1以上の別のデータ処理システム(例えば、交換機、サーバー、PBXなど)で遂行されることもあり、本発明のかかる実施形態をいかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。更に、この技術分野の当業者には理解できるであろうが、第4の例示の実施形態はVoIPテレフォニー及びSIPを背景として開示されているが、第4の例示の実施形態の技術は、他の形式のテレフォニープラットホームやプロトコルにも適用可能であり、そのような、本発明の代替の実施形態をいかに実現し使用するかは、この技術分野の当業者には、この技術開示を読んだ後では自明となるであろう。
【0110】
以上の説明は、本発明の一実施例に関するもので、この技術分野の当業者であれば、本発明の種々の変形例を考え得るが、それらはいずれも本発明の技術的範囲に包含される。特許請求の範囲の構成要素の後に記載した括弧内の番号は、図面の部品番号に対応し、発明の容易なる理解の為に付したものであり、発明を限定的に解釈するために用いてはならない。また、同一番号でも明細書と特許請求の範囲の部品名は必ずしも同一ではない。これは上記した理由による。用語「又は」に関して、例えば「A又はB」は、「Aのみ」、「Bのみ」ならず、「AとBの両方」を選択することも含む。特に記載のない限り、装置又は手段の数は、単数か複数かを問わない。「Aを有する」は、A以外のものを排除する意ではない。
【符号の説明】
【0111】
110 f1:2以上のエンドポイント及び/またはブリッジド・アピアランスを有するコールCに関する第1の機能
120 f2:コールCに関する第2の機能
130 f1とf2は、規則1a−5aまたは1b−5bのどれかにマッチするか?
140 f1、f2両方を活性化する
150 f1、f2の両方ではなく、どちらか一つを活性化する
201 f1が活性化される
202 f2が呼び出される
203 f2とf1が競合する
204 f2が使用されるか?
205 f1なしでコールを繰り返す
206 次の機能
310 機能f1が活性化されたことを示す第一の信号を受け取る
320 コールの継続中に、機能f2が呼び出されたことを示す第2の信号を受け取る
330 コールの継続中に、機能f1とf2が競合するかどうかを決定する
340 競合するか?
350 f2を活性化する
360 競合を解決する
410 機能f2の活性化を拒絶する
510 機能f1を非活性化する
520 機能f2を活性化する
610 f2はf1より高い優先度を持つか?
620 機能f2の活性化を拒絶する
630 機能f1を非活性化する
640 機能f2を活性化する
710 コールのレグLに関して機能が呼び出されたことを示す信号を受け取る
720 それに応じてレグLに関する機能状態情報を更新する
730 コールのシグナリングパスにそって更新した機能状態情報を伝える
740 必要に応じシグナリングパスのレグをまたいだアドレスマッピングを実施する
750 機能は、同一のまたは異なるコールレグでの別の機能と競合するか?
760 機能を活性化する
770 競合を解決する
810 次のどちらかを示す信号を受け取る。
−新たなレグがコールに追加される
−新たなレグが既にコールに追加されている
820 コールのシグナリングパスにそって新たなレグに関する機能状態情報を伝える
830 必要に応じシグナリングパスのレグをまたいだアドレスマッピングを実施する
840 既存のコールレグのどれかの機能と新たなレグのどれかの機能は競合するか?
850 機能を活性化する
860 競合を解決する
901−1 ユーザーエージェント
901−2 ユーザーエージェント
902−1 サーバー
902−2 サーバー
903 B2BUA

【特許請求の範囲】
【請求項1】
(A)第1機能が活性化されていることを示す第1信号を受領するステップと、
(B)コールの継続中、第2機能が要求されていることを示す第2信号を受領するステップと、
(C)前記コールの継続中、前記第1機能と前記第2機能が競合しているか否かを決定するステップと
を有する
ことを特徴とする方法。
【請求項2】
(D)前記第1機能と前記第2機能が競合していないと決定した時のみ、前記第2機能を活性化するステップと
を更に有する
ことを特徴とする請求項1記載の方法。
【請求項3】
(E)前記第1機能と前記第2機能が競合していないと決定した時に、前記第2機能を活性化するステップと
ことを特徴とする請求項1記載の方法。
【請求項4】
(F)前記第1機能と前記第2機能が競合していると決定した時に、前記第2機能を活性化することを拒否するステップと
を更に有する
ことを特徴とする請求項1記載の方法。
【請求項5】
前記第1機能と前記第2機能が競合していると決定したが時に、
(G)前記第1機能を非活性化するステップと、
(H)前記第2機能を活性化するステップと
を更に有する
ことを特徴とする請求項1記載の方法。
【請求項6】
(I)前記第1機能が前記第2機能と少なくとも同じ程度に高い優先度を有する時に、前記第2機能を活性化するのを拒否するステップと、
(J)それ以外の場合に、
(i)前記第1機能を非活性化するステップと、
(ii)前記第2機能を活性化するステップと
を有する
ことを特徴とする請求項1記載の方法。
【請求項7】
→請求項6
ことを特徴とする請求項1記載の方法。
【請求項8】
前記第1機能は、前記コールを設定する前に、活性化する
ことを特徴とする請求項1記載の方法。
【請求項9】
前記第1機能は、前記コールを設定する前に、活性化し、
前記第1信号を前記コールの設定前に受領する
ことを特徴とする請求項1記載の方法。
【請求項10】
前記第1機能は、前記コールを設定する前に、活性化し、
前記第1信号を前記コールの設定中に受領する
ことを特徴とする請求項1記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−166555(P2010−166555A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−277381(P2009−277381)
【出願日】平成21年12月7日(2009.12.7)
【出願人】(508214019)アバイア インク. (75)
【Fターム(参考)】