やさしく解説するマイクロソフトの最新技術(第5回)

マイクロソフト株式会社 ソリューションデベロッパー事業部
デベロッパー製品部 テクニカル・エバンジェリスト
熊谷 恒治
kojik@microsoft.com




 長い梅雨もおわりそろそろみなさんも夏休みをとられているころでしょうか。私もTech・ED98が終わりやっと夏休みのことを考える余裕が出てきました。
 さて、今回はWindows NT5.0にてバージョンアップされるAPIであるTAPIを解説したいと思います。現在TAPIは2.0および2.1ですが今回のバージョンアップでTAPI3.0に変わります。現在のパージョンでの最大の売りはクライアント/サーバー方式のテレフォニーサービスを構築できる事でした。これはTAPI2.0のTAPI-Proxyを使いクライアント側には機器(電話等)が接続されていなくてもサーバーに接続された機器を操作できると言う機能です。
 3.0では当然それらの機能もサポートしますが、一番大きな変更点はCOMベースのAPIになったこととネットワークにおけるストリーミングメディアのサポートです。例えばビデオカンファレンスやIPテレフォニー等のサポートがそれにあたります。COMベースのAPIは今までのTAPIで提供してきたコールコントロールと新たに追加されたストリーミングコントロール及びActive Directoryの利用を行うDirectoryコントロールが提供されています。

図1

 全体のイメージは図1の通りで、当然のことながら既存のTAPIアプリケーションも利用できます。開発者から見ると既存のテレフォニーサービスにIPテレフォニーの機能が追加されたイメージです。
 さてそれでは早速TAPI3.0をもう少し詳しく見てみることにしましょう。

●コンポーネント

 TAPI3.0の中核をなしているコンポーネントはCOM API、TAPI Server、Telephony Service Provider(TSP)、Media Stream Providerの4つです。
 COM APIはそのままCOMのAPIで、これを採用することによりVCは元よりVB、ASP等さまざまな言語及び環境で利用することが可能になりました。例えばASPのスクリプトからこのAPIを操作することによりWebベースのCTIアプリケーション等も作成することが可能になります。
 TSPはTAPIをサポートするさまざまなプロトコルで使用されるコールコントロールが実装されているものです。これにはモデムを対象としたUNIMODEM、IPテレフォニーをサポートするIP Multicast、H323そして交換機等をサポートするサードベンダー製サービスプロバイダーが存在します。TAPI3.0ではTAPI2.0で使用されているTSPも利用することが可能です。
 TAPI Serverは先に説明したTSPのインターフェイスを抽象化するものでこのモジュールによりアプリケーションからは単一のインターフェイスで複数のTSPを操作することができます。TAPI Serverの操作はリモートクライアントからクライアント-サーバー方式で利用することが可能で、この機能自身はTAPI2.0で実現されています。

●TAPIのモデル

 TAPIは大きく分けてコールコントロールモデル及びメディアストリーミングモデルの二つに分けることができます。それぞれ呼の操作とデータストリームの操作を行うものです。

 (1) コールコントロールモデル  
図2

 コールコントロールは図2のようなTAPI、Address、Terminal、Call及びCallHubオブジェクトによって構成されています。
 TAPIオブジェクトはアプリケーションのエントリポイントとなるオブジェクトでローカル及びリモートに存在するアドレスを列挙し、それらのリソースを代表するものです。
 TAPIオブジェクトの下にはアドレスオブジェクトが存在します。このアドレスオブジェクトにより到達点(コール先)の情報が取得されます。アプリケーションはこのアドレスオブジェクトからの要求を待機する(外部からのコールを待ち受ける)もしくはアドレスオブジェクトからコールオブジェクトを生成する(相手先のコール)形になります。
 ターミナルオブジェクトはユーザーとTAPIのインターフェイスにマップされます。例えば電話やマイクなどがそれにあたります。それ以外にもファイルや他のデバイスに等インプットを引き起こすものはすべてターミナルオブジェクトにマップされます。
 コールオブジェクトは相互に接続される二つ以上のアドレスオブジェクトの関係を示すものです。すべてのコールコントロールはこのコールオブジェクトを通して行われます。
 コールハブオブジェクトはアプリケーションによって直接コールすることができない間接的なコールをサポートするためのオブジェクトです。例えば既に通信を行っているコールセットに対して後から間接的に通信するために利用されます。これらのイメージは図3のようになります。

図3

 このような形でアプリケーションは最初にTAPIオブジェクトの生成、アドレスリストの列挙選択を行い、特定のアドレスオブジェクト生成そしてこのアドレスに対応するコールオブジェクトを生成してコールを行うことになります。

(2) メディアストリーミングモデル

 先に説明したようにTAPI3.0ではストリーミングメディアをサポートするようになりました。この機能により既存の電話回線メディアやIPネットワークを通したメディアアクセスをまったく同一の環境として利用することはできます。
 特にIPネットワークを利用したデータストリーミングのサポートではマルチキャスト及び帯域管理機能を提供することによりVoice over IPのインフラを提供しています。これらの利用もやはりいくつかのCOMオブジェクトを利用して実現しています。

●Active Directoryのサポート

 TAPI3.0ではActive Directoryのサポートが行われています。これはビデオカンファレンス等やIPテレフォニーでのロケーターサーバーとして利用されるものです。ユーザー名やカンファレンスグループなどのロケーションを取得する際、ディレクトリから情報を参照します。当然通常の電話でのコール管理もディレクトリを使い、電話番号を取得後コールするといったことが可能になります。

●TAPI3.0の利用

 IP-PSTN Gateway:IP-PSTN Gatewayは一般回線経由のデータストリームをIPへ変換するいわばIPテレフォニーサーバーです。(図4参照)

図4

 LAN上にあるデバイス(例えばPCにマイクとスキーピーカーをつけたもの)と一般の電話機間での会話を実現します。
 コールセンター:TAPI2.0にて既にクライアント-サーバーアプリケーションを実現し、クライアントのデスクトップ環境と交換機の連携によるコールセンターアプリケーションは実現できますが、さらにIPネットワークを利用して電話の転送及びディレクトリサービスによるコール担当者の管理そしてカンファレンシングのサポートとさらに機能が強化されました。


 このようにTAPIはNT5.0とともに出荷されるTAPI3.0でさらなる進化を遂げることになります。今後のIPテレフォニー及びCTIへの期待が高まる中、そのインフラとなるTAPIが提供されることによりさらにテレフォニーシステムの開発が進んでいくことを期待しています。
 なおTAPI3.0は今後提供されるNT5.0βバージョンで提供される予定です。興味をもたれた方はまず5.0のβを入手し、ぜひともこの新しい機能をおためしいただければと思います。

Contents         Windows Consortium ホームページ