(57)【要約】  ユーザがウェブページ（または他のインタフェース）上の電話番号（または音声通信のターゲットを示す他の指示）の上でホバーすると、電話番号は強調表示され、強調表示された番号を使用して電話をかける機会がユーザに提供される。ユーザが強調表示された電話番号をクリックした場合、電話番号は、電話をかけるのを容易にするために通信アプリケーションに提供される。ユーザが強調表示された電話番号をクリックせずに離れた場合、強調表示は消える。代替実施形態では、ユーザは、ウェブページ（または他のインタフェース）中のテキストを選択することができ、選択したテキスト中に電話番号がある場合、この電話番号は自動的に、電話をかけるのを容易にするために通信アプリケーションに提供されるものとすることができる。別の実施形態では、システムは、コンテンツ中で電話番号を見つけて、これらの電話番号を、本明細書に述べる挙動を可能にするためのハイパーリンクで置き換える。
2009535978.tif 000002
【特許請求の範囲】
【請求項１】
通信を開始する方法であって、
ユーザがコンテンツの上または付近でホバーするのに応答して、前記コンテンツがターゲットの指示であるかどうか判定すること（４０６、５０６、６０６、７０６）、
前記判定することに応答して、前記ターゲットの前記指示を識別すること（４１０、５１０、６１０、７１０）、
前記ターゲットの前記指示の選択を受け取ること（４１４、５１４、６１４、７１４）、および、
前記ターゲットの前記指示の前記選択を受け取ることに応答して、前記ターゲットの前記指示を使用して音声接続を確立すること（４１８、５２０、６２０、７２０）を含むことを特徴とする方法。
【請求項２】
前記ターゲットの前記指示は電話番号であり、
前記識別することは前記電話番号を強調表示すること（４１０、５１０、６１０、７１０）を含み、
前記選択を受け取ることは、ユーザがポインティングデバイスを使用してブラウザ中で前記強調表示された電話番号をクリックすること（４１４、５１４、６１４、７１４）を含み、
前記音声接続を確立することは、前記電話番号をＶＯＩＰアプリケーションに提供すること（４１６、５１８、６１８、７１８）および前記ＶＯＩＰアプリケーションを使用して前記電話番号に電話をかけることを含み、
前記判定することおよび前記識別することは、前記コンテンツのコードを修正することなく実施されることを特徴とする請求項１に記載の方法。
【請求項３】
前記コンテンツがターゲットの指示であるかどうか判定することは、
テキストを受け取ること、および、
前記テキストが正しくフォーマットされた電話番号を含むかどうか自動的に判定すること（４０６、５０６、６０６、７０６）を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記コンテンツがターゲットの指示であるかどうか判定することは、
テキストを受け取ること、
国コードを決定すること（４５２）
前記決定された国コードに対応するデータベースを識別すること（４５４）、および、
前記データベースを使用して、前記テキストが正しくフォーマットされた電話番号を含むかどうか判定すること（４５８、４６０、４６２、４６６、４６８）を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記コンテンツがターゲットの指示であるかどうか判定することは、
データを受け取ること、
前記データを正規化すること（４５８）、
前記正規化されたデータを、１つまたは複数の生パターンにそれぞれ関連する１組の正規化済みパターンのうちの特定の正規化済みパターンと合致させること（４６０）、
前記受け取られたデータを、前記特定の正規化済みパターンに関連する生パターンと比較すること（４６６）、および、
前記受け取られたデータを、前記特定の正規化済みパターンに関連する前記生パターンのうちの１つと合致させること（４６６）を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記コンテンツがターゲットの指示であるかどうか判定することは、ブラウザに対してホバーされているデータを受け取ること、国コードを決定すること、前記データおよび前記国コードを電話番号認識関数に提供すること、前記ブラウザ中で前記データを強調表示するよう前記ブラウザに命令すること、ならびに、ユーザが前記強調表示されたデータをクリックできることを示すためのツールチップを提供することを含み、
前記音声接続を自動的に確立することは、ＶＯＩＰ電話をかけるよう通信アプリケーションに命令することを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ターゲットの前記指示は、ソースコードを編集することなくブラウザ中のウェブページ上で識別されることを特徴とする請求項１に記載の方法。
【請求項８】
前記コンテンツがターゲットの指示であるかどうか判定することは、
アプリケーションからテキストを受け取ること、
オペレーティングシステムに国コードを要求すること（４５０）
前記決定された国コードに対応するデータベースを識別すること（４５４）、
前記データベースを使用して、前記テキストが正しくフォーマットされた電話番号を含むかどうか判定すること（４５８、４６０、４６２、４６６、４６８）、および、
前記ユーザのホバーに関連する現在位置を決定することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ターゲットの前記指示は、ブラウザでないアプリケーションのインタフェース内で識別されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記コンテンツがターゲットの指示であるかどうか判定することは、
データを受け取ること、
国コードを決定すること（４５０）、
前記決定された国コードに対応するデータベースを識別すること（４５４）、
前記データを正規化すること（４５８）、
前記正規化されたデータを、１つまたは複数の生パターンにそれぞれ関連する１組の正規化済みパターンのうちの特定の正規化済みパターンと合致させること（４６０）、
前記受け取られたデータを、前記特定の正規化済みパターンに関連する生パターンと比較すること（４６６）、および、
前記受け取られたデータを、前記特定の正規化済みパターンに関連する前記生パターンのうちの１つと合致させること（４６６）を含み、
前記音声接続を自動的に確立することは、前記特定の正規化済みパターンに関連する前記生パターンのうちの前記１つを使用して電話をかけるようＶＯＩＰ通信アプリケーションに命令することを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
方法を実施するように１つまたは複数のプロセッサをプログラムするためのコードが組み入れられた１つまたは複数のプロセッサ可読記憶デバイスであって、前記方法は、
コンテンツがターゲットの指示であるかどうか判定すること（４０６、５０６、６０６、７０６、８５２、１００８）であって、前記コンテンツを正規化すること（４５８）、前記正規化されたコンテンツを正規化済みパターンと合致させること（４６０）、および前記コンテンツを前記正規化済みパターンに関連する生パターンと合致させること（４６６）を含むこと、
ユーザが前記コンテンツの上または付近でホバーするのに応答して、表示されたコンテンツ内で前記ターゲットの前記指示を視覚的に識別すること（４１０、５１０、６１０、７１０、１１０４）、
前記ターゲットの前記指示の選択を受け取ること（４１４、５１４、６１４、７１４、１１０６）、および、
前記ターゲットの前記指示の前記選択を受け取ることに応答して、前記ターゲットの前記指示を使用して音声接続を確立すること（４１８、５２０、６２０、７２０、１１０８）を含むことを特徴とする１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１２】
前記コンテンツがターゲットの指示であるかどうか判定することは、
国コードが利用可能かどうか判定すること（４５０）、および、
前記国コードに対応するデータベースを識別すること（４５４）をさらに含み、前記正規化済みパターンおよび前記生パターンは、前記国コードに対応する前記データベースからのものであることを特徴とする請求項１１に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１３】
前記ターゲットの前記指示は電話番号であり、
前記コンテンツはウェブサイトの一部を含み、
前記音声接続を確立することはＶＯＩＰアプリケーションを使用して実施され、
前記判定することはＢＨＯを利用して少なくとも部分的に実施されることを特徴とする請求項１１に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１４】
前記ターゲットの前記指示は電話番号であり、
前記方法はハイパーリンクを前記コンテンツに追加することをさらに含み、
前記ハイパーリンクは前記ターゲットの前記指示のソースの指示を含み、
前記音声接続を確立することは、前記ソースの前記指示をデータストアに記憶することを含むことを特徴とする請求項１１に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１５】
前記判定することは、前記ユーザが前記コンテンツの上または付近でホバーした後で実施されることを特徴とする請求項１１に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１６】
コード（１３４、１３５、１３６、１４４、１４５、１４６、１８５）を記憶する記憶デバイス（１３０、１４１、１５２、１５６、１８１）と、
通信インタフェース（１７０、１７２）と、
前記記憶デバイスおよび前記通信インタフェースと通信する１つまたは複数のプロセッサ（１２０）とを備えるコンピューティングデバイスであって、前記コードは、ユーザインタフェース中にコンテンツを表示して（４００、５００、７００、１０１４）前記コンテンツのサブセットの選択を受け取る（４０２、４１４、５０２、５１４、６０２、６１４、７０２、７１４、１１０２、１１０６）ように前記１つまたは複数のプロセッサをプログラムするための命令を含み、前記１つまたは複数のプロセッサは、前記コンテンツの前記サブセットがターゲットの指示を含むかどうか判定し、前記１つまたは複数のプロセッサは、前記ターゲットの前記指示および前記通信インタフェースを使用して、データネットワークを介した音声接続の確立を引き起こすことを特徴とするコンピューティングデバイス。
【請求項１７】
前記ユーザインタフェースはブラウザ（３０）によって提供されることを特徴とする請求項１６に記載のコンピューティングデバイス。
【請求項１８】
前記コードは、前記コンテンツの前記サブセットを正規化すること（４５８）、前記コンテンツの前記正規化されたサブセットを、１つまたは複数の生パターンにそれぞれ関連する１組の正規化済みパターンのうちの特定の正規化済みパターンと合致させること（４６０）、前記コンテンツの前記サブセットを、前記特定の正規化済みパターンに関連する生パターンと比較すること、および、前記コンテンツの前記サブセットを、前記特定の正規化済みパターンに関連する前記生パターンのうちの１つと合致させること（４６６）によって、コンテンツの前記サブセットが前記ターゲットの前記識別を含むかどうか判定するように、前記１つまたは複数のプロセッサをプログラムすることを特徴とする請求項１６に記載のコンピューティングデバイス。
【請求項１９】
前記１つまたは複数のプロセッサ（１２０）は、前記特定の正規化済みパターンに関連する前記生パターンのうちの前記１つを用いてＶＯＩＰ通信プログラム（４０）を実行することによって音声接続の確立を引き起こすことを特徴とする請求項１８に記載のコンピューティングデバイス。
【請求項２０】
前記記憶デバイスはＶＯＩＰ通信プログラム（４０）およびユーザアプリケーション（６４）を記憶し、
前記１つまたは複数のプロセッサは、前記ＶＯＩＰ通信プログラムを実行することによって前記音声接続の前記確立を引き起こし、
前記ユーザインタフェースは前記ユーザアプリケーションによって提供されることを特徴とする請求項１６に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電話呼を自動化することにより、通信システムの使用を容易にすることに関する。
【背景技術】
【０００２】
ボイスオーバーインターネットプロトコル（ＶＯＩＰ）は、ユーザが従来の電話回線の代わりに広帯域インターネット接続を使用して電話をかけることを可能にする技術である。ＶＯＩＰを使用するいくつかのサービスでは、ユーザは、ＶＯＩＰをやはり使用している他の人々にしか電話をかけることができない場合がある。しかし、多くのサービスではまた、ユーザは、市内、長距離、携帯、および国際の番号を含めて、電話番号を有する人なら誰にでも電話をかけることができる。いくつかのサービスは、コンピュータまたは特別なＶＯＩＰ電話機を介してしか機能しないが、他のサービスでは、アダプタを介して従来の電話機の使用が可能である。
【０００３】
ＶＯＩＰの使用を促進するために、技術プロバイダは、ＶＯＩＰを、使用するのにより便利で効率的なものにする方法を探し求めてきた。例えば、ＶＯＩＰアプリケーションのいくつかのプロバイダは、ウェブページ中に見られる電話番号を強調表示し、電話呼（ｔｅｌｅｐｈｏｎｅ  ｃａｌｌ）を開始するためのハイパーリンクを関連付けることによって、インターネット上のコンテンツ中の潜在的な電話番号を識別する技術を開発した。
【０００４】
しかし、電話番号を強調表示する前述の技術には、ユーザ体験に関するいくつかの問題があった。例えば、強調表示が邪魔になってウェブページが読みにくくなることがあった。加えて、強調表示の使用により、ウェブページのレンダリング時間が増加した。というのは、強調表示を実施するソフトウェアは、全ての電話番号を見つけて認識し、これらの電話番号にハイパーリンクを関連付け、電話番号を強調表示するために、ページ全体を解析する必要があるからである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本明細書に述べる技術は、ユーザがユーザインタフェースのコンテンツ内にある電話番号の上でホバー（ｈｏｖｅｒ）するかまたはこの電話番号を選択するのに応答して電話呼を自動化することにより、通信システムの使用を容易にする。
【課題を解決するための手段】
【０００６】
ユーザがウェブページ（または他のインタフェース）上の電話番号（または音声通信のターゲットを示す他の指示）の上でホバーすると、電話番号は強調表示され、強調表示された番号を使用して電話をかける機会がユーザに提供される。ユーザが強調表示された電話番号をクリック（または他の方法で選択）すると、電話番号は、この番号を使用して電話をかけることのできるＶＯＩＰアプリケーション（または他の通信アプリケーション）に提供される。ユーザが強調表示された電話番号をクリックせずに離れた場合は、強調表示は消える。代替実施形態では、ユーザは、ウェブページ（または他のインタフェース）中のテキストを選択することができ、選択したテキスト中に電話番号がある場合、この電話番号は自動的に、電話をかけるのを容易にするためにＶＯＩＰアプリケーションに提供されるものとすることができる。別の実施形態では、システムは、コンテンツ中で電話番号を見つけて、これらの電話番号を、本明細書に述べる挙動を可能にするためのハイパーリンクで置き換える。
【０００７】
一実施形態は、ユーザがコンテンツの上または付近でホバーするのに応答して、コンテンツがターゲットの指示であるかどうか判定すること、判定に応答してターゲットの指示を識別すること、ターゲットの指示の選択を受け取ること、および、ターゲットの指示の選択を受け取るのに応答して、ターゲットの指示を使用して音声接続を確立することを含む。別の実施形態は、コンテンツがターゲットの指示であるかどうか判定することを含み、これは、コンテンツを正規化すること、正規化されたコンテンツを正規化済みパターンと合致させること、および、コンテンツを、正規化済みパターンに関連する生パターンと合致させることを含む。ターゲットの指示は、ユーザがコンテンツの上または付近でホバーするのに応答して、コンテンツ内で視覚的に識別される。ターゲットの指示の選択を受け取るのに応答して、ターゲットの指示を使用して音声接続が確立される。別の実施形態は、記憶デバイスからのコンテンツをユーザインタフェース中で表示すること、コンテンツのサブセットの選択を受け取ること、コンテンツのサブセットがターゲットの正しい指示を含むかどうか判定すること、ならびに、ターゲットの正しい指示および通信インタフェースを使用して、データネットワークを介した音声接続の確立を引き起こすことを含む。
【０００８】
本明細書に述べる技術は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの両方の組合せを使用して実施することができる。使用されるソフトウェアは、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、光学ディスク、フロッピー（登録商標）ディスク、テープドライブ、ＲＡＭ、ＲＯＭ、フラッシュメモリ、または他の適した記憶デバイスを含めた、１つまたは複数のプロセッサ可読記憶デバイスに記憶される。このソフトウェアを使用して、１つまたは複数のプロセッサを、本明細書に述べる機能を実施するようにプログラムすることができる。代替実施形態では、ソフトウェアのいくらかまたは全てを、カスタム集積回路、ゲートアレイ、ＦＰＧＡ、ＰＬＤ、および専用コンピュータを含めた、専用ハードウェアで置き換えることができる。本明細書に述べる機能を実施することのできる例示的な装置は、記憶デバイスおよび通信インタフェースと通信する、１つまたは複数のプロセッサを含む。
【０００９】
この概要は、以下の詳細な記述でさらに述べる概念の精選を、単純化した形で紹介するために提供する。この概要は、特許請求する主題の鍵となる特徴または本質的な特徴を識別するものとはせず、特許請求する主題の範囲を決定する際の助けとして使用されるものともしない。
【発明を実施するための最良の形態】
【００１０】
本明細書に述べる技術は、ユーザがユーザインタフェースのコンテンツ内にある電話番号の上でホバーすること、および／またはこの電話番号を選択することに応答して、音声接続を自動化することにより、通信システムの使用を容易にする。
【００１１】
ユーザがウェブページ（または他のインタフェース）上の電話番号（または音声通信のターゲットを示す他の指示）の上でホバーすると、電話番号は強調表示され、強調表示された番号を使用して電話をかける機会がユーザに提供される。ユーザが強調表示された電話番号をクリック（または他の方法で選択）すると、電話番号は、この電話番号を使用して電話をかけることのできるＶＯＩＰアプリケーション（または他の通信アプリケーション）に自動的に提供される。ユーザが、強調表示された電話番号をクリックせずに離れた場合、強調表示は消える。
【００１２】
代替実施形態では、ユーザは、ウェブページ（または他のインタフェース）中のテキストを選択することができ、選択したテキスト中に電話番号がある場合、この電話番号は自動的に、電話をかけるのを容易にするためにＶＯＩＰアプリケーションに提供されるものとすることができる。いくつかの実施形態では、システムは、コンテンツ中で電話番号を見つけて、これらの電話番号を、前述の挙動を可能にするためのハイパーリンクで置き換える。
【００１３】
図１は、本明細書に述べるように電話呼の開始を自動化することのできる、ネットワークを介した通信（例えばＶＯＩＰ）を可能にするシステムの一実施形態を示すブロック図である。図１には、クライアントコンピューティングデバイス１０がインターネット１２と通信するのを示す。クライアントコンピューティングデバイス１０は、パーソナルコンピュータ、ノートブックコンピュータ、ハンドヘルドデバイス、携帯電話機などを含めた、任意の適したコンピューティングデバイスとすることができる。クライアントコンピューティングデバイス１０は、インターネット１２を介した通信を可能にするためのソフトウェアおよび／またはハードウェアを備える。例えば、クライアントコンピューティングデバイスは、ネットワークインタフェースを介して通信するＶＯＩＰソフトウェアアプリケーションを備えることができる。
【００１４】
図１にはまた、コンピューティングデバイス１４がインターネット１２（または他の手段）を介してインタフェース１６と通信するのも示す。インタフェース１６もまた、直接通信リンク、インターネット１２、または別の手段を介して、電話網１８と通信する。コンピューティングデバイス１４は、他のコンピューティングデバイスと通信することのできる任意のタイプのコンピューティングデバイスとすることができる。電話網１８は、周知のレガシー電話網および／またはセルラー電話網を含む。インタフェース１６は、レガシー電話網１８とインターネット１２のデータネットワークとの間のインタフェースを提供するハードウェアおよびソフトウェアを備える。例えば、インタフェース１６は、インターネット１２を介してＶＯＩＰ通信を受信して、これらの通信をレガシー電話網１８に転送すること、ならびに、インターネット１２を介して音声通信を電話網１８からＶＯＩＰ通信に転送することを行う、１つまたは複数のコンピュータとすることができる。クライアントコンピューティングデバイス１０のユーザが、ＶＯＩＰ技術を使用して、コンピューティングデバイス１４上の別のユーザに、あるいは電話網１８上の従来型またはワイヤレス電話機のユーザに電話をかけることが企図される。他の実施形態では、電話をかけるユーザは、クライアントコンピューティングデバイス１０ではなく、アダプタ付き電話機を使用していてもよい。
【００１５】
図２は、クライアントコンピューティングデバイス１０上にある様々なコンポーネントを示すブロック図である。一実施形態では、コンピューティングデバイス１０は、ブラウザ３０（例えば、本件特許出願人によるＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒまたは別のブラウザ）、およびソフトフォン（ＳｏｆｔＰｈｏｎｅ）４０を備える。一実施形態では、ソフトフォン４０は、ＶＯＩＰを実施することのできるソフトウェアアプリケーションである。他の実施形態では、ソフトフォン４０は、音声接続、または音声通信を含む他のタイプの接続を確立するのに使用することのできる他の通信プロトコルを実施することになる。ソフトフォン４０は、インスタントメッセージング、電子メール、ファイル共有、および他のサービスを含む通信アプリケーションの一部とすることができる。
【００１６】
ブラウザ３０は、プラグイン３２、ＵＲＬモニカ（ｍｏｎｉｋｅｒ）３４、およびライブコール（ＬｉｖｅＣａｌｌ）ハンドラ３６を備える。プラグイン３２は、ブラウザによってロードされ、ブラウザ中で稼動しているソフトウェアモジュールである。ウェブページがロードされると、ブラウザは、ブラウザプラグインを呼び出して関数（ｆｕｎｃｔｉｏｎ）を実施する。ユーザがテキストストリング上でホバーすると、ブラウザ３０は、ブラウザプラグイン３２を呼び出してテキストストリングを処理する。ＵＲＬモニカ３４は、ブラウザ３０内のユーザインタフェースを実施するコード中のＵＲＬを受け取り、これらのＵＲＬに適したプロトコルハンドラを調べる。ライブコールハンドラ３６は、プロトコルハンドラの一例である。後で論じるように、本明細書に述べる技術のいくつかの実施形態の一態様は、新しいハイパーリンクである。このハイパーリンクをライブコールハイパーリンクと呼ぶ。ライブコールハンドラ３６は、ライブコールハイパーリンクのためのプロトコルハンドラである。ライブコールハイパーリンクに関しては、後でより詳細に論じる。
【００１７】
ソフトフォン４０は認証マネージャ４２を備え、認証マネージャ４２は、ソフトフォン４０の使用前にユーザを認証するソフトウェアモジュールである。いくつかの実施形態では、認証マネージャ４２はまた、ユーザの要求するアクションを実施することがユーザに許可されていることを検証する。図２には、プラグイン３２およびライブコールハンドラ３６と通信する認証マネージャ４２を示す。
【００１８】
ユーザが認証された後、認証マネージャ４２は、パーサ（ｐａｒｓｅｒ）４４または別のモジュールに制御を渡すことになる。パーサ４４は、ＵＲＬを様々な構成要素に解析するソフトウェアモジュールである。パーサ４４は、これらの構成要素を、信号および音声エンジン４６、ビジネスインテリジェンス４８、プレゼンテーションロジック５０、およびハイパーリンクリダイレクタ５２に通信することになる。
【００１９】
信号および音声エンジン４６もまた認証マネージャ４２と通信し、ＶＯＩＰ電話呼を開始および維持するためのエンジンを提供する。信号および音声エンジン４６は、アドレス帳５８と通信する。一実施形態では、アドレス帳５８は、ユーザに関連する様々な人々に関する連絡先情報を記憶する。アドレス帳５８は、個人情報管理アプリケーションの一部、またはソフトフォン４０専用のデータストアとすることができる。
【００２０】
ビジネスインテリジェンス４８は、ソフトフォン４０をビジネスインテリジェンス適用分野に使用することに関する情報を記憶するデータストアである。プレゼンテーションロジック５０は、ソフトフォン４０のためのユーザインタフェースを提供する。ハイパーリンクリダイレクタ５２は、ＵＲＬ中のコマンドまたは情報に基づいてプレゼンテーションロジック５０とブラウザ３０とのいずれかをリダイレクトするのに使用することができる。一実施形態では、ハイパーリンクリダイレクタ５２はブラウザ３０と通信する。
【００２１】
図２は、１つまたは複数の電話番号を含むコンテンツが、ブラウザ３０に表示されたウェブページのコード中で使用され、ユーザが、インターネット１２または他のネットワークを介したＶＯＩＰ電話をかけるためにソフトフォン４０を使用している環境を企図している。別の実施形態では、電話番号は、ブラウザ以外のアプリケーション内で使用されているコンテンツ中にあってもよい。例えば、電話番号は、ワードプロセッシング文書、スプレッドシート、または他の任意のアプリケーション中で使用されるものとすることができる。図３に、ソフトフォン４０とのソフトウェア間モジュール通信がＡＰＩを介するものであり、アプリケーション（ブラウザ、およびブラウザ以外のソフトウェアアプリケーションを含む）からの電話番号を使用して、ソフトフォン４０による通信がトリガされるシステムのブロック図を提供する。図３には、ソフトフォン４０と、ブラウザ３０と、Ｗｉｎｄｏｗｓ（登録商標）シェル６０と、アプリケーション６４と、モニタ６６とを備えるクライアントコンピューティングデバイス１０Ａを示す。ソフトフォン４０およびブラウザ３０は、図２に示したコンポーネントを備える。Ｗｉｎｄｏｗｓ（登録商標）シェル６０は、オペレーティングシステムのためのインタフェースである。一実施形態では、クライアントコンピューティングデバイス１０Ａ上のアプリケーションは、アクセシビリティＡＰＩ（アプリケーションプログラムインタフェース）を利用することができ、アクセシビリティＡＰＩは、アクセシビリティエイド（ａｃｃｅｓｓｉｂｉｌｉｔｙ  ａｉｄ）がＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）上で稼動するアプリケーションと動作する方法を改善する、ＣＯＭベースの技術である。アクセシビリティＡＰＩは、オペレーティングシステムに組み込まれるダイナミックリンクライブラリを提供し、かつ、ユーザインタフェース要素に関する情報を公開するための信頼できる方法を提供するＣＯＭインタフェースおよびアプリケーションプログラミング要素を提供する。アクセシビリティＡＰＩは、当技術分野で知られており、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムに組み込まれている。アプリケーション６４は、ハイパーリンクを表示することのできるユーザインタフェースを有する任意のアプリケーションとすることができる。モニタ６６は、本明細書に述べる特徴のいくつかを実施するためにアプリケーション６４およびソフトフォン４０と通信するソフトウェアモジュールである。
【００２２】
図４に、図１〜３に示した様々なコンポーネントを実現するのに使用できる適切な一般的コンピューティング環境の一例１００を示す。例えば、コンピューティングシステム１００を使用して、ユーザクライアントコンピューティングデバイス１０、コンピューティングデバイス１４、またはインタフェース１６を実現することができる。コンピューティングシステム１００は、適したコンピューティング環境の一例に過ぎず、本明細書に述べる技術の使用または機能の範囲についてどんな制限を示唆するものでもない。また、コンピューティングシステム１００は、例示的な動作環境１００に示すコンポーネントのいずれか１つまたはそれらの組合せに関するどんな依存または要件を有するとも解釈すべきではない。
【００２３】
本明細書に述べる技術は、多くの汎用または専用コンピューティングシステム環境または構成で機能する。使用に適するであろう周知のコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、パーソナルディジタルアシスタント、電話機（有線、ワイヤレス、またはセルラー）、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータや、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されない。
【００２４】
システムは、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。システムはまた、分散コンピューティング環境で実現することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
【００２５】
図４を参照すると、例示的なシステムは、コンピュータ１１０の形の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０（複数のプロセッサを含むことができる）と、システムメモリ１３０と、システムメモリを含む様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含むことができるが、これらに限定されない。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含む、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、および、メザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００２６】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ１１０によってアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ‐ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイス、あるいは、所望の情報を記憶するのに使用できコンピュータ１１０によってアクセスできる他の任意の媒体を含むが、これらに限定されない。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構などの被変調データ信号に組み入れるものであり、任意の情報送達媒体を含む。用語「被変調データ信号」は、信号中の情報を符号化するようにしてその特性の１つまたは複数が設定または変更される信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体および他の無線媒体とを含む。以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含めるべきである。
【００２７】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。ＲＯＭ１３１には通常、起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１３３が記憶されている。ＲＡＭ１３２は通常、処理ユニット１２０からすぐにアクセス可能な、かつ／または処理ユニット１２０が現在作用している、データおよび／またはプログラムモジュールを含む。限定ではなく例として、図４には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２８】
コンピュータ１１０は、他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例に過ぎないが図４には、取外し不可能な不揮発性の磁気媒体に対して読取りまたは書込みを行うハードディスクドライブ１４１と、取外し可能な不揮発性の磁気ディスク１５２に対して読取りまたは書込みを行う磁気ディスクドライブ１５１と、ＣＤ  ＲＯＭや他の光学媒体など、取外し可能な不揮発性の光学ディスク１５６に対して読取りまたは書込みを行う光学ディスクドライブ１５５を示す。この例示的な動作環境で使用することのできる他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むが、これらに限定されない。ハードディスクドライブ１４１は通常、インタフェース１４０などの取外し不可能メモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光学ディスクドライブ１５５は通常、インタフェース１５０などの取外し可能メモリインタフェースによってシステムバス１２１に接続される。
【００２９】
上に論じ、図４に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、本明細書に述べる方法を実施するようにプロセッサ（１つまたは複数）をプログラムするためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶域を提供する。例えば図４には、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものとすることも、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、これらには異なる番号を付けてある。ユーザは、キーボード１６２、およびマウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含むことができる。これらおよびその他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースおよびバス構造で接続されてもよい。モニタ１９１または他のタイプの表示デバイスも、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７やプリンタ１９６など、他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース１９５を介して接続することができる。
【００３０】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常は、コンピュータ１１０に関して上述した要素の多くまたは全てを備えるが、図４にはメモリ記憶デバイス１８１のみが示してある。図４に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【００３１】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は通常、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２、ネットワークインタフェース、またはその他の手段を備える。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図４には、リモートアプリケーションプログラム１８５がメモリデバイス１８１上にあることを示す。図示のネットワーク接続は例であり、コンピュータ間で通信リンクを確立するその他の手段を使用してもよいことは理解されるであろう。
【００３２】
前述のように、本明細書に述べる技術の一特徴は、ユーザがユーザインタフェースのコンテンツ内にある電話番号の上でホバーするかまたはこの電話番号を選択することに応答して、呼（ｃａｌｌ）を自動化することである。図５に、この特徴を実施する方法の一実施形態を提供する。図５のステップ４００で、ユーザインタフェース中にコンテンツが表示される。一例では、コンテンツは、ブラウザ３０に表示されたウェブページである。他の実施形態では、他のコンテンツが他のアプリケーション中に表示されてよい。ステップ４０２で、システムはホバーイベントを待機する。一実施形態では、クライアントコンピューティングデバイス１０のオペレーティングシステムは、ユーザがユーザインタフェース中のコンテンツの上でホバーしたときにホバーイベントを生成することができる。例えば、ユーザがブラウザ中のテキストの上でホバーした場合、ホバーイベントがあったことがプラグイン３２に通知され、ホバーされているテキストがプラグイン３２に提供される。例示的な一実装形態では、ブラウザ３０は、ホバーを追跡し、適切なＯｎＭｏｕｓｅＯｖｅｒ（）でプラグイン３２に通知する。ホバーイベントがない場合は、プラグイン３２はホバーイベントがあるまで待機する。ユーザがテキストの上でホバーを行ったときは、ステップ４０４が実施される。いくつかの実施形態では、ホバーイベントを生成するためにはユーザがコンテンツの上で直接にホバーする必要があるが、他の実施形態では、ユーザがコンテンツの上で直接に、またはその付近（所定の短い距離内）でホバーしたときにホバーイベントが発生するものとすることができる。
【００３３】
ステップ４０４で、プラグイン３２は、コンテンツに関連する国コードを決定する。例えば、プラグイン３２は、ウェブページに関連するＵＲＬを見て、ＵＲＬが国コードを識別するかどうか確認することができる。別法として、プラグイン３２は、ドメイン名の逆ＩＰアドレス検索を行うこともできる。異なる国が、異なる範囲のＩＰアドレスを有する。別の実施形態では、ブラウザ言語およびコーディングタイプが、国を示すことができる。Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）は、ページの言語を指定し、読み取るためのＡＰＩを有する。ウェブページによっては、言語および起源国（ｃｏｕｎｔｒｙ  ｏｆ  ｏｒｉｇｉｎ）を示すＨＴＭＬコードを有するものもある。いくつかの実施形態では、この情報はＨＴＭＬヘッダ中にあるものとすることができる。いくつかの実施形態では、国コードを決定することはできない。
【００３４】
ステップ４０６で、プラグイン３２は、電話番号認識関数を実行する。電話認識関数への入力は、ホバーされた生入力ストリングと、（オプションで）国コードとを含む。電話認識関数の出力は、（１）生入力ストリングが電話番号を含むかどうかのブール判定、（２）正規化済みパターンの電話番号、および（３）生パターンの電話番号を含む。電話認識関数については、図６に関してより詳細に後述する。
【００３５】
ステップ４０８で、ホバーされたテキストが電話番号を含まない場合は、プロセスはステップ４０２にループバックし、別のホバーイベントを待機する。ホバーされたテキストが電話番号を含む場合は（ステップ４０８）、ステップ４１０で、プラグイン３２は、ＡＰＩを介して電話番号を強調表示するようブラウザ３０に命令する。ステップ４１２で、プラグイン３２は、ツールチップ（ｔｏｏｌ  ｔｉｐ）を表示させる。このツールチップは、ユーザが強調表示された番号をクリックしてその番号に電話をかけることができることを示す。
【００３６】
この時点で、ユーザは少なくとも２つのアクションを行うことができる。すなわち、ユーザは、強調表示された番号から離れることができ、あるいはユーザは、強調表示された番号をクリックすることによって（または他の何らかの選択手段によって）この番号を選択することができる。ユーザが強調表示された番号を選択した場合は、ステップ４１６で、プラグイン３２は、ソフトフォン４０を起動し、強調表示された電話番号をソフトフォン４０に渡し、ブラウザ３０に強調表示を除去するよう命令する。ステップ４１８で、ソフトフォン４０は、強調表示された電話番号との通信を確立する。例えば、信号および音声エンジン４６が、当技術分野で知られている技術を使用して、強調表示された電話番号への、適切なプロトコル（例えばＶＯＩＰ）を使用した音声接続を生み出す。ユーザが強調表示された番号を選択せずにこの番号から離れた場合は（ステップ４１４）、ステップ４２０で、プラグイン３２は、電話番号の強調表示を除去するようブラウザ３０に命令し、プロセスはステップ４０２にループバックして、別のホバーイベントが発生したかどうかテストする。
【００３７】
図６は、電話番号認識関数（図５のステップ４０６参照）の一実施形態を記述するフローチャートである。この関数は、入力パターンを、１組の記憶済みパターンのうちの１つと合致させることを試みる。各国は、その一般的な電話番号フォーマットを有する。パターンを定式化するために、国コードを「Ｃ」として表し、数字を「Ｄ」として表し、英数字（数字および文字）を「Ａ」として表し、区切り符号を「？」として表す。区切り符号は、電話番号をより人間に読みやすいものにするために使用される。例えば、「（」、「）」、「−」、「．」、「／」、およびスペースが、一般的な区切り符号である。例えば、電話番号１−８００−ＦＯＲ−ＰＩＺＺＡは、「Ｃ？Ｄ３？Ａ３？Ａ４」として定式化することができる。このパターンは、オプションの国コード、その後に３つの数字のエリアコード、その後に７つの数字の電話番号を有する。国コードは通常、オプションである。
【００３８】
合致させる電話番号は正規化することができる。すなわち、全ての区切り符号が除去される。これにより、パターン照合が単純化されることになる。しかし、エリアコードは文字ではなく数字のみで書かれるので、区切り符号はエリアコードのヒントを提供する。
【００３９】
２つの電話番号パターン、すなわち生パターンおよび正規化済みパターンがある。生パターンは、生の電話番号を合致させるのに直接使用できるパターンである。正規化済みパターンは、正規化された電話番号を合致させるのに使用できるパターンである。例えば、米国では、フォーマットは以下のうちの１つとすることができる。
【００４０】
【表１】
2009535978.tif 000003
【００４１】
国によっては、エリアコードおよび電話番号は、常に同じ長さとは限らない。この場合、パターンは範囲として書かれることになる。例えば、「ＣＤ１−４Ａ６−９」は、エリアコードが１つの数字から４つの数字までを有する可能性があり、市内電話番号が６つの数字／文字から９つの数字／文字までを有する可能性があることを表す。
【００４２】
図６のステップ４５０で、生入力ストリングが受け取られる。いくつかの実施形態では、国コードも受け取られる。国コードが受け取られた場合は（ステップ４５２）、この特定の国コードに関するデータベースがアクセスされ使用される。国コードが利用可能でなかった場合は、ステップ４５６で、米国データベース（または他のデフォルトデータベース）が使用される。ステップ４５８で、生入力ストリングが正規化される。
【００４３】
ステップ４６０で、関数は、正規化された生入力を、選択されたデータベース中の１組の正規化済みパターンと合致させることを試みる。合致が見つかった場合は（ステップ４６２）、ステップ４６６で、生入力ストリングを、この合致した正規化済みパターンに関連する生パターンのいずれかと合致させることが試みられる。合致が見つからなかった場合は、関数はステップ４６４で偽を返す。これは、入力ストリング中で電話番号が見つからなかったことを意味する。
【００４４】
ステップ４６６で生入力ストリングを合致させる試みで合致が見つかった場合は（ステップ４６８）、プロセスはステップ４７０で真を返す。これは、入力ストリング中で電話番号が見つかったことを示す。ステップ４７０ではまた、正規化済みパターンと、合致した生パターンとの両方が返される。合致が見つからなかった場合は（ステップ４６８）、プロセスはステップ４７２で偽を返す。これは、入力ストリング中で電話番号が見つからなかったことを示す。
【００４５】
図７は、ライブコールハイパーリンク（例えばＬｉｖｅＣａｌｌ：＋１４２５７０６９６０６）によってＰＣから電話機への呼を実施する一例を示すブロック図であり、これは図５のステップ４１８の一部として実施することができる。図７には、クライアントコンピューティングデバイス１０がインタフェース１６のコールシグナリングサーバ４８０と（インターネット１２を介して）通信するのを示し、コールシグナリングサーバ４８０自体は、電話会社プロバイダ４８２のコールシグナリングサーバ４８３と（インターネット１２を介して）通信する。コールシグナリングサーバ４８３は、電話会社プロバイダ４８２の公衆交換電話網（「ＰＳＴＮ」）ゲートウェイ４８４と通信する。ＰＳＴＮゲートウェイ４８４は、インターネット１２を介してクライアントコンピューティングデバイス１０と、またＰＳＴＮ４８５を介して電話機４８６と通信する。
【００４６】
クライアントコンピューティングデバイス１０中のソフトフォン４０は、コールシグナリングメッセージ（電話番号を含む）をコールシグナリングサーバ４８０に送信する（４９０参照）。コールシグナリングサーバ４８０は、ユーザを認証し、コールシグナリングメッセージを適切な電話会社プロバイダ４８２にルーティングする（４９１参照）。電話会社プロバイダ４８２のコールシグナリングサーバ４８３がコールシグナリングメッセージを受信すると、コールシグナリングサーバ４８３は、呼を認証し、呼を適切なＰＳＴＮゲートウェイ４８４に終端する（４９２参照）。ＰＳＴＮゲートウェイ４８４は、呼を宛先電話回線にルーティングする（４９３参照）。ユーザが宛先電話回線において電話機４８６を取ると、（クライアントデバイス１０中の）ソフトフォン４０と、ＰＳＴＮゲートウェイ４８４と、ＰＳＴＮ電話機４８６との間で音声ストリームが確立されることになる（４９４および４９５参照）。
【００４７】
電話機４８６は、ＰＳＴＮ電話機、または携帯／セルラー電話機とすることができる。携帯／セルラー電話機の場合、ＰＳＴＮゲートウェイ、ＰＳＴＮネットワーク、およびＰＳＴＮ電話機は、携帯ゲートウェイ、携帯ネットワーク、および携帯電話機でそれぞれ置き換えることができる。別の実施形態では、ＰＳＴＮ電話機は、携帯ゲートウェイ、携帯ネットワーク、および携帯電話機で置き換えることができる。一実装形態では、ＳＩＰ（セッション開始プロトコル）がコールシグナリングに使用される。
【００４８】
図８に、ブラウザ以外のアプリケーションで、ホバーに応答した発呼のプロセスを実施する代替実施形態を記述する。図８のプロセスは、ブラウザに使用することもできる。モニタされているアプリケーションは、アクセシビリティＡＰＩを利用することになる。この実施形態は図３の環境に関連し、この環境は、アクセシビリティＡＰＩによって提供されたストリングを処理するためにモニタ６６を含む。いくつかの実施形態では、モニタ６６は、図３に示すようにそれ自体のプロセスとすることもでき、あるいはアプリケーション６４の一部とすることもできることに留意されたい。いくつかの実施形態では、モニタ６６はまた、Ｗｉｎｄｏｗｓ（登録商標）シェル６０と直接に通信することになる。図８のステップ５００で、当該のコンテンツがアプリケーション６４のユーザインタフェース中に表示される。ステップ５０２で、システムはホバーイベントを待機する。テキストの上でホバーイベントがあると、モニタ６６は、ホバーされたテキストを受け取り、ステップ５０４が実施される。アクセシビリティＡＰＩによって、モニタ６６は単語を受け取ることに留意されたい。単語を見つけられない場合は、モニタ６６は、文全体、行全体、またはいくつかの行を求めることができる。テキストがブラウザからのものである場合は、モニタ６６は、ステップ５０４でブラウザに国コードを要求する。そうでない場合は、モニタ６６は、オペレーティングシステムに国コードを照会する。いくつかの実施形態では、国コードは利用可能でない。ステップ５０６で、モニタ６６は、電話番号認識関数を実行し、ホバーされたテキストをアプリケーション６４から電話番号認識関数に渡す。このテキスト中に電話番号がない場合は（ステップ５０８）、プロセスはステップ５０２にループバックし、別のホバーイベントを待機する。
【００４９】
このテキスト中に電話番号があった場合は（ステップ５０８）、ステップ５１０で、モニタ６６は、アクセシビリティＡＰＩを介して（または別のＡＰＩを介して）マウスホバーの現在位置を照会し、オペレーティングシステムに（ＡＰＩを介して）、電話番号を強調表示するよう命令する。代替の一実施形態では、モニタ６６は、アプリケーション６４と直接に通信し、テキストを強調表示するようアプリケーション６４に伝えることができる。ステップ５１２で、モニタ６６は（ＡＰＩを介して）、ユーザが強調表示された番号をクリックして電話呼を開始できることを示すためのツールチップを表示する。ユーザが強調表示されたテキストから離れた場合は、モニタ６６は電話番号の強調表示を除去し、プロセスはステップ５０２にループバックする。ユーザが強調表示されたテキストをクリックまたは他の選択手段によって選択した場合は、モニタ６６は、ソフトフォン４０を（まだ起動されていない場合に）起動し、強調表示された電話番号をソフトフォン４０に渡し、強調表示を除去する。ステップ５２０で、ソフトフォン４０は、強調表示された電話番号との音声通信を確立する。ステップ５２０の後、プロセスはステップ５０２にループバックし、別のホバーイベントを待機する。
【００５０】
上の考察は、ユーザがコンテンツの上でホバーするのに応答して、電話呼を自動化することに関係する。別の代替形態では、ユーザがコンテンツを選択するのに応答して、電話呼を自動化することができる。図９は、このような一実施形態を記述するフローチャートである。ステップ６００で、前述のようにユーザインタフェース中にコンテンツが表示される。ステップ６０２で、ユーザはテキストを選択し、このテキストはプラグイン３２に提供される。一実施形態では、ユーザは、マウスまたは他のポインティングデバイスを使用してテキストを強調表示することによって、テキストを選択することができる。ステップ６０４で、前述のようにプラグイン３２は国コードを決定する。ステップ６０６で、プラグイン３２は電話認識関数を呼び出す。電話番号が見つからなかった場合は（ステップ６０８）、プロセスはステップ６０２にループバックし、ユーザがさらにテキストを選択するのを待機する。電話番号が見つかった場合は（ステップ６０８）、ステップ６１０で、プラグイン３２は、ＡＰＩを介して電話番号を強調表示するようブラウザ３０に命令する。いくつかの実施形態では、電話番号は強調表示されない。ステップ６１２で、プラグイン３２はツールチップを表示させる。このツールチップは、ユーザが電話番号をクリックしてこの番号に電話をかけることができることを示す。ユーザが電話番号から離れた場合は（ステップ６１４）、ステップ６１６で、プラグイン３２は、電話番号の強調表示を除去するようブラウザ３０に命令し、プロセスはステップ６０２にループバックして、ユーザがテキストを選択するのを待機する。ユーザがクリックまたは他の方法の選択によって電話番号を選択した場合は（ステップ６１４）、ステップ６１８で、プラグイン３２は、ソフトフォン４０を起動し（必要なら）、強調表示された電話番号をソフトフォン４０に渡し、ブラウザ３０に強調表示を除去するよう命令する。ステップ６２０で、ソフトフォン４０は、強調表示された電話番号との音声通信を確立する。ステップ６２０の後、プロセスはループバックして、ステップ６０２で再びユーザが次のテキストを選択するのを待機する。
【００５１】
図９に関する考察は、選択されるコンテンツがブラウザ中にあることを企図している。図１０に、ブラウザであるアプリケーションおよびブラウザでないアプリケーションを含む種々のアプリケーション中のテキストをユーザが選択するのに応答して電話呼を自動化するためのプロセスを記述する（図３の環境参照）。ステップ７００で、ユーザインタフェース中にコンテンツが表示される。ステップ７０２で、ユーザがテキストを選択する。テキストがブラウザから選択されたものである場合は、モニタ６６はブラウザに国コードを要求する。テキストがブラウザ以外のアプリケーションからのものである場合は、モニタ６６は、オペレーティングシステムに国コードを照会する。場合によっては、国コードは利用可能でない。ステップ７０６で、モニタ６６は電話認識関数を呼び出す。電話番号が見つからなかった場合は（ステップ７０８）、プロセスはループバックし、ステップ７０２で次のテキストが選択されるのを待機する。電話番号が見つかった場合は（ステップ７０８）、モニタ６６は、アクセシビリティＡＰＩまたは別のＡＰＩを介して、マウスの現在位置を照会し、電話番号を強調表示する。ステップ７１２で、モニタ６６はツールチップを表示させる。このツールチップは、ユーザが強調表示された番号をクリックして電話をかけることができることをユーザに示す。ユーザが選択せずに強調表示から離れた場合は（ステップ７１４）、ステップ７１６で、モニタ６６は電話番号の強調表示を除去し、プロセスはステップ７０２にループバックして、次のユーザ選択を待機する。ユーザが強調表示されたテキストを選択した場合は（ステップ７１４）、ステップ７１８で、モニタ６６は、ソフトフォン４０を起動し、強調表示された電話番号をソフトフォン４０に渡し、アプリケーション６４のユーザインタフェースから強調表示を除去する。ステップ７２０で、ソフトフォン４０は、強調表示された電話番号との通信を確立する。ステップ７２０の後、ステップ７０２で、プロセスはユーザがテキストを選択するのを待機する。
【００５２】
前述の、ホバーに応答した発呼と選択に応答した発呼の技術は共に、ウェブページのコードを編集することなく、またウェブページを修正することなく実施されることに留意されたい。どちらのプロセスも、ウェブページのレンダリングを減速させない。
【００５３】
別のプロセスセットは、ユーザがホバーする前にコンテンツの体裁を変更することによって、呼を自動化することができる。次いで、ユーザのホバーに応答して、電話呼を開始することができる。
【００５４】
図１１は、ユーザがユーザインタフェースのコンテンツ内にある電話番号の上でホバーするのに応答して呼を自動化する別の実施形態を記述するフローチャートである。ステップ８５０で、プラグイン３２は、ウェブページのコード全体のコピーを読み取る。ステップ８５２で、プラグイン３２は、図６の電話認識関数を使用して、コード中で電話番号を見つける。ステップ８５４で、プラグイン３２は、ウェブページ中で電話番号がある位置の座標（例えばｘ，ｙ座標）を決定して記憶する。一実施形態では、記憶される座標は、ユーザインタフェース中で電話番号が位置する範囲を生み出すように、電話番号の左上の角および右下の角を含む。ステップ８５６で、プラグイン３２は、ブラウザ用のＡＰＩを使用して電話番号を強調表示するようブラウザ３０に命令する。ステップ８５８で、システムはマウスクリックを待機する。マウスクリックがあると、システムは、マウスクリックが電話番号の範囲の１つの内にあるかどうか判定する。ウェブページは複数の電話番号を含む場合があることが企図される。ステップ８５８で識別されたマウスクリックがステップ８６０でいずれかの範囲内にある場合は、プラグイン３２は、ソフトフォン４０を起動し、強調表示された電話番号をソフトフォン４０に渡し、ブラウザ３０から強調表示を除去する。ステップ８６４で、ソフトフォン４０は、強調表示された電話番号との音声通信を確立する。
【００５５】
図１２〜１７に、電話番号の上でホバーするのに応答して電話呼を開始する能力をユーザに提供するためにハイパーリンクを使用する１組の実施形態を開示する。図１２に、ブラウザ３０がソフトフォン４０およびブラウザヘルパオブジェクト（ＢＨＯ）９００と通信するのを示す。ブラウザヘルパオブジェクトは、プロセス内コンポーネントオブジェクトモデル（ＣＯＭ）コンポーネントであり、ブラウザの特殊化バージョンを生み出すようにＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）ブラウザをカスタマイズするのを可能にするために適用することができる。ＢＨＯを使用して、ブラウザの典型的なイベントを検出することができ、あるいはＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）中のメッセージおよびアクションをモニタするためのフック（ｈｏｏｋ）をインストールすることができる。
【００５６】
ユーザがＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）などのブラウザに新しいページをロードすると、このウェブページのコードがブラウザのデータ構造（例えばＩＭａｒｋｕｐＣｏｎｔａｉｎｅｒインタフェース）にロードされる。このデータ構造から、ウェブページがレンダリングされる。図１２の実施形態は、コンテンツがデータ構造にロードされた後であり、コンテンツがレンダリングされる前に、ＢＨＯ９００を使用してデータ構造にアクセスし、それにより、コンテンツ中で電話番号を見つけてこれらの電話番号のためのライブコールハイパーリンク（後で論じる）を追加する。
【００５７】
Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）は起動されると、Ｗｉｎｄｏｗｓ（登録商標）レジストリをチェックして、ＢＨＯがあるかどうか判定する。ユーザがソフトフォン４０をインストールするとき、ＢＨＯオブジェクト９００もまたユーザのハードディスクにインストールされることになり、ＢＨＯオブジェクトをリストするようにレジストリが変更されることになる。加えて、ライブコールハイパーリンクがＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）に登録されることになる。
【００５８】
図１２のＢＨＯ９００は、少なくとも３つのサービス、すなわちＩＷｅｂＢｒｏｗｓｅｒ２  ９０２、ＩＭａｒｋｕｐＳｅｒｖｉｃｅｓ９０４、およびＲｅｇｉｓｔｅｒＦｏｒＤｉｒｔｙＲａｎｇｅ９０６を含む。ＩＷｅｂＢｒｏｗｓｅｒ２  ９０２は、テキストのダウンロードが行われたときのＤｉｓｐｉｄ＿ＤｏｃｕｍｅｎｔＣｏｍｐｌｅｔｅ、および特定のウェブページに関するあらゆるもの（テキストおよび画像）のダウンロードが完了したときのＤｉｓｐｉｄ＿ＤｏｗｎｌｏａｄＣｏｍｐｌｅｔｅを含むイベントを投げる。ＩＭａｒｋｕｐＳｅｒｖｉｃｅｓ９０４は、ＩＷｅｂＢｒｏｗｓｅｒ２  ９０２によって投げられた、上に識別した２つのイベントの一方が発生したときに、ＲｅｇｉｓｔｅｒＦｏｒＤｉｒｔｙＲａｎｇｅ９０６へのアクセスを可能にするために使用される。ＲｅｇｉｓｔｅｒＦｏｒＤｉｒｔｙＲａｎｇｅは、コンテンツの新しいバージョンと、コンテンツに変更があるかどうかとを示す。次いでシステムは、ＩＭａｒｋｕｐＣｏｎｔａｉｎｅｒを使用するが、これは、ブラウザのデータ構造中の新しいコンテンツにアクセスするために、変更されたセクションを指す。次いでシステムは、新しいコンテンツを精査して、新しいコンテンツ中に電話番号があればそれらを識別する。電話番号が見つかった場合は、前述のデータ構造が編集されて、各電話番号のライブコールハイパーリンクが追加される。
【００５９】
ライブコールハイパーリンクにより、アプリケーション開発者は、ウェブページまたはアプリケーションからＶＯＩＰ電話をかけるための拡張可能アドレスを指定することができる。呼のタイプは、ＰＣから電話機への呼、およびＰＣからＰＣへの呼を含む。ＰＣから電話機への呼は、ＰＣから発し、固定回線電話機または携帯電話機を含めた電話機で終端する。ＰＣからＰＣへの呼は、音声、ビデオ、およびオプションのテキストチャットを含む。この呼は、ＰＣから発し、ＰＣで終端する。ライブコールハイパーリンク中のターゲットアドレスのタイプは、電話番号、連絡先（例えばアドレス帳の中の連絡先）、コンピュータ名（例えばＪｏｈｎＤｏｅ  ＰＣ）、またはＩＰアドレス（例えば１２４．３８．１１０．２５）を含む。
【００６０】
ライブコールハイパーリンクの構文は、ＬｉｖｅＣａｌｌ：＜パラメータ＞である。電話番号に電話をかけるには、以下のパラメータを使用することができる。
・Ｐｈｏｎｅ：市内番号、国内長距離番号、または国際番号とすることのできる電話番号
・Ｌｏｃａｌ：市内電話番号
・Ｎａｔｉｏｎａｌ：国内長距離番号
・Ｄｉｒｅｃｔ：直接ダイヤリング、例えば生の数字
・Ｃｏｎｔａｃｔ：プレゼンスまたはアドレス帳の中の連絡先
【００６１】
いくつかの例は、以下のものを含む。
（１）ＬｉｖｅＣａｌｌ：＋１４２５７０６９６０６；電話番号＋１４２５７０６９６０６を使用して、ＰＣから電話機への電話をかける。
（２）ＬｉｖｅＣａｌｌ：Ｐｈｏｎｅ＝７０６９６０６；電話番号７０６９６０６を使用して、ＰＣから電話機への電話をかける。この電話番号は、市内電話番号、国内電話番号、または国際電話番号とすることができる。ソフトフォン４０は、その位置設定に基づいてこの電話番号を解析することになる。
（３）ＬｉｖｅＣａｌｌ：Ｐｈｏｎｅ＝ＰＩＺＺＡＵＳＡ；電話番号７４９９２８７２（ＰＩＺＺＡＵＳＡ）を使用して、ＰＣから電話機への電話をかける。
（４）ＬｉｖｅＣａｌｌ：Ｌｏｃａｌ＝７０６９６０６；市内電話番号７０６９６０６を使用して、ＰＣから電話機への電話をかける。
（５）ＬｉｖｅＣａｌｌ：Ｎａｔｉｏｎａｌ＝１４２５７０６９６０６；国内長距離電話番号１４２５７０６９６０６を使用して、ＰＣから電話機への電話をかける。
（６）ＬｉｖｅＣａｌｌ：Ｄｉｒｅｃｔ＝９１１；数字をそのまま使用して、ＰＣから電話機への電話をかける。
（７）ＬｉｖｅＣａｌｌ：Ｃｏｎｔａｃｔ＝ＪｏｈｎＤｏｅ＠ｈｏｔｍａｉｌ．ｃｏｍ；Ｊｏｈｎ  Ｄｏｅに対する、連絡先情報（またはアドレス帳）の中のデフォルト電話番号を使用して、ＰＣから電話機への電話をかける。
【００６２】
コンピュータに電話をかけるには、以下のパラメータを使用することができる。すなわち、（１）Ｏｎｌｉｎｅ：オンラインプレゼンスＩＤ、および（２）Ｈｏｓｔ：コンピュータ名またはＩＰアドレスである。いくつかの例は、以下のものを含む。
（１）ＬｉｖｅＣａｌｌ：Ｏｎｌｉｎｅ＝ＪｏｈｎＤｏｅ＠ｈｏｔｍａｉｌ．ｃｏｍ；オンラインプレゼンスＩＤを使用して、ＰＣからＰＣへの電話をかける。
（２）ＬｉｖｅＣａｌｌ：Ｈｏｓｔ＝ＪｏｈｎＤｏｅＰＣ；宛先マシンのコンピュータ名を使用して、ＰＣからＰＣへの電話をかける。
（３）ＬｉｖｅＣａｌｌ：Ｈｏｓｔ＝１２４．３８．１１０．２５；宛先マシンのＩＰアドレスを使用して、ＰＣからＰＣへの電話をかける。
【００６３】
ライブコールハイパーリンク中のソースパラメータ「Ｓｒｃ」は、このライブコールハイパーリンクがクリックまたは実行される場所であるソースコンテキストを示す。この情報は、ビジネスインテリジェンスに有用である。ソースパラメータは、他のパラメータと組み合わせることができる。ライブコールハイパーリンク中のパラメータは、「＆」符号で連結される。以下の例を考えてみる。
（１）ＬｉｖｅＣａｌｌ：Ｐｈｏｎｅ＝７０６９６０６＆Ｓｒｃ＝Ｍｅｓｓｅｎｇｅｒ／Ｃｏｎｔａｃｔ／Ｈｏｍｅ；メッセンジャー（インスタントメッセージング）の連絡先にリストされている自宅電話番号を使用して、ＰＣから電話機への電話をかける。
（２）ＬｉｖｅＣａｌｌ：Ｏｎｌｉｎｅ＝ＪｏｈｎＤｏｅ＠ｈｏｔｍａｉｌ．ｃｏｍ＆Ｓｒｃ＝Ｍｅｓｓｅｎｇｅｒ／Ｂｕｄｄｙ；メッセンジャーのバディーリストにリストされているオンラインプレゼンスＩＤを使用して、ＰＣからＰＣへの電話をかける。
（３）ＬｉｖｅＣａｌｌ：？Ｓｉｇｎｕｐ＆Ｓｒｃ＝Ｈｏｔｍａｉｌ／Ａｄｓ；このハイパーリンクがＨｏｔｍａｉｌ（ウェブベースの電子メールサービス）の広告欄にリストされている場合に、サインアッププロセスを開始するためのサインアップウェブサイトに行く。
【００６４】
図１３は、ライブコールハイパーリンクを追加するための一実施形態を記述するフローチャートである。ステップ１００２で、新しいコンテンツがダウンロードされる。新しいコンテンツは、新しいウェブページ全体、またはウェブページの一部とすることができ、これは上に論じたイベントの１つを生成する。データは上述のデータ構造にロードされる。ステップ１００４で、Ｄｉｓｐｉｄ＿ＤｏｃｕｍｅｎｔＣｏｍｐｌｅｔｅおよび／またはＤｉｓｐｉｄ＿ＤｏｗｎｌｏａｄＣｏｍｐｌｅｔｅを投げるＩＷｅｂＢｒｏｗｓｅｒ２  ９０２から、新しいコンテンツがＢＨＯ９００に通知される。ＲｅｇｉｓｔｅｒＦｏｒＤｉｒｔｙＲａｎｇｅサービス９０６が、新しいコンテンツへのポインタを提供する。ステップ１００６で、ＢＨＯ９００は、単語、文、句読点間のテキスト、スペース間のテキスト、または他のコンテンツのグループにアクセスし、ステップ１００８で、電話番号があれば見つけるために電話番号認識関数（図６参照）を複数回呼び出す。電話番号が見つからない場合は（ステップ１０１０）、ステップ１０１４で、次いでウェブページは元々意図されたようにレンダリングされる。電話番号が見つかった場合は（ステップ１０１０）、ステップ１０１２で、各電話番号を除去してこれらをライブコールハイパーリンクで置き換えるために、データ構造が変更される。その後、ステップ１０１４でページはレンダリングされる。追加されたライブコールハイパーリンクは、ライブコールハイパーリンクの追加されたコンテンツを識別するためのソース（Ｓｒｃ）パラメータを含む場合があることに留意されたい。
【００６５】
図１４Ａに、２つの電話番号を含むウェブページの一部（例えば検索結果）を示す。図１４Ｂに、図１３のプロセスが実施されてライブコールハイパーリンクが追加された後にレンダリングされた、同じウェブページの部分を示す。図１４Ｂに見られる２つの電話番号には下線が付いていることに注目されたい。ユーザが下線付き電話番号の上でホバーすると、これらの色が変わることになる。他の実施形態では、ハイパーリンクは電話番号の体裁を変更せず、ユーザが電話番号の上でホバーすると、番号に下線が付き、かつ／または番号の色が変わる。
【００６６】
図１５は、ユーザが電話番号の上でホバーするのに応答して電話呼を開始するためのプロセスの一実施形態を記述するフローチャートである。図１３のプロセスに従ってウェブページがブラウザによってレンダリングされた後、ステップ１１０２で、システムはホバーイベントを待機する。ステップ１１０４で、ユーザがハイパーリンクの上でホバーすると、ブラウザはハイパーリンクを強調表示する。一実施形態では、ハイパーリンクは、色の変更、下線付加、またはこの両方を行うことができる。ユーザがハイパーリンクを選択した場合は（ステップ１１０６）、ブラウザは、ハイパーリンクがブラウザに登録されているかどうかチェックして確認する。登録されている場合、この登録は、どのプログラムを呼び出すべきかをブラウザに伝える。次いでブラウザは、ソフトフォン４０を呼び出し（ステップ１１０８）、ハイパーリンクのコンテンツをソフトフォン４０に渡す。ハイパーリンクのコンテンツは、この場合、電話番号を含む。
【００６７】
図１６は、ユーザがウェブページ、文書、ファイル、または他のユーザインタフェース中でライブコールハイパーリンクをクリックするかまたは他の方法で選択するのに応答して実施されるプロセスの一実施形態を記述するフローチャートである（図１５のステップ１１０８参照）。ハイパーリンクは通常、ユニフォームリソースロケータ（ＵＲＬ）として表現される。ステップ１２００で、選択されたライブコールハイパーリンクのＵＲＬが、ＵＲＬモニカ３４に渡される（図２参照）。ステップ１２０２で、ＵＲＬモニカ３４は、ＵＲＬ中のヘッダ情報（例えば「ＬｉｖｅＣａｌ：」）に基づいて、適切なプロトコルハンドラを調べる。ステップ１２０４で、ＵＲＬモニカ３４は、ＵＲＬを適切なプロトコルハンドラに渡す。ライブコールハイパーリンクの場合、ＵＲＬはライブコールハンドラ３６に渡される。ステップ１２０６で、ライブコールハンドラ３６は、ユーザがこのＵＲＬを実行したいことをユーザに確認する。いくつかの実施形態では、ステップ１２０６はオプションであり、飛ばすことができる。ステップ１２０８で、ライブコールハンドラ３６は、ソフトフォン４０を起動する。いくつかの実施形態では、ソフトフォン４０がすでに稼動している場合は、再び起動する必要はない。ソフトフォン４０は、ダイヤルするためのキーパッド、電話番号表示領域、通話履歴を表示する領域、サービスプロバイダ情報を表示する領域、通話情報を表示する領域、および（オプションで）ウェブまたはネットワーク内容を表示する領域を含むグラフィカルユーザインタフェースを備える。
【００６８】
ステップ１２１０で、ライブコールハンドラ３６は、ＵＲＬをソフトフォン４０に渡す。一実施形態では、ＵＲＬは最初に認証マネージャ４２に渡される。ユーザが認証されていない場合は（ステップ１２１２）、認証マネージャ４２がユーザを認証する。一実施形態では、これは、ユーザがユーザ名およびパスワードを入力することのできるログイン画面を提供することを含む。ユーザが正しく認証されない場合、図１６のプロセスは終了する。ユーザを認証した後、認証マネージャ４２は、ハイパーリンク中で識別される機能を実施することがユーザに許可されているかどうか検証する（ステップ１２１６）。ユーザが前に認証されている場合は（ステップ１２１２参照）、ステップ１２１４は飛ばされ、プロセスはステップ１２１６に進んで、ユーザが認証されるかどうか判定することに留意されたい。
【００６９】
ステップ１２１８で、ハイパーリンクを表すＵＲＬはパーサ４４に渡され、パーサ４４は、ＵＲＬの構文をチェックしてＵＲＬを様々な構成要素に分解する。ステップ１２２０で、パーサ４４は、適切な構成要素を、信号および音声エンジン４６、ビジネスプレゼンテーションロジック５０、およびハイパーリンクリダイレクタ５２に送る。一実施形態では、任意のコマンド（例えばアカウント維持）および被呼側が、信号および音声エンジン４６に渡され、コマンドがプレゼンテーションロジック５０に渡され、コマンドおよびハイパーリンクがハイパーリンクリダイレクタ５２に渡される。ステップ１２２２で、パーサ４４は、データ（例えばソースの指示を含めた全ての構成要素）を、ビジネスインテリジェンスデータストア４８に保存する。ステップ１２２４で、信号および音声エンジン４６は、アドレス帳５８を使用して任意のパラメータを解決する。例えば、ターゲットが連絡先またはコンピュータ名で識別される場合、アドレス帳５８を使用して、この連絡先を電話番号に変換し、あるいはコンピュータ名をＩＰアドレスに変換する。ステップ１２２６で、信号および音声エンジン４６は、ＵＲＬのターゲットとの音声接続を確立する。
【００７０】
図１７は、図３の実施形態内で動作しているときにライブコールハイパーリンクが選択されるのに応答して実施されるプロセスの一実施形態を記述するフローチャートである。すなわち、ＡＰＩを使用するアプリケーション中にハイパーリンクがある。ステップ１３５０で、アプリケーション６４は、コマンドをＡＰＩに発行する。例えば、ＳｈｅｌｌＥｘｅｃｕｔｅ（）またはＳｈｅｌｌＥｘｅｃｕｔｅＥＸ（）が、Ｗｉｎｄｏｗシェル６０に発行される。ステップ１３５２で、Ｗｉｎｄｏｗシェル６０は、適切なプロトコルハンドラを調べる。プロトコルハンドラが見つかった場合は（ステップ１３５４）、ステップ１３６０で、Ｗｉｎｄｏｗｓ（登録商標）シェル６０はプロトコルハンドラを起動する。例えば、ライブコールハンドラ３６を起動することができる。プロトコルハンドラは、ブラウザ３０とは別個に存在することもでき、あるいはブラウザ３０の一部として存在することもできる。
【００７１】
動作前に、ライブコールプロトコルハンドラを登録する必要がある。プロトコルハンドラを登録するには、２つの実装形態が可能である。一方は、プロトコルハンドラをＷｉｎｄｏｗｓ（登録商標）シェルに登録することである。他方は、プロトコルハンドラをブラウザに登録することである。プロトコルハンドラをブラウザに登録することの利点の１つは、プロトコルハンドラがサニティチェックを実施して、アプリケーションが実際に起動される前にユーザがＵＲＬの実行を確認する機会を有することを保証することができることである。このことは、ユーザがウェブサイトを訪れている間にＵＲＬのドライブバイ（ｄｒｉｖｅ−ｂｙ）実行からユーザを保護するために重要な場合がある。
【００７２】
ステップ１３６２で、ＵＲＬはプロトコルハンドラに渡される。ステップ１３６４で、プロトコルハンドラは、ソフトフォン４０がまだ起動されていない場合はこれを起動する。ステップ１３６６で、プロトコルハンドラは、ＵＲＬをソフトフォン４０に渡す。ステップ１３６６の後、プロセスは図１６のステップ１２１２に続く。
【００７３】
Ｗｉｎｄｏｗｓ（登録商標）シェル６０が適切なプロトコルハンドラを見つけなかった場合は（ステップ１３５４）、ステップ１３７０で、Ｗｉｎｄｏｗｓ（登録商標）シェル６０は、適切なプロトコルハンドラを突き止めるようブラウザ３０に求める。ブラウザ３０が適切なプロトコルハンドラを見つけることができた場合は、ステップ１３７４で、ブラウザ３０は、ＵＲＬをＵＲＬモニカ３４に渡す。ステップ１３７６で、このプロセスは、図１６のステップ１２０２に続く。ステップ１３７２で適切なプロトコルハンドラが見つからなかった場合は、ステップ１３８０でエラーが返される。
【００７４】
構造上の特徴および／または方法上の動作に特有の言語で本主題を述べたが、添付の特許請求の範囲に定義する本主題は、前述の特定の特徴または動作に必ずしも限定されないことを理解されたい。そうではなく、前述の特定の特徴または動作は、特許請求の範囲に記載の発明を実施する例示的な形として開示する。本発明の範囲は、本明細書に添付する特許請求の範囲によって定義されるものとする。
【図面の簡単な説明】
【００７５】
【図１】ネットワークを介した音声通信を可能にするシステムの一実施形態を示すブロック図である。
【図２】クライアントデバイス上のコンポーネントの一実施形態のブロック図である。
【図３】クライアントデバイス上のコンポーネントの一実施形態のブロック図である。
【図４】コンピューティングシステムの一実施形態を記述するブロック図である。
【図５】ユーザが電話番号の指示の上でホバーするのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図６】電話番号を認識するためのプロセスの一実施形態を記述するフローチャートである。
【図７】ＶＯＩＰ接続を実施するプロセスを記述するブロック図である。
【図８】ユーザが電話番号の指示の上でホバーするのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図９】電話番号を含むコンテンツをユーザが選択するのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図１０】電話番号を含むコンテンツをユーザが選択するのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図１１】ユーザが電話番号の指示の上でホバーするのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図１２】クライアントデバイス上のコンポーネントの一実施形態のブロック図である。
【図１３】ウェブページにハイパーリンクを追加するためのプロセスの一実施形態を記述するフローチャートである。
【図１４Ａ】ハイパーリンクが追加される前のウェブページの一部を示す図である。
【図１４Ｂ】ハイパーリンクが追加された後のウェブページの一部を示す図である。
【図１５】ユーザが電話番号の指示の上でホバーするのに応答して通信を開始するためのプロセスの一実施形態を記述するフローチャートである。
【図１６】ハイパーリンクに応答して通信システムによって実施されるプロセスの一実施形態を記述するフローチャートである。
【図１７】ハイパーリンクに応答して通信システムによって実施されるプロセスの一実施形態を記述するフローチャートである。
【図１】
2009535978.tif 000004
【図２】
2009535978.tif 000005
【図３】
2009535978.tif 000006
【図４】
2009535978.tif 000007
【図５】
2009535978.tif 000008
【図６】
2009535978.tif 000009
【図７】
2009535978.tif 000010
【図８】
2009535978.tif 000011
【図９】
2009535978.tif 000012
【図１０】
2009535978.tif 000013
【図１１】
2009535978.tif 000014
【図１２】
2009535978.tif 000015
【図１３】
2009535978.tif 000016
【図１４Ａ】
2009535978.tif 000017
【図１４Ｂ】
2009535978.tif 000018
【図１５】
2009535978.tif 000019
【図１６】
2009535978.tif 000020
【図１７】
2009535978.tif 000021
【国際調査報告】
2009535978.tif 000022
2009535978.tif 000023