実施の形態の構成を説明する前に、従来の技術の課題を含む概要を説明する。
図1は、異なる端末間で同一のウェブページを閲覧する(以下「ウェブページを共有する」とも呼ぶ。)従来の仕組みを模式的に示す。オペレータは、自端末でウェブブラウザを起動し、ウェブブラウザの起動に伴って開かれたウィンドウであり、ウェブブラウザに対するユーザインタフェースとなるウィンドウ(以下「ブラウザウィンドウ」とも呼ぶ。)202において、顧客と共有すべきウェブページ203Aを開く。オペレータ端末201は、ブラウザウィンドウ202で開かれたウェブページ203AのURLを、ビデオチャットサーバ220を介して顧客端末230へ送信する。顧客端末230は、オペレータ端末201から通知されたURLにもとづいてウェブページのデータを取得し、自端末のブラウザウィンドウにウェブページ203Bを表示させる。これにより、オペレータと顧客が同じウェブページを閲覧することができる。
しかし、図1の方式では、オペレータ端末におけるウェブページの表示態様と、顧客端末におけるウェブページの表示態様が異なってしまうことがあった。典型的には、オペレータ端末の環境(OSやウェブブラウザ等)と顧客端末の環境が不一致のときに生じる。また、共有すべきウェブページの表示時に、顧客端末でエラー(JAVAスクリプトエラー等、「JAVAスクリプト」は登録商標)が発生することもあった。この場合、オペレータ端末でも同様のエラーが発生することもあれば、環境の相違によりオペレータ端末ではエラーが未発生のこともある。したがって、オペレータと顧客間で十分な情報共有ができないこともあった。
図2は、異なる端末間で同一のウェブページを閲覧する実施の形態の仕組みを模式的に示す。オペレータ端末211では、ビデオチャットアプリケーションに加えて、ウェブ共有アプリケーション240が起動される。ウェブ共有アプリケーション240はオペレータからの入力指示に応じてウェブページを開き、画面上で表示されている領域233Aのみならず非表示の領域234を含む当該ウェブページの全体画像を取得する。その際、ウェブページの読み込みやレンダリングにおいて発生したエラーは無視して全体画像を取得する。またウェブ共有アプリケーション240は、ウェブページの全体画像のうち画面に表示されている領域233Aを示す位置情報を取得する。そして、ウェブページの全体画像と位置情報を、ビデオチャットサーバ221へ提供する。オペレータ端末211および顧客端末231のビデオチャットアプリケーションは、ウェブページの全体画像のうち位置情報が示す領域(オペレータ端末211では領域233A、顧客端末231では領域233B、これらは同じ内容を示す)を画面に表示させる。
この構成によると、オペレータ端末および顧客端末のビデオチャットアプリケーションは共有すべきウェブページの画像データを取得し、その画像データの少なくとも一部をそのまま表示させればよい。この結果、オペレータ端末と顧客端末のOSやウェブブラウザの種類が異なっても、オペレータ端末におけるウェブページの表示態様と、顧客端末におけるウェブページの表示態様を整合させることができる。また、ウェブ共有アプリケーションは、ウェブページ解析・画像化時のエラーは無視してベストエフォートで画像化するため、顧客端末でエラーが発生してしまうことを抑制し、オペレータと顧客との円滑な情報共有を支援できる。また、ウェブページの全体画像を最初に一度提供し、スクロール等のオペレータ操作によるウェブページの表示態様の変更は、差分の位置情報のみを提供することで、サーバや端末、ネットワークのリソース消費を抑制することができる。
実施の形態の構成を詳細に説明する。
図3は、実施の形態のビデオチャットシステムの構成を示す。ビデオチャットシステム10は、オペレータ端末12、顧客端末14、ビデオチャットサーバ16を備える。これらの各装置はLAN・WAN・インターネット等を含む通信網18を介して接続される。ビデオチャットシステム10は、商品説明や各種相談のためのビデオチャットサービスを顧客に提供し、そのビデオチャットの中で企業のオペレータと顧客は同じウェブページを閲覧(言い換えれば共有)する。このウェブページを以下「共有ページ」とも呼ぶ。
オペレータ端末12は、メーカや小売等の企業において顧客応対業務を担当するオペレータにより操作される情報処理装置であり、例えばPCやタブレット端末である。顧客端末14は、オペレータとのビデオチャットを所望する顧客により操作される情報処理装置であり、例えばPCやタブレット端末、スマートフォンである。
ビデオチャットサーバ16は、オペレータ端末12と顧客端末14それぞれとの通信セッションを確立し、オペレータ端末12と顧客端末14間で送受される各種データを中継する。またビデオチャットサーバ16はウェブサーバとしての機能を有し、オペレータ用のビデオチャット画面のウェブページをオペレータ端末12へ提供する。同様に、顧客用のビデオチャット画面のウェブページを顧客端末14へ提供する。ウェブサーバ20は、商品説明やQ&A等のコンテンツを含む各種ウェブページを外部のウェブクライアント端末へ提供する。実施の形態では、オペレータが指定した共有ページをオペレータ端末12へ提供する。
図4は、図3のオペレータ端末12の機能構成を示すブロック図である。ブロック図における各ブロックは、ハードウェア的には、コンピュータのCPUやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
図4の各機能ブロックは、プログラムモジュールとして実装されてもよく、そのプログラムモジュールをCPUが実行することにより、各機能ブロックの機能が発揮されてもよい。また図4には不図示だが、オペレータ端末12は、種々の設定値や処理中のデータを記憶するメモリやストレージ等のデータ保持部をさらに備える。図4の各機能ブロックは、データ保持部に記憶されたデータを適宜参照してデータ処理を実行する。後述する図5のブロック図および顧客端末14についても同様である。
オペレータ端末12は、インタフェース部30、ウェブブラウザ部32、ウェブ共有部34、ビデオチャット部36を備える。インタフェース部30は、オペレータ端末12とオペレータ(端末の操作者)、また、オペレータ端末12と外部装置とのインタフェース機能を提供する。ウェブブラウザ部32は公知のウェブブラウザの機能を提供する。
ビデオチャット部36は、ビデオチャットのクライアント機能を提供し、例えばオペレータ用のビデオチャット画面を表示させる。ウェブ共有部34およびビデオチャット部36は、ウェブブラウザプログラムで予め定められたAPI(Application Programming Interface)を適宜コールし、ウェブブラウザ部32の機能を適宜使用する。
ビデオチャット部36は、その機能を示すJAVAスクリプトコードが、ビデオチャットサーバ16から提供されるオペレータ用ビデオチャット画面のウェブページプログラム(HTMLプログラム等)に記述されることにより実装されてもよい。この場合、ウェブブラウザ部32が、オペレータ用ビデオチャット画面のウェブページのプログラムを読み込み、その中に記述されたJAVAスクリプトコードを実行することにより、ビデオチャット部36の各機能が実現されてもよい。
ウェブ共有部34は、オペレータ端末12と顧客端末14間でウェブページを共有するための処理を実行する。具体的には、共有ページの全体画像と、オペレータ端末12の画面上で表示中の共有ページの領域を示す位置情報を取得する。実施の形態では、ウェブ共有部34は、ウェブ共有アプリケーションとしてオペレータ端末12にインストールされることとする。変形例として、ウェブ共有部34は、外部のウェブアプリケーションサーバが提供するASPサービスを利用して実現されてもよい。例えば、ビデオチャット部36と同様に、ウェブ共有部34の機能を示すJAVAスクリプトコードが、外部のウェブアプリケーションサーバが提供するウェブ共有画面のウェブページプログラムに記述されることにより実装されてもよい。そして、オペレータの操作に応じてウェブブラウザ部32がそのウェブページを読み込み、その中に記述されたJAVAスクリプトコードを実行することにより、ビデオチャット部36の各機能が実現されてもよい。
インタフェース部30は、操作検出部40、表示制御部42、通信部44を含む。操作検出部40は、キーボードやマウス等の入力装置に対するオペレータの操作入力を検出し、入力された操作内容をウェブ共有部34、ビデオチャット部36へ通知する。ウェブ共有部34およびビデオチャット部36の各機能ブロックは、操作検出部40を介して、オペレータの操作を受け付ける。
表示制御部42は、ウェブ共有部34またはビデオチャット部36から出力された画像データを不図示のディスプレイドライバへ出力することにより、ディスプレイの表示内容を制御する。ウェブ共有部34およびビデオチャット部36の各機能ブロックは、表示制御部42を介して、各種情報や画像をディスプレイに表示させる。通信部44は、所定の通信プロトコル(例えばHTTP)にしたがって外部装置と通信する。ウェブ共有部34およびビデオチャット部36の各機能ブロックは、通信部44を介して、外部装置(例えばビデオチャットサーバ16やウェブサーバ20)と電子データを送受する。
ウェブ共有部34は、第1処理部50と第2処理部60を含む。第1処理部50は、共有ページに関するオペレータ操作用の処理を実行する。具体的には、共有ページを表示させるためのブラウザウィンドウであり、ウェブ共有アプリケーションの起動により生成されたウィンドウ(以下「ウェブ共有ウィンドウ」とも呼ぶ。)に対するオペレータの操作に関連する処理を実行する。第2処理部60は、画面表示等のユーザインタフェース処理は実行せず、共有ページの画像化に関する処理を実行する。第1処理部50と第2処理部60は、互いに独立してウェブブラウザ部32の機能を呼び出しつつ、以下に示す処理を適宜並行して実行する。
第1処理部50は、ページ読込部52、ページ表示部54、表示領域検出部56、表示領域通知部58を含む。ページ読込部52は、ウェブ共有ウィンドウに対するオペレータ操作に基づいて共有ページのURLを取得し、そのURLを指定したHTTPリクエストをウェブサーバ20へ送信する。ページ読込部52は、ウェブサーバ20から送信された共有ページのデータを読み込み、所定の記憶領域へ格納する。
ページ表示部54は、ウェブ共有アプリケーションの起動に伴い、所定サイズのウェブ共有ウィンドウをディスプレイに表示させる。ページ表示部54は、ページ読込部52により読み込まれた共有ページのデータをレンダリングし、そのレンダリング結果である画像をウェブ共有ウィンドウに表示させる。言い換えれば、共有ページがもたらす情報であり、各種テキストや画像を含むコンテンツを示す画像をウェブ共有ウィンドウに表示させる。共有ページの全コンテンツを含む全体画像のサイズが大きい場合、共有ページ全体をウェブ共有ウィンドウに表示させることはできないため、共有ページの一部コンテンツを示す部分画像をウェブ共有ウィンドウに表示させる。
またページ表示部54は、共有ページの表示処理、具体的には共有ページのデータに対する解析処理・レンダリング処理(JAVAスクリプトプログラムの実行を含む)の中でエラーが発生するか否かにかかわらず表示処理を継続する。例えば、JAVAスクリプトエラー等が発生しても、当該エラーが無視可能なエラー種類、言い換えれば、表示処理の継続が可能なエラー種類であれば表示処理を中止せず、エラー発生箇所の処理をスキップする等により当該エラーを無視して表示処理を継続する。
ページ読込部52とページ表示部54は、ウェブ共有ウィンドウに対して入力されたオペレータの操作であり、ウェブ共有ウィンドウに表示された共有ページに対するオペレータの操作を受け付ける。ページ読込部52とページ表示部54は、共有ページの読み込み処理・表示処理が完了したか否かに関わらず、言い換えれば、共有ページの読み込み処理・表示処理の途中であってもオペレータの操作を受け付ける。この操作は、例えば、共有ページに設けられたページリンクに対する選択操作(クリック操作)や、ボタン等のフォームに対する操作、共有ページの表示対象領域の変更操作(典型的にはウェブ共有ウィンドウのスクロールバーの移動操作)を含む。
ページ読込部52は、ウェブ共有ウィンドウに対するオペレータの操作に応じて、それまでの共有ページ読み込み処理を中止し、新たな共有ページの読み込み処理を開始する。ただし、オペレータの操作が共有ページ内での移動操作やスクロール操作等、他のウェブページへの遷移(すなわち共有ページの切替)を伴わない操作である場合、ページ読込部52は、それまでの共有ページ読み込み処理を継続し、また新たな共有ページの読み込み開始を抑制する。
ページ表示部54は、ウェブ共有ウィンドウに対するオペレータの操作に応じて、ウェブ共有ウィンドウにおける共有ページの表示を更新する。例えば、新たな共有ページを表示させ、またウェブ共有ウィンドウにおける共有ページの表示対象領域を変更する。言い換えれば、ウェブ共有ウィンドウに表示させる共有ページそのもの、もしくは表示対象とする共有ページの部分画像を変更する。
表示領域検出部56は、後述するイベント検出部64が共有ページの読み込み完了イベントを検出した場合に、ウェブ共有ウィンドウに表示中の共有ページの部分画像が、共有ページの全体画像に占める領域を示す位置情報を取得する。表示中の領域は、共有ページに含まれるコンテンツのうちオペレータが視認可能な状態でディスプレイ画面に表示されているコンテンツが配置された領域と言える。
表示領域検出部56は、公知の方法により位置情報を取得してもよく、例えばJAVAスクリプトにおいて予め用意されたオブジェクト、メソッドを使用して位置情報を取得してもよい。実施の形態では、ウェブ共有ウィンドウに表示中の共有ページの領域について、共有ページの左上端を原点とする二次元座標系における当該領域の左上端横座標値(window.pageXOffset)、左上端縦座標値(window.pageYOffset)を取得する。そして、ウェブ共有ウィンドウの横幅(window.innerWidth)、高さ(window.innerHeight)にもとづき右下端横座標値、右下端縦座標値を取得し、左上横座標値・左上縦座標値・右下横座標値・右下縦座標値の組み合わせを位置情報として生成する。変形例として、位置情報は、左上横座標値・左上縦座標値・ブラウザウィンドウの横幅・高さの組み合わせでもよく、他の構成であってもよい。
表示領域通知部58は、表示領域検出部56により取得された位置情報を後述の共有画像表示部70へ出力するとともに顧客端末14へも提供する。実施の形態では、位置情報をビデオチャットサーバ16へ送信し、ビデオチャットサーバ16から顧客端末14へ送信させる。
第2処理部60は、ページ読込部62、イベント検出部64、ページ画像取得部66、ページ画像提供部68を含む。ページ読込部62は、ウェブ共有ウィンドウに対するオペレータ操作に基づいてオペレータが所望する共有ページのURLを取得し、そのURLを指定したHTTPリクエストをウェブサーバ20へ送信する。ページ読込部62は、ウェブサーバ20から送信された共有ページのデータを読み込み、所定の記憶領域へ格納する。ページ読込部62は、ページ読込部52と同じウェブページを取得するが、ページ読込部52とは独立して、典型的にはページ読込部52と並行して動作する。
ページ読込部52と同様に、ページ読込部62は、オペレータの操作に応じて、それまでの共有ページ読み込み処理を中止し、新たな共有ページの読み込み処理を開始する。ただし、オペレータの操作が他のウェブページへの遷移を伴わない操作の場合は、ページ読込部52は、それまでの共有ページ読み込み処理を継続し、また新たな共有ページの読み込み開始を抑制する。
イベント検出部64は、ページ読込部62による共有ページ読み込み処理の実行中に、ウェブブラウザ部32が予め保持するコンポーネントである読み込み完了イベントの発生を監視する。例えば、ウェブブラウザがInternet Explorer(商標または登録商標)の場合、「DocumentComplete」イベントの発生を監視する。イベント検出部64は、読み込み完了イベントの発生を検出すると、共有ページの読み込み完了を示す情報をページ画像取得部66および表示領域検出部56へ出力する。
ページ画像取得部66は、共有ページの読み込み完了がイベント検出部64から通知されると、共有ページをビットマップ画像化した共有ページの全体画像(以下「共有ページ全体画像」と呼ぶ。)を取得する。共有ページ全体画像は、共有ページの全てのコンテンツを含み、ウェブ共有ウィンドウに非表示の画像を含むビットマップ画像データである。画像データの形式は、JPEG、PNG、BMP、TIFF等、公知の形式でよい。ページ画像取得部66は、ページ読込部62により読み込みが完了した共有ページの全データをレンダリングし、そのレンダリング結果である共有ページ全体画像のデータをメモリ内に格納する。
ページ表示部54と同様にページ画像取得部66は、共有ページの解析処理・レンダリング処理の中でエラーが発生するか否かにかかわらず画像化処理を継続する。例えば、JAVAスクリプトエラー等が発生しても、エラーを無視して共有ページ全体画像の生成処理の実行を継続する。
ページ画像提供部68は、ページ画像取得部66により取得された共有ページ全体画像を後述の共有画像表示部70へ出力するとともに顧客端末14へも提供する。実施の形態では、位置情報をビデオチャットサーバ16へ送信し、ビデオチャットサーバ16から顧客端末14へ送信させる。実際には、表示領域検出部56により取得された位置情報と、ページ画像取得部66により取得された共有ページ全体画像の組み合わせを共有画像表示部70および顧客端末14へ提供してもよい。
ビデオチャット部36は、共有画像表示部70、改変受付部72、改変内容通知部74、撮影画像表示部76、チャット表示部78を含む。共有画像表示部70は、表示領域通知部58から提供された位置情報と、ページ画像提供部68から提供された共有ページ全体画像を受け付ける。共有画像表示部70は、ブラウザウィンドウ(以下「ビデオチャットウィンドウ」と呼ぶ。)に表示されたオペレータ用ビデオチャット画面の共有画像表示領域に、共有ページ全体画像のうち位置情報が示す領域の画像を表示させる。具体的には、共有ページ全体画像から、位置情報が示す左上端座標値と右下端座標値により形成される矩形領域のビットマップ画像データを切り出し、その矩形領域のビットマップ画像データを表示させる。これにより、ウェブ共有ウィンドウに表示された共有ページの部分画像と同じ画像を共有画像表示領域に表示させる。
共有画像表示部70は、共有ページ全体画像と位置情報の組み合わせ、もしくは位置情報単体を受け付けるたびに、共有画像表示領域における画像を更新する。すなわち、ウェブ共有ウィンドウに対するオペレータ操作に応じて、表示領域検出部56が位置情報を新たに取得し、ページ画像取得部66が共有ページ全体画像を新たに取得するたびに、新たに取得されたそれらのデータにしたがって共有画像表示領域の表示内容を更新する。これにより、ウェブ共有ウィンドウにおける共有ページの表示内容と、ビデオチャットウィンドウの共有画像表示領域における共有ページの表示内容の同期を維持する。
改変受付部72は、ビデオチャットウィンドウの共有画像表示領域に表示中の共有ページ画像に対するオペレータによる編集・改変操作を検出する。この操作は、オリジナルの共有ページ画像の少なくとも一部を別の態様へ変更する操作であり、例えば新たな線図の描画操作や、既存の線図の削除操作を含む。共有画像表示部70は、オペレータの編集・改変操作を共有ページ画像に反映させ、例えば、オペレータが描画した画像オブジェクトを共有画像表示領域に表示させる。
改変内容通知部74は、共有ページ画像に対するオペレータの編集・改変内容を示す改変情報を顧客端末14へ送信する。実施の形態では、改変情報をビデオチャットサーバ16へ送信し、ビデオチャットサーバ16から顧客端末14へ送信させる。この改変情報は、例えば、オペレータが描画した画像オブジェクトの種類(線図の種類等)と、共有画像表示領域における描画位置を示す座標を含む。
撮影画像表示部76は、オペレータ端末12と接続された不図示のカメラにより撮像された動画(映像)または静止画(以下「オペレータ画像」とする。)を取得し、ビデオチャットウィンドウの撮影画像表示領域に表示させる。さらに、オペレータ端末12と接続された不図示のマイクにより取得された音声をスピーカから出力してもよい。チャット表示部78は、オペレータおよび顧客が入力装置に入力した情報を取得し、ビデオチャットウィンドウのチャット表示領域に表示させる。例えば、オペレータと顧客との対話の中で入力された文字列であり、オペレータと顧客の双方で共有される文章(以下「チャット文章」と呼ぶ。)を表示させる。
オペレータ端末12は、カメラが撮像したオペレータ画像と、オペレータが入力したチャット文章を、公知の方法によりビデオチャットサーバ16を介してオペレータ端末12へ送信する。これらとともに音声データを送信してもよい。また、オペレータ端末12は、顧客端末14において顧客が入力したチャット文章を、公知の方法によりビデオチャットサーバ16を介して取得し、チャット表示部78が画面表示させる。なお、顧客端末14側のカメラで撮像した画像や、顧客端末14側のマイクで取得した音声をさらに取得してもよく、すなわち、画像や音声も双方向で送受されてもよいことはもちろんである。
図5は、図3の顧客端末14の機能構成を示すブロック図である。顧客端末14は、インタフェース部80、ウェブブラウザ部82、ビデオチャット部84を備える。インタフェース部80は、顧客端末14と顧客(端末の操作者)、また、顧客端末14と外部装置とのインタフェース機能を提供する。ウェブブラウザ部82は公知のウェブブラウザの機能を提供する。顧客端末14のOSおよびウェブブラウザは、オペレータ端末12のOSおよびウェブブラウザとは異なる種類であってよい。
ビデオチャット部84は、ビデオチャットのクライアント機能を提供し、例えば顧客用のビデオチャット画面を表示させる。ビデオチャット部84は、ウェブブラウザプログラムで予め定められたAPIを適宜コールして、ウェブブラウザ部82の機能を適宜使用する。ビデオチャット部84は、その機能を示すJAVAスクリプトコードが、ビデオチャットサーバ16から提供される顧客用ビデオチャット画面のウェブページプログラムに記述されることにより実装されてもよい。この場合、ウェブブラウザ部82が、顧客用ビデオチャット画面のウェブページプログラム内に記述されたJAVAスクリプトコードを実行することにより、ビデオチャット部84の各機能が実現されてもよい。
インタフェース部80は、操作検出部86、表示制御部88、通信部90を含む。操作検出部86は、キーボードやマウス等の入力装置に対する顧客の操作入力を検出し、入力された操作内容をビデオチャット部84へ通知する。ビデオチャット部84は、操作検出部40を介して、オペレータの操作を受け付ける。
表示制御部88は、ビデオチャット部84から出力された画像データを不図示のディスプレイドライバへ出力することにより、ディスプレイの表示内容を制御する。ビデオチャット部84は、表示制御部88を介して、各種情報・画像をディスプレイに表示させる。通信部90は、所定の通信プロトコル(例えばHTTP)にしたがって外部装置と通信する。ビデオチャット部84は、通信部44を介して、外部装置(例えばビデオチャットサーバ16)と電子データを送受する。
ビデオチャット部84は共有画像表示部92、撮影画像表示部94、チャット表示部96を含む。共有画像表示部92は、オペレータ端末12の共有画像表示部70に対応し、オペレータ端末12から提供された共有ページ全体画像と位置情報を受け付ける。共有画像表示部92は、ブラウザウィンドウ(以下「ビデオチャットウィンドウ」と呼ぶ。)に表示された顧客用ビデオチャット画面の共有画像表示領域に、共有ページ全体画像のうち位置情報が示す領域の画像を表示させる。具体的には、共有ページ全体画像から、位置情報が示す左上端座標値と右下端座標値により形成される矩形領域のビットマップ画像データを切り出し、その矩形領域のビットマップ画像データを表示させる。これにより、オペレータ端末12のウェブ共有ウィンドウに表示された共有ページの部分画像と同じ画像を共有画像表示領域に表示させる。
共有画像表示部92は、共有ページ全体画像と位置情報の組み合わせ、もしくは位置情報単体を受け付けるたびに、共有画像表示領域における画像を更新する。すなわち、オペレータ端末12のウェブ共有ウィンドウに対するオペレータ操作に応じて、オペレータ端末12の表示領域検出部56が位置情報を新たに取得し、オペレータ端末12のページ画像取得部66が共有ページ全体画像を新たに取得するたびに、新たに取得されたそれらのデータにしたがって共有画像表示領域の表示内容を更新する。これにより、オペレータ端末12のウェブ共有ウィンドウにおける表示内容と、顧客端末14のビデオチャットウィンドウの共有画像表示領域における表示内容の同期を維持する。
また共有画像表示部92は、オペレータ端末12から提供された改変情報にしたがって共有画像表示領域の共有ページ画像に対するオペレータの編集・改変内容を反映させる。例えば、共有画像表示部92は、編集情報が示す種類の画像オブジェクト(各種の線図等)を、編集情報が示す共有画像表示領域の描画位置に設定し、共有画像表示領域に表示させる。これにより、オペレータ端末12と顧客端末14それぞれの共有画像表示領域の表示内容を同期させる。
撮影画像表示部94は、オペレータ端末12のカメラで撮像され、ビデオチャットサーバ16を介して提供されたオペレータ画像を取得し、ビデオチャットウィンドウの撮影画像表示領域に表示させる。音声データも提供される場合はその音声をスピーカから出力させる。チャット表示部96は、オペレータおよび顧客が入力装置に入力した情報、例えばチャット文章を取得し、ビデオチャットウィンドウのチャット表示領域に表示させる。顧客端末14は、顧客が入力したチャット文章を、公知の方法によりビデオチャットサーバ16を介してオペレータ端末12へ送信する。既述したように、顧客端末14は、カメラやマイクで取得した画像や音声をオペレータ端末12へさらに送信してもよい。
以上の構成によるビデオチャットシステム10の動作を、実施の形態のビデオチャットのユーザインタフェースを示す図6を参照しつつ説明する。
商品説明を希望する顧客は、顧客端末14を使用してメーカのウェブサイトにアクセスし、ウェブページ上でオペレータとのビデオチャットの開始を選択する。ビデオチャットサーバ16は、顧客用のビデオチャット画面のウェブページを顧客端末14へ送信する。顧客端末14は、そのウェブページを顧客側ディスプレイ画面120のブラウザウィンドウ(ビデオチャットウィンドウ122)に表示させる。
一方、企業のオペレータは顧客からのビデオチャットの開始要求を受け付けると、ビデオチャットの開始指示をオペレータ端末12へ入力する。オペレータ端末12は、ビデオチャットサーバ16にアクセスし、ビデオチャットサーバ16は、オペレータ用のビデオチャット画面のウェブページをオペレータ端末12へ送信する。オペレータ端末12は、そのウェブページをオペレータ側ディスプレイ画面100のブラウザウィンドウ(ビデオチャットウィンドウ104)に表示させる。
以降、ビデオチャットが開始され、オペレータ端末12の撮影画像表示部76は、オペレータ端末12側のカメラで撮像されたオペレータ画像をビデオチャットウィンドウ104の撮影画像表示領域114に表示させる。同様に、顧客端末14の撮影画像表示部94は、オペレータ端末12から提供されたオペレータ画像をビデオチャットウィンドウ122の撮影画像表示領域126に表示させる。また、オペレータ端末12のチャット表示部78は、オペレータおよび顧客が入力したチャット文章をビデオチャットウィンドウ104のチャット表示領域116に表示させる。同様に、顧客端末14のチャット表示部96は、オペレータおよび顧客が入力したチャット文章をビデオチャットウィンドウ122のチャット表示領域128に表示させる。ビデオチャットサーバ16は、ビデオチャットにおいてオペレータ端末12〜顧客端末14間でやり取りされる映像データ、静止画データ、音声データ、テキストデータ等を中継する。
オペレータは、ビデオチャット中に顧客とウェブページを共有する必要が生じると、オペレータ端末12に予めインストールされたウェブ共有アプリケーションを起動する。オペレータ端末12のページ表示部54は、ウェブ共有ウィンドウ102を表示させ、オペレータは、共有ページのURLを指定する操作をウェブ共有ウィンドウ102に対して入力する。ここでは共有ページ106をオペレータと顧客が共有すべきシチュエーションであることとする。
ページ読込部52は、ウェブ共有ウィンドウ102においてオペレータが指定したウェブページを共有ページとしてウェブサーバ20からの読み込み処理を開始する。このとき、ページ読込部62も同じ共有ページの読み込み処理を開始する。ページ表示部54は、ページ読込部52により読み込まれた共有ページのデータをレンダリングし、レンダリング結果の画像をウェブ共有ウィンドウ102に表示させる。ページ表示部54は、JAVAスクリプトエラーが発生しても、そのエラーを無視して共有ページのレンダリング処理・表示処理を継続する。
ページ表示部54は、ページ読込部52による共有ページ(共有ページのデータとともに読み込まれる画像データ等を含む)の読み込みが完了することを待たずに、レンダリング結果の共有ページの画像をウェブ共有ウィンドウ102に順次表示させる。またページ表示部54は、ページ読込部52による共有ページの読み込みが完了することを待たずに、ウェブ共有ウィンドウ102に表示させた共有ページに対するオペレータの操作、例えば他ページへの遷移指示や、同一ページ内でのアンカーによる移動操作、スクロールバー操作等を受け付けて、共有ページの表示を更新する。
この例では共有ページ106のサイズが大きいため、ウェブ共有ウィンドウ102には共有ページ106の一部のコンテンツが表示される。初期状態ではページの左上端を起点とする所定サイズの矩形領域が表示される。オペレータは、顧客に閲覧させたいコンテンツの領域がウェブ共有ウィンドウ102に表示されるようスクロールバー108を操作する。ページ表示部54は、スクロールバー108に対する操作に応じて、オペレータが所望するコンテンツの領域、すなわち共有ページ106の部分画像をウェブ共有ウィンドウ102に表示させる。
ページ読込部62による共有ページの読み込みが完了すると、ページ読込部62(ページ読込部62がコールするウェブブラウザ部32)は、予め定められた読み込み完了イベントを発生させる。イベント検出部64は、読み込み完了イベントの発生を検出すると、その旨をページ画像取得部66および表示領域検出部56へ通知する。ページ画像取得部66は、読み込み完了イベントの発生を契機として共有ページ全体画像を取得する。すなわち、図6の共有ページ106全体のビットマップ画像を取得する。
並行して表示領域検出部56は、共有ページの全体画像のうちウェブ共有ウィンドウ102で表示中の領域について、当該領域を特定可能な位置情報を取得する。ウェブ共有部34(表示領域通知部58、ページ画像提供部68)は、共有ページ全体画像と位置情報の組み合わせをビデオチャット部36へ送信する。また、共有ページ全体画像と位置情報の組み合わせをビデオチャットサーバ16を介して顧客端末14へ送信する。
オペレータ端末12の共有画像表示部70は、ウェブ共有部34から提供された共有ページ全体画像と位置情報にもとづいて、共有ページ106の部分画像をビデオチャットウィンドウ104の共有画像表示領域110に表示させる。同様に顧客端末14の共有画像表示部92は、オペレータ端末12のウェブ共有部34から提供された共有ページ全体画像と位置情報にもとづいて、共有ページ106の部分画像をビデオチャットウィンドウ122の共有画像表示領域124に表示させる。これにより、オペレータ端末12のウェブ共有ウィンドウ102とビデオチャットウィンドウ104、顧客端末14のビデオチャットウィンドウ104における共有ページの表示内容が整合する。
このように、ビデオチャットシステム10では、顧客端末14に共有ページの構造化文書を解析・表示させるのではなく、オペレータ端末12のウェブ共有部34が共有ページの構造化文書を解析し、共有ページの画像データを生成する。そして、その画像データを顧客端末14へ提供し、表示させる。これにより、オペレータ端末12と顧客端末14のOSやウェブブラウザの種類が異なっても、顧客端末14は画像データを表示させるだけであるため、オペレータ端末12における共有ページの表示態様と、顧客端末14における共有ページの表示態様を整合させることができる。すなわち、顧客端末14の環境として様々なOSやウェブブラウザを許容するビデオチャットサービスを実現できる。
また、オペレータ端末12のウェブ共有部34は、共有ページの解析処理等において発生したエラーは無視して、共有ページの全体画像を生成するため、顧客端末14での共有ページの表示時にエラーが発生することを抑制できる。例えば、オペレータ端末12と顧客端末14が個々に共有ページを解析する場合、双方の端末で生じたエラーへの対処方法がオペレータと顧客で異なることがある。この場合、オペレータ端末12における共有ページの表示態様と、顧客端末14における共有ページの表示態様が不整合となり、オペレータと顧客間の情報共有が不十分となってしまう。ビデオチャットシステム10では、共有ページの解析処理等で生じたエラーに、オペレータ端末12のウェブ共有部34が一元的に対処するため、双方の端末間で共有ページの表示態様を整合させることができる。
また、ウェブ共有ウィンドウ102の表示処理は、共有ページ画像化のための読み込み処理とは独立して実行するため、共有ページの読み込み完了を待たずに、ウェブ共有ウィンドウ102に対するオペレータ操作を受け付け、その操作に応じた処理を実行できる。これにより、1つのページの読み込み完了を待たずに、ウェブ共有ウィンドウ102で表示させるページを随時切替えることができ、ウェブ共有ウィンドウ102に最終的な共有ページを表示させるまでの時間を短縮することができる。すなわち、顧客側ディスプレイ画面120に共有ページ画像を表示させるまでの時間を短縮することができる。例えば、ウェブ共有ウィンドウ102の表示内容がページA→ページB→ページCと遷移し、ページCが共有ページとなる場合に、ページAおよびページBの読み込み完了を待つ必要がなく、ページ遷移による遅延時間を低減できる。
また、イベント検出部64で読み込み完了イベントを検出した時点で、ページ画像取得部66が共有ページ全体画像を取得する処理と、表示領域検出部56が位置情報を取得する処理を並行実行する。これにより、共有ページの読み込みが完了してから、オペレータがウェブ共有ウィンドウ102において共有ページの表示領域を調整する方式に比べて遅延時間を低減できる。すなわち、顧客側ディスプレイ画面120に共有ページ画像を表示させるまでの時間を短縮することができる。
動作の説明を再開する。ウェブ共有ウィンドウ102で表示対象とする共有ページそのもの(共有ページのURL)が変更されると、新たな共有ページの全体画像と位置情報をビデオチャット部36および顧客端末14へ提供する。ウェブ共有ウィンドウ102に表示される共有ページそのものが変更されない操作、すなわち他ページへの遷移が発生しない操作であり、同一ページ内での移動操作やスクロールバー108の移動操作を受け付けた場合は、ページ読込部52およびページ読込部62はウェブページの新たな取得を抑制する。またページ画像取得部66は、共有ページ全体画像の新たな取得を抑制し、ページ画像提供部68は、共有ページ全体画像の新たな送信を抑制する。その一方で、表示領域検出部56は、新たな位置情報を取得し、表示領域通知部58は、その新たな位置情報をビデオチャット部36および顧客端末14へ提供する。
このように、共有ページ全体画像を最初に一度、ビデオチャットクライアントへ提供した後は、オペレータの操作が共有ページ自体を変更するものでなければ、再度の送信を抑制し、差分の位置情報のみを提供する。例えば、オペレータがウェブ共有ウィンドウ102において1つの共有ページをスクロールさせつつ商品説明を行う間は、表示対象となる共有ページの部分画像変更に伴う差分の位置情報のみを顧客端末14へ提供する。ビデオチャットシステム10では、共有ページの画像データと、表示領域を示す位置情報を分離したことで、一般的に大きなデータサイズとなる画像データの送信頻度を抑制する。これにより、各装置のシステムリソースや、通信網18のネットワークリソースの消費量を低減できる。
なお、オペレータ端末12の共有画像表示部70と、顧客端末14の共有画像表示部92は、位置情報のみが新たに提供された場合、事前に(最近の過去時点に)提供された共有ページ全体画像と、新たに提供された位置情報にもとづいて、共有画像表示領域110および共有画像表示領域124の表示内容を更新する。これにより、オペレータ端末12のウェブ共有ウィンドウ102とビデオチャットウィンドウ104、顧客端末14のビデオチャットウィンドウ104における共有ページの表示内容の整合性を維持できる。
オペレータは、共有画像表示領域110に表示された共有ページ画像に対して、適宜改変操作を入力する。オペレータ端末12の改変受付部72は、その改変操作を受け付け、共有画像表示部70は、共有ページ画像に改変内容を反映する。図6では、顧客の注意を喚起するための描画オブジェクト112を追加的に描画している。改変内容通知部74は、改変内容を示す改変情報を顧客端末14へ送信する。顧客端末14の共有画像表示部92は、改変情報が示す改変内容を共有画像表示領域124に表示中の共有ページ画像に対して反映する。
このように、オペレータ端末12にも共有ページ画像を表示させることにより、オペレータは共有ページ画像の改変・編集が可能になる。また、オペレータによる改変内容は顧客端末14における共有ページ画像に反映するため、共有画像に対する改変内容も共有でき、オペレータと顧客の一層円滑な意思疎通を実現できる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記実施の形態では、オペレータ端末12と顧客端末14間で送受されるビデオチャット関連データをビデオチャットサーバ16が中継することとした。変形例として、オペレータ端末12と顧客端末14は、P2P通信等の公知技術にもとづいて、ビデオチャット関連データを直接送受してもよい。
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。