以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。図面の説明において、同一又は同等の要素には同一符号を用い、重複する説明を省略する。
図1は、本実施形態に係る通信制御装置を含む通信システムの構成を概略的に示す図である。図1に示されるように、通信システム1は、LTEの通信規格(通信プロトコル)に準拠して、端末装置(UE:User Equipment)に対してVoLTE等の音声通信サービスを提供する通信システムである。通信システム1は、複数のUEが接続可能であって、P−CSCF(Proxy Call Session Control Function)20aと、P−CSCF20b(通信制御装置)と、IMS内部ネットワーク30(コアネットワーク)と、AS(Application Server)40aと、AS40bと、を含んで構成される。この通信システム1では、VoLTEの提供時には、セッションの確立、変更及び切断の制御は、SIPを用いて実行される。これらの制御は、通信システム1に接続可能なUE10a(第1端末装置)とUE10b(第2端末装置)との間で、SIPメッセージ(信号)が送受信されることによって行われる。
UE10a及びUE10bは、ユーザにより用いられ、VoLTEによる音声通信を利用可能な端末装置である。UE10a及びUE10bは、例えば、スマートフォン及びタブレット端末を含む携帯端末である。UE10aは、WLAN(Wireless Local Area Network)等のIP−CAN(IP-ConnectivityAccess Network)を介してP−CSCF20aに接続されている。UE10bは、WLAN等のIP−CANを介してP−CSCF20bに接続されている。例えば、UE10aがUE10bに対して発信処理を行った場合、その通信(通話)品質を確保するために、UE10a、UE10b、P−CSCF20a、P−CSCF20b及びIMS内部ネットワーク30の間では、UE10a及びUE10bのリソースを予約するためのプレコンディション制御が行われる。UE10aとUE10bとの音声通信は、メディアパケットが伝送されることにより行われる。
P−CSCF20aは、UE10aに対してVoLTEを提供する際にVoLTEの呼制御を行う通信制御装置である。P−CSCF20aは、UE10aとの間でSIPメッセージの送受信を行う。P−CSCF20bは、UE10bに対してVoLTEを提供する際にVoLTEの呼制御を行う通信制御装置である。P−CSCF20bは、UE10bとの間でSIPメッセージの送受信を行う。P−CSCF20a及びP−CSCF20bは、IMS内部ネットワーク30を介して互いにSIPメッセージを送受信する。P−CSCF20a及びP−CSCF20bは、例えば、UE10a及びUE10b間の通信のために、プレコンディション制御を行う。
IMS内部ネットワーク30は、S−CSCF(Serving Call Session Control Function)/I−CSCF(Interrogating Call Session Control Function)310a、及び、S−CSCF/I−CSCF310bを含んで構成される。S−CSCF/I−CSCF310a及びS−CSCF/I−CSCF310bは、VoLTEの呼制御を行うシステムである。
AS40a及びAS40bは、VoLTEのサービスを制御するアプリケーションサーバである。なお、図1では、UE10a及びUE10b間の通信に着目しているので、P−CSCF20、S−CSCF/I−CSCF310、AS40は、UE10に対して1台ずつ図示されているが、実際にはこれら装置はそれぞれ複数台存在する。また、各装置は、物理的に一台の装置で構成されていてもよいし、複数台の装置によって構成された処理システムであってもよい。
次に、上述のプレコンディション制御を実現するための通信制御装置であるP−CSCF20bについて説明する。以下、UE10aがUE10bに対して発信処理を行う場合を例として説明する。
図2は、P−CSCF20bの機能構成を示すブロック図である。図2に示されるように、P−CSCF20bは、機能的には、メッセージ送受信部21(送受信手段)と、SDP情報記憶部22(セッション情報記憶手段)と、呼状態管理部23と、メッセージ処理部24と、を備える。このP−CSCF20bは、図3に示されるハードウェアによって構成される。
図3は、P−CSCF20bのハードウェア構成図である。図3に示されるように、P−CSCF20bは、物理的には、CPU(Central Processing Unit)201、主記憶装置であるRAM(RandomAccess Memory)202及びROM(Read Only Memory)203、通信を行うための通信モジュール204、並びに、ハードディスク等の補助記憶装置205等のハードウェアを備えるコンピュータとして構成される。これらの構成要素が動作することにより、図2に示されるP−CSCF20bの各機能が発揮される。
図2に戻って、P−CSCF20bの機能構成について詳細に説明する。メッセージ送受信部21は、UE10aに対してIMS内部ネットワーク30を介してSIPメッセージの送受信を行うとともに、UE10bに対してSIPメッセージの送受信を行う送受信手段として機能する。メッセージ送受信部21は、UE10b及びIMS内部ネットワーク30から受信したSIPメッセージをメッセージ処理部24に出力する。メッセージ送受信部21は、メッセージ処理部24の指示に基づいて、メッセージ処理部24によって出力されたSIPメッセージを、その宛先に応じてUE10bまたはIMS内部ネットワーク30に送信する。
SDP情報記憶部22は、SDP情報(セッション情報)を記憶するSDP情報記憶手段として機能する。SDP情報は、セッションに関する情報であり、UE10a及びUE10b間のメディアパケット伝送に用いられる能力のネゴシエーションに用いられる。SDP情報記憶部22は、セッションごとにSDP情報管理テーブルを有し、UE10aのSDP情報と、UE10bのSDP情報と、をそれぞれSDP情報管理テーブルに記憶している。
図4は、SDP情報記憶部22に格納されるSDP情報管理テーブルの一例を示す図である。図4に示されるように、SDP情報管理テーブルには、ネットワーク側SDP情報と、端末側SDP情報(端末側セッション情報)と、が記憶される。ネットワーク側SDP情報は、IMS内部ネットワーク30から受信したSIPメッセージに含まれていたSDP情報であり、UE10aのSDP情報である。端末側SDP情報は、UE10bから受信したSIPメッセージに含まれていたSDP情報であり、UE10bのSDP情報である。各SDP情報には、例えば、プレコンディション情報、コーデック情報、メディア種別情報、方向属性情報、及び、テレフォンイベント情報等が含まれている。
プレコンディション情報は、リソースの予約状況を示す情報である。プレコンディション情報には、自リソースの予約状況と、相手リソースの予約状況と、が含まれている。自リソースとは、当該SDP情報を含むSIPメッセージの送信元のUE10のリソースであり、相手リソースとは、当該SDP情報を含むSIPメッセージの宛先のUE10のリソースである。
コーデック情報は、メディアパケットの伝送に用いられる符号化方式を示す情報である。コーデック情報としては、例えば、「AMR-WB(Adaptive Multi Rate Wide Band)」、「H.264」等がある。メディア種別情報は、伝送されるメディアの種類を示す情報である。メディア種別情報としては、例えば、音声を示す「audio」、映像を示す「video」、テキストを示す「text」等がある。方向属性情報は、UE10の送受信動作のモードを示す情報である。方向属性情報としては、送受信モードを示す「sendrecv」、受信のみのモードを示す「recvonly」、送信のみのモードを示す「sendonly」等がある。テレフォンイベント情報は、DTMF(Dual ToneMulti-Frequency)のイベントを示す情報である。「1-15」は、1〜15がDTMFに対応していることを示している。
SDP情報記憶部22は、メッセージ処理部24の指示に基づいて、IMS内部ネットワーク30から受信したSIPメッセージに含まれているSDP情報で、SDP情報管理テーブルのネットワーク側SDP情報を更新する。SDP情報記憶部22は、メッセージ処理部24の指示に基づいて、UE10bから受信したSIPメッセージに含まれているSDP情報(信号内セッション情報)で、SDP情報管理テーブルの端末側SDP情報を更新する。つまり、SDP情報記憶部22は、UE10a及びUE10bの最新のSDP情報を保持している。
呼状態管理部23は、呼制御の状態を管理する呼状態管理手段として機能する。具体的には、呼状態管理部23は、セッションごとに、受信したSIPメッセージを管理している。呼状態管理部23は、例えば、INVITEを受信したか否か、180Ringingを受信したか否か、200 OK(INVITE)を受信したか否か等の呼制御状態をフラグ等によって管理している。呼状態管理部23は、メッセージ処理部24の指示に基づいて、フラグの値を変更する。
メッセージ処理部24は、SIPメッセージを処理するメッセージ処理手段として機能する。メッセージ処理部24は、解析部41と、判定部42(判定手段)と、生成部43(生成手段)と、を備える。
解析部41は、メッセージ送受信部21によって受信されたSIPメッセージを解析する解析手段として機能する。解析部41は、SIPメッセージを解析して、送信元、宛先、Call−ID、SIPメッセージの種類等を判別する。SIPメッセージの種類としては、セッション開始要求を示すINVITE、セッションパラメータの更新要求を示すUPDATE及びreINVITE、通信終了要求を示すBYE等の要求(オファー)メッセージ、呼び出し中であることを示す180 Ringing、セッションが進行したことを示す183 Session Progress、オファーが成功したことを示す200 OK等の応答メッセージがある。解析部41は、SIPメッセージにSDP情報が含まれている場合には、SDP情報を抽出する。
判定部42は、解析部41の解析結果に基づいて、メッセージ送受信部21によって受信されたSIPメッセージを転送処理するか、代理応答処理するかを判定する判定手段として機能する。判定部42は、メッセージ送受信部21によって受信されたSIPメッセージの送信元がUE10aであり、宛先がUE10bである場合、そのSIPメッセージを転送処理する。この場合、判定部42は、そのSIPメッセージに含まれるSDP情報をネットワーク側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、そのSIPメッセージの種類に応じて、呼制御の状態を変更するように呼状態管理部23に指示する。そして、判定部42は、そのSIPメッセージをUE10bに送信するようにメッセージ送受信部21に指示する。
判定部42は、メッセージ送受信部21によって受信されたSIPメッセージの送信元がUE10bであり、宛先がUE10aである場合(以降、UE10bから受信したSIPメッセージという)、そのSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定する。判定部42は、まず、UE10bから受信したSIPメッセージが、UE10aが有するSDP情報(つまり、セッションのパラメータ)を更新するためのSIPメッセージ、または、セッションが継続されているかを確認するキープアライブのためのSIPメッセージであるか否か判定する。UE10aが有するSDP情報を更新するためのSIPメッセージとしては、例えば、UPDATE、reINVITE等がある。キープアライブのためのSIPメッセージとしては、UPDATE等がある。
判定部42は、UE10bから受信したSIPメッセージが、UE10aが有するSDP情報を更新するためのSIPメッセージ、または、セッションが継続されているかを確認するキープアライブのためのSIPメッセージでない場合には、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定する。判定部42は、UE10bから受信したSIPメッセージが、UE10aが有するSDP情報を更新するためのSIPメッセージ、または、セッションが継続されているかを確認するキープアライブのためのSIPメッセージである場合には、さらにUE10bから受信したSIPメッセージに含まれるSDP情報に基づいて、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定する。
具体的に説明すると、判定部42は、UE10bから受信したSIPメッセージに含まれるSDP情報と、SDP情報記憶部22に記憶されている端末側SDP情報と、を比較することによって、そのSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定する。つまり、判定部42は、UE10bから受信したSIPメッセージに含まれるSDP情報と、UE10bから受信したSIPメッセージのうち当該SIPメッセージの1つ前に受信したSIPメッセージに含まれるSDP情報と、を比較することによって、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定する。
判定部42は、プレコンディション情報を除いて、SIPメッセージに含まれるSDP情報と、端末側SDP情報と、を比較する。つまり、判定部42は、SIPメッセージに含まれるSDP情報と、端末側SDP情報と、がプレコンディション情報を除く部分において異なる場合に、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定する。判定部42は、SIPメッセージに含まれるSDP情報と、端末側SDP情報と、がプレコンディション情報を除く部分において同じである場合には、さらに呼制御の状態に基づいて、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定してもよい。
具体的に説明すると、判定部42は、呼状態管理部23に問い合わせて呼制御の状態を取得し、呼制御の状態がUE10bから180 Ringingを受信する前であるか、180 Ringingの受信後に当該セッションが切断された後(つまり、呼制御の状態がUE10aまたはUE10bから200 OK(BYE)を受信した後)である場合に、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定する。ここで、セッションが切断された後に受信するSIPメッセージとしては、新たなセッションを確立するためのSIPメッセージ等が含まれる。また、判定部42は、呼制御の状態がUE10bから180 Ringingを受信した後であり、かつ、そのセッションが切断される前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定する。
つまり、判定部42は、SIPメッセージに含まれるSDP情報と端末側SDP情報とが、プレコンディション情報を除いて同じであり、呼制御の状態がUE10bから180 Ringingを受信した後であり、かつ、そのセッションが切断される前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定する。一方、判定部42は、SIPメッセージに含まれるSDP情報と端末側SDP情報とが、プレコンディション情報を除いて同じであっても、呼制御の状態がUE10bから180 Ringingを受信する前であるか、180 Ringingを受信後にそのセッションが切断された後である場合には、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定する。なお、reINVITEは、セッション確立後に送信されるSIPメッセージであるので、200 OK(INVITE)受信前においては、UPDATE等が送信不要なSIPメッセージであるか否かの判定対象となり、200 OK(INVITE)受信後においては、UPDATE及びreINVITE等がUE10aに送信不要なSIPメッセージであるか否かの判定対象となる。
判定部42は、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かの判定を行った後に、そのSIPメッセージに含まれるSDP情報を端末側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、そのSIPメッセージの種類に応じて、呼制御の状態を変更するように呼状態管理部23に指示する。そして、判定部42は、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定した場合には、代理応答処理を行うために、そのSIPメッセージに対する応答メッセージを生成するように生成部43に指示する。一方、判定部42は、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定した場合には、転送処理を行うために、そのSIPメッセージをUE10aに送信するようにメッセージ送受信部21に指示する。
生成部43は、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定部42によって判定されたことに応じて、UE10aの代わりに応答メッセージ(応答信号)を生成する生成手段として機能する。生成部43は、例えば、宛先がUE10aで送信元がUE10bであるUPDATEがUE10aに送信不要であると判定された場合に、送信元をUE10a、宛先をUE10bとした200 OK(UPDATE)を生成する。生成部43は、生成した200 OK(UPDATE)をUE10bに送信するようにメッセージ送受信部21に指示する。
次に、図5を参照して、UE10aがUE10bに対して発信処理を行う場合におけるP−CSCF20bの動作を説明する。図5は、P−CSCF20bが実行する通信制御方法の一連の処理の一例を示すフローチャートである。図5に示される一連の処理は、P−CSCF20bがUE10bからSIPメッセージを受信したことにより開始される(受信ステップ)。
まず、解析部41が、UE10bから受信したSIPメッセージを解析して、送信元、宛先、Call−ID、SIPメッセージの種類等を判別する。そして、判定部42は、UE10bから受信したSIPメッセージがUPDATEまたはreINVITEであるか、それ以外であるかを判定する(ステップS01,判定ステップ)。ステップS01において、UE10bから受信したSIPメッセージがUPDATEまたはreINVITEであると判定された場合(ステップS01;Yes)、判定部42は、そのSIPメッセージのSDP情報と、SDP情報記憶部22のSDP情報管理テーブルに記憶されている端末側SDP情報と、を比較し、プレコンディション情報を除いて、一致するか否かを判定する(ステップS02,判定ステップ)。
ステップS02において、SIPメッセージのSDP情報と、SDP情報記憶部22のSDP情報管理テーブルに記憶されている端末側SDP情報と、がプレコンディション情報を除いて一致すると判定された場合(ステップS02;Yes)、判定部42は、呼状態管理部23に問い合わせて、UE10a及びUE10b間の呼制御の状態を取得する。そして、判定部42は、呼制御の状態が、180 Ringing受信後であり、かつ、そのセッションが切断される前であるか、180 Ringing受信前であるか、180 Ringing受信後であってそのセッションが切断された後であるかを判定する(ステップS03,判定ステップ)。
ステップS03において、呼制御の状態が、180 Ringing受信後であり、かつ、そのセッションが切断される前であると判定された場合(ステップS03;Yes)、判定部42は、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定し、代理応答処理を行う(ステップS04)。具体的には、判定部42は、UE10bから受信したSIPメッセージに含まれるSDP情報を端末側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、そのSIPメッセージの種類に応じて、呼制御の状態を変更するように呼状態管理部23に指示する。これにより、SDP情報記憶部22は、SIPメッセージに含まれるSDP情報で端末側SDP情報を更新し、呼状態管理部23は、呼制御の状態を示すフラグの値を更新する。
続いて、判定部42は、そのSIPメッセージに対する応答メッセージを生成するように生成部43に指示する。そして、生成部43は、送信元をUE10a、宛先をUE10bとした200 OK(UPDATE)を生成し(生成ステップ)、生成したSIPメッセージをUE10bに送信するようにメッセージ送受信部21に指示する。そして、メッセージ送受信部21は、200 OK(UPDATE)をUE10bに送信し(送信ステップ)、一連の処理が終了する。
一方、ステップS01において、UE10bから受信したSIPメッセージがUPDATE及びreINVITEのいずれでもないと判定された場合(ステップS01;No)、ステップS02において、SIPメッセージのSDP情報と、SDP情報記憶部22のSDP情報管理テーブルに記憶されている端末側SDP情報とが、プレコンディション情報を除いた部分において一致しないと判定された場合(ステップS02;No)、または、ステップS03において、呼制御の状態が、180 Ringing受信前、または、180 Ringing受信後であってそのセッションが切断された後であると判定された場合(ステップS03;No)、判定部42は、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定し、転送処理を行う(ステップS05)。
具体的には、判定部42は、UE10bから受信したSIPメッセージに含まれるSDP情報を端末側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、そのSIPメッセージの種類に応じて、呼制御の状態を変更するように呼状態管理部23に指示する。これにより、SDP情報記憶部22は、SIPメッセージに含まれるSDP情報で端末側SDP情報を更新し、呼状態管理部23は、呼制御の状態を示すフラグの値を更新する。続いて、判定部42は、そのSIPメッセージをUE10aに送信するようにメッセージ送受信部21に指示する。そして、メッセージ送受信部21は、UE10bから受信したSIPメッセージをIMS内部ネットワーク30に送信し、一連の処理が終了する。
このように、P−CSCF20bでは、180 Ringing受信後かつそのセッションが切断される前の呼制御の状態において、UE10bから受信したSIPメッセージのうちUPDATE及びreINVITEについて、そのSIPメッセージの1つ前に受信したSIPメッセージのSDP情報と、プレコンディション情報を除いてSDP情報が同じである場合に、そのSIPメッセージを代理応答処理の対象とし、それ以外のSIPメッセージを転送処理の対象としている。
なお、呼制御の状態に関わらず、同じSDP情報を含むUPDATE及びreINVITEがUE10bから繰り返し送信されることもあり得る。このため、図5のフローチャートにおいて、ステップS03は省略されてもよい。つまり、判定部42は、呼制御の状態を考慮することなく、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定してもよい。また、ステップS02において、判定部42は、プレコンディション情報全体ではなく、プレコンディション情報の自リソース(UE10bのリソース)に関する情報を除いて、UE10bから受信したSIPメッセージに含まれるSDP情報と、SDP情報記憶部22に記憶されている端末側SDP情報と、を比較してもよい。
次に、図6〜図8を参照して、通信システム1において実行されるプレコンディション制御の一例を説明する。図6は、通信システム1において実行されるプレコンディション制御の一連の処理の一例を示すシーケンス図である。図7の(a)は図6のINVITEに含まれるSDP情報の一例を示す図、図7の(b)は図6の183 Session Progressに含まれるSDP情報の一例を示す図である。図8の(a)は図6におけるINVITE受信時のSDP情報管理テーブルの一例を示す図、図8の(b)は図6における183 Session Progress受信時のSDP情報管理テーブルの一例を示す図である。
図6に示されるように、まず、UE10aがリソース利用可能状態となる(ステップS11)。例えば、UE10aが他のUEと通話中である場合、または、UE10aがリソース予約の概念がない固定電話である場合等に、UE10aはリソース利用可能状態となる。そして、UE10aのユーザが、UE10aを用いて、UE10bに対する発信操作を行う。UE10aが他のUEと通話中である場合には、キャッチホン機能を利用することにより、UE10bに対する発信操作を行う。これにより、UE10aからUE10bに発信処理が行われ、UE10aは、INVITEをUE10bに向けて送信する(ステップS12)。このINVITEには、例えば、図7の(a)に示されるSDP情報が含まれている。このSDP情報は、UE10aのリソース(自リソース)が予約済みであり、UE10bのリソース(相手リソース)が未予約であり、符号化方式としてAMR−WBを用い、音声の伝送を行い、送受信モードで動作し、0〜15がDTMFに対応していることを示している。
そして、P−CSCF20aは、UE10aからINVITEを受信すると、受信したINVITEをIMS内部ネットワーク30に転送する(ステップS13)。そして、IMS内部ネットワーク30は、P−CSCF20aからINVITEを受信すると、受信したINVITEをP−CSCF20bに転送する(ステップS14)。
続いて、P−CSCF20bは、IMS内部ネットワーク30からINVITEを受信すると、解析部41が、送信元、宛先、Call−ID、SIPメッセージの種類等を判別し、SDP情報を抽出する。そして、メッセージ送受信部21によって受信されたSIPメッセージの送信元がUE10aであり、宛先がUE10bであるので、判定部42は、INVITEを転送処理する(ステップS15)。このとき、判定部42は、INVITEに含まれるSDP情報をネットワーク側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、UE10aからINVITEを受信したことを記憶するように呼状態管理部23に指示する。
これにより、図8の(a)に示されるように、SDP情報記憶部22は、SDP情報管理テーブルにおいて、INVITEに含まれるSDP情報をネットワーク側SDP情報として記憶する。また、呼状態管理部23は、呼制御の状態を更新する。そして、判定部42は、INVITEをUE10bに送信するようにメッセージ送受信部21に指示し、メッセージ送受信部21は、INVITEをUE10bに送信する。
UE10bは、INVITEを受信すると、その応答として、183 Session ProgressをUE10aに向けて送信する(ステップS16)。この183 Session Progressには、例えば、図7の(b)に示されるSDP情報が含まれている。このSDP情報は、UE10bのリソース(自リソース)が未予約であり、UE10aのリソース(相手リソース)が予約済みであり、符号化方式としてAMR−WBを用い、音声の伝送を行い、送受信モードで動作し、0〜15がDTMFに対応していることを示している。続いて、UE10bは、リソースの予約を行う(ステップS17)。
そして、P−CSCF20bは、UE10bから183 Session Progressを受信すると、解析部41が、送信元、宛先、Call−ID、SIPメッセージの種類等を判別し、SDP情報を抽出する。そして、UE10bから受信したSIPメッセージが183 Session Progressであるので、判定部42は、例えば、UE10bとの通信用の無線ベアラを作成し、QoS(Quality of Service)を設定する(ステップS18)とともに、183 Session Progressを転送処理する(ステップS19)。このとき、判定部42は、183 Session Progressに含まれるSDP情報を端末側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、UE10bから183 Session Progressを受信したことを記憶するように呼状態管理部23に指示する。
これにより、図8の(b)に示されるように、SDP情報記憶部22は、SDP情報管理テーブルにおいて、183 Session Progressに含まれるSDP情報を端末側SDP情報として記憶する。また、呼状態管理部23は、呼制御の状態を更新する。そして、判定部42は、183 Session ProgressをIMS内部ネットワーク30に送信するようにメッセージ送受信部21に指示し、メッセージ送受信部21は、183 Session ProgressをIMS内部ネットワーク30に送信する。
そして、IMS内部ネットワーク30は、P−CSCF20bから183 Session Progressを受信すると、受信した183 Session ProgressをP−CSCF20aに転送する(ステップS20)。そして、P−CSCF20aは、IMS内部ネットワーク30から183 Session Progressを受信すると、QoSを設定する(ステップS21)とともに、183 Session ProgressをUE10aに転送する(ステップS22)。
そして、UE10bにおいて呼び出しが開始され、UE10bは、180 RingingをUE10aに向けて送信する(ステップS23)。この180 Ringingには、SDP情報は含まれていない。続いて、P−CSCF20bは、UE10bから180 Ringingを受信すると、解析部41が、送信元、宛先、Call−ID、SIPメッセージの種類等を判別する。そして、UE10bから受信したSIPメッセージが180 Ringingであるので、判定部42は、180 Ringingを転送処理する(ステップS24)。このとき、判定部42は、UE10bから180 Ringingを受信したことを記憶するように呼状態管理部23に指示し、呼状態管理部23は、呼制御の状態を更新する。そして、判定部42は、180 RingingをIMS内部ネットワーク30に送信するようにメッセージ送受信部21に指示し、メッセージ送受信部21は、180 RingingをIMS内部ネットワーク30に送信する。
そして、IMS内部ネットワーク30は、P−CSCF20bから180 Ringingを受信すると、受信した180 RingingをP−CSCF20aに転送する(ステップS25)。そして、P−CSCF20aは、IMS内部ネットワーク30から180 Ringingを受信すると、受信した180 RingingをUE10aに転送する(ステップS26)。
その後、UE10bをオフフックする等してUE10bのユーザが応答したことに応じて、UE10bは、INVITEが成功したことを示す200 OK(INVITE)をUE10aに向けて送信する(ステップS27)。この200 OK(INVITE)には、SDP情報は含まれていない。続いて、P−CSCF20bは、UE10bから200 OK(INVITE)を受信すると、解析部41が、送信元、宛先、Call−ID、SIPメッセージの種類等を判別する。そして、UE10bから受信したSIPメッセージが200 OK(INVITE)であるので、判定部42は、200 OK(INVITE)を転送処理する(ステップS28)。このとき、判定部42は、UE10bから200 OK(INVITE)を受信したことを記憶するように呼状態管理部23に指示し、呼状態管理部23は、呼制御の状態を更新する。そして、判定部42は、200 OK(INVITE)をIMS内部ネットワーク30に送信するようにメッセージ送受信部21に指示し、メッセージ送受信部21は、200 OK(INVITE)をIMS内部ネットワーク30に送信する。
そして、IMS内部ネットワーク30は、P−CSCF20bから200 OK(INVITE)を受信すると、受信した200 OK(INVITE)をP−CSCF20aに転送する(ステップS29)。そして、P−CSCF20aは、IMS内部ネットワーク30から200 OK(INVITE)を受信すると、受信した200 OK(INVITE)をUE10aに転送する(ステップS30)。そして、200 OK(INVITE)がUE10aに送信されると、UE10a及びUE10bの間のセッションが確立されて、UE10aとUE10bとの通信が開始され、プレコンディション制御の一連の処理が終了される。
以上の処理では、ステップS17においてUE10bのリソースが予約されたことによって、セッションのパラメータが更新される。このため、セッションのパラメータの更新をUE10aに伝える必要がある。しかし、180 Ringingは、UE10a及びUE10bのリソースが予約された後に送信されるので、180 Ringingは、UE10bのリソースが予約済みであることを示しているともいえる。このため、180 Ringingの送信後に、UE10bのリソースが予約済みであることを示すSDP情報に更新するためのUPDATEを送信することは標準上不要であるので、UE10bは、180 Ringingを送信するだけで、180 Ringingの送信後にUPDATEをUE10aに送信しない。ところが、180 Ringingの送信後にUPDATEを送信することが禁止されているわけではないので、180 Ringingの送信後にUPDATEを送信するUE10bも存在し得る。つまり、発側のUE10aのリソースが予約済み(例えば、UE10aの無線ベアラが確立されている状態)である場合において、着側のUE10bから標準上不要な信号(UPDATE)が送出される可能性がある。
次に、図9〜図11を参照して、UE10bが180 Ringingの送信後にUPDATEを送信する場合における通信システム1において実行されるプレコンディション制御の一連の処理を説明する。図9は、通信システム1において実行されるプレコンディション制御の一連の処理の別の例を示すシーケンス図である。図10の(a)は図9のINVITEに含まれるSDP情報の一例を示す図、図10の(b)は図9の183 Session Progressに含まれるSDP情報の一例を示す図、図10の(c)は図9のUPDATEに含まれるSDP情報の一例を示す図、図10の(d)は図9の200 OK(UPDATE)に含まれるSDP情報の一例を示す図である。図11の(a)は図9におけるINVITE受信時のSDP情報管理テーブルの一例を示す図、図11の(b)は図9における183 Session Progress受信時のSDP情報管理テーブルの一例を示す図、図11の(c)は図9におけるUPDATE受信時のSDP情報管理テーブルの一例を示す図である。
図9のステップS41〜ステップS56は、図6のステップS11〜ステップS26と同様であるので、その説明を省略する。この例では、UE10bが、180 Ringing送信後に、UPDATEをUE10aに向けて送信する(ステップS57)。このUPDATEには、例えば、図10の(c)に示されるSDP情報が含まれている。このSDP情報は、UE10bのリソース(自リソース)が予約済みであり、UE10aのリソース(相手リソース)が予約済みであり、符号化方式としてAMR−WBを用い、音声の伝送を行い、送受信モードで動作し、0〜15がDTMFに対応していることを示している。
そして、P−CSCF20bは、UE10bからUPDATEを受信すると、解析部41が、送信元、宛先、Call−ID、SIPメッセージの種類等を判別し、SDP情報を抽出する。そして、UE10bから受信したSIPメッセージがUPDATEであるので、判定部42は、UPDATEに含まれるSDP情報と、SDP情報記憶部22のSDP情報管理テーブルに記憶されている端末側SDP情報と、を比較し、プレコンディション情報を除いて、一致するか否かを判定する。そして、UPDATEに含まれるSDP情報と、SDP情報記憶部22のSDP情報管理テーブルに記憶されている端末側SDP情報と、がプレコンディション情報を除いて一致するので、判定部42は、呼状態管理部23に問い合わせて、呼制御の状態が、180 Ringing受信後であり、かつ、そのセッションが切断される前であるか、180 Ringing受信前であるか、180 Ringing受信後であってそのセッションが切断された後であるかを判定する。
そして、180 Ringing受信後であり、かつ、そのセッションが切断される前であるので、判定部42は、UE10bから受信したUPDATEがUE10aに送信不要なSIPメッセージであると判定し、代理応答処理を行う(ステップS58)。このとき、判定部42は、UE10bから受信したUPDATEに含まれるSDP情報を端末側SDP情報としてSDP情報管理テーブルに記憶するようにSDP情報記憶部22に指示するとともに、UE10bからUPDATEを受信したことを記憶するように呼状態管理部23に指示する。これにより、SDP情報記憶部22は、UPDATEに含まれるSDP情報で端末側SDP情報を更新し、呼状態管理部23は、呼制御の状態を更新する。
続いて、判定部42は、UPDATEに対する応答メッセージを生成するように生成部43に指示する。そして、生成部43は、送信元をUE10a、宛先をUE10bとした200 OK(UPDATE)を生成し、生成した200 OK(UPDATE)をUE10bに送信するようにメッセージ送受信部21に指示する。なお、この200 OK(UPDATE)には、図10の(d)に示されるSDP情報が含まれている。このSDP情報は、UPDATEに含まれているSDP情報と同じである。そして、メッセージ送受信部21は、200 OK(UPDATE)をUE10bに送信する(ステップS59)。引き続き行われるステップS60〜ステップS63は、図6のステップS27〜ステップS30と同様であるので、その説明を省略する。このようにして、プレコンディション制御の一連の処理が終了する。
次に、P−CSCF20b及びP−CSCF20bが行う通信制御方法の作用効果について説明する。P−CSCF20b及びP−CSCF20bが行う通信制御方法では、UE10bから受信したSIPメッセージがUPDATEまたはreINVITEである場合に、当該SIPメッセージがUE10aに送信不要なSIPメッセージであるか否かの判定が行われる。この判定では、UE10bから受信したSIPメッセージと、SDP情報記憶部22に記憶されている端末側SDP情報と、がプレコンディション情報を除いて同じであり、呼状態管理部23において管理されている呼制御の状態が180 RingingをUE10bから受信した後であり、かつ、そのセッションが切断される前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要な信号であると判定される。そして、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定されたことに応じて、UE10aの代わりに要求メッセージに対する応答メッセージが生成され、その応答メッセージがUE10bに送信される。
SDP情報記憶部22に記憶されている端末側セッション情報は、判定部42による判定の後に、UE10bから受信したSIPメッセージに含まれるSDP情報で更新されるので、UE10bからSIPメッセージを受信した時点でSDP情報記憶部22に記憶されている端末側セッション情報は、UE10bから受信したSIPメッセージのうちそのSIPメッセージの1つ前に受信したSIPメッセージに含まれていたSDP情報である。また、180 Ringingは、UE10a及びUE10bのリソースが予約された後に送信されるので、UE10aは、180 RingingをUE10bから受信した場合、UE10bのリソースが予約済みになったことを認識する。このように、プレコンディション情報については、他の手段によってその変更が通知され得るので、UE10bから受信したSIPメッセージに含まれるSDP情報と、SDP情報記憶部22に記憶されている端末側SDP情報と、がプレコンディション情報においてのみ異なる場合には、UE10aが認識しているSDP情報から変化がないことがある。
このため、UE10bから受信したSIPメッセージに含まれるSDP情報と、SDP情報記憶部22に記憶されている端末側SDP情報と、がプレコンディション情報を除いて同じである場合に、UE10aの代わりにUPDATEまたはreINVITEに対する応答メッセージがUE10bに送信されることによって、UE10aが認識しているSDP情報と同じSDP情報を含むUPDATEまたはreINVITEがUE10aに送信されるのを防ぐことができる。
つまり、UE10aに送信不要なSIPメッセージをP−CSCF20bにおいて終端することができ、不要なSIPメッセージがIMS内部ネットワーク30に流れる可能性を低減することが可能となる。これにより、UE10a、P−CSCF20a及びIMS内部ネットワーク30において、不要なSIPメッセージの処理を行う可能性が低減され、通信システム1全体として、不要なSIPメッセージによる処理を低減することが可能となる。また、INVITEに対する応答がなされていない状況において、さらにUPDATEがIMS内部ネットワーク30に流れる可能性を低減できる。これにより、オファーに対する処理が行われている間に、さらに異なるオファーがIMS内部ネットワーク30に流れることによって、IMS内部ネットワーク30において衝突等が生じ、呼が切断される可能性を低減することが可能となる。
例えば、図9のステップS57において送信されるUPDATEは標準上不要な信号である。ステップS57において送信されたUPDATEをP−CSCF20bが受信した時点では、先のオファー(INVITE)に対する処理が行われている途中であるので、IMS内部ネットワーク30にさらなるオファー(UPDATE)が送信されると、タイミングによってはIMS内部ネットワーク30において信号が衝突し、呼接続が失敗することがある。このため、P−CSCF20bは、不要なUPDATEをIMS内部ネットワーク30に流通させず、UE10bに応答メッセージ(200 OK(UPDATE))を返送することにより、P−CSCF20bで終端し、不要な信号がIMS内部ネットワーク30に流通すること、及び、その信号によって信号衝突による呼接続失敗等の問題を回避している。
なお、本発明は、上述した実施形態に限定されるものではない。例えば、P−CSCF20aは、P−CSCF20bと同様の機能構成及びハードウェア構成を備えてもよい。この場合、UE10aからUE10bに送信されるSIPメッセージに対して、P−CSCF20aがP−CSCF20bと同様の処理を行う。つまり、UE10aから受信したSIPメッセージに含まれるSDP情報とP−CSCF20aのSDP情報記憶部に記憶されている端末側SDP情報とを比較して、そのSIPメッセージがUE10bに送信不要なSIPメッセージであるか否かを判定してもよい。
また、P−CSCF20bは、図6のステップS23及び図9のステップS53において送信された180 Ringingを受信したことに応じて、SDP情報記憶部22が有するSDP情報管理テーブルの端末側SDP情報の自リソースを予約済みに変更してもよい。この場合、P−CSCF20bの判定部42は、呼制御の状態によらず、UE10bから受信したSIPメッセージに含まれるSDP情報と端末側SDP情報とを、プレコンディション情報を含めて比較すればよく、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かの判定処理を単純化することができる。つまり、判定部42は、呼制御の状態によらず、SIPメッセージに含まれるSDP情報と端末側SDP情報とが同じである場合には、そのSIPメッセージがUE10aに送信不要なSIPメッセージであると判定し、SIPメッセージに含まれるSDP情報と端末側SDP情報とが異なる場合には、そのSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定することができる。
上述したように、図9のステップS57において送信されるUPDATEは標準上不要な信号である。このように、先のオファー(INVITE)に対する処理が行われている途中で、IMS内部ネットワーク30にさらなるオファー(UPDATE)が送信されると、タイミングによってはIMS内部ネットワーク30において信号が衝突し、呼接続が失敗することがある。このため、判定部42は、図5のステップS03の処理に代えて、呼制御の状態がUE10bから180 Ringingを受信する前であるか、UE10bから200 OK(INVITE)を受信した後である場合に、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定してもよく、呼制御の状態がUE10bから180 Ringingを受信した後であり、かつ、UE10bから200 OK(INVITE)を受信する前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定してもよい。この場合、先のオファー(INVITE)に対する処理が行われている途中で、IMS内部ネットワーク30にさらなるオファー(UPDATE)が送信される可能性を低減でき、信号衝突による呼接続失敗等の問題を回避することが可能となる。
また、図9のステップS57のUPDATEの送信は、ステップS60〜ステップS63の後に行われることがある。また、reINVITEは、ステップS60〜ステップS63の後に行われる。このため、判定部42は、呼制御の状態がUE10bから180 Ringingを受信した後であり、かつ、UE10a及びUE10b間の通信が切断される前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定してもよい。つまり、判定部42は、SIPメッセージに含まれるSDP情報と、端末側SDP情報とが、プレコンディション情報を除いて同じであり、呼制御の状態がUE10bから180 Ringingを受信した後であり、かつ、UE10a及びUE10b間の通信が切断される前である場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定してもよい。一方、判定部42は、SIPメッセージに含まれるSDP情報と、端末側SDP情報とが、プレコンディション情報を除いて同じであっても、呼制御の状態がUE10bから180 Ringingを受信する前であるか、180 Ringingを受信後にUE10a及びUE10b間の通信が切断された場合には、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定してもよい。
また、図9のステップS57の後に、さらにステップS57で送信したUPDATEに含まれるSDP情報と同じSDP情報を含むUPDATEまたはreINVITEがUE10bによって送信されることがあり得る。また、呼制御の状態に関わらず、同じSDP情報を含むUPDATE、reINVITEがUE10bによって繰り返し送信されることもあり得る。このため、判定部42は、呼制御の状態を考慮することなく、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであるか否かを判定してもよい。例えば、判定部42は、SIPメッセージに含まれるSDP情報と、端末側SDP情報とが同じである場合に、UE10bから受信したSIPメッセージがUE10aに送信不要なSIPメッセージであると判定し、SIPメッセージに含まれるSDP情報と、端末側SDP情報とが異なる場合に、UE10bから受信したSIPメッセージがUE10aへの送信が必要なSIPメッセージであると判定してもよい。
また、UE10bがUE10aに対して発信処理を行う場合にも同様の処理が行われる。この場合、P−CSCF20aは上記実施形態のP−CSCF20bと同様に動作し、P−CSCF20bは上記実施形態のP−CSCF20aと同様に動作する。