(第1の実施形態)
図1は、本発明の第1の実施形態におけるクライアントの構成を示すブロック図である。
本発明の第1の実施形態のPoCシステムは、発信元クライアントのユーザがグループ通話に参加するメンバー毎に優先順位を設定しておき、その発信元クライアントが同メンバーに対してグループ通話用の発呼処理を行うときに、そのメンバーが使用しているクライアントのうちの優先順位の最も高いクライアント(すなわち、キーマンが使用しているクライアント)に対してまずは発呼処理を行い、優先順位の最も高いクライアントが発呼処理に応答した場合には次に優先順位の高いクライアントに対して発呼処理を行い、一方、優先順位の最も高いクライアントが発呼処理に応答しなかった場合には次に優先順位の高いクライアントに対して発呼処理を行わずグループ通話を終了するものである。
本発明の第1の実施形態のPoCシステムに利用するクライアントは、図1に示すように、入力部15、送受信部11、表示部12とともに、電話帳17と、重要度付PoC通信処理部16を有している。なお、入力部15、送受信部11、表示部12の機能は、図21に示した従来のクライアントの構成を示すブロック図のうちの同一の参照符号を付与している部の機能と同一である。
入力部15は、クライアント10使用者からの入力操作を受け付け重要度付PoC通信処理部16にその入力操作に応じた信号を出力する。電話帳17は、グループ通話用の各メンバーが使用しているクライアント毎(あるいは、クライアントを一意に特定する情報毎)に、グループ通話に用いる通信用の識別情報とグループ通話時の優先順位を表す優先度を記憶する(この識別情報および優先度以外に、近年の携帯電話端末が電話帳機能として記憶している各種個人情報も併せて記憶してもよい)。重要度付PoC通信処理部16は、電話帳17に記憶された、あるグループ通話のメンバー毎に割り当てられた優先度を参照して、優先順位の高いクライアントに対して送信すべきグループ通話に利用される情報を作成し、その情報を送受信部11に出力する。あるいは、重要度付PoC通信処理部16は、送受信部11から受信したグループ通話に利用される情報に対してデータ処理を行う(重要度付PoC通信処理部16による処理内容の詳細は、後述する[重要度付PoC通信処理部による処理内容]において説明する)。送受信部11は、PoCサーバ40と携帯電話用無線を利用して通信を行う。表示部12は、各種情報を表示する表示部12とを有している。なお、クライアント1、クライアント2、クライアント3及びクライアント4の構造も同じである。なお、重要度付PoC通信処理部16は、クライアント10に内蔵されたコンピュータやCPUがプログラムに規定された処理を実行することにより実現される。
本発明の第1の実施形態のPoCシステムに利用するPoCサーバ40の構成は、図22に示すPoCサーバの構成と同様であり、受信部41、PoC通信中継処理部42、送信部43、記憶部44を有している。受信部41は、クライアント10、またはクライアント1、2、3、4からの各種情報(以下の記載において「メッセージ」と称している情報を少なくとも含む)を受信する。PoC通信中継処理部42は、クライアント10と他のクライアント1〜4間においてグループ通話に利用される各種情報の中継処理を行う。送信部43は、クライアント10、またはクライアント1、2、3、4に各種情報を送信する。記憶部44は、PoC通信中継処理部42が中継処理を行うために必要な通信用データやあるクライアントに対する発言権の付与および放棄に関するデータを記憶する。
発信元のクライアント使用者であるユーザは、予め入力部15によってグループ通話用の各メンバー毎(Aさん、Bさん、Cさん、Dさん、Eさん)に優先度を設定し、電話帳17に登録する。図2(a)は、グループ通話に必ず入っていて欲しい「Aさん」「Cさん」の優先度を「高」に、他の人の優先度を「中」にそれぞれ電話帳17に設定した場合に、グループ通話用のメンバー毎の優先度一覧を表示部12に表示した表示例を示している。また、図2(b)は、発信元のクライアント使用者であるユーザが電話帳17に登録したグループ通話用のメンバー(Aさん、Bさん、Cさん、Dさん、)を選択し、そのメンバーが使用しているクライアントに対してて発呼操作を行った場合に、選択されたメンバーとそのメンバー毎のその優先度一覧を表示部12に表示した表示例を示している。
[重要度付PoC通信処理部による処理内容]
次に、グループ通話用の各メンバー毎(Aさん、Bさん、Cさん、Dさん)に図2(b)のように優先度が設定された場合に、重要度付PoC通信処理部16が実行する処理について説明する。図3は、本発明の第1の実施形態におけるクライアントの動作を示すフロー図である。
まず、クライアント10のユーザが電話帳17に登録済みの個人情報を参照してグループ通話用のメンバー(Aさん、Bさん、Cさん、Dさん)を選択し発呼操作を行うと、この操作に関する信号を入力部15から受け付けた重要度付PoC通信処理部16は、電話帳17に記憶されているAさん、Bさん、Cさん、Dさんに設定された優先度を参照し、優先度の最も高いグループ通話用のメンバーを特定する。重要度付PoC通信処理部16は、優先度の最も高いグループ通話用のメンバーとしてAさん、Cさんを特定すると、電話帳17に登録されているAさん、Cさんに関する個人情報を基に、Aさん、CさんのクライアントA、C(なお、英数字が同一である名称とクライアントとは、対応している)を送信先とするセッション開始要求のメッセージ(Invite)を作成し、PoCサーバ40に送信するよう送受信部11に出力する(ステップ1)。
その後、重要度付PoC通信処理部16は、セッション開始要求を送信したクライアントA、Cからのその応答メッセージを待つ(ステップ2)。送受信部11がPoCサーバ40から応答メッセージを受信すると、重要度付PoC通信処理部16は、その応答メッセージが応諾(Accept)を表すOKのメッセージ(200OK)か、拒否(Reject)を表す参加拒否メッセージ(486Busy)かを識別し(ステップ3)、その応答メッセージが参加拒否メッセージ(486Busy)であれば(ステップ3、486Busy)、セッションを切断する(ステップ4。切断の際の手順は後述する[PoCシステムにおけるシーケンス]において説明する)。
また、重要度付PoC通信処理部16は、その応答メッセージがOKのメッセージ(200OK)であれば(ステップ3、200OK)、その応答メッセージに含まれる通信用識別情報からその応答メッセージを発信したクライアントを特定し(つまり、クライアントA、あるいはクライアントCかを特定し)、そのクライアントとのグループ通話を開始した後(ステップ5)、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信したかを判定する(ステップ6)。重要度付PoC通信処理部16は、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信していないと判定すれば(ステップ6、NO)、ステップ2からステップ6の処理を繰り返し、ステップ3の処理において受信した別の応答メッセージがOKのメッセージであれば、ステップ5の処理によってOKのメッセージを返した別のクライアントを加えたグループ通話を開始することになる。
一方、重要度付PoC通信処理部16は、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信していると判定すれば(ステップ6、Yes)、優先度が次に高いグループ通話用のメンバーであるBさん、Dさんについて、電話帳17に登録されている個人情報を基にクライアントB、Dを送信先とするセッション参加要求するメッセージ(Refer)を作成し、PoCサーバ40に送信するよう送受信部11に出力する(ステップ7)。なお、Referは、複数のクライアント間において既にセッションが確立されている場合に、そのセッションに新に別のクライアントを招待するためにその別のクライアントへ発呼処理を行う際に送信される情報である。
なお、Referを受信したクライアント(つまり、クライアントB、あるいはクライアントD)は、Inviteを受信したときと同様、発呼処理を受け入れるための操作(Accept操作)を行うと、クライアント発呼処理を受け入れることを表す情報であるOKのメッセージ(200OK)をPoCサーバ40に送信し、一方、発呼処理を拒否するための操作(Reject操作)を行うと、クライアントは、発呼処理を拒否することを表す情報である参加拒否メッセージ(486Busy)をPoCサーバ40に送信する。送受信部11がPoCサーバ40からOKのメッセージ(200OK)を受信すると、重要度付PoC通信処理部16は、その都度、そのOKのメッセージに含まれる通信用識別情報からその応答メッセージを発信したクライアントを特定し(つまり、クライアントB、あるいはクライアントDかを特定し)、特定したクライアントを既に確立されたセッションに追加する処理を実行することになる。
[本発明の第1の実施形態のPoCシステムにおけるシーケンス]
次に、本発明の第1の実施形態のPoCシステムにおけるシーケンスについて説明する。まず、発呼処理を実行するクライアントと(以後、このクライアントのことを「自クライアント」と称する)、そのクライアントからの発呼処理を受け付けるクライアントA、Bと、PoCサーバと、から構成されるPoCシステムにおけるシーケンスについて説明する。図4に、本発明の第1の実施形態におけるPoCシステムの第1のシーケンスを示す。
第1のシーケンスにおいて、自クライアントは、Aさんの使用するクライアントAの優先度を「高」、Bさんの使用するクライアントBの優先度を「中」として設定しているものとする。
自クライアントは、クライアントA、Bに対してグループ通話を開始する操作を受け付けると、優先度が「高」であるクライアントAに対してInviteを送信してセッションを開始する。PoCサーバ40を介してInviteを受信したクライアントAがこの発呼処理に応答し200OKを送信したとすると、自クライアントは、表示部12にクライアントAが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知し、PoCサーバ40を介して200OKを受信した時点でグループ通話を開始することになる。また、クライアントAは、200OKを送信した時点でグループ通話を開始することになる。図中の太線部分は各クライアントが通話可能である状態を示している。但し、通話での発言はPoCサーバから発言権を取得しなければできない。PoCサーバが自クライアントに「Aさん」の「OK」メッセージを転送する際に(米印)、自クライアントの発言権獲得を伝える情報を含めることも可能である。
なお、InviteをPoCサーバ40を介して受信したクライアントAがこの発呼処理に応答して486Busyを送信した場合、あるいはこの発呼処理に対して所定期間無応答である場合、自クライアントは、セッションを切断してグループ通話を終了することになる。
この後、クライアントAからの200OKを受信した自クライアントは、優先度が「中」であるクライアントBに対してReferを送信して、クライアントAとのセッションに新にクライアントBを招待するための発呼処理を行う。PoCサーバ40を介してInviteを受信したクライアントBがこの発呼処理に応答し200OKを送信したとすると、自クライアントは、PoCサーバ40を介して200OKを受信した時点で、表示部12にクライアントBが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知し、クライアントBがグループ通話に参加することになる。また、クライアントBは、200OKを送信した時点でグループ通話に参加することになる。
このように、自クライアントと、クライアントA、Bと、PoCサーバと、から構成される本発明の第1の実施形態PoCシステムにより、自クライアントがクライアントAとのグループ通話を開始後にクライアントBへの発呼処理を行うため、キーマンとなるAさんが参加する場合にのみグループ通話を実行し、キーマンとなるAさんが参加しない場合には、そのグループ通話を効率的に終了することができる。また、クライアントA、Bの使用者であるAさん、Bさんに自身がキーマンであるか否かを意識させることがないため、グループ通話による円滑なコミュニケーションを維持することができる。
さらに、発呼処理を実行するクライアント(自クライアント)と、そのクライアントからの発呼処理を受け付けるクライアントA、B、C、Dと、PoCサーバと、から構成されるPoCシステムにおけるシーケンスについて説明する。図5に、本発明の第1の実施形態におけるPoCシステムの第2のシーケンスを示す。
第2のシーケンスにおいて、自クライアントは、Aさんの使用するクライアントAの優先度を「高」、Bさんの使用するクライアントBの優先度を「高」、Cさんの使用するクライアントCの優先度を「中」、Dさんの使用するクライアントDの優先度を「中」として設定しているものとする。
自クライアントは、クライアントA、B、C、Dに対してグループ通話を開始する操作を受け付けると、優先度が「高」であるクライアントAおよびクライアントBに対してInviteを送信してセッションを開始する。PoCサーバ40を介してInviteを受信したクライアントAがこの発呼処理に応答し200OKを送信したとすると、自クライアントは、表示部12にクライアントAが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知し、PoCサーバ40を介してクライアントAからの200OKを受信した時点でグループ通話を開始することになる。さらに、PoCサーバ40を介してInviteを受信したクライアントBがこの発呼処理に応答し200OKを送信したとすると、自クライアントは、表示部12にクライアントBが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知し、PoCサーバ40を介してクライアントBからの200OKを受信した時点でクライアントBがグループ通話に参加することになる。なお、クライアントA、Bそれぞれは、200OKを自クライアントに送信した時点でグループ通話を開始することになる。図中の太線部分は各クライアントが通話可能である状態を示している。但し、通話での発言はPoCサーバから発言権を取得しなければできない。PoCサーバが自クライアントに「Aさん」の「OK」メッセージを転送する際に(米印)、自クライアントの発言権獲得を伝える情報を含めることも可能である。
クライアントAおよびクライアントBからの200OKを受信した自クライアントは、優先度が「中」であるクライアントCおよびクライアントDに対してReferを送信して、クライアントAおよびクライアントBとのセッションに新にクライアントCまたはクライアントDを招待するための発呼処理を行う。PoCサーバ40を介してInviteを受信したクライアントCまたはクライアントDがこの発呼処理に応答し200OKを送信したとすると、自クライアントは、PoCサーバ40を介して200OKを受信した時点で、表示部12にクライアントCまたはクライアントDが応諾(Accept)したことを表示するなどして自クライアントのユーザに逐次通知し、クライアントCまたはクライアントDがグループ通話に逐次参加することになる。また、クライアントC、Dは、200OKを送信した時点でグループ通話に参加することになる。
一方、InviteをPoCサーバ40を介して受信したクライアントAまたはクライアントBが、この発呼処理に応答して486Busyを送信した場合、あるいはこの発呼処理に対して所定期間無応答である場合、自クライアントは、セッションを切断してグループ通話を終了することになる。このとき、自クライアントは、優先度が「高」である複数のクライアント(図5では、クライアントA、B)それぞれから受信する応答メッセージの内容とその応答メッセージを受信するタイミングに応じて、セッションを切断するときに行う処理が異なってくる。以下、486Busyを受信した自クライアントがセッションを切断するときに行う処理について説明する。図6に、本発明の第1の実施形態におけるPoCシステムの第3のシーケンスを、図7に、本発明の第1の実施形態におけるPoCシステムの第4のシーケンスを、それぞれ示す。なお、第3、第4のシーケンスでは、自クライアントがまだ発呼処理を行っていない、優先度が「中」であるクライアントCおよびクライアントDによる処理については省略している。
図6における第3のシーケンスは、自クライアントが優先度が「高」であるクライアントAおよびクライアントBに対してInviteを送信してセッションを開始した後、PoCサーバ40を介してクライアントAから200OKを受信し、その後、PoCサーバ40を介してクライアントBから486Busyを受信した場合におけるものである。通常、複数のクライアントに対して発呼処理を行ったクライアント(自クライアント)は、各クライアントからの応答メッセージを同時期に受信することは少なく、ある程度の時間差を伴って受信するため、セッションを切断するときに行う処理についてもこの点を考慮する必要がある。
図6における第3のシーケンスでは、自クライアントは、PoCサーバ40を介してクライアントAからの200OKを受信した時点でグループ通話を開始し、その後、PoCサーバ40を介してクライアントBから486Busyを受信した時点で、グループ通話を終了するメッセージ(Bye)を応答メッセージとしてクライアントAに送信し、クライアントAとの間でのセッションを切断する。この場合、クライアントAは、200OKを自クライアントに送信した時点でグループ通話を開始し、Byeを自クライアントから受信した時点でグループ通話を終了することになる。
また、図7における第4のシーケンスは、自クライアントが優先度が「高」であるクライアントAおよびクライアントBに対してInviteを送信してセッションを開始した後、PoCサーバ40を介してクライアントBから486Busyを受信し、その後、PoCサーバ40を介してクライアントAから200OKを受信した場合におけるものである。図7における第4のシーケンスでは、自クライアントは、PoCサーバ40を介してクライアントBからの486Busyを受信した時点以降ではグループ通話を開始せず、その時点以降における、PoCサーバ40を介してクライアントAから200OKを受信した時点では、グループ通話を終了するメッセージ(Bye)を応答メッセージとしてクライアントAに送信して、クライアントAが既に確立しているセッションを切断する。この場合、クライアントAは、200OKを自クライアントに送信した時点でグループ通話を開始し、Byeを自クライアントから受信した時点でグループ通話を終了することになる。
なお、第3、第4のシーケンスでは、優先度が最も高い2つのクライアント(クライアントA、B)に対して発呼処理を行ったクライアント(自クライアント)が、セッションを切断するときに行う処理について説明したが、優先度が最も高いクライアントが3つ以上であっても第3、第4のシーケンスを組み合わせることによって対応することができる。すなわち、あるクライアントから486Busyを受信した自クライアントは、その486Busyを受信した時点よりも前に別のクライアントから200OKを受信していればその別のクライアントとの間でのセッションを切断し、また、その486Busyを受信した時点以後に別のクライアントから200OKを受信してもその別のクライアントが既に確立しているセッションを切断する。これにより、複数のクライアントに対して発呼処理を行ったクライアント(自クライアント)が、各クライアントからの応答メッセージをある程度の時間差を伴って受信しても、セッションを確実に切断することができる。
なお、図6におけるシーケンス3において、自クライアントは、クライアントBから486Busyを受信した時点で、自クライアントを利用するユーザの意向を訊ねることなく、直ちにByeをクライアントAに送信してセッションを切断するようにしたが、当該時点後にグループ通話の切断の是非を確認するメッセージを表示部12に表示し、自クライアントを利用するユーザがグループ通話の切断を選択した場合に、ByeをクライアントAに送信してセッションを切断するようにしても良い。この構成により、自クライアントのユーザは、クライアントAの利用者であるAさんと既に開始している通話を継続するか中止するかを選択することができるため、本発明の第1の実施形態のPoCシステムを用いてより快適にグループ通話を楽しむことができる。
また、図6におけるシーケンス3において、自クライアントは、クライアントAの利用者であるAさんと既に開始している通話の継続期間に応じて、その通話を継続するか中止するかを判定するようにしても良い。図8に、本発明の第1の実施形態におけるクライアントの切断動作を示すフロー図を示す。なお、図8に示すフロー図は、図3に示したフロー図のステップ4の処理について詳細に記載したものになる。
重要度付PoC通信処理部16は、図3におけるステップ3の処理において、参加拒否メッセージ(486Busy)を受信する以前に、既に優先度「高」の他のクライアントから200OKを受信しているか否かを識別し(ステップ40)、200OKを受信していなければ(ステップ40、No)、セッションを切断(Byeメッセージを送信)する(ステップ42)。また、200OKを受信していれば(ステップ40、Yes)、200OKを送信してきたクライアントとグループ会話を開始してからの通話の継続期間(この継続期間は、ステップ5の処理において、グループ通話を開始すると伴に計時を開始することにより算出される)が一定時間を経過しているかを識別し(ステップ41)、経過していないときはセッションを切断する(ステップ42)。また、ステップ41において、一定時間が経過しているときは、グループ通話の切断の是非を確認するメッセージを表示部12に表示し(ステップ43)、発信元クライアントのユーザがグループ通話の切断を選択した場合(ステップ44、Yes)、セッションを切断する(ステップ42)。グループ通話の切断を選択しなかったときは(ステップ44、No)、グループ通話を継続し、図3におけるステップ6に移行する。この構成により、自クライアントは、200OKを最初に受信したクライアントAとの間におけるグループ通話の継続時間に応じて、その通話を継続するか中止するかを判定することができるため、本発明の第1の実施形態のPoCシステムを用いてより快適にグループ通話を楽しむことができる。
このように、自クライアントと、クライアントA、B、C、Dと、PoCサーバと、から構成される本発明の第1の実施形態PoCシステムにより、自クライアントがクライアントA、Bとのグループ通話を開始後にクライアントC、Dへの発呼処理を行うため、キーマンとなるA、Bさんが参加する場合にのみグループ通話を実行し、キーマンとなるA、Bさんが参加しない場合には、そのグループ通話を効率的に終了することができる。また、クライアントA、B、C、Dの使用者であるAさん、Bさん、Cさん、Dさんに自身がキーマンであるか否かを意識させることがないため、グループ通話による円滑なコミュニケーションを維持することができる。
なお、実際のクライアントとPoCサーバとの間の通信手順では、Invite、Refer、200OK、またはBusy以外のメッセージがクライアント間またはクライアント−PoCサーバ間において送受信される。図9では、図5に示す第2のシーケンスに、それらのメッセージを送受信する手順を加えたシーケンスを示している。ここで、100Tryingは、PoCサーバがセッション開始要求(INVITE)を送信した自クライアントに対してクライアントA、B、C、Dへ発呼処理を実行中であることを知らせるメッセージであり、180Ringingは、発呼処理を受け付けたクライアントA、B、C、Dが呼び出し中であるを知らせるメッセージであり、ACKは、200OKを受信したPoCサーバまたは自クライアントが送信元であるPoCサーバまたはクライアントA、B、C、Dに対してその200OKを受信したことを通知するメッセージである。図4、6、7に示す第1、3、4のシーケンスでは、これらの手順の表記を省略している。なお、図4、5、6、7のシーケンスにおいて、200OKを送信したクライアントA、B、C、Dまたは200OKを受信した自クライアントは、その送信した時点またはその受信した時点でグループ通話を開始するように記載しているが、厳密には、その送信した後にACKを受信した時点またはその受信した後にACKを送信した時点でグループ通話を開始する。
このように、本発明の第1の実施形態のPoC通話システムでは、優先度の高い人がグループ通話に参加しない場合に、自クライアントの働きによってグループ通話が終了され、時間や通信資源の浪費が回避される。
なお、自クライアントからPoCサーバに送信するINVITEにユーザの優先度を示す情報を付加し、PoCサーバを通じてINVITEを受信したクライアント(シーケンスにおけるクライアントA、B、C、D)のユーザが、自らの優先度を知ることができるようにすることも可能である。これは、INVITEに、例えば、“Priority:emergency”のヘッダをつけることにより実現できる。
なお、本発明の第1の実施形態のPoCシステムにおいて、自クライアントは、優先度「高」のユーザがグループ通話への参加を拒否したためにグループ通話の開始に失敗したとき、一定時間が経過した時点で再度、発呼処理を行うようにしても良い。
なお、本発明の第1の実施形態では、PoC通話を実施するシステムについて説明したが、本発明は、少なくとも3台以上の端末間でグループ通話、電話会議、会議通話、グループ会議等と称される各種通話形態に適用可能である。
(第2の実施形態)
本発明の第1の実施形態のPoCシステムは、発信元クライアント(シーケンスの自クライアント)による処理によって、優先度の最も高いクライアントがグループ通話に参加した場合のみ次に優先度の高いクライアントに発呼処理を実施するものであった。本発明の第2の実施形態のPoCシステムは、主に、PoCサーバによる処理によって、同様の発呼処理を実施するものである。
すなわち、発信元クライアントのユーザがグループ通話に参加するメンバー毎に優先順位を発信元クライアントに設定しておき、その発信元クライアントが、あるグループ通話に参加するメンバーのクライアントを特定する情報と、そのメンバー毎の優先順位と、をPoCサーバに送信しておく。PoCサーバは、あるグループ通話に参加するメンバーのクライアントを特定する情報と、そのメンバー毎の優先順位と、を登録しておき、その後、その登録したメンバーに対してグループ通話を行う処理を発信元クライアントから受け付けると、そのメンバーが使用しているクライアントのうちの優先順位の最も高いクライアント(すなわち、キーマンが使用しているクライアント)に対してまずは発呼処理を行い、優先順位の最も高いクライアントが発呼処理に応答した場合には次に優先順位の高いクライアントに対して発呼処理を行い、一方、優先順位の最も高いクライアントが発呼処理に応答しなかった場合には次に優先順位の高いクライアントに対して発呼処理を行わずグループ通話を終了するものである。以下、本発明の第2の実施形態におけるPoCシステムについて詳細に説明する。
本発明の第2の実施形態のPoCシステムに利用するクライアント10の構成は、図21に示すクライアントの構成と電話帳以外同様であり、入力部15、電話帳17、PoC通信処理部13、送受信部11、表示部、を有している。入力部15は、クライアント10使用者からの入力操作を受け付けPoC通信処理部16にその入力操作に応じた信号を出力する。電話帳17は、グループ通話用の各メンバーが使用しているクライアント毎(あるいは、クライアントを一意に特定する情報毎)に、グループ通話に用いる通信用の識別情報とグループ通話時の優先順位を表す優先度を記憶する(この識別情報および優先度以外に、近年の携帯電話端末が電話帳機能として記憶している各種個人情報も併せて記憶してもよい)。PoC通信処理部16は、複数のクライアントに対して送信すべきグループ通話に利用される情報を作成し、その情報を送受信部11に出力する、あるいは送受信部11から受信したグループ通話に利用される情報に対してデータ処理を行う。さらに、PoC通信処理部16は、電話帳17に記憶された、グループ通話に用いる通信用の識別情報とグループ通話時の優先順位を表す優先度とを送受信部11に出力する。送受信部11は、PoCサーバ40と携帯電話用無線を利用して通信を行う。表示部12は、各種情報を表示する表示部12とを有している。なお、クライアント1、クライアント2、クライアント3及びクライアント4の構造も同じである。
図10は、本発明の第2の実施形態におけるPoCサーバの構成を示すブロック図である。本発明の第2の実施形態のPoCシステムに利用するPoCサーバ40の構成は、図10に示すように、受信部41、送信部43とともに、記憶部46、重要度付PoC通信中継処理部45を有している。受信部41は、クライアント10、またはクライアント1、2、3、4からの各種情報(以下の記載において「メッセージ」と称している情報を少なくとも含む)を受信する。重要度付PoC通信中継処理部45は、クライアント10と優先度が設定された他のクライアント1〜4との間においてグループ通話に利用される各種情報の中継処理を行う(重要度付PoC通信中継処理部45による処理内容の詳細は、後述する[重要度付PoC通信中継処理部による処理内容]において説明する)。送信部43は、クライアント10、またはクライアント1、2、3、4に各種情報を送信する。記憶部46は、重要度付PoC通信中継処理部45が中継処理を行うために必要な通信用データや、あるクライアントに対する発言権の付与および放棄に関するデータ、さらに、クライアント10から受信した、あるグループ通話に参加するメンバーのクライアントを特定する情報とそのメンバー毎の優先順位とを対応付けた対応テーブル、を記憶する。なお、重要度付PoC通信中継処理部45は、PoCサーバ40に内蔵されたコンピュータやCPUがプログラムに規定された処理を実行することにより実現される。
発信元のクライアント使用者であるユーザは、予め入力部15によってグループ通話用の各メンバー毎に優先度を設定し(例えば、第1の実施形態において説明した図2の表示例のように、Aさん、Bさん、Cさん、Dさん、Eさんに優先度を設定し)、電話帳14に登録する。発信元のクライアントは、これらのメンバーに対してグループ通話を開始する前に、あるいはグループ通話を開始するために発呼処理を行った時点に、各メンバーが使用するクライアントの通信用の識別情報とグループ通話時にクライアント毎に割り当てられる優先度とをPoCサーバ40に送信しておく必要がある。
[重要度付PoC通信中継処理部による処理内容]
次に、グループ通話用の各メンバー毎(Aさん、Bさん、Cさん、Dさん)に図2(b)のように優先度が記憶部46に設定された場合に、重要度付PoC通信中継処理部45が実行する処理について説明する。重要度付PoC通信中継処理部45の動作手順は、実質的に、図3に示した第1の実施形態における重要度付PoC通信処理部16の処理フロー図の手順と同じであり、優先度が高いユーザへのセッション取得要求(INVITEの送信)を先に行い、優先度が高いユーザの全員から応諾(OK)が得られた場合に、優先度が「高」以外のユーザのクライアントにINVITEメッセージを送信する。
まず、クライアント10がグループ通話用のメンバー(Aさん、Bさん、Cさん、Dさん)を指定してセッション開始要求のメッセージ(Invite)を送信すると、このInviteを受信部41を介して受信した重要度付PoC通信中継処理部45は、記憶部46に記憶されているAさん、Bさん、Cさん、Dさんに設定された優先度を参照し、優先度の最も高いグループ通話用のメンバーを特定する。重要度付PoC通信中継処理部45は、優先度の最も高いグループ通話用のメンバーとしてAさん、Cさんを特定すると、記憶部46に登録されているAさん、Cさんに関する個人情報を基に、Aさん、CさんのクライアントA、C(なお、英数字が同一である名称とクライアントとは、対応している)を送信先とするセッション開始要求のメッセージ(Invite)を作成し、クライアントA、Cに送信するよう送信部43に出力する。
その後、重要度付PoC通信中継処理部45は、セッション開始要求を送信したクライアントA、Cからのその応答メッセージを待つ(ステップ2)。受信部41がクライアントAまたはクライアントCから応答メッセージを受信すると、重要度付PoC通信中継処理部45は、その応答メッセージが応諾(Accept)を表すOKのメッセージ(200OK)か、拒否(Reject)を表す参加拒否メッセージ(486Busy)かを識別し(ステップ3)、その応答メッセージが参加拒否メッセージ(486Busy)であれば(ステップ3、486Busy)、セッションを切断する(ステップ4。切断の際の手順は後述する[PoCシステムにおけるシーケンス]において説明する)。
また、重要度付PoC通信中継処理部45は、その応答メッセージがOKのメッセージ(200OK)であれば(ステップ3、200OK)、その応答メッセージに含まれる通信用識別情報からその応答メッセージを発信したクライアントを特定し(つまり、クライアントA、あるいはクライアントCかを特定し)、同じ応答メッセージ(200OK)をクライアント10に送信してそのクライアントとのグループ通話を開始させた後(ステップ5)、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信したかを判定する(ステップ6)。重要度付PoC通信中継処理部45は、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信していないと判定すれば(ステップ6、NO)、ステップ2からステップ4の処理を繰り返すことになる。
一方、重要度付PoC通信中継処理部45は、優先度の最も高いグループ通話用のメンバー全てから応答メッセージを受信していると判定すれば(ステップ6、Yes)、優先度が次に高いグループ通話用のメンバーであるBさん、Dさんについて、記憶部46に登録されている個人情報を基にクライアントB、Dを送信先とするセッション開始要求するメッセージ(Invite)を作成し、クライアントB、Dに送信するよう送信部43に出力する(ステップ7)。
受信部41がクライアントB、DからOKのメッセージ(200OK)を受信すると、重要度付PoC通信中継処理部45は、その都度、そのOKのメッセージに含まれる通信用識別情報からその応答メッセージを発信したクライアントを特定し(つまり、クライアントB、あるいはクライアントDかを特定し)、同じ応答メッセージ(200OK)をクライアント10に送信してその特定したクライアントを既に確立されたセッションに追加する処理を実行することになる。
[本発明の第2の実施形態のPoCシステムにおけるシーケンス]
次に、本発明の第2の実施形態のPoCシステムにおけるシーケンスについて説明する。まず、発呼処理を実行するクライアントと(以後、このクライアントのことを「自クライアント」と称する)、そのクライアントからの発呼処理を受け付けるクライアントA、Bと、PoCサーバと、から構成されるPoCシステムにおけるシーケンスについて説明する。図11に、本発明の第2の実施形態におけるPoCシステムの第1のシーケンスを示す。
第1のシーケンスにおいて、自クライアントは、Aさんの使用するクライアントAの優先度を「高」、Bさんの使用するクライアントBの優先度を「中」として設定し、クライアントAの優先度「高」、クライアントBの優先度「中」を示す情報を付してクライアントAおよびクライアントBへのINVITEをPoCサーバに送信する場合を想定している。Inviteに付加するデータについては後述する。
まず、自クライアントがクライアントA、Bを指定してセッション開始要求のメッセージ(Invite)を送信すると、このInviteを受信したPoCサーバは、優先度が「高」であるクライアントAにInviteを送信してセッションを開始する。PoCサーバ40からInviteを受信したクライアントAがこの発呼処理に応答し200OKを送信したとすると、PoCサーバは、200OKを自クライアントに送信し、自クライアントにグループ通話を開始させることになる。自クライアントはPoCサーバから200OKを受信した時点で、クライアントAは200OKを送信した時点でグループ通話を開始することになる。図中の太線部分は各クライアントが通話可能である状態を示している。但し、通話での発言はPoCサーバから発言権を取得しなければできない。なお、自クライアントは、PoCサーバ40を介してクライアントAからの200OKを受信したとすると、表示部12にクライアントAが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知しても良い。
なお、InviteをPoCサーバ40から受信したクライアントAがこの発呼処理に応答して486Busyを送信した場合、あるいはこの発呼処理に対して所定期間無応答である場合、PoCサーバは、自クライアントによるセッションを切断してグループ通話を終了させることになる。
この後、クライアントAからの200OKを受信したPoCサーバは、優先度が「中」であるクライアントBに対してInviteを送信して発呼処理を行う。Inviteを受信したクライアントBがこの発呼処理に応答し200OKを送信したとすると、PoCサーバは、クライアントBからの200OKを受信した時点で自クライアントに200OKを送信し、クライアントBをグループ通話に参加させることになる。また、クライアントBは、200OKを送信した時点でグループ通話に参加することになる。なお、自クライアントは、PoCサーバ40を介してクライアントBからの200OKを受信したとすると、表示部12にクライアントBが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知しても良い。
このように、自クライアントと、クライアントA、Bと、PoCサーバと、から構成される本発明の第1の実施形態PoCシステムにより、PoCサーバがクライアントAとのグループ通話を開始後にクライアントBへの発呼処理を行うため、キーマンとなるAさんが参加する場合にのみグループ通話を実行し、キーマンとなるAさんが参加しない場合には、そのグループ通話を効率的に終了することができる。また、クライアントA、Bの使用者であるAさん、Bさんに自身がキーマンであるか否かを意識させることがないため、グループ通話による円滑なコミュニケーションを維持することができる。
なお、自クライアントからPocサーバに送信するINVITEメッセージには、従来のINVITEメッセージにおいて
<entry uri="sip:
[email protected]"/>
と記述されていた箇所に、
<entry uri="sip:
[email protected]" aa:priority="emergency"/>
のように記述して、ユーザの優先度を表示することができる。これは優先度が高いことを属性として記述していることになる。
また、
<entry uri="sip:
[email protected]">
<aa:priority>emergency</aa:priority>
</entry>
のように、要素として記述するようにしても良い。
さらに、発呼処理を実行するクライアント(自クライアント)と、そのクライアントからの発呼処理を受け付けるクライアントA、B、C、Dと、PoCサーバと、から構成されるPoCシステムにおけるシーケンスについて説明する。図12に、本発明の第2の実施形態におけるPoCシステムの第2のシーケンスを示す。
第2のシーケンスにおいて、第2のシーケンスにおいて、自クライアントは、Aさんの使用するクライアントAの優先度を「高」、Bさんの使用するクライアントBの優先度を「高」、Cさんの使用するクライアントCの優先度を「中」、Dさんの使用するクライアントDの優先度を「中」として設定し、クライアントAの優先度「高」、クライアントBの優先度「高」、クライアントCの優先度「中」、クライアントDの優先度「中」、を示す情報を付してクライアントA、クライアントB、クライアントCおよびクライアントDへのINVITEをPoCサーバに送信する場合を想定している。なお、Inviteに付加するデータについては上述したとおりである。
まず、自クライアントがクライアントA、B、C、Dを指定してセッション開始要求のメッセージ(Invite)を送信すると、このInviteを受信したPoCサーバは、優先度が「高」であるクライアントA、BにInviteを送信してセッションを開始する。PoCサーバ40からInviteを受信したクライアントAがこの発呼処理に応答し200OKを送信したとすると、PoCサーバは、200OKを自クライアントに送信し、自クライアントにグループ通話を開始させることになる。さらに、PoCサーバ40からInviteを受信したクライアントBがこの発呼処理に応答し200OKを送信したとすると、PoCサーバは、200OKを自クライアントに送信し、クライアントBをグループ通話に参加させることになる。図中の太線部分は各クライアントが通話可能である状態を示している。但し、通話での発言はPoCサーバから発言権を取得しなければできない。なお、自クライアントは、PoCサーバ40を介してクライアントA、Bからの200OKを受信したとすると、表示部12にクライアントA、Bが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知しても良い。
この後、クライアントAからの200OKを受信したPoCサーバは、優先度が「中」であるクライアントBに対してInviteを送信して発呼処理を行う。Inviteを受信したクライアントCまたはクライアントDがこの発呼処理に応答し200OKを送信したとすると、PoCサーバは、クライアントCまたはクライアントDからの200OKを受信した時点で自クライアントに200OKを逐次送信し、クライアントCまたはクライアントDをグループ通話に逐次参加させることになる。また、クライアントC、Dは、200OKを送信した時点でグループ通話に参加することになる。なお、自クライアントは、PoCサーバ40を介してクライアントBからの200OKを受信したとすると、表示部12にクライアントBが応諾(Accept)したことを表示するなどして自クライアントのユーザに通知しても良い。
さらに、発呼処理を実行するクライアント(自クライアント)と、そのクライアントからの発呼処理を受け付けるクライアントA、B、C、Dと、PoCサーバと、から構成されるPoCシステムにおける別のシーケンスについて説明する。図13に、本発明の第2の実施形態におけるPoCシステムの第3のシーケンスを示す。図13に示す第3のシーケンスは、第2のシーケンスとPoCサーバから自クライアントへの200OKの伝え方が違っている。第2のシーケンスでは、クライアントA、Bのそれぞれから200OKを受信するごとに、PoCサーバがそれを自クライアントに伝えているが、第3のシーケンスでは、クライアントA、Bからの200OKを両方受信した時点で、PoCサーバが自クライアントにそれを伝えている。自クライアントは、200OKをPoCサーバから受信するとグループ通話を開始することになる。第3のシーケンスでは、PoCサーバがクライアントA、Bからの応答メッセージを両方受信するまで自クライアントへの応答メッセージの送信を保留することができるため、グループ通話を開始するときには必ず、自クライアント、クライアントA、およびクライアントBの間で会話をすることができる。
一方、InviteをPoCサーバ40から受信したクライアントAまたはクライアントBが、この発呼処理に応答して486Busyを送信した場合、あるいはこの発呼処理に対して所定期間無応答である場合、PoCサーバは、セッションを切断してグループ通話を終了することになる。このとき、PoCサーバは、優先度が「高」である複数のクライアント(図12では、クライアントA、B)それぞれから受信する応答メッセージの内容とその応答メッセージを受信するタイミングに応じて、セッションを切断するときに行う処理が異なってくる。以下、486Busyを受信したPoCサーバがセッションを切断するときに行う処理について説明する。図14に、本発明の第2の実施形態におけるPoCシステムの第4のシーケンスを、図15に、本発明の第2の実施形態におけるPoCシステムの第5のシーケンスを、図16に、本発明の第2の実施形態におけるPoCシステムの第6のシーケンスを、それぞれ示す。なお、第4、第5、第6のシーケンスでは、PoCサーバがまだ発呼処理を行っていない、優先度が「中」であるクライアントCおよびクライアントDによる処理については省略している。
図14における第4のシーケンスは、PoCサーバが優先度が「高」であるクライアントAおよびクライアントBに対してInviteを送信してセッションを開始した後、クライアントAから200OKを受信し、その後、クライアントBから486Busyを受信した場合におけるものである。通常、複数のクライアントに対してInviteを送信したPoCサーバは、各クライアントからの応答メッセージを同時期に受信することは少なく、ある程度の時間差を伴って受信するため、セッションを切断するときに行う処理についてもこの点を考慮する必要がある。
図14における第4のシーケンスでは、PoCサーバは、クライアントAからの200OKを受信した時点で200OKを自クライアントに送信し、自クライアントにグループ通話を開始させる。その後、PoCサーバ40は、クライアントBから486Busyを受信した時点で486Busyを自クライアントに送信し、グループ通話を終了するメッセージ(Bye)を応答メッセージとして自クライアントおよびクライアントAに送信し、自クライアント−クライアントA間でのセッションを切断する。この場合、自クライアントおよびクライアントAは、PoCサーバから200OKを受信または送信した時点でグループ通話を開始し、PoCサーバからByeを受信した時点でグループ通話を終了することになる。このとき、PoCサーバは、優先度「中」であるクライアントC、Dへの発呼処理を行わない。
図15における第5のシーケンスでは、PoCサーバは、クライアントA、Bからの応答メッセージを両方受信した時点で、その応答メッセージのうちの少なくとも一方が486Busyであれば、486Busyを自クライアントに送信し、グループ通話を終了するメッセージ(Bye)を応答メッセージとしてクライアントAに送信し、自クライアント−クライアントA間でのセッションを切断する。このPoCサーバは、クライアントBから486Busyを受信したとき、クライアントAから200OKを受信した時点で用意していた200OKを486Busyに変換して自クライアントに送信し、自クライアント−クライアントA間でのセッションを切断(Byeを送信)する。この場合、クライアントAは、PoCサーバから200OKを送信した時点でグループ通話を開始し、PoCサーバからByeを受信した時点でグループ通話を終了することになる。第5のシーケンスでは、PoCサーバがクライアントA、Bからの応答メッセージを両方受信するまで自クライアントへの応答メッセージの送信を保留することができるため、グループ通話を開始するときには必ず、自クライアント、クライアントA、およびクライアントBの間で会話をすることができる。
図16における第6のシーケンスでは、PoCサーバは、クライアントA、Bからのいずれか一方から、200OKを受信するよりも先に、486Busyを受信した場合におけるものである。この場合、PoCサーバは、クライアントBから486Busyを受信した時点で、自クライアントにBusyを送信し、クライアントAにセッション開始要求(INVITE)を取り消すための応答メッセージであるCanselを送信する。第6のシーケンスでは、PoCサーバが応答メッセージとしてCanselを利用することにより、通信処理工程を減らしつつセッションを確実に切断することができる。
なお、第4、第5、第6のシーケンスでは、優先度が最も高い2つのクライアント(クライアントA、B)に対して発呼処理を行ったクライアント(自クライアント)が、セッションを切断するときに行う処理について説明したが、優先度が最も高いクライアントが3つ以上であっても第4、第5、第6のシーケンスを組み合わせることによって対応することができる。すなわち、あるクライアントから486Busyを受信したPoCサーバは、その486Busyを受信した時点よりも前に別のクライアントから200OKを受信していればその別のクライアントと自クライアントとの間でのセッションを切断し、また、その486Busyを受信した時点以後に別のクライアントから200OKを受信してもその別のクライアントが既に確立しているセッションを切断する。第4、第5、第6のシーケンスにより、複数のクライアントに対して発呼処理を行ったPoCサーバが、各クライアントからの応答メッセージをある程度の時間差を伴って受信しても、セッションを確実に切断することができる。
なお、実際のクライアントとPoCサーバとの間の通信手順では、第1の実施形態における図9に示すシーケンスと同様、Invite、Refer、200OK、またはBusy以外のメッセージがクライアント間またはクライアント−PoCサーバ間において送受信される。図11から図16に示す第1から第6のシーケンスでは、これらの手順の表記を省略している。なお、図11から16のシーケンスにおいて、200OKを送信したクライアントA、B、C、Dまたは200OKを受信した自クライアントは、その送信した時点またはその受信した時点でグループ通話を開始するように記載しているが、厳密には、その送信した後にACKを受信した時点またはその受信した後にACKを送信した時点でグループ通話を開始する。
このように、自クライアントと、クライアントA、B、C、Dと、PoCサーバと、から構成される本発明の第2の実施形態PoCシステムにより、PoCサーバがクライアントA、Bとのグループ通話を開始後にクライアントC、Dへの発呼処理を行うため、キーマンとなるA、Bさんが参加する場合にのみグループ通話を実行し、キーマンとなるA、Bさんが参加しない場合には、そのグループ通話を効率的に終了することができる。また、クライアントA、B、C、Dの使用者であるAさん、Bさん、Cさん、Dさんに自身がキーマンであるか否かを意識させることがないため、グループ通話による円滑なコミュニケーションを維持することができる。
また、PoCサーバからINVITEを受信したクライアント(シーケンスにおけるクライアントA、B、C、D)のユーザに優先度を知らせる場合は、第1の実施形態と同様に、INVITEに、例えば、“Priority:emergency”等のヘッダをつけることで実現できる。
なお、本発明の第2の実施形態のPoCシステムにおいて、自クライアントは、優先度「高」のユーザがグループ通話への参加を拒否したためにグループ通話の開始に失敗したとき、一定時間が経過した時点で再度、発呼処理を行うようにしても良い。
なお、本発明の第2の実施形態では、PoC通話を実施するシステムについて説明したが、本発明は、少なくとも3台以上の端末間でグループ通話、電話会議、会議通話、グループ会議等と称される各種通話形態に適用可能である。
(第3の実施形態)
本発明の第3の実施形態では、優先度の高いユーザが参加できないグループ通話の発呼を事前に回避するために、プレゼンス情報を利用したシステムについて説明する。
本発明の第3の実施形態のシステムは、第1の実施形態または第2の実施形態におけるクライアント、PoCサーバの他に、各クライアントのプレゼンス情報(クライアントの利用者が手が空いている状態(Idle)であるか取り込み中(Busy)であるかなどの、クライアント利用者の状況を示す情報)を登録するプレゼンスサーバを有している。各クライアントは、各自のプレゼンス情報をプレゼンスサーバに登録する。なお、プレゼンスサーバは、PoCサーバが兼ねても良い。
図17に、本発明の第3の実施形態のクライアントによるプレゼンス情報を取得する際の第1のシーケンスを示す。本発明の第3の実施形態のシステムにおける複数のクライアント(図17では、Aさん、Bさん、Cさん、Dさん、Eさんそれぞれが所有するクライアント)に対してグループ通話処理を実行しようとしているクライアント(以後、「自クライアント」と称する)は、セッション開始要求に先立ち、図17に示すように、グループ通話のために自クライアントのユーザの選定したグループ通話のメンバー(ここでは「Aさん」「Bさん」「Cさん」の優先度が「高」であり、「Dさん」「Eさん」の優先度が「中」であるとする。)のプレゼンス情報を要求するメッセージ(Subscribe)をプレゼンスサーバに送信し、その要求に対するメッセージ(Notify)をプレゼンスサーバから取得する。そして、自クライアントは、優先度が「高」のメンバー(「Aさん」「Bさん」「Cさん」)の全員のプレゼンス情報がIdleであるときにのみ、第1の実施形態または第2の実施形態のPoCシステムにおいて説明した処理を実行して、グループ通話のためのセッション開始を要求する。
また、自クライアントがプレゼンスサーバから取得したプレゼンス情報のうち、優先度が「高」のメンバーのプレゼンス情報が常に全てIdleとは限らない。このため、図18の本発明の第3の実施形態のクライアントによるプレゼンス情報を取得する際の第2のシーケンスに示すように、優先度が「高」のメンバーのプレゼンス情報の中にBusyのメンバー(図18では、「Cさん」のプレゼンス情報がBusy)がいる場合、自クライアントからSubscribeを受信したプレゼンスサーバは、そのSubscribeを受信した時点と「Cさん」のプレゼンス情報がIdleに更新された時点に、それぞれNotifyを自クライアントに送信する。そして、自クライアントは、優先度が「高」のメンバー(「Aさん」「Bさん」「Cさん」)の全員がプレゼンス情報がIdleになるのを待ってセッション開始を要求する。また、図19の本発明の第3の実施形態のクライアントによるプレゼンス情報を取得する際の第3のシーケンスに示すように、優先度が「高」のメンバーのプレゼンス情報の中にBusyのメンバーがいるNotifyを取得した自クライアントが、「Cさん」の使用するクライアントCにグループ通話を促すメッセージ(Message)を送る。自クライアントからSubscribeを受信したプレゼンスサーバは、「Cさん」のプレゼンス情報がIdleに更新された時点にNotifyを自クライアントに送信する。そして、自クライアントは、「Cさん」のプレゼンス情報がIdleになったときセッション開始を要求するようにしても良い。
このように、自クライアントのユーザは、グループ通話の発呼を行う前に、グループ通話に参加してもらいたい優先度が「高」のメンバーのプレゼンス情報を確認してそのメンバーのグループ通話への参加、不参加を知ることができる。このため、第1の実施形態や第2の実施形態のPoCシステムのようにグループ通話の発呼処理を一度も行わなくても優先度の「高」のメンバーのグループ通話への参加、不参加を確認することができ、発呼処理を効果的に減らすことができる。
なお、本発明の第1の実施形態では、PoC通話を実施するシステムについて説明したが、本発明は、少なくとも3台以上の端末間でグループ通話、電話会議、会議通話、グループ会議等と称される各種通話形態に適用可能である。