以下に、本発明にかかるサービス提供装置、サービス提供方法およびサービス提供プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[用語の説明]
最初に、以下の実施例で用いる主要な用語を説明する。「サービス」とは、いわゆるWebサービス(WWW関連技術を適用することで、アプリケーションの機能をネットワーク経由で実現するサービス)のことである。インターネットなどIPによって制御されるネットワークにおいて、「サービス提供装置」がサービスを制御し、ネットワークに接続する「端末」が「サービス」の提供を受けるという関係にある。
ところで、「サービス提供装置」は、端末各々の関係や端末とサービス提供装置との関係、もしくは端末を利用する利用者同士の関係などに基づいて、サービスを制御する。具体的に例を挙げて説明すると、例えば、IMサービスにおいて、端末Aを利用する利用者と端末Bを利用する利用者とがファイル共有を実現する場合を想定する。端末Bが、「サービス提供装置」にアクセスしている際に、端末Aが、「サービス提供装置」にファイルをアップロードしたとする。このような場合、「サービス提供装置」は、端末Aの利用者と端末Bの利用者との関係に基づいて、端末Bにファイルを送信する。すなわち、「サービス提供装置」は、例えば、端末Aの利用者から利用者IDやパスワードの入力を受け付け、端末Bの利用者から利用者IDやパスワードの入力を受け付けることで、端末Aの利用者と端末Bの利用者とを特定する。そして、「サービス提供装置」は、特定した端末Aの利用者と端末Bの利用者との関係が、ファイル共有を互いに認めている関係であれば、当該関係に基づいて、端末Bにファイルを送信するよう、サービスを制御するのである。
また、例えば、SNS(Social Networking Service)において、サイトの運営者である端末Aの利用者が端末Bの利用者にサイトを閲覧させる場合を想定する。このような場合、「サービス提供装置」は、端末Aの利用者と端末Bの利用者との関係に基づいて、端末Bの利用者によるサイトの閲覧を制御する。すなわち、「サービス提供装置」は、特定した端末Aの利用者と特定した端末Bの利用者との関係が、端末Aの利用者によって端末Bの利用者によるサイトの閲覧が認められている関係であれば、当該関係に基づいて、端末Bの利用者によるサイトの閲覧を許可するよう、サービスを制御するのである。
また、例えば、音楽情報を提供する「サービス提供装置」が、端末Aの利用者に音楽情報のダウンロードを許可する場合を想定する。このような場合、「サービス提供装置」は、端末Aの利用者と「サービス提供装置」との関係に基づいて、端末Aによるダウンロード通信を制御する。すなわち、「サービス提供装置」は、特定した端末Aの利用者と「サービス提供装置」との関係が、「サービス提供装置」によって端末Aの利用者によるダウンロード通信が認められている関係であれば、当該関係に基づいて、端末Aによるダウンロード通信を許可するよう、サービス提供を制御するのである。
このように、端末各々の関係や端末とサービス提供装置との関係、もしくは端末を利用する利用者同士の関係などは、そのサービス内容によって様々な態様があるが、いずれの場合も、「サービス提供装置」が、これらの関係に基づいてサービスを制御することに変わりはない。
もっとも、従来のWebサービスは、このような関係が、予め登録されたものであることを前提として提供されてきた。例えば、従来の「サービス提供装置」は、利用者同士の関係などを予めバディリストに登録し、登録したバディリストに基づいて、チャットや画像データの共有などのサービスを制御していたのである。これに対し、本発明における「サービス提供装置」は、予め登録されたバディリストのような関係のみならず、通信相手との関係が一時的な場合(アドホックに変化する関係の場合)にも、かかる一時的な通信関係に基づいて、チャットや画像データの共有などのサービスを制御するものである。
[サービス提供システムの全体構成]
次に、図1を用いて、実施例1に係るサービス提供システムの全体構成を説明する。図1は、実施例1に係るサービス提供システムの全体構成を示す図である。図1に示すように、サービス提供システムは、端末200、端末400、SIP(Session Initiation Protocol)プロキシ300、サービス提供装置100を有する。なお、サービス提供システムは、これら以外にも、例えばHGW(ホームゲートウェイ)などを有していてもよい。
端末200は、SIPによって通信を確立する過程の通信(SIP通信)やSIPによって確立された通信を行うSIPフォン機能と、ブラウザ等によってWebサービスを利用できる情報表示機能とを有する。また、SIPフォンとPCとは別々の筐体で実現されていてもよく、一つの筐体で実現されていてもよい。なお、端末400は、端末200と同様なのでここでは詳細な説明は省略する。
SIPプロキシ300は、端末からのリクエストを他の端末に転送するなどSIP通信に関する制御を実施するサーバ装置である。例えば、SIPプロキシ300は、端末200のSIPフォン機能からのリクエスト(INVITE)を端末400のSIPフォン機能に転送し、端末400のSIPフォン機能からの応答(200 OK)を端末200のSIPフォン機能に転送する。このようにすることで、SIPプロキシ300は、端末200と端末400との間における音声通話を可能とする。
サービス提供装置100は、端末各々の関係や端末とサービス提供装置100との関係、もしくは端末を利用する利用者同士の関係などに基づいて、サービスを制御する。例えば、サービス提供装置100は、端末200と端末400とがSIP接続されている状態で、端末200の情報表示機能と端末400の情報表示機能との間でやり取りされるWebサービスを制御する。なお、SIPプロキシ300とサービス提供装置100は、別々の筐体で実現されていてもよく、一つの筐体で実現されていてもよい。
このような状態において、サービス提供システムのサービス提供装置100は、ユーザ宅間でアドホックに変化する関係に基づいてサービスを制御する前段階として、端末200の情報表示機能からHTTPによるアクセスを受け付ける(図1の(1)参照)。続いて、サービス提供装置100は、端末200の情報表示機能が利用するIPv6表記のIPアドレスを受け付けたアクセスから取得し、取得したIPアドレスに対して一意な一時アドレスを対応付けて仮登録する(図1の(2)参照)。そして、サービス提供装置100は、端末200の情報表示機能が利用するIPv6表記のIPアドレスと対応付けた一時アドレスをアクセス元の端末200の情報表示機能に送信する(図1の(3)参照)。
その後、サービス提供システムのSIPプロキシ300は、サービス提供装置100を宛先とするSIPのINVITEであって、ユーザ等によって入力された一時アドレスを含むINVITEを端末200のSIPフォン機能から受信する(図1の(4)参照)。続いて、SIPプロキシ300は、受信した一時アドレスを含むSIPのINVITEをサービス提供装置100に転送する(図1の(5)参照)。
そして、サービス提供装置100は、SIPプロキシから受信したINVITEに含まれる一時アドレスが仮登録しておいた一時アドレスと一致する場合に、該INVITEから電話番号(SIP−URI(Uniform Resource Identifier))を取得し、取得した電話番号と該一時アドレスに対応付けて仮登録されるIPアドレスとを対応付けて登録する(図1の(6)参照)。その後、サービス提供装置100は、SIPプロキシ300を介してINVITEに対する応答(200 OK)を端末200のSIPフォン機能に送信する(図1の(7)参照)。
また、上記(1)〜(7)までの処理は、サービス提供装置100と端末400との間でも実施される。したがって、サービス提供装置100は、端末400のSIPフォン機能が利用する電話番号と、端末400の情報表示機能が使用するIPv6表記のIPアドレスとを対応付けて登録することができる。
その後、サービス提供装置100は、端末200のSIPフォン機能と端末400のSIPフォン機能とがSIP接続中であることを条件に、つまり、アドホックな関係にあることを条件に、端末200の情報表示機能と端末400の情報表示機能との間にやり取りされるWebサービスを制御するのに際して、IPアドレスによる認証を実施する(図1の(8)参照)。
具体的には、サービス提供装置100は、端末200の情報表示機能及び端末400の情報表示機能の各々に、Webサービスを一意に識別するWebセッション情報を払出すのに際して、図1の(6)で登録したIPアドレスからのアクセスであるか否かを判定する。そして、サービス提供装置100は、図1の(6)で登録したIPアドレスからのアクセスに対して、Webセッション情報を払出す。その後の一時的な通信関係(アドホックに変化する関係)に基づいてサービスを制御する例については、後述するので、ここでは省略する。
このように、実施例1に係るサービス提供システムでは、一時的な通信関係に基づいてサービスを制御する前処理として、実際に使用されるIPアドレスと電話番号との対応付けを登録することができる。この結果、一時的な通信関係に基づいてサービスを制御するのに際して、サービスを利用する端末の性能やIPアドレスの体系に関係なく、一時的な通信関係に基づいてサービスを提供することが可能である。
[サービス提供システムの構成]
次に、図2〜図7を用いて、サービス提供システムが有する各装置の構成について説明する。ここでは、ユーザ宅の端末構成がいずれもSIPフォン機能と情報表示機能との一体型である場合を想定し、また、SIPプロキシが汎用的なSIPプロキシである場合を想定するので、以下では、サービス提供装置および一方の端末についてのみ説明する。
(サービス提供装置の構成)
図2を用いて、サービス提供システムにおけるサービス提供装置の構成を説明する。図2は、実施例1に係るサービス提供装置の構成を示すブロック図である。図2に示すように、サービス提供装置100は、通信制御I/F部110と記憶部120と制御部130とを有する。
通信制御I/F部110は、HTTP(HyperText Transfer Protocol)通信用の一般的なインタフェースおよびライブラリを備え、端末200との間で情報を送受信する。具体的には、通信制御I/F部110は、後述するcallセッション情報受信部132が端末200からcallセッション情報を受信する通信や、後述するWebセッション情報払出部134が端末200にWebセッション情報を送信する通信や、後述するサービス提供部136が端末200にサービスを提供する通信などを行う。なお、実施例1においては、上記したいずれの通信もHTTPで行われるものとして説明するが、中でも、サービス提供部136による通信はWebサービスに関係する通信であるという意味で、「Web通信」と呼ぶ。
記憶部120は、制御部130における各種制御に用いられる情報を記憶する半導体メモリ素子やハードディスクなどの記憶装置である。このような記憶部120は、図2に示すように、仮登録DB121とユーザ管理DB122とセッション情報DB123を有する。
仮登録DB121は、ユーザ宅の端末が使用するIPアドレスと電話番号とが対応付けて登録される前に、Webブラウザ等によるHTTPアクセスから取得したユーザ宅の端末のIPアドレスを記憶する。そして、仮登録DB121は、記憶するIPアドレスが電話番号と対応付けられて、ユーザ管理DB122に記憶された場合に、該IPアドレスを消去する。
例えば、仮登録DB121は、図3に示すように、「ID、電話番号、IPアドレス、登録プロトコル、一時アドレス」を対応付けて記憶する。「ID」は、レコードを識別する識別子であり、「電話番号」は、ユーザ宅の端末が使用するIPアドレスと電話番号とが対応付けて登録される前に、SIP通信等から取得されたユーザ宅(送信元)の電話番号が格納される。「IPアドレス」は、ユーザ宅の端末が使用するIPアドレスと電話番号とが対応付けて登録される前に、Webブラウザ等によるHTTPアクセスから取得されたIPアドレスが格納される。「登録プロトコル」は、IPアドレス又は電話番号を取得したプロトコルを示す。「一時アドレス」は、「IPアドレス」に記憶されるIPアドレスを一意に識別する識別子であり、どのような情報であってもよい。
具体的には、仮登録DB121は、通常、図3の(a)に示すように、いずれに情報も記憶していない。そして、仮登録DB121は、図3の(b)に示すように、後述するIPアドレス対応付け部131によってWebブラウザによるアクセスからIPアドレスが取得された場合に、一意なIDを生成して、取得されたIPアドレスに関する情報を記憶する。その後、仮登録DB121は、図3の(c)に示すように、後述するIPアドレス対応付け部131によって、電話番番号と対応付けられるIPアドレスに関する情報を消去する。なお、図3に示す各情報は、説明の便宜上から特定の数字を示したものに過ぎず、数字に何ら特別の意味があるものではない。また、図3は、仮登録DBに記憶される情報の例を示す図である。
ユーザ管理DB122は、ユーザ宅で利用される電話番号とIPアドレスとの対応付けを記憶する。例えば、ユーザ管理DB122は、図4に示すように、「ID、電話番号、IPアドレス、登録日時」を記憶する。「ID」は、レコードを一意に識別する識別子である。「電話番号」は、ユーザ宅が利用する電話番号であり、「IPアドレス」は、ユーザ宅が利用するIPアドレスであり、「登録日時」は、電話番号とIPアドレスとの対応付けが登録された日である。
具体的には、ユーザ管理DB122は、後述するIPアドレス対応付け部131によって対応づけられて格納されるまで、図4の(a)に示すように、いずれの情報も記憶していない。そして、IPアドレス対応付け部131が、仮登録DB121に記憶されるIPアドレスを利用する端末200の電話番号であると判定したとする。その場合に、ユーザ管理DB122は、図4の(b)に示すように、仮登録DB121に記憶されるIPアドレスと電話番号とを対応付け、さらに記憶した日をあわせて記憶する。なお、図4に示す各情報は、説明の便宜上から特定の数字を示したものに過ぎず、数字に何ら特別の意味があるものではない。また、図4は、ユーザ管理DBに記憶される情報の例を示す図である。
セッション情報DB123は、Webセッション情報をcallセッション情報と対応づけて記憶する。具体的には、セッション情報DB123は、まず、後述するcallセッション情報受信部132によって受信されたcallセッション情報を記憶し、次に、後述するWebセッション情報払出部134によって払い出されたWebセッション情報をcallセッション情報と対応づけて記憶する。また、セッション情報DB123が記憶したこれらのセッション情報は、後述するサービス提供部136による処理に利用されるなどする。
ここで、callセッション情報およびWebセッション情報について説明する。本来、セッション情報とは、OSI(Open Systems Interconnection)でいうところの第5層で通信を一意に識別する情報である。すなわち、実施例1に係るサービス提供システムにおいては、通信として、SIP通信とWeb通信(HTTP通信)とが行われることを想定しているが、SIP通信もWeb通信も、いずれもTCP(Transmission Control Protocol)通信であるという点で、第4層では識別することができない。このため、端末間で確立された通信にセッション情報が付与されることで、当該通信がSIP通信であるのか、あるいは、Web通信であるのかが識別される。すなわち、callセッション情報とは、SIP通信であることを示すセッション情報であり、Webセッション情報とは、Web通信であることを示すセッション情報である。
また、セッション情報は、単にSIP通信とWeb通信とを識別するのみならず、端末間で確立された通信が、他の端末間で確立された通信とは異なる通信であることをも識別する。これを言い換えると、callセッション情報とは、端末間でSIPによって確立された通信を一意に識別する情報であり、Webセッション情報とは、端末間で確立されたWeb通信を一意に識別する情報である。callセッション情報としては、SIP通信に含まれる情報である『Call-ID』、または、『From』、『To』、『tag』、IPアドレス、もしくは、これらの組合せを用いる手法や、SIP通信に含まれるその他の情報を組合せて用いる手法などが考えられ、SIPによって確立された通信を一意に識別することが可能な情報を用いる手法であれば、どのような手法でもよい。一方、Webセッション情報としては、端末200がWeb通信を行う際に利用するブラウザに付与された情報である『セッションID』(CookieのIDなど)を用いる手法などが考えられる。なお、これらのcallセッション情報やWebセッション情報は、一般的には確立されたセッションごとにユニークに生成されるものであり、通常のアプリケーション利用の範囲では、競合しないものである。
セッション情報DB123の説明に戻ると、セッション情報DB123は、例えば、図5に示すように、callセッション情報とWebセッション情報との対応づけを記憶する。すなわち、後述するcallセッション情報受信部132によって一方の端末200からcallセッション情報『100』が受信されると、セッション情報DB123は、図5の(a)に示すように、callセッション情報『100』を記憶する。次に、後述するWebセッション情報払出部134によってWebセッション情報『123』が払い出されると、セッション情報DB123は、図5の(b)に示すように、Webセッション情報『123』をcallセッション情報『100』に対応づけて記憶する。同様に、セッション情報DB123は、他方の端末200についても、図5の(c)に示すように、callセッション情報『100』を記憶し、図5の(d)に示すように、Webセッション情報『456』をcallセッション情報『100』に対応づけて記憶する。その後、後述するサービス提供部136による関連づけが行われると、セッション情報DB123は、図5の(e)に示すように、関連づけを記憶する。なお、図5に示すcallセッション情報やWebセッション情報は、説明の便宜上から特定の数字を示したものに過ぎず、数字に何ら特別の意味があるものではない。また、図5は、セッション情報DBに記憶する情報の例を示す図である。
また、セッション情報DB123は、callセッション情報『100』とWebセッション情報『123』とを対応づけて格納するだけでなく、図6に示すように、callセッション情報としての発側IPアドレス『10.0.10.111』と着側IPアドレス『10.0.10.199』とを対応づけて格納してもよい。さらに、セッション情報DB123は、端末200が使用するWeb通信上のIPアドレス『2001:fa:1001:2400::1』も対応づけて格納してもよい。
ここで記憶される「callセッション情報」は、SIP通信であることを示すセッション情報であり、「Webセッション情報」は、Web通信であることを示すセッション情報である。「発側IPアドレス」は、IPアドレス対応付け部131によって、SIP通信における発側のSDP(Session Description Protocol)から取得された、SIP通信で使用されるIPアドレスである。「着側IPアドレス」は、IPアドレス対応付け部131によって、SIP通信における着側のSDPから取得された、SIP通信で使用されるIPアドレスである。「Web通信のIPアドレス」は、「発側IPアドレス」又は「着側IPアドレス」に記憶されるIPアドレスをSIP通信で利用する端末がWeb通信で利用する際のIPアドレスである、なお、図6に示すcallセッション情報やWebセッション情報は、説明の便宜上から特定の数字を示したものに過ぎず、数字に何ら特別の意味があるものではない。また、図6は、セッション情報DBに記憶する情報の例を示す図である。
図2に戻り、制御部130は、集積回路又はCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。この制御部130は、IPアドレス対応付け部131と、callセッション情報受信部132と、認証実行部133と、Webセッション情報払出部134と、関連づけ部135と、サービス提供部136とを有する。
IPアドレス対応付け部131は、ユーザ宅間でアドホックに変化する関係に基づいてサービスを制御する前段階として、ユーザ宅で利用する電話番号とIPアドレスとの対応付けを実施してユーザ管理DB122に記憶する。例えば、IPアドレス対応付け部131は、ユーザ宅の端末からHTTPによるアクセスを受け付けると、該アクセスからIPアドレスを取得するとともに、取得したIPアドレスに対して一時アドレスを発行する。そして、IPアドレス対応付け部131は、アクセス元の端末に一時アドレスを送信するとともに、取得したIPアドレスと発行した一時アドレスとを対応付けて仮登録DB121に格納する。
その後、IPアドレス対応付け部131は、一時アドレスを含むSIP通信におけるINVITEをユーザ宅の端末から受信した場合に、該一時アドレスが仮登録DB121に登録されているか否かを判定する。そして、IPアドレス対応付け部131は、一時アドレスが仮登録DB121に登録されている場合に、仮登録DB121に登録されている「IPアドレス」とSIP通信に含まれる「電話番号」とを対応付けて、ユーザ管理DB122に格納する。この際、IPアドレス対応付け部131は、仮登録DB121の情報を削除する。また、IPアドレス対応付け部131は、SIP通信のSDP等に含まれるIPアドレス、すなわち、SIP通信上で利用されるIPアドレスもさらに対応付けて記憶してもよい。
callセッション情報受信部132は、callセッション情報を受信する。具体的には、callセッション情報受信部132は、SIPによって通信を確立した端末200から送信されたcallセッション情報を受信することで、callセッション情報を取得する。また、callセッション情報受信部132は、受信したcallセッション情報を、セッション情報DB123に格納する。また、callセッション情報受信部132は、端末200からcallセッション情報を受信する場合に、該端末200で使用されるIPアドレスもあわせて受信する。そして、callセッション情報受信部132は、受信したIPアドレスを認証実行部133に送信する。
認証実行部133は、IPアドレスによる認証を実施し、認証を許可した場合には、その旨をWebセッション情報払出部134に伝達し、認証を拒否した場合には、認証拒否を端末200に伝達する。例えば、認証実行部133は、callセッション情報受信部132がcallセッション情報を受信したIPアドレスと当該callセッション情報に含まれる電話番号とがユーザ管理DB122に記憶されている場合に、認証を許可し、ユーザ管理DB122に記憶されていない場合に、認証を拒否する。
また、セッション情報DB123が、図6に示すように、「callセッション情報」と「Web通信のIPアドレス」とを対応付けて記憶しているとする。この場合、認証実行部133は、callセッション情報受信部132が受信したcallセッション情報とIPアドレスとの組がセッション情報DB123に記憶されているか否かによる認証を行ってもよい。
Webセッション情報払出部134は、認証実行部133によって認証が許可された場合に、認証が許可された端末に対してWebセッション情報を払い出す。具体的には、Webセッション情報払出部134は、callセッション情報受信部132によってcallセッション情報が受信されると、当該callセッション情報を送信した端末200が行うWeb通信(サービス提供を受けるために端末200がサービス提供装置100との間で行うWeb通信)に付与する情報として、Webセッション情報を払い出す。また、Webセッション情報払出部134は、払い出したWebセッション情報を、端末200に送信する。
関連づけ部135は、Webセッション情報をcallセッション情報に対応づけて格納する。具体的には、関連づけ部135は、Webセッション情報払出部134によって払い出されたWebセッション情報を、callセッション情報受信部132によって取得されたcallセッション情報に対応づけてセッション情報DB123に格納する。
サービス提供部136は、サービスを制御する。具体的には、サービス提供部136は、セッション情報DB123に格納されているWebセッション情報各々を用いて提供されるサービスを、互いに関連づけて制御する。
例えば、サービス提供部136は、図5の(d)および(e)に示すように、セッション情報DB123によって記憶されている複数のcallセッション情報の内、2つのcallセッション情報『100』各々が、SIPによって同一の通信として確立されたものであることを判別する。そして、サービス提供部136は、callセッション情報『100』に対応づけて記憶されているWebセッション情報『123』が付与されたWeb通信と、Webセッション情報『456』が付与されたWeb通信とを用いて提供されるサービスを、互いに関連づけて制御する。
すなわち、例えば、他方の端末200が、Webセッション情報『456』が付与されたWeb通信によってサービス提供装置100にアクセスしている際に、一方の端末200が、Webセッション情報『123』が付与されたWeb通信によってサービス提供装置100に画像データをアップロードしたとする。このような場合、端末200各々の関係は、SIPによって同一の通信を確立した関係であるので、この関係は、画像データの共有を互いに認めている関係であるとして、実施例1におけるサービス提供部136は、他方の端末200に画像データを送信するよう、サービスを制御する。
ここで、改めて、サービス提供装置100によるサービス提供について考える。すなわち、サービス提供装置100によるサービス提供が、端末200各々の関係に基づいて制御される点は、従来のサービス提供装置と同様であるが、実施例1におけるサービス提供装置100が、「端末200各々の関係」をどのように把握しているかが重要である。
つまり、実施例1におけるサービス提供装置100は、従来のサービス提供装置のように、予め記憶部に登録された関係を「端末200各々の関係」として把握するのではなく、サービス提供部136が、callセッション情報各々がSIPによって同一の通信を確立したものであることを示す場合に、「端末200各々の関係」を把握するのである。言い換えると、サービス提供装置100は、SIPによって同一の通信を確立した端末200各々の関係のように、通信相手となる端末200との関係が一時的な場合にも、かかる一時的な通信関係に基づいて、当該端末200各々において行われるWeb通信を互いに関連づけることで、一時的な通信関係に関連づけたサービス提供を可能としている。
なお、実施例1のように、第1の通信がSIPによって通信を確立する過程の通信である場合には、「端末200各々の関係」がSIPによる認証済みの関係であるという点でも意味がある。すなわち、SIP通信においては、Digest(ダイジェスト)認証などが行われるのが一般的であり、端末200の間でSIPによって通信が確立されたということは、端末200各々の関係が認証済みであることを示す。
(端末200の構成)
次に、図7を用いて、ユーザ端末である端末200の構成について説明する。図7は、実施例1に係る端末の構成を示すブロック図である。端末200は、以下に説明する各部が汎用的なPC(Personal Computer)などに備えられることによって実現され、図7に示すように、入力部201と、出力部202と、入出力制御I/F部203と、SIPフォン機能部210と、情報表示機能部220とを有する。
入力部201は、SIPフォン機能部210や情報表示機能部220に用いられる情報や、各種処理をするための操作指示などを、番号キー、キーボード、マウス、マイクなどによって入力する。例えば、入力部201は、他方の端末200との間でSIPによって通信を確立するにあたり、SIP−URIの元になる電話番号を、キーボードによって入力するなどする。
出力部202は、SIPフォン機能部210や情報表示機能部220による各種処理の結果や、各種処理をするための操作指示などを、ディスプレイ、プリンタ、スピーカなどに出力する。例えば、出力部202は、後述するサービス利用部225によってサービス提供装置100からサービス提供を受けた際に、当該サービスの内容をディスプレイに表示するなどする。
入出力制御I/F部203は、入力部201と、出力部202と、SIPフォン機能部210と、情報表示機能部220との間における情報転送を制御する。
SIPフォン機能部210は、端末200において、SIPによって通信を確立する過程の通信(SIP通信)や、SIPによって確立された通信を行う部であり、特に本発明に密接に関連するものとしては、図7に示すように、SIP通信部211と、制御部212とを備える。
SIP通信部211は、SIP用の一般的なインタフェースおよびライブラリを備え、他方の端末200との間で(SIP PROXYを介するなどして)情報を送受信する。具体的には、SIP通信部211は、他方の端末200との間でSIPによって確立される通信の情報などを送受信する。また、SIP通信部211は、ユーザから一時アドレスの入力を受け付けた場合に、入力された一時アドレスを含めたSIP接続要求等をSIPプロキシに送信する。
制御部212は、SIPフォン機能部210における各種制御を行う集積回路又はCPUやMPUなどの電子回路である。この制御部212は、図7に示すように、callセッション情報収集部213と、起動指示部214とを備える。
callセッション情報収集部213は、callセッション情報を収集する。具体的には、callセッション情報収集部213は、他方の端末200との間でSIPによって確立された通信を一意に識別するcallセッション情報を、SIP通信に含まれる情報から収集する。また、callセッション情報収集部213は、収集したcallセッション情報を、起動指示部214に伝達する。例えば、callセッション情報収集部213は、callセッション情報としては、SIP通信に含まれる『Call-ID』、または、『From』、『To』、『tag』、IPアドレス、もしくは、これらの組合せを収集したり、SIP通信に含まれるその他の情報を収集する。なお、callセッション情報は、SIPによって確立された通信を一意に識別することが可能な情報であれば、どのような情報であってもよい。
起動指示部214は、情報表示機能部220を起動する指示を行う。具体的には、起動指示部214は、callセッション情報収集部213によってcallセッション情報を伝達されると、情報表示機能部220を起動する指示(情報表示機能部220が起動している場合には、後述するcallセッション情報送信部223を起動する指示など)を行うとともに、サービス提供装置100のURL(Uniform Resource Locator)やcallセッション情報をcallセッション情報送信部223に伝達する。
情報表示機能部220は、端末200において、HTTP通信を行うブラウザであり、特に、図7に示すように、HTTP通信部221と、制御部222とを備える。HTTP通信部221は、HTTP通信用の一般的なインタフェースおよびライブラリを備え、サービス提供装置100との間で情報を送受信する。具体的には、HTTP通信部221は、後述するcallセッション情報送信部223からサービス提供装置100にcallセッション情報を送信する通信や、後述するWebセッション情報受信部224がサービス提供装置100からWebセッション情報を受信する通信や、後述するサービス利用部225がサービス提供装置100からサービス提供を受ける通信などを行う。
制御部222は、情報表示機能部220における各種制御を行う集積回路又はCPUやMPUなどの電子回路である。この制御部222は、図7に示すように、callセッション情報送信部223と、Webセッション情報受信部224と、サービス利用部225とを備える。
callセッション情報送信部223は、callセッション情報を送信する。具体的には、callセッション情報送信部223は、起動指示部214からサービス提供装置100のURLやcallセッション情報を伝達されると、URLで示されるサービス提供装置100にcallセッション情報を送信する。なお、実施例1においては、端末200がサービス提供装置100のURLを予め記憶部に記憶していることで、callセッション情報送信部223が当該URLで示されるサービス提供装置100にcallセッション情報を送信する。
Webセッション情報受信部224は、Webセッション情報を受信する。具体的には、Webセッション情報受信部224は、サービス提供装置100からWebセッション情報を受信する。また、Webセッション情報受信部224は、受信したWebセッション情報を、サービス利用部225に伝達する。
サービス利用部225は、サービス提供装置100によって提供されるサービスの提供を受け、サービスを利用する。具体的には、サービス利用部225は、Webセッション情報受信部224によって伝達されたWebセッション情報を、HTTP通信を行うブラウザに付与し、サービス提供を受けるために、サービス提供装置100との間でWeb通信を行う。
[処理の流れ]
次に、図8を用いて、サービス提供システムの処理シーケンスを説明する。図8は、実施例1に係るサービス提供システムによる処理の流れを示すシーケンス図である。
(シーケンス)
図8に示すように、端末200の情報表示機能は、サービス提供装置100に対してWebアクセスを実施する(ステップS101)。続いて、サービス提供装置100のIPアドレス対応付け部131は、受け付けたWebアクセスからIPアドレスを取得し、取得したIPアドレスに対して一意な一時アドレスを払出すとともに、該IPアドレスと一時アドレスとを対応付けて仮登録DB121に格納する(ステップS102)。その後、サービス提供装置100のIPアドレス対応付け部131は、アクセス元である端末200の情報表示機能に対して、払い出した一時アドレスを応答する(ステップS103)。
その後、端末200のSIPフォン機能は、情報表示機能によって受信された一時アドレスの入力をユーザから受け付ける(ステップS104)。続いて、端末200のSIPフォン機能は、SIPプロキシ300を介して、サービス提供装置100を接続先とするSIP接続要求(INVITE)を送信する(ステップS105)。
そして、サービス提供装置100のIPアドレス対応付け部131は、端末200のSIPフォン機能から受信したINVITEに含まれる一時アドレスに一致するIPアドレスを仮登録DB121から取得し、取得したIPアドレスとINVITEに含まれる電話番号(SIP−URI)とを対応付けて、ユーザ管理DB122に格納する(ステップS106)。その後、サービス提供装置100のIPアドレス対応付け部131は、INVITEに対する応答(200 OK)を端末200のSIPフォン機能に送信する(ステップS107)。
上述したS101〜S107の処理は、端末400とサービス提供装置100との間でも同様に実行される(ステップS108〜ステップS114)。したがって、サービス提供装置100は、端末200及び端末400の各々に対して、電話番号とIPアドレスとの組をユーザ管理DB122に格納することができる。なお、端末200と端末400の処理順序は同じタイミングになってもよいし、異なるタイミングになってもよい。
その後、端末200および端末400各々のSIP通信部211間で、ステップS115〜ステップS120のSIP通信がSIPプロキシ300を介して行われ、その結果、ステップS121において、端末200および端末400間でSIPによって通信が確立される。なお、SIP通信におけるDigest認証やREGISTER処理などについては図示していないが、一般的なSIP通信と同様、ステップS115よりも前に行われている。
両端末間でSIPによって通信が確立されると、端末200のcallセッション情報収集部213は、端末400との間でSIPによって確立された通信を一意に識別するcallセッション情報を、SIP通信に含まれる情報から収集する(ステップS122)。そして、端末200の起動指示部214は、情報表示機能部220を起動する指示を行うとともに、サービス提供装置100のURLやcallセッション情報を、情報表示機能部220のcallセッション情報送信部223に伝達する(ステップS123、ステップS124)。すると、callセッション情報送信部223は、URLで示されるサービス提供装置100にcallセッション情報を送信する(ステップS125)。
同様に、端末400のcallセッション情報収集部213は、端末200との間でSIPによって確立された通信を一意に識別するcallセッション情報を、SIP通信に含まれる情報から収集する(ステップS126)。そして、端末400の起動指示部214は、情報表示機能部220を起動する指示を行うとともに、サービス提供装置100のURLやcallセッション情報を、情報表示機能部220のcallセッション情報送信部223に伝達する(ステップS127、ステップS128)。すると、callセッション情報送信部223は、URLで示されるサービス提供装置100にcallセッション情報を送信する(ステップS129)。なお、端末200と端末400の処理順序は同じタイミングになってもよいし、異なるタイミングになってもよい。
ここで、SIP通信に含まれる情報について、図9および図10を用いて説明する。図9および図10は、SIPメッセージを説明するための図であり、図9は、リクエストメッセージを示し、図10は、レスポンスメッセージを示す。
SIPメッセージには、スタートラインと呼ばれる部分と、ヘッダと呼ばれる部分と、ボディと呼ばれる部分とがある。図9に示すリクエストメッセージの例では、「INVITE」の行がスタートラインにあたり、「Via」の行から「Content-Length」の行までがヘッダにあたり、「v=0」の行から「a=rtpmap:0 PCMU/8000」の行までがボディにあたる。ボディは、図9に示すように、SDP(Session Description Protocol)と呼ばれる書式で記載され、ここに、SIPメッセージの発信元のIPアドレスが記載される。
例えば、図9に示すリクエストメッセージのSDPには、リクエストメッセージを発信したSIPフォンのIPアドレス「10.0.10.111」が記載されている。同様に、図10に示すレスポンスメッセージのSDPには、レスポンスメッセージを発信したSIPフォンのIPアドレス「10.0.10.199」が記載されている。このように、SIPメッセージには、SIPメッセージの発信元のIPアドレスが含まれている。
図8に戻り、サービス提供装置100の認証実行部133は、端末200がWebアクセスで利用するIPアドレスがユーザ管理DB122に記憶されているか否か、また、端末400がWebアクセスで利用するIPアドレスがユーザ管理DB122に記憶されているか否かを認証するIPアドレスによる認証を実行する(ステップS130)。
サービス提供装置100のcallセッション情報受信部132が、端末200から送信されたcallセッション情報を受信すると、続いて、Webセッション情報払出部134が、当該callセッション情報を送信した端末200が行うWeb通信(サービス提供を受けるために端末200がサービス提供装置100との間で行うWeb通信)に付与する情報として、Webセッション情報を払い出し(ステップS131)、払い出したWebセッション情報を端末200に送信する(ステップS132)。同様に、Webセッション情報払出部134は、端末400に対してもWebセッション情報を払い出す(ステップS133)。
次に、サービス提供装置100の関連づけ部135は、ステップS131及びステップS133において端末200について払い出されたWebセッション情報を、ステップS125において端末200について取得されたcallセッション情報及びステップS129において端末400について取得されたcallセッション情報に対応づけてセッション情報DB123に格納する(ステップS134)。
そして、サービス提供装置100のサービス提供部136は、セッション情報DB123に格納されている複数のcallセッション情報の内、所定のcallセッション情報各々がSIPによって同一の通信として確立されたものであることを示す場合に、当該callセッション情報各々に対応づけて格納されているWebセッション情報各々を用いて提供されるサービスを、互いに関連づけて制御する(ステップS135〜S138)。
なお、図8に示す『マッチング』とは、サービス提供部136が、callセッション情報各々について、SIPによって同一の通信として確立されたものであるか否かを判別することを意味する。また、サービス提供部136が、端末200及び端末400各々のWeb通信に付与されたWebセッション情報各々を、互いに関連づけることで、端末200及び端末400各々のWeb通信を、SIPによって同一の通信が確立された関係として扱うことを意味する。
こうして、サービス提供装置100のサービス提供部136は、ステップS134において行われた関連づけに基づいて、サービスを制御する。
すなわち、例えば、端末200のサービス利用部225が、ステップS132で払い出されたWebセッション情報が付与されたWeb通信によって、サービス提供装置100に画像データをアップロードし(ステップS135)、端末400のサービス利用部225が、同じくサービス提供装置100から払い出されたWebセッション情報が付与されたWeb通信によって、サービス提供装置100にアクセスしていたとする(ステップS136)。すると、サービス提供部136は、端末400に画像データを送信するよう、サービスを制御するので、端末400に画像データが送信され(ステップS137)、端末400の情報表示機能部は、出力部202に画像データを表示するなどする(ステップS138)。
(IPアドレスによる認証)
次に、図11を用いて、図8に示したステップS130に該当するIPアドレスによる認証処理を説明する。図11は、IPアドレスによる認証処理を示すフローチャートである。
図11に示すように、サービス提供装置100の認証実行部133は、callセッション情報受信部132によって、端末200のIPアドレスが受信されると(ステップS201肯定)、受信したIPアドレスがユーザ管理DB122に記憶されているIPアドレスと一致するか否かを判定する(ステップS202)。すなわち、認証実行部133は、図8のステップS125でcallセッション情報を受信したWebアクセスからIPアドレスを取得し、取得したIPアドレスとcallセッション情報に含まれる電話番号との組み合わせがユーザ管理DB122に記憶されているか否かを判定する。つまり、認証実行部133は、取得したIPアドレスとcallセッション情報に含まれる電話番号との組み合わせが事前に登録されている情報であるか否かを判定する。
認証実行部133は、取得したIPアドレスと電話番号とがユーザ管理DB122に記憶されている場合に(ステップS202肯定)、認証を許可して、Webセッション情報を許可した端末200に払い出す(ステップS203)。
一方、認証実行部133は取得したIPアドレスと電話番号とがユーザ管理DB122に記憶されていない場合に(ステップS202否定)、認証を拒否して、認証エラーを端末200に送信する(ステップS204)。
また、認証実行部133が認証する手法はこれに限定されるものではない。例えば、認証実行部133は、callセッション情報受信部132が受信したcallセッション情報そのものと該callセッション情報を受信したWebアクセスから取得したIPアドレスとの組が、セッション情報DB123に記憶されているか否かによる認証を行ってもよい。また、認証実行部133は、callセッション情報を受信したWebアクセスから取得したIPアドレスが、セッション情報DB123に記憶されているか否かによる認証を行ってもよい。
[実施例1による効果]
このように、実施例1によれば、一時的な通信関係に基づいてサービスを制御する前処理として、実際に使用されるIPアドレスと電話番号との対応付けを登録することができる。この結果、一時的な通信関係に基づいてサービスを制御するのに際して、サービスを利用する端末の性能やIPアドレスの体系に関係なく、IPアドレスによる認証を実施することが可能である。
事前に、Web通信で使用されるIPアドレスとSIP通信で使用される電話番号、IPアドレスなどを対応付けて記憶することができる。この結果、SIP通信で使用されるIPアドレスがIPv4表記であり、Web通信で使用されるIPアドレスがIPv6表記である場合でも、IPアドレスによる認証を実施することが可能である。また、端末200等の情報表示機能に、SIPを処理するためのスタックなど特別な機能を組み込む必要もなく、IPアドレスによる認証を実施することが可能である。
ところで、本願の開示するサービス提供システムは、HGWを用いた構成であってもよい。具体的には、SIPプロキシ300と端末200との間にHGW500を有し、SIPプロキシ300と端末400との間にHGW600を有していてもよい。さらに、端末200及び端末400がSIPフォン250と情報表示端末260とのように別々の筐体で実現されていてもよい。
そこで、実施例2では、HGW500およびHGW600を有するとともに、端末200及び端末400がSIPフォン250と情報表示端末260とのように別々の筐体で実現されているサービス提供システムについて説明する。
[HGW、SIPフォン、情報表示端末の構成]
まず、図12を用いて、実施例2のサービス提供システムが有するHGW、SIPフォン、情報表示端末のそれぞれの構成について説明する。図12は、実施例2に係るHGW、SIPフォン、情報表示端末のそれぞれの構成を示すブロック図である。
なお、SIPプロキシ300と端末200との間に設置するHGW500と、SIPプロキシ300と端末400との間に設置するHGW600とは、同様の構成を有するので、ここではHGW500についてのみ説明する。また、端末400が有するSIPフォンと情報表示端末についても、端末200と同様の機能を有するので、ここでは、端末200が有するSIPフォン250と情報表示端末260についてのみ説明する。
(HGWの構成)
図12に示すように、実施例2におけるHGW500は、以下に説明する各部が汎用的なゲートウェイ装置などに備えられることによって実現され、特に本発明に密接に関連するものとしては、図12に示すように、SIP通信部/HTTP通信部510と、記憶部520と、制御部530とを備える。
SIP通信部/HTTP通信部510は、SIP用およびHTTP通信用の一般的なインタフェースおよびライブラリを備え、SIPフォン250とSIPプロキシ300との間の通信や、情報表示端末260とサービス提供装置100との間の通信を制御する。
記憶部520は、制御部530における各種制御に用いられる情報を記憶する半導体メモリ素子やハードディスクなどの記憶装置であり、特に、図12に示すように、ブラウザセッション情報DB521を有する。
ブラウザセッション情報DB521は、配下の情報表示端末260に割り当てられたブラウザセッション情報を予め記憶する。具体的には、ブラウザセッション情報DB521は、SIPフォン250を一意に識別する情報(SIPフォンID)と、当該SIPフォン250と組で利用される情報表示端末260を一意に識別する情報(情報表示端末ID)と、当該情報表示端末260を特定するためのブラウザセッション情報とを対応づけて予め記憶する。また、ブラウザセッション情報DB521が記憶するこれらの情報は、後述する情報表示端末特定部533による処理に利用されるなどする。なお、SIPフォンと情報表示端末とが「組で利用される」状況としては、例えば、SIPフォンと情報表示端末とが同じ利用者によって利用される場合などが想定される。
ここで、SIPフォンIDとは、例えば、SIPフォンの内線番号のことである。HGWの配下に複数のSIPフォンが接続される構成(複数のSIPフォンが同時に通信を行う構成)の場合、SIP−URIはHGWに対して付与され、HGW配下のSIPフォン各々には、内線番号が付与される。すなわち、HGW配下のSIPフォンを通信相手として指定する際には、HGWのSIP−URIと内線番号との組み合わせが指定されなければならない。
ブラウザセッション情報DB521の説明に戻ると、ブラウザセッション情報DB521は、例えば、図13に示すように、SIPフォンIDと情報表示端末IDとブラウザセッション情報との対応づけを記憶する。なお、図13に示すSIPフォンIDや情報表示端末IDやブラウザセッション情報は、説明の便宜上から特定の数字を示したものに過ぎず、数字に何ら特別の意味があるものではない。また、図13は、ブラウザセッション情報DBに記憶される情報の例を示す図である。
図12に戻り、制御部530は、HGW500における各種制御を行う集積回路又はCPUやMPUなどの電子回路であり、図12に示すように、callセッション情報収集部531と、SIPフォンID収集部532と、情報表示端末特定部533と、アクセス先変更指示部534とを有する。また、図12の点線は、callセッション情報収集部531およびSIPフォンID収集部532が、SIPフォン250に関連して処理が行われる部であり、情報表示端末特定部533およびアクセス先変更指示部534が、情報表示端末260に関連して処理が行われる部であることを、説明の便宜上の区分けとして示すものに過ぎない。
callセッション情報収集部531は、callセッション情報を収集する。具体的には、callセッション情報収集部531は、配下のSIPフォン250と他方のSIPフォン250との間でSIPによって確立された通信を一意に識別するcallセッション情報を、SIP通信に含まれる情報から収集する。また、callセッション情報収集部531は、収集したcallセッション情報を情報表示端末特定部533に伝達する。
SIPフォンID収集部532は、SIPフォンIDを収集する。具体的には、SIPフォンID収集部532は、配下のSIPフォン250を一意に識別する情報であるSIPフォンIDを、SIP通信に含まれる情報から収集する。また、SIPフォンID収集部532は、収集したSIPフォンIDを情報表示端末特定部533に伝達する。
情報表示端末特定部533は、SIPによって通信を確立したSIPフォン250と組で利用される情報表示端末260を特定する。具体的には、情報表示端末特定部533は、SIPフォンID収集部532によって収集されたSIPフォンIDを検索キーとして、ブラウザセッション情報DB521を検索し、当該SIPフォンIDによって一意に識別されるSIPフォン250と組で利用される情報表示端末260を特定するとともに、当該情報表示端末260のブラウザセッション情報を特定する。次に、情報表示端末特定部533は、特定したブラウザセッション情報と、HGW500に対してポーリングを行う複数の情報表示端末260各々のブラウザセッション情報とを比較し、ブラウザセッション情報が一致したポーリングを行っている情報表示端末260が、SIPによって通信を確立したSIPフォン250と組で利用される情報表示端末260であると特定する。そして、情報表示端末特定部533は、アクセス先変更指示部534に、情報表示端末260の特定情報とcallセッション情報とを伝達する。
アクセス先変更指示部534は、アクセス先変更指示を情報表示端末260に対して行う。具体的には、アクセス先変更指示部534は、情報表示端末特定部533から情報表示端末260の特定情報とcallセッション情報とを伝達されると、特定情報で特定される情報表示端末260に対して、サービス提供装置100のURLにアクセス先を変更するよう指示するリダイレクト指示を、callセッション情報とともに行う。
(SIPフォンの構成)
実施例2におけるSIPフォン250は、汎用的なSIPフォンによって実現され、特に、図12に示すように、入力部251と、出力部252と、入出力制御I/F部253と、SIP通信部254とを有する。
いずれも汎用的なSIPフォン250と同様であるので簡単に説明すると、入力部251は、SIPフォン250に用いられる情報や、各種処理をするための操作指示などを、番号キーやマイクなどによって入力し、出力部252は、SIPフォン250による各種処理の結果や、各種処理をするための操作指示などを、ディスプレイやスピーカに出力し、入出力制御I/F部253は、入力部251と、出力部252と、SIP通信部254との間における情報転送を制御し、SIP通信部254は、SIP通信用の一般的なインタフェースおよびライブラリを備え、他方のSIPフォン250との間で(HGW500を介して)情報を送受信する。
(情報表示端末の構成)
実施例2における情報表示端末260は、以下に説明する各部が汎用的なPCや情報家電などに備えられることによって実現され、特に、図12に示すように、入力部261と、出力部262と、入出力制御I/F部263と、HTTP通信部264と、制御部265とを備える。
入力部261は、情報表示端末260に用いられる情報や、各種処理をするための操作指示などを、キーボード、マウス、リモコンなどによって入力し、出力部262は、情報表示端末260による各種処理の結果や、各種処理をするための操作指示などを、ディスプレイやプリンタなどに出力し、入出力制御I/F部263は、入力部261と、出力部262と、HTTP通信部264と、制御部265との間における情報転送を制御し、HTTP通信部264は、HTTP通信用の一般的なインタフェースおよびライブラリを備え、サービス提供装置100との間で(HGW500を介して)情報を送受信する。
制御部265は、情報表示端末260における各種制御を行う集積回路又はCPUやMPUなどの電子回路であり、図12に示すように、callセッション情報送信部266と、Webセッション情報受信部267と、サービス利用部268とを備える。
callセッション情報送信部266は、callセッション情報を送信する。具体的には、callセッション情報送信部266は、HGW500のアクセス先変更指示部534によってリダイレクトされると、アクセス先をサービス提供装置100に変更し、callセッション情報をサービス提供装置100に送信する。この時、callセッション情報送信部266は、HTTP通信を行うブラウザによってサービス提供装置100にアクセスするので、当該HTTP通信には、情報表示端末260のWebセッション情報が付与されている。
Webセッション情報受信部267は、Webセッション情報を受信する。具体的には、Webセッション情報受信部267は、サービス提供装置100からWebセッション情報を受信する。また、Webセッション情報受信部267は、受信したWebセッション情報を、サービス利用部268に伝達する。
サービス利用部268は、サービス提供装置100によって提供されるサービスの提供を受け、サービスを利用する。具体的には、サービス利用部268は、Webセッション情報受信部267によって伝達されたWebセッション情報を、HTTP通信を行うブラウザに付与し、サービス提供を受けるために、サービス提供装置100との間でWeb通信を行う。
(処理の流れ)
次に、図14を用いて、サービス提供装置における処理の流れを説明する。図14は、実施例2に係るサービス提供装置における処理の流れを示すシーケンス図である。
図14に示すように、情報表示端末260のHTTP通信部264は、ユーザの指示操作を入力部261を介して受け付けて、サービス提供装置100にWebアクセスを実施する(ステップS301)。
情報表示端末260からWebアクセスを受け付けたサービス提供装置100のIPアドレス対応付け部131は、該WebアクセスからIPアドレスを取得し、取得したWebアクセスに対応付ける一時アドレスを払出し、取得したIPアドレスと払い出した一時アドレスとを対応付けて、仮登録DB121に格納する(ステップS302)。すなわち、IPアドレス対応付け部131は、取得したIPアドレスをユーザがWeb上で使用するIPアドレスと認識する。続いて、IPアドレス対応付け部131は、アクセス元の情報表示端末260に、払い出した一時アドレスを含めた応答を送信する(ステップS303)。
その後、SIPフォン250のSIP通信部254は、入力部251を介して、ユーザから一時アドレスを受け付けると、サービス提供装置100を宛先として、該一時アドレスを含むSIP通信のINVITEをHGW500に送信する(ステップS304)。HGW500は、受信したINVITEをSIPプロキシ300に送信し(ステップS305)、SIPプロキシ300は、該INVITEを宛先のサービス提供装置100に転送する(ステップS306)。
すると、サービス提供装置100のIPアドレス対応付け部131は、受け付けたSIPのINVITEに含まれる一時アドレスに対応するIPアドレスを仮登録DB121から取得し、取得したIPアドレスをINVITEに含まれる電話番号を対応付けてユーザ管理DB122に格納する(ステップS307)。その後、IPアドレス対応付け部131は、SIPフォン250を宛先とする応答(200 OK)をSIPプロキシ300に送信し(ステップS308)、SIPプロキシ300は、受信した応答をHGW500に送信する(ステップS309)。そして、HGW500は、サービス提供装置100から送信された応答をSIPフォン250に転送する(ステップS310)。
上述したS301〜S310の処理は、HGW600とサービス提供装置100との間でも同様に実行される(ステップS311〜ステップS320)。したがって、サービス提供装置100は、両端末に対して、電話番号とIPアドレスとの組をユーザ管理DB122に格納することができる。なお、処理順序は同じタイミングになってもよいし、異なるタイミングになってもよい。
その後、SIPフォン250とSIPフォン450との間で、ステップS321〜ステップS328のSIP通信がHGW500、HGW600、SIPプロキシ300を介して行われ、その結果、ステップS329において、SIPフォン250とSIPフォン450との間でSIPによって通信が確立される。なお、SIP通信におけるDigest認証やREGISTER処理などについては図示していないが、一般的なSIP通信と同様、ステップS321よりも前に行われている。
両SIPフォン間でSIPによって通信が確立されると、HGW500のcallセッション情報収集部531は、配下のSIPフォン250と他方のSIPフォン450との間でSIPによって確立された通信を一意に識別するcallセッション情報を、SIP通信に含まれる情報から収集し(ステップS330)、ステップS332において、情報表示端末特定部533に伝達する。
次に、HGW500のSIPフォンID収集部532は、配下のSIPフォン250を一意に識別する情報であるSIPフォンIDを、当該SIP通信に含まれる情報から収集し(ステップS331)、情報表示端末特定部533に伝達する(ステップS332)。
続いて、HGW500の情報表示端末特定部533は、ステップS329において通信を確立したSIPフォン250と組で利用される情報表示端末260を特定する(ステップS333)。具体的には、情報表示端末特定部533は、まず、SIPフォンIDを検索キーとしてブラウザセッション情報DB521を検索することで情報表示端末260を特定し、特定した情報表示端末260のブラウザセッション情報と、HGW500に対してポーリング(ステップS334)を行う複数の情報表示端末260各々のブラウザセッション情報とを比較し、SIPによって通信を確立したSIPフォン250と組で利用される情報表示端末260を特定する。
そして、HGW500のアクセス先変更指示部534は、アクセス先変更指示を、ステップS333において特定された情報表示端末260に対して行う。具体的には、特定された情報表示端末260に対して、サービス提供装置100のURLにアクセス先を変更するよう指示するリダイレクト指示を、callセッション情報とともに行う(ステップS335)。なお、実施例2においては、HGW500がサービス提供装置100のURLを予め記憶部に記憶していることで、アクセス先変更指示部534が情報表示端末260に対して当該URLにアクセス先を変更するよう指示するリダイレクト指示を行うことができる。
すると、情報表示端末260のcallセッション情報送信部266は、リダイレクトされ、アクセス先をサービス提供装置100に変更し、callセッション情報をサービス提供装置100に送信する(ステップS335)。
なお、上述したステップS330〜ステップS335の処理は、情報表示端末260とサービス提供装置100との間でも同様に実行される(ステップS336〜ステップS341)。なお、情報表示端末260と情報表示端末460の処理順序は同じタイミングになってもよいし、異なるタイミングになってもよい。
その後、サービス提供装置100がIPアドレスによる認証を行って、Webセッション情報を払出し、Webセッション情報に基づいてサービスを制御するまでの処理(ステップS342〜ステップS350)は、実施例1で説明したステップS130〜ステップS138と同様なので、ここでは省略する。
(実施例2による効果)
このように、実施例2によれば、端末側が、複数台のSIPフォンと複数台の情報表示端末とで構成される下、通信相手との関係が一時的な場合にも、サービスを利用する端末の性能やIPアドレスの体系に関係なく、IPアドレスによる認証を実施でき、さらに、このような一時的な通信関係に基づいてサービス提供を実現することが可能になる。
ところで、実施例1や2に係るサービス提供装置100は、まず、HTTPによるアクセスからIPアドレスを取得して一時アドレスを払出し、次に、払い出した一時アドレスを含むSIP通信から電話番号を取得し、これらを対応付けて記憶する例を説明した。本願は、これに限定されるものではない。
例えば、サービス提供装置100は、まず、SIP通信から電話番号とIPアドレスとを取得し、次に、HTTPアクセスからIPアドレスを取得する。そして、サービス提供装置100は、電話番号に対応付けられているSIP通信から取得したIPアドレスを、HTTPアクセスから取得したIPアドレスで書き換えて対応付けるようにしてもよい。
そこで、実施例3では、図15を用いて、サービス提供装置100が、電話番号に対応付けられているSIP通信から取得したIPアドレスを、HTTPアクセスから取得したIPアドレスで書き換えて対応付ける例について説明する。図15は、実施例3に係るサービス提供システムにおける処理の流れを示すシーケンス図である。
図15に示すように、端末200のSIPフォン機能部210は、SIPプロキシ300を介して、SIPのINVITEをサービス提供装置100に送信する(ステップS401とステップS402)。続いて、サービス提供装置100は、SIPプロキシ300を介して、INVITEに対する応答(200 OK)を端末200のSIPフォン機能部210に送信する(ステップS403とステップS404)。この結果、サービス提供装置100と端末200のSIPフォン機能部210とが音声接続される(ステップS405)。
同様に、端末400のSIPフォン機能部は、SIPプロキシ300を介して、SIPのINVITEをサービス提供装置100に送信する(ステップS406とステップS407)。続いて、サービス提供装置100は、SIPプロキシ300を介して、INVITEに対する応答(200 OK)を端末400のSIPフォン機能部に送信する(ステップS408とステップS409)。この結果、サービス提供装置100と端末400のSIPフォン機能部が音声接続される(ステップS410)。
その後、サービス提供装置100のIPアドレス対応付け部131は、ステップS401−ステップS402で取得した電話番号とcallセッション情報とを仮登録DB121に格納する(ステップS411)。同様に、サービス提供装置100のIPアドレス対応付け部131は、ステップS406−ステップS407で取得した電話番号とcallセッション情報とを仮登録DB121に格納する(ステップS411)。すなわち、サービス提供装置100のIPアドレス対応付け部131は、端末200の電話番号とcallセッション情報とを対応付けて記憶するとともに、端末400の電話番号とcallセッション情報とを対応付けて記憶する。
その後、端末200のSIPフォン機能部210は、callセッション情報を収集し(ステップS412)、収集したcallセッション情報を情報表示機能部220に伝達する(ステップS413)。そして、情報表示機能部220は、callセッション情報を含んだWebアクセスをサービス提供装置100に実施する(ステップS414)。
同様に、端末400のSIPフォン機能部は、callセッション情報を収集し(ステップS415)、収集したcallセッション情報を情報表示機能部に伝達する(ステップS416)。そして、情報表示機能部は、callセッション情報を含んだWebアクセスをサービス提供装置100に実施する(ステップS417)。
そして、サービス提供装置100のIPアドレス対応付け部131は、ステップS414で受信したWebアクセスに含まれるcallセッション情報に対応付けられる電話番号を仮登録DB121から取得するとともに、該WebアクセスからIPアドレスを取得し、これらの電話番号とIPアドレスとを対応付けてユーザ管理DB122に格納する(ステップS418)。また、端末200とサービス提供装置100との間のSIP通信は、端末200により接続されてもよく、端末400とサービス提供装置100との間のSIP通信は、端末400の操作により切断されてもよい。なお、切断されない場合には、端末200または端末400が複数のSIP通信(音声通信)を接続することになる。
同様に、サービス提供装置100のIPアドレス対応付け部131は、ステップS417で受信したWebアクセスに含まれるcallセッション情報に対応付けられる電話番号を仮登録DB121から取得するとともに、該WebアクセスからIPアドレスを取得し、これらの電話番号とIPアドレスとを対応付けてユーザ管理DB122に格納する(ステップS418)。
その後のステップS419〜ステップS442までの処理は、実施例1で説明したステップS115〜ステップS138と同様なので、ここでは省略する。
このように、実施例3によれば、電話番号とIPアドレスとの対応付けを記憶する場合に、どちらの情報を先に仮登録したとしても、端末がSIPで利用する電話番号と端末がWebで利用するIPアドレスとを正確に対応付けて記憶することができる。
ところで、実施例3では、端末間同士のSIP接続より前の段階で、SIP通信を発生させた上で、端末がSIPで利用する電話番号と端末がWebで利用するIPアドレスとを対応付けて記憶した。ところが、本願はこれに限定されるものではなく、端末間同士のSIP接続を利用して、電話番号とIPアドレスとを対応付けて記憶することもできる。
そこで、実施例4では、図16を用いて、端末間同士のSIP接続において、電話番号とIPアドレスとを対応付けて記憶する例について説明する。図16は、実施例4に係るサービス提供システムにおける処理の流れを示すシーケンス図である。
図16に示すように、端末200および端末400各々のSIP通信部211間で、ステップS501〜ステップS506のSIP通信がSIPプロキシ300を介して行われ、その結果、ステップS508において、端末200および端末400間でSIPによって通信が確立される。なお、SIP通信におけるDigest認証やREGISTER処理などについては図示していないが、一般的なSIP通信と同様、ステップS501よりも前に行われている。
そして、端末間同士でSIP通信が接続されると、サービス提供装置100のIPアドレス対応付け部131は、該SIP通信で端末200が利用する電話番号とIPアドレスとの組をSIPプロキシ300から取得して仮登録DB121に格納する(ステップS509)。
同様に、端末間同士でSIP通信が接続されると、サービス提供装置100のIPアドレス対応付け部131は、該SIP通信で端末400が利用する電話番号とIPアドレスとの組をSIPプロキシ300から取得して仮登録DB121に格納する(ステップS509)。
その後、端末200のSIPフォン機能部210は、callセッション情報を収集し(ステップS510)、収集したcallセッション情報を情報表示機能部220に伝達する(ステップS511)。そして、情報表示機能部220は、callセッション情報を含んだWebアクセスをサービス提供装置100に実施する(ステップS512)。
同様に、端末400のSIPフォン機能部は、callセッション情報を収集し(ステップS513)、収集したcallセッション情報を情報表示機能部に伝達する(ステップS514)。そして、情報表示機能部は、callセッション情報を含んだWebアクセスをサービス提供装置100に実施する(ステップS515)。
そして、サービス提供装置100のIPアドレス対応付け部131は、ステップS512で受信したWebアクセスに含まれるcallセッション情報に対応付けられる電話番号を仮登録DB121から取得するとともに、該WebアクセスからIPアドレスを取得し、これらの電話番号とIPアドレスとを対応付けてユーザ管理DB122に格納する(ステップS516)。
同様に、サービス提供装置100のIPアドレス対応付け部131は、ステップS522で受信したWebアクセスに含まれるcallセッション情報に対応付けられる電話番号を仮登録DB121から取得するとともに、該WebアクセスからIPアドレスを取得し、これらの電話番号とIPアドレスとを対応付けてユーザ管理DB122に格納する(ステップS523)。
その後のステップS517〜ステップS531までの処理は、実施例1と同様なので、ここでは省略する。
このように、実施例4によれば、端末間同士のSIP接続において、電話番号とIPアドレスとを対応付けて記憶することができるので、実施例1〜3と比較して、SIP通信を省略することができ、ネットワークの輻輳等も防止することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
(IPアドレスの表記)
実施例1では、SIP通信で利用されるIPアドレスがIPv4表記であり、Web通信で利用されるIPアドレスがIPv6表記である場合に説明したが、これに限定されるものではなく、逆であってもよい。また、同じ表記であってもよく、その場合には、一時アドレスを用いることなく、実現することができる。
(通信プロトコルの選択)
上記の実施例においては、第1の通信が、SIPによってセッションが確立される過程の通信(なお、実施例3において切断の対象となる第1の通信は、SIPによって確立された通信を意味する)であり、第2の通信が、Web通信(HTTP通信)であることを想定してきたが、本発明はこれに限られるものではない。第1の通信によって確立されるセッションと第2の通信のセッションとが互いに異なるセッションであれば、具体的な通信プロトコルはいずれでもよい。
(有効条件)
例えば、サービス提供装置は、端末の情報表示機能から受信したアクセスからIPアドレスを取得して、仮登録DBに格納するのに際して、有効条件を格納するようにしてもよい。そして、サービス提供装置は、有効条件を満たすことを条件に、電話番号とIPアドレスとの対応付けを格納する。例えば、サービス提供装置は、図17に示すように、通話中、登録後10分間、同一プレフィックスなどの有効条件を記憶する。なお、図17は、IPアドレスと電話番号との対応付けを格納する有効条件の例を示す図である。
(callセッション情報)
また、上記の実施例においては、双方の端末や双方の情報表示端末からサービス提供装置が取得するcallセッション情報は、同一の値であるものとして説明してきたが、同一の値でなくてもよい。SIPによって端末間で確立された同一の通信を一意に識別するものとしてサービス提供装置が認識可能なものであれば、二つの値の組み合わせでもよい。
(callセッション情報の収集)
また、サービス提供装置は、第1の通信を制御する第1通信制御装置によって収集された第1通信情報を当該第1通信制御装置から受信することで取得してもよい。この場合には、例えば、SIPプロキシが第1通信情報を収集するという手法で、一時的な通信関係に基づいたサービス提供を制御することが可能になる。
(callセッション情報の再利用)
また、サービス提供装置は、Webセッション情報を用いてサービスが提供された際に、提供されたサービスに関する情報と、当該Webセッション情報に対応づけてセッション情報DBに格納されているcallセッション情報とを対応づけ、当該対応づけを予め設定された有効期間とともに記憶部に格納する。また、サービス提供装置は、端末が、有効期間内に、記憶部によって記憶されているcallセッション情報を指定してサービス提供装置との間でWeb通信を行うと、当該callセッション情報を検索キーとして記憶部を検索し、当該callセッション情報に対応づけて格納されているサービスに関する情報を取得する。そして、サービス提供装置は、サービスに関する情報を取得すると、当該情報に基づいて、当該端末に対するサービスを制御する。この場合には、有効期間内であれば、過去にSIPによって同一の通信を確立した端末各々の一時的な通信関係(過去の通信関係)に基づいて、サービスを制御することが可能になる。
例えば、端末は、Webサービスの初回利用時に用いたcallセッション情報を端末内に保存しておき、一方、サービス提供装置は、当該callセッション情報に対応づけて、いつ、誰と、どのタイミングで接続した端末であるか、端末の利用データは何か、等を保存しておいたとする。すると、端末が、次回利用時に、このcallセッション情報を用いてサービス提供装置にアクセスすれば、サービス提供装置は、これらの情報に基づいて、サービス提供を再制御することができる。
さらに、サービスの具体例を挙げて説明すると、通信相手に送信した画像がサービス提供装置に保存されている場合、サービスの利用者は、その画像送信時のcallセッション情報をサービス提供装置に送信することで、再度、送信した画像、又は、受信した画像を確認することができる。また、この時、通信相手先と通話中である必要はない。つまり、通話と関係なく、ブラウザがcallセッション情報をサービス提供装置に送るだけで実現することができる。
(システム構成等)
また、上記の実施例においては、単一のSIPプロキシがSIP信号(SIPの具体的な信号、INVITE、200 OKなどの種類、および、From、Toなどのパラメータを含む)を仲介する事例を説明してきたが、本発明はこれに限られるものではない。複数のSIPプロキシがSIP信号を仲介する事例や、NGN(Next Generation Network)におけるAS(Application Server)などがSIP信号を仲介する事例にも、本発明を同様に適用することができる。
また、上記の実施例においては、SIPフォンと情報表示端末との間の情報伝達を代行するとともに、サービス提供の対象となる情報表示端末を特定する装置としての役割を、HGWが行う例についても説明してきたが、本発明はこれに限られるものではない。例えば、SIPフォンにWebサーバ相当の機能が備えられれば、SIPフォンと情報表示端末との間の情報伝達が可能になり、情報表示端末からSIPフォンに向かってcallセッション情報取得の処理を行うことで、サービス提供の対象となる情報表示端末を特定することも可能になる(HGWが不要な構成となる)。
例えば、実施例2において、端末側の形態は、SIPフォンと情報表示端末とに分かれているが、SIPフォンはWebサーバ相当の機能を備えているとする。このような場合、双方のSIPフォンが、SIPによって確立した通信からcallセッション情報を収集し、情報表示端末が、Webサーバ相当の機能を備えたSIPフォンにポーリングするなどしてcallセッション情報をSIPフォンから取得し、取得したcallセッション情報とともにサービス提供装置にアクセスする。すると、サービス提供装置は、callセッション情報を取得することができる。
また、例えば、一方のSIPフォンのみcallセッション情報を収集する手法も考えられる。すなわち、一方のSIPフォン(Webサーバ相当の機能を備える)は、IPによって確立した通信からcallセッション情報を収集し、上記と同様に、情報表示端末が、Webサーバ相当の機能を備えたSIPフォンにポーリングするなどしてcallセッション情報をSIPフォンから取得し、取得したcallセッション情報とともにサービス提供装置にアクセスする。すると、サービス提供装置は、まず、一方について、callセッション情報を取得することができる。この時、このSIPフォンは、収集したcallセッション情報を、他方のSIPフォン(SIPによって通信を確立した通信相手のSIPフォン)に通知する。すると、他方のSIPフォンと組で利用される情報表示端末は、当該他方のSIPフォンにポーリングするなどしてcallセッション情報を取得し、取得したcallセッション情報とともにサービス提供装置にアクセスする。すると、サービス提供装置は、他方についても、callセッション情報を取得することができる。
また、実施例2において、仮に、SIPフォンがWebサーバ相当の機能を備える場合には、SIP PROXYが、SIPフォン自体にサービス提供装置のURLを通知する手法を用いることもできる。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理(例えば、一時アドレスをSIPフォン等に入力する処理など)の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、本実施例で説明したサービス提供方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。