(57)【特許請求の範囲】
【請求項１】
中央演算処理装置およびメモリを備えるコンピュータ支援電話サーバの第１のソフトウエアデータ処理リソースおよび第２のソフトウェアデータ処理リソースを用いてデータを処理するためのＴＤＭバスエミュレーション方法であって、前記第１のソフトウエアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースそれぞれは、ハードウェアＤＳＰをエミュレートし、
前記メモリにおいて、前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースの実行の順序を特定する少なくとも１つのデータチェーンを含むデータ構造を確立するステップであって、前記データ構造は前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つによって処理されるべき対応するデータにアクセスを可能にするステップと、
前記中央演算装置および前記メモリを用いて、前記データ構造内に含まれるデータに従って第１の予め定められた時間にわたって前記第１あるいは前記第２のソフトウエアデータ処理リソースのうちの１つを実行して、前記対応するデータから第１のデータ処理結果を生成するステップと、
前記データ構造内に含まれるデータから、前記第１のソフトウェアデータ処理リソースおよび前記第２のリソースのうちの次の実行されるべきソフトウェアデータ処理リソースを特定するステップと、
前記特定されたソフトウェアデータ処理リソースを第２の予め定められた時間にわたって実行して前記第１のデータ処理結果を処理し、第２のデータ処理結果を生成するステップと、
前記第１の予め定められた時間および前記第２の予め定められた時間のうちの少なくとも１つの持続時間を決定する割込みを周期的に発生させるステップと
を含む方法。
【請求項２】
前記データ構造は、
各エントリに対して、実行されるべき関連するソフトウェアデータ処理リソースの指示と、前記関連するソフトウェアデータ処理リソースによって処理されるべき対応するデータの指示のうちの少なくとも１つ
を含む
請求項１に記載の方法。
【請求項３】
前記データ構造は、
前記関連するソフトウェアデータ処理リソースによって生成される任意のデータ処理結果が送られるべき次のソフトウェアデータ処理リソースの指示
をさらに備える請求項２に記載の方法。
【請求項４】
前記データ構造を確立する前記ステップは、
前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つにアクセスするためのアプリケーションからの要求を受信すること
を含む請求項１〜３のいずれかに記載の方法。
【請求項５】
前記第１ソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つは、電話機能を実現する
請求項１〜４のいずれかに記載の方法。
【請求項６】
前記コンピュータ支援電話サーバのシステムリソースに問い合わせて、任意のソフトウェアデータ処理リソースの存在を識別するステップと、
任意の識別されたソフトウェアデータ処理リソースに識別子を割り当てるステップと
をさらに含む請求項１〜５のいずれかに記載の方法。
【請求項７】
中央演算処理装置およびメモリを備えるコンピュータ支援電話サーバの第１のソフトウェアデータ処理リソースおよび第２のソフトウェアデータ処理リソースを用いてデータを処理するためのＴＤＭバスエミュレーションシステムであって、前記第１のソフトウエアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースそれぞれは、ハードウェアＤＳＰをエミュレートし、
前記メモリにおいて、前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースの実行の順序を特定する少なくとも１つのデータチェーンを含むデータ構造を確立する手段であって、前記データ構造は前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つによって処理されるべき対応するデータにアクセスを可能にする手段と、
前記中央演算装置および前記メモリを用いて、前記データ構造内に含まれるデータに従って第１の予め定められた時間にわたって前記第１あるいは前記第２のソフトウエアデータ処理リソースのうちの１つを実行して、前記対応するデータから第１のデータ処理結果を生成する手段と、
前記データ構造内に含まれるデータから、前記第１のソフトウェアデータ処理リソースおよび前記第２のリソースのうちの次の実行されるべきソフトウェアデータ処理リソースを特定する手段と、
前記特定されたソフトウェアデータ処理リソースを第２の予め定められた時間にわたって実行して前記第１のデータ処理結果を処理し、第２のデータ処理結果を生成する手段と、
前記第１の予め定められた時間および前記第２の予め定められた時間のうちの少なくとも１つの持続時間を決定する割込みを周期的に発生させる手段と
を含むシステム。
【請求項８】
前記データ構造は、
各エントリに対して、実行されるべき関連するソフトウェアデータ処理リソースの指示と、前記関連するソフトウェアデータ処理リソースによって処理されるべき対応するデータの指示のうちの少なくとも１つ
を含む
請求項７に記載のシステム。
【請求項９】
前記データ構造は、
前記関連するソフトウェアデータ処理リソースによって生成される任意のデータ処理結果が送られるべき次のソフトウェアデータ処理リソースの指示
をさらに備える請求項８に記載のシステム。
【請求項１０】
前記データ構造を確立する前記手段は、
前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つにアクセスするためのアプリケーションからの要求を受信する
請求項７〜９のいずれかに記載のシステム。
【請求項１１】
前記第１ソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つは、電話機能を実現する
請求項７〜１０のいずれかに記載のシステム。
【請求項１２】
前記コンピュータ支援電話サーバのシステムリソースに問い合わせて、任意のソフトウェアデータ処理リソースの存在を識別する手段と、
任意の識別されたソフトウェアデータ処理リソースに識別子を割り当てる手段と
をさらに含む請求項７〜１１のいずれかに記載のシステム。
【請求項１３】
中央演算処理装置およびメモリを備えるコンピュータ支援電話サーバの第１のソフトウェアデータ処理リソースおよび第２のソフトウェアデータ処理リソースを用いてデータを処理するためのＴＤＭバスエミュレーションプログラムであって、前記第１のソフトウエアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースそれぞれは、ハードウェアＤＳＰをエミュレートし、
前記メモリにおいて、前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースの実行の順序を特定する少なくとも１つのデータチェーンを含むデータ構造を確立するステップであって、前記データ構造は前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つによって処理されるべき対応するデータにアクセスを可能にするステップと、
前記中央演算装置および前記メモリを用いて、前記データ構造内に含まれるデータに従って第１の予め定められた時間にわたって前記第１あるいは前記第２のソフトウエアデータ処理リソースのうちの１つを実行して、前記対応するデータから第１のデータ処理結果を生成するステップと、
前記データ構造内に含まれるデータから、前記第１のソフトウェアデータ処理リソースおよび前記第２のリソースのうちの次の実行されるべきソフトウェアデータ処理リソースを特定するステップと、
前記特定されたソフトウェアデータ処理リソースを第２の予め定められた時間にわたって実行して前記第１のデータ処理結果を処理し、第２のデータ処理結果を生成するステップと、
前記第１の予め定められた時間および前記第２の予め定められた時間のうちの少なくとも１つの持続時間を決定する割込みを周期的に発生させるステップと
をコンピュータに実行させるプログラム。
【請求項１４】
前記データ構造は、
各エントリに対して、実行されるべき関連するソフトウェアデータ処理リソースの指示と、前記関連するソフトウェアデータ処理リソースによって処理されるべき対応するデータの指示のうちの少なくとも１つ
を含む
請求項１３に記載のプログラム。
【請求項１５】
前記データ構造は、
前記関連するソフトウェアデータ処理リソースによって生成される任意のデータ処理結果が送られるべき次のソフトウェアデータ処理リソースの指示
をさらに備える請求項１４に記載のプログラム。
【請求項１６】
前記データ構造を確立する前記ステップは、
前記第１のソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つにアクセスするためのアプリケーションからの要求を受信すること
を含む請求項１３〜１５のいずれかに記載のプログラム。
【請求項１７】
前記第１ソフトウェアデータ処理リソースおよび前記第２のソフトウェアデータ処理リソースのうちの少なくとも１つは、電話機能を実現する
請求項１３〜１６のいずれかに記載のプログラム。
【請求項１８】
前記コンピュータ支援電話サーバのシステムリソースに問い合わせて、任意のソフトウェアデータ処理リソースの存在を識別するステップと、
任意の識別されたソフトウェアデータ処理リソースに識別子を割り当てるステップと
をさらにコンピュータに実行させる請求項１３〜１７のいずれかに記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の分野】
本発明はデータ処理システム及び方法に関し、より詳細にはコンピュータ支援電話システム及び方法に関する。
【０００２】
【発明の背景】
コンピュータ支援電話システムが当分野においてよく知られている。そのようなシステムは典型的には、高品質なコンピュータ支援電話機能を提供するために、音声アプリケーションを実行するサーバと、デジタルトランクプロセッサとを備える。電話機能はたとえば、デジタルトランクアダプタ及びＥ１／Ｔ１トランクインターフェースカード、ＤＴＭＦ検出あるいは発生リソース、テキスト／スピーチ変換リソース、ファクシミリリソースならびに音声認識リソースを備える。
【０００３】
着呼に応答してサーバにおいて実行される音声アプリケーションは典型的には、多数の上記のコンピュータ支援電話リソースへのアクセスを必要とする。通常は、ＳＯＮＥＴバスのような時分割多重（ＴＤＭ）バスを介して、そのような呼処理リソースにアクセスできるようになる。しかしながら、そのサーバは、音声処理デジタルシグナルプロセッサのような呼処理ハードウエアリソースを提供しないか、そのようなＳＯＮＥＴバスをハードウェア及びソフトウェアで実現するＴＤＭバスにアクセスできないかのいずれかの状況にあることが時々ある。そのような状況では、コンピュータ支援電話システムを効率的に実現することができない。
【０００４】
本発明の１つの目的は、従来技術が抱える問題点のいくつかを少なくとも軽減することである。
【０００５】
【発明の概要】
従って、本発明の第１の態様は、中央演算処理装置及びメモリを備えるコンピュータの第１及び第２のソフトウェアデータ処理リソースを用いてデータを処理するためのＴＤＭバスエミュレーション方法を提供し、その方法は、
メモリにおいて、第１及び第２のソフトウェアデータ処理リソースの実行の順序を特定する少なくとも１つのデータチェーンを含むデータ構造を確立するステップであって、このデータ構造は第１及び第２のソフトウェアデータ処理リソースのうちの少なくとも１つによって処理されるべき対応するデータにアクセス可能にするステップと、
中央演算処理装置及びメモリを用いて、データ構造内に含まれるデータに従って第１の予め定められた時間にわたって第１あるいは第２のソフトウェアデータ処理リソースのうちの１つを実行して、対応するデータから第１のデータ処理結果を生成するステップと、
データ構造内に含まれるデータから、第１及び第２のリソースのうちの次の実行されるべきソフトウェアデータ処理リソースを特定するステップと、
特定されたソフトウェアデータ処理リソースを第２の予め定められた時間にわたって実行して第１のデータ処理結果を処理し、第２のデータ処理結果を生成するステップと
を含む。
【０００６】
有利なことには、そのデータ構造はソフトウェアＤＳＰリソースの実行の順序を決定し、各ソフトウェアＤＳＰリソースは周期的にあるいは少なくとも種々の間隔で短時間にわたってシステムリソースへのアクセスを許可されるので、アプリケーションが要求する従来の電話機能を、ハードウェアＤＳＰあるいは物理的なＴＤＭバスが存在しない場合であってもサポートすることができる。
【０００７】
中央演算処理装置及びメモリ等のような任意の共通のシステムリソースへのアクセスを共有することが望ましいことが理解されよう。それゆえ、好ましい実施形態は、第１及び第２の予め定められた時間周期のうちの少なくとも１つの持続時間を決定する割込みを周期的に発生させるステップと、その時点で実行中のソフトウェアデータ処理リソースを終了し、次の特定されたソフトウェアデータ処理リソースの実行を開始するステップとをさらに含む方法を提供する。
【０００８】
ソフトウェアデータ処理リソースよって処理されるべきデータは、サーバのシステムメモリ内に格納される。適切には、一実施形態は、データ構造が、各エントリについて、実行されるべき関連するソフトウェアデータ処理リソースの指示と、関連するソフトウェアデータ処理リソースによって処理されるべき対応するデータの指示のうちの少なくとも１つを含む方法を提供する。
【０００９】
アプリケーションによって必要とされる電話機能あるいは他の機能はいくつかの個別の処理要件にアクセスすることが必要な場合があるので、好ましい実施形態は、関連するソフトウェアデータ処理リソースによって生成される任意のデータ処理結果が送られるべき次のソフトウェアデータ処理リソースの指示を備えるデータ構造が提供される方法を提供する。このようにして、複数のソフトウェア処理リソースがデータを共有あるいは交換することができる。
【００１０】
好ましい実施形態は、データ構造を確立するステップが、第１及び第２のソフトウェアデータ処理リソースのうちの少なくとも１つにアクセスするためのアプリケーションからの要求を受信することを含む方法を提供する。
【００１１】
本発明の実施形態は、コンピュータ支援電話システム内に応用を見いだすことができる。好都合には、本発明の実施形態は、第１及び第２のソフトウェアデータ処理リソースのうちの少なくとも１つが電話関連機能を実装する方法を提供する。
【００１２】
初期化時に、コンピュータ支援電話機能は、アプリケーションをサポートするために利用可能なデータ処理リソースの明確な指示を持たない場合がある。従って、一実施形態は、任意のソフトウェアデータ処理リソースの存在を確認するためにコンピュータのシステムリソースに問い合わせるステップと、任意の確認されたソフトウェアデータ処理リソースにそれぞれ識別子を割り当てるステップをさらに含む方法を提供する。
【００１３】
従来のＴＤＭバスは、ＴＤＭＡ方式で任意の常駐するＤＳＰリソースにアクセスできるようにすることが理解されるだろう。それゆえ、本発明の実施形態は、データ構造内の各エントリを渡り歩き、対応するデータを用いて、確認されたソフトウェアデータ処理リソースを実行して、第１のデータを生成するステップを含み、この第１のデータは、データ構造内で確認された、次に確認されたソフトウェアデータ処理リソースのための対応するデータを形成する、データ処理方法を提供する。データ構造内の各エントリを渡り歩くことにより、ソフトウェアデータ処理リソースの各々は、そのソフトウェアデータ処理リソースがそれぞれその個々の機能を実行できるようにするために、コンピュータシステムのシステムリソースへのアクセスを許可される。
【００１４】
本発明の一様相は、対応するデータを用いて、データ構造のエントリ中に確認された第１のソフトウェアデータ処理リソースを実行し、第１のデータを生成するステップであって、この第１のデータはデータ構造中の別のエントリ内で次に確認された第２のソフトウェアデータ処理リソースのための対応するデータを形成するステップと、この第２のソフトウェアデータ処理リソースを実行して第２のデータを生成するように前記第１のデータを処理するステップとを含むデータ処理方法を提供する。
【００１５】
本発明の別の様相は、ＴＤＭバスエミュレーションシステムあるいは方法を実装するためのコンピュータプログラムコードを含むコンピュータプログラム要素を提供する。
【００１６】
本発明のさらに別の様相は、上述のコンピュータプログラム要素を格納するコンピュータ読取り可能記憶媒体を備えるコンピュータプログラム製品を提供する。
【００１７】
【好ましい実施形態の説明】
図１を参照すると、たとえば電話あるいはコンピュータのようなデータ端末装置１０２を備えるコンピュータ支援電話システム１００が示される。データ端末装置１０２はネットワーク１０４を介して、Ｅ１／Ｔ１電話カード１０８を用いてコンピュータ支援電話サーバ１０６に接続される。コンピュータ支援電話サーバは、オペレーティングシステム１１２上で動作する音声アプリケーション１１０の制御下で、音声メニュー及び音声認識あるいは電話キーパッド・キーストロークの組み合わせを用いて顧客にサービスを提供する。
【００１８】
コンピュータ支援電話サーバ１０６は、着呼を処理したり発呼を確立するために音声アプリケーション１１０が用いることができる多数のハードウェア及びソフトウェアリソースを有する。ハードウェアリソースは、Ａ−ｌａｗあるいはμ−ｌａｗコンパンダ(compander)ＤＳＰ１１８及び関連するソフトウェアドライバ１２０と、ＤＴＭＦ検出器ＤＳＰ１２２及び関連するドライバ１２４と、ファクシミリカードＤＳＰ１２６及び関連するドライバ１２８を備える。テキストから発話への変換及び自動音声認識ＤＳＰと関連するソフトウェアドライバもまた提供することができる（図示せず）。
【００１９】
ＴＤＭバス１３０は、タイムスロットに基づいて動作し、ハードウェアリソースと音声アプリケーションとの間のデータの交換を支援するために設けられる。ハードウェアＤＳＰはそれぞれ、割り当てられたタイムスロットを用いてデータを受信しまた出力することができる。
【００２０】
着呼は、当分野において知られているように、データ終端装置１０２から、Ｅ１／Ｔ１電話カード１０８を介して受信される。電話カードは音声アプリケーション１１０に割込みを送り、音声アプリケーション１１０は、その割込みの受信に応答して、オペレーティングシステム１１２を介して、Ｅ１／Ｔ１電話カード１０８の着信データを受信するためにハードウェア電話カードＤＳＰ１１６を制御する電話カードＤＳＰドライバ１１４を呼び出す。
【００２１】
ネットワーク１０４から生の電話データを受信すると、Ａ−ｌａｗあるいはμ−ｌａｗコンパンダＤＳＰ１１８及びドライバ１２０は、Ｅ１／Ｔ１電話カード１０８及び電話カードＤＳＰ１１６ならびに関連するドライバ１１４から受信された任意の電話データを伸長する。Ａ−ｌａｗあるいはμ−ｌａｗＤＳＰ１１８及びドライバ１２０は、時分割多重バス１３０を介して音声アプリケーションあるいは別のＤＳＰによってさらに処理するために、任意のデータ処理結果を出力する。一旦、データが圧縮解除されると、そのデータはさらに処理するために適した形になっている。
【００２２】
かくして、当分野においてよく知られているように、音声アプリケーション１１０は、所望の電話機能を実現するために他のリソースを利用できるようになる。音声プリケーションがＤＴＭＦ検出器ＤＳＰ１２２及びドライバ１２４を用いて、ＤＴＥ１０２のユーザ（図示せず）からの入力を受信することができる。音声アプリケーション１１０がファックスオンデマンド機能の形態を提供する必要がある場合には、ファクシミリカードＤＳＰ１２６及びドライバ１２８が用いられる。
【００２３】
図２を参照すると、本発明の一実施形態によるコンピュータ支援電話システム２００が示される。再び、ネットワーク１０４を介してコンピュータ支援電話サーバ２０２に接続されるデータ端末装置１０２が設けられる。コンピュータ支援電話サーバ２０２は、Ｅ１／Ｔ１電話トランクカード２０４と、オペレーティングシステム２０８上で動作する音声アプリケーション２０６を備える。
【００２４】
しかしながら、コンピュータ支援電話サーバ２０２は、既知のシステムとは異なり、ハードウェアＴＤＭバスを持っていない。その代わりに、ＴＤＭバスをエミュレートして、ソフトウェアＴＤＭバス２１０を提供する。ソフトウェアＴＤＭバス及びその動作を以下にさらに詳細に記述する。
【００２５】
好ましくは、たとえば電話カードＤＳＰ２１２、Ａ−ｌａｗあるいはμ−ｌａｗコンパンダＤＳＰ２１４、ＤＴＭＦ検出器ＤＳＰ２１６及びファクシミリカードＤＳＰ２１８などの多数のデジタルシグナルプロセッサに、ソフトウェアＴＤＭバス２１０を用いてアクセス可能であるべきである。音声認識あるいは合成機能を実行する他のＤＳＰをさらに設けることができることがわかるであろう。各ＤＳＰは、ハードウェアリソース、あるいはハードウェアＤＳＰをエミュレートするソフトウェアデータ処理リソースのいずれでもよい。好ましい実施形態では、ソフトウェアＴＤＭバス２１０は、ハードウェアリソースをエミュレートするソフトウェアリソースにアクセスできるようにする。
【００２６】
本発明の実施形態は、特定の種類のハードウェアを持っていないサーバを用いてコンピュータ支援電話システムを実装するという具体的な応用を見いだす。欠けている特定の種類のハードウェアは、具体的にはＳＯＮＥＴのようなハードウェアＴＤＭバスあるいはハードウェアＤＳＰリソースなどであってもよい。
【００２７】
ＴＤＭバスエミュレータ２２４は、従来のＴＤＭバスの動作をエミュレートするために設けられる。すなわち、ＴＤＭバスエミュレータ２２４はソフトウェアＴＤＭバス２１０を実現する。ＴＤＭバスエミュレータ２２４は、音声アプリケーション２０６によるデータ処理ＤＳＰ２１２〜２１８へのアクセスをサポートする。
【００２８】
この例における音声アプリケーション２０６とＯＳ２０８との間のインターフェースは、既知のサーバの音声アプリケーションとオペレーティングシステムとの間のインターフェースと概ね同じである。この程度の相互運用性を保持することにより、現在の音声アプリケーションとの互換性が確保されることが理解できる。基本的には、音声アプリケーションは、電話機能同士がＳＯＮＥＴ  ＴＤＭバスを用いて相互作用するのかそれともソフトウェアＴＤＭバス及びソフトウエアＤＳＰを用いて相互作用するのかには関わらず、それらの電話機能をためのサポートを得るための一貫性のあるアプリケーションインターフェースを用いて提供されるであろう。
【００２９】
ＴＤＭバスエミュレータ２２４は、データ処理リソースにアクセスしたいという要求を受信し、これらの要求を処理して、音声アプリケーション２０６がその意図された機能を実行することができるようにする。ＴＤＭバスエミュレータ２２４は、データ処理ＤＳＰ２１２〜２１８がそれぞれ相互作用しまた音声アプリケーション２０６によってアクセスされることができるようにして、その意図された機能を実行できるようにするための高度なデータ構造を構築する。そのデータ構造は、ソフトウェアＤＳＰリソースの処理の順序を制御するために用いられる。
【００３０】
図３を参照すると、音声アプリケーション２０６を支援する際にＴＤＭバスエミュレータ２２４によって用いられる高度なデータ構造３００の一実施形態が示される。データ構造３００は、各ＤＳＰについての識別子を第１のフィールド３０４に格納し、各ＤＳＰについての関数エントリポイントを第２のフィールド３０６に格納するＤＳＰ及び関数エントリポイントテーブル３０２を備える。関数エントリポイントは、データ処理ＤＳＰ２１２〜２１８のうちの１つを呼び出すために用いられる関数のフォーマットを識別または定義する。
【００３１】
メモリ２２０内に格納されるタイムスロットテーブル３０８は、第１のテーブル３０２中で識別される各ＤＳＰにタイムスロットを割り当てるためにＴＤＭバスエミュレータ２２４によって用いられる。必要とされる電話処理機能を実現する際に、ＴＤＭバスエミュレータ２２４は、第２のテーブル３０８中で確立されている順序に従って、中央演算処理装置２２３あるいはハードウェアリソースにアクセスできるようにする。サーバ２０２の中央演算処理装置あるいは他のハードウェアリソースを用いて、ソフトウェアＤＳＰ、アプリケーション、オペレーティングシステム及びＴＤＭバスエミュレータに対応するコードを実行する。
【００３２】
タイムスロットテーブル３０８は３つの列、すなわちタイムスロット番号列３１０と、アルゴリズムまたはＤＳＰ列３１２と、要求記述子列３１４とを備える。
【００３３】
タイムスロット番号列３１０はソフトウェアＴＤＭバスタイムスロットのリストを含む。現在使用中のタイムスロットの関連するデータは残りの列内に含まれる。この例では、概念的に、データ処理リソース２１２〜２１８によって用いるためにタイムスロット０〜４０９５が利用可能である。
【００３４】
アルゴリズムまたはＤＳＰ番号列３１２はＤＳＰ識別子、すなわち第１のテーブル３０２のＤＳＰ番号列３０４から得られるＤＳＰ番号を含む。そのＤＳＰ番号は対応するタイムスロット内で動作可能なＤＳＰを特定する。たとえば、識別子１と関数エントリポイントＦＥ１（．．．）を有する第２のＤＳＰは、番号０を有するタイムスロット内で動作することを許可されることがわかる。
【００３５】
要求記述子列３１４は、現在のタイムスロットの指示と、現在のＤＳＰがメモリ２２０内で処理されるべきデータにアクセスすることができるデータバッファの開始アドレスと、データバッファの長さの指示を含む。この図示されている例では、現在のタイムスロットポインタはタイムスロット番号０を指示している。関数エントリポイントＦＥ１（．．．）を有するＤＳＰ番号１はタイムスロット０内で動作することができる。ＤＳＰ１は、メモリ内のアドレスＸＸＸＸｈ〜（ＸＸＸＸ＋１１）ｈに格納されているデータを処理する。ＤＳＰ１によって実行されるデータ処理の結果は、アドレスＹＹＹＹｈで開まるバッファに格納される。それに続くタイムスロット内で動作することができるＤＳＰはＤＳＰ番号２である。ＴＤＭバスエミュレータが割込みを受信したことに応答して現在のタイムスロットポインタがインクリメントされたとき、ＤＳＰ２は以前のＤＳＰすなわちＤＳＰ１によってバッファ内のアドレスＹＹＹＹｈ〜（ＹＹＹＹ＋１２）ｈに置かれた出力データを処理するように構成される。
【００３６】
上記の説明から、ＤＳＰのチェーンが確立されること、またチェーン中でＤＳＰによって処理されるデータはチェーンに沿って受け渡されることを理解することができる。基本的には、その処理は、そのタイムスロットテーブル内のＤＳＰ識別子の位置によって制御される順に実行される。
【００３７】
ＴＤＭバスエミュレータ２２４は、割込みを受信する度に現在のタイムスロットポインタをインクリメントする。このようにして、ＴＤＭバスエミュレータは占有された各タイムスロットを辿り、処理時間またはリソースを順に各ソフトウェアＤＳＰに割り当てる。好ましい実施形態では、割込みはＥ１／Ｔ１電話カードによって８ミリ秒毎に発生する。
【００３８】
ハードウェアＤＳＰリソースが存在する場合にはデータをハードウェアリソースに送るためにコンピュータ支援電話サーバ２０２の従来の内部バスが用いられることは当業者には理解されるだろう。さらに、ソフトウェアＤＳＰが実装されるかあるいはソフトウェアＴＤＭバスが実装される場合には、通常のアドレス及びデータバスのような従来のコンピューティングリソース、中央演算処理装置及びオンボードメモリがマルチタスクあるいはマルチスレッド処理の態様で利用できるようにされ、これによりソフトウェアＤＳＰが実行できまたもっと多くの電話機能がＤＳＰハードウェアリソースをさらにインストールするオーバーヘッドあるいは不都合をもたらすことなく提供できるようになることが理解されるだろう。個々のソフトウェアＤＳＰはインスタンスとして生成され、関連するデータはサーバのスレッドあるいはマルチタスク処理能力を用いて処理される。
【００３９】
各ＤＳＰ２１２〜２１８は、別のＤＳＰからデータが受信できるタイムスロット、及びデータが別のＤＳＰに出力するかあるいはアプリケーション２０６に返送することができるタイムスロットを識別するデータ構造を含む。またそのデータ構造は、好ましくは、処理結果をアプリケーションに返送するために用いられるファイル記述子を入れるためのファイル記述子列も含む。ＤＳＰ１  ３２８がそのデータ構造内に、入力タイムスロットＴＳIN及び出力タイムスロットＴＳOUTを有することが図３からわかる。変数ＴＳIN及びＴＳOUTは、ＤＳＰによって用いられるための０〜４０９５のタイムスロット番号を表す、すなわちそれらを含む。またそのデータ構造はファイル記述子列３３２に空エントリ（ＮＵＬＬ）も含み、この空エントリは、処理結果をアプリケーションに返送するために用いることができるファイル記述子が存在しないことを示す。同様に、図のＤＳＰ２に対応するデータ構造３３４は、タイムスロットＩＮ及びＯＵＴ列内に値１及び６を含み、ＤＳＰ２がタイムスロット１においてデータを受信し、タイムスロット６においてデータ処理結果を出力することを示す。ＤＳＰ２についてのファイル記述子エントリはファイル記述子ＦＤ2を含み、このファイル記述子は、ＤＳＰ２によって生成されたデータをタイムスロット６の間にアプリケーション２０６に返送するために用いられる。
【００４０】
初期化時に、ＴＤＭバスエミュレータ２２４は、もしあるならハードウエアリソースをポーリングして、その存在を判定しまたサーバの処理能力を判定する。任意の見出されたソフトウェアデータ処理リソースがロードされる。ＴＤＭバスエミュレータ２２４は、識別された各処理リソースに対応するＤＳＰ番号を割り当てる。各ＤＳＰについての関数エントリポイントは、第１のテーブル３０２内の割り当てられたＤＳＰ番号の隣に格納される。ＴＤＭバスエミュレータ２２４は、各ＤＳＰリソースの実行の適当な順序を予め決定し、それに応じてタイムスロットを割り当てることができる。こうする代りに、タイムスロットは、音声アプリケーション２０６によって発行されるＤＳＰ処理リソースの呼出しに応答して動的に割り当てることができる。実際には、新しいＤＳＰ呼出し毎に、ＴＤＭバスエミュレータはこのＤＳＰによって用いられるためデータ構造内に適当な入力及び出力タイムスロットを割り当てる。タイムスロットポインタが適当にインクリメントされたとき、新たに割り当てられたタイムスロットが新たに呼び出されたＤＳＰによって用いられるために利用できようにされる。
【００４１】
ハードウェアＤＳＰ及びソフトウェアＤＳＰの組み合わせを用いる実施形態は、ソフトウェアＤＳＰの関数エントリポイントが格納される代りにハードウェアＤＳＰに関連するソフトウェアドライバへの呼出しが格納されるので、本発明がそのまま適用できる。
【００４２】
初期化時あるいは着呼の受信時に、現在のタイムスロットポインタは、その着呼を処理するために必要とされる第１のＤＳＰを含む第１のタイムスロットに設定される。この例では、第１のＤＳＰは電話カードＤＳＰ２１２である。
【００４３】
ＤＳＰによるデータの処理は、処理結果がアプリケーションに返送されるまで実行される。１つのＤＳＰ内に含まれるデータ構造のＦＤ（ファイル記述子）列内のファイル記述子は、ＤＳＰの先行するシーケンスあるいはＤＳＰのチェーンリストによる処理が完了し処理結果がそのファイル記述子を用いて返送されることを指示するために用いられる。
【００４４】
コンピュータ支援電話サーバ２０２において、複数の電話アプリケーションが開始あるいは実行される場合には、これらのアプリケーションは共通のＴＤＭバスエミュレータを共有し、それに応じて処理リソースを分割させることができる。各アプリケーションのＤＳＰリソースは、タイムスロットテーブル３０８内でタイムスロットを動的に割り当てられる。さらに、コンピュータ支援電話サーバ２０２は一般に、多数の着呼及び発呼を同時に支援できる。各呼は回線と呼ぶことができる。各回線によって必要とされる処理リソースは、タイムスロットマップあるいはテーブル３０８中で識別され、その中に含まれる。
【００４５】
本発明によれば、通常ＳＯＮＥＴバスを必要とする電話アプリケーションが、そのようなバスが存在しない場合でもサポートされるようになる点で有利である。これは、その根底をなすすなわちサポートするＴＤＭ技術がハードウェアで実現されるか、ソフトウェアで実現されるか、その組み合わせで実現されるかに関係なく、音声アプリケーションを設計あるいは書くことができるというさらなる大きな利点を有する。
【００４６】
本特許出願に関連する、本明細書と同時にあるいは本明細書より以前に提出された論文及び出願された書類の全てに対して読者の注意を喚起する。全てのそのような論文及び書類の内容は参照によって本明細書に組み込まれる。
【００４７】
本明細書（任意の添付の特許請求の範囲、要約及び図面を含めて）に開示される全ての特徴及び／またはそのように開示された任意の方法あるいは処理の全てのステップが、そのような特徴及び／またはステップの少なくともいくつかが互いに矛盾する組み合わせを除いて任意に組み合わせることができる。
【００４８】
本明細書（任意の添付の特許請求の範囲、要約及び図面を含めて）に開示される各特徴は、別様に明記されていない限り、同一の、等価なあるいは類似の目的を提供する別の機構によって置き換えることができる。それゆえ、別様に明記されていない限り、開示される各特徴は一連の一般的な等価あるいは類似の特徴のうちの一例にすぎない。
【００４９】
本発明は上記の任意の実施形態の細部に限定されない。本発明は、本明細書（任意の添付の特許請求の範囲、要約及び図面を含めて）に開示された特徴の任意の新規なものまたは任意の新規な組み合わせに、あるいは開示された任意の方法あるいは処理のステップの任意の新規なものまたは任意の新規な組み合わせに及ぶ。
【図面の簡単な説明】
【図１】従来の技術による従来のコンピュータ支援電話システムを示す図である。
【図２】本発明の一実施形態によるコンピュータ支援電話システムを示す図である。
【図３】本発明の一実施形態において用いられる多数のデータ構造を示す図である。
【図１】
0004498670.tif 000002
【図２】
0004498670.tif 000003
【図３】
0004498670.tif 000004