(57)【要約】【課題】家庭内に設置された機器がルータを経由して遠隔にある機器と音声や映像をやり取りする場合、短時間に大量のパケットがルータに送りつけられる。このとき、各家庭に設置されたルータによってはＤｏＳ攻撃検知もしくはＳＰＩ検出機能により、パケットの通過が遮断され通信不能に陥ってしまうことがある。【解決手段】ルータの特定ポートに集中してパケットが送りつけられるのを避けるべく、従来１セッションのみ使ってやり取りしていた音声や映像を、複数のセッションを確立し送出間隔を変更することで、特定ポートへ集中的に送りつけられる状況を緩和する。【選択図】図６
2009033299.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク経由で他の通信装置と通信するための通信装置であって、
必要な情報を記憶することが可能な記憶部と、
前記他の通信装置との間でデータを送受信するために必要となるセッション情報を交換するセッション情報交換部と、
前記セッション情報交換部で得られたセッション情報を基に、前記他の通信装置との間で１つ以上のセッションを確立すると共に、パケット送出間隔を制御するセッション多重化部と、
前記セッション情報交換部と前記セッション多重化部とによって利用され、通信を実行する通信実行部とを備えることを特徴とする、通信装置。
【請求項２】
前記セッション多重化部は、セッションの確立数に比例して１セッション中のパケットの送出間隔を制御することを特徴とする、請求項１に記載の通信装置。
【請求項３】
ルータによるＮＡＴ変換後のアドレス情報を取得するための変換アドレス検出部をさらに備え、
前記セッション情報交換部は、前記変換アドレス検出部により取得されたＮＡＴ変換後のアドレス情報を使用し、前記他の通信装置との間でデータを送受信するために必要となるセッション情報を交換することを特徴とする、請求項１に記載の通信装置。
【請求項４】
ルータによってパケットの通過が禁止され、前記他の通信装置との間の通信が不能になっていないかどうかを確認するパケット拒絶検出部をさらに備えることを特徴とする、請求項１に記載の通信装置。
【請求項５】
前記セッション多重化部は、前記他の通信装置との間で通信を行う際に、セッションを複数使用せずに一旦１つのセッションで通信を行い、前記パケット拒絶検出部が通信不能を検出した場合に、セッションを多重化して再度通信を開始することを特徴とする、請求項４に記載の通信装置。
【請求項６】
前記セッション情報交換部は、前記他の通信機器との間に複数のセッションを確立しようとする際に前記他の通信機器がエラー応答を返してきた時、１つのセッションのみを利用して再度通信を試行することを特徴とする、請求項４に記載の通信装置。
【請求項７】
前記パケット拒絶検出部は、前記セッション数及び前記パケット送出間隔を用いた通信で、前記ルータが当該通信を遮断しないことを前記セッション確立前に確認することを特徴とする、請求項４に記載の通信装置。
【請求項８】
前記セッション情報交換部は、前記他の通信機器に関する情報を前記記憶部に記憶することを特徴とする、請求項４〜７のいずれかに記載の通信装置。
【請求項９】
前記セッション情報交換部は、過去に通信したことのある他の通信機器と再度通信する際に、前記記憶部を参照して、過去の通信時に適用したセッション数及びパケット送出間隔を再利用することを特徴とする、請求項８に記載の通信装置。
【請求項１０】
前記パケット拒絶検出部は、過去に通信したことのある他の通信機器と再度通信する際に、セッション確立前にルータによる通信遮断の有無を確認する機能を実施しないことを特徴とする、請求項９に記載の通信装置。
【請求項１１】
前記記憶部が備える前記記憶容量に優先度をつけて情報を記憶する機能を有し、前記記憶容量が不足した際には、優先度の低い情報を消去することを特徴とする、請求項９に記載の通信装置。
【請求項１２】
前記優先度は、通信回数の多い順であることを特徴とする、請求項１１に記載の通信装置。
【請求項１３】
前記優先度は、通信日時の新しい順であることを特徴とする、請求項１１に記載の通信装置。
【請求項１４】
ユーザがルータの情報を入力するための入力部をさらに備え、
前記セッション情報交換部は、前記記憶部に事前に記憶されたルータに関する情報と前記入力部を介して入力されたルータに関する情報とが一致する場合、当該ルータに対応したセッション数及びパケット送出間隔を通信に利用することを特徴とする、請求項１に記載の通信装置。
【請求項１５】
前記セッション情報交換部は、前記他の通信装置と通信する際に、特定サーバに前記他の通信装置との間で利用するセッション数及びパケット送信間隔を問い合わせ、当該問い合わせたセッション数及びパケット送出間隔を利用することを特徴とする、請求項４または７に記載の通信装置。
【請求項１６】
前記パケット拒絶検出部は、前記特定サーバに問い合わせた前記セッション数及び前記パケット送出間隔を利用する際は、前記セッション確立前にルータによる通信遮断の有無を確認しないことを特徴とする、請求項１５に記載の通信装置。
【請求項１７】
ネットワーク経由で他の通信装置と通信するための通信方法であって、
前記他の通信装置との間でデータを送受信するために必要となるセッション情報を交換するセッション情報交換ステップと、
前記セッション情報交換ステップで得られたセッション情報を基に、前記他の通信装置との間で１つ以上のセッションを確立し、パケット送出間隔を制御するセッション多重化ステップと、
前記セッション情報ステップと前記セッション多重化ステップによって利用され、通信を実行する通信実行ステップとを備えることを特徴とする、通信方法。
【請求項１８】
ネットワーク経由で他の通信装置と通信する情報処理装置が実行するためのプログラムであって、
前記他の通信装置との間でデータを送受信するために必要となるセッション情報を交換するセッション情報交換ステップと、
前記セッション情報交換ステップで得られたセッション情報を基に、前記他の通信装置との間で１つ以上のセッションを確立し、パケット送出間隔を制御するセッション多重化ステップと、
前記セッション情報ステップと前記セッション多重化ステップによって利用され、通信を実行する通信実行ステップとを備えることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータのファイアフォール機能により、通信が途切れることを回避する通信装置、通信方法、及び通信プログラムに関するものである。
【背景技術】
【０００２】
近年インターネットの利用が盛んに行われており、各家庭にブロードバンドサービスを利用するためのＡＤＳＬやＦＴＴＨ等の回線が普及している。このような回線のブロードバンド化に伴い、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークの使われ方が変わってきている。Ｗｅｂサイトの閲覧やメール等のデータだけでなく、ＩＰ電話、ＶＯＤ（Ｖｉｄｅｏ  Ｏｎ  Ｄｅｍａｎｄ）等のサービスで音声や映像までもがＩＰネットワークを利用してユーザに提供されている。
【０００３】
このような中、ＩＰ電話サービスの普及は特に顕著である。ＩＰ電話の中核技術の代表例として、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）やＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）といったプロトコルがインターネットの標準化団体ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）によって定義されており、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ）３２６１、及びＲＦＣ３５５０として仕様が公開されている。ＳＩＰは、ＩＰ電話をかけるときや切るときの通信相手との接続・切断、及び通話時に用いる音声のデータ形式等の条件のすり合わせを担うプロトコルである。一方ＲＴＰは、リアルタイム性が要求される音声・映像の配信に適したプロトコルである。音声・映像そのものに加えて、再生するのに必要なデータ形式や再生タイミングなどの情報を付加して送る。これらの技術をブロードバンドのインフラ上で展開することで、ＩＰネットワークを使ったＩＰ電話サービスが盛んに行われるようになっている。
【０００４】
一方、各家庭からインターネットへつなぐための通信機器として、各家庭にルータが設置される。家庭内のパソコンやＴＶ、ＩＰ電話から外部のインターネットへアクセスする際には、ルータを経由する。ルータにはＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）とファイアフォールの機能とが搭載されている。ＮＡＴは、家庭内のローカルなネットワークのＩＰアドレスと外部のグローバルなネットワークのＩＰアドレスとの間で、アドレス変換を実施する。これは、インターネットの普及によってグローバルＩＰアドレスの枯渇対策として用いられてきた。また、セキュリティ面で家庭内や企業内のローカルネットワークを隠蔽できるというメリットも持ち合わせている。
【０００５】
ファイアウォールは、インターネットからの悪意のある攻撃や不正侵入からローカルネットワーク内の機器を保護する機能である。ローカルネットワーク内／外への通過と禁止をＩＰアドレスとポート番号に応じて制限するパケットフィルタリング機能、ＤｏＳ攻撃の検知機能、ルータを通過する通信データの内容を判断して動的にポートを開放／閉鎖するＳＰＩ（Ｓｔａｔｅｆｕｌ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）機能などにより、ローカルネットワークのセキュリティを確保する。
【０００６】
ＮＡＴとファイアウォールとによってセキュリティが向上するものの、それによる問題も発生することとなった。ＩＰ電話で遠隔地にいる人物と通話しようとする際には、手元にあるローカルなＩＰ電話機が、自身のＩＰアドレスと利用するポート番号とを相手側のＩＰ電話機へ通知することになる。しかし、ルータのＮＡＴ機能が行うアドレス変換によって、相手へ通知すべきＩＰアドレスとポート番号とが異なってしまうという問題や、ファイアウォールのフィルタリングによって、通信データがルータを通過できないという問題がある。このような問題に対して、例えば、特許文献１と特許文献２とに、通話を可能とする技術が述べられている。
【０００７】
図２３は、特許文献１に記載の従来のＩＰ電話ネットワークの構成を示す図である。図２３において、従来のＩＰ電話ネットワークは、手元のＩＰ電話機を含むローカルなネットワーク３０と相手側のネットワーク３１との間に、ＳＩＰ通信制御装置１０とＮＡＴ／ＦＷ装置２０とを配置する。ここでは、ＳＩＰ通信制御装置１０とＮＡＴ／ＦＷ装置２０とを連携させ、ＮＡＴによるアドレス変換前とアドレス変換後の情報とを抽出し、通信データ内へその情報を反映することで使用するＩＰアドレスとポート番号との不整合を解消する。そして、通過させるべきＩＰアドレスとポート番号とを、ＮＡＴ／ＦＷ装置２０へ伝達することでフィルタリング機能による通過の禁止を解除している。
【０００８】
図２４は、特許文献２に記載の従来のＩＰ電話ネットワークの構成を示す図である。図２４において、従来のＩＰ電話ネットワークは、ファイアウォールの内側と外側の両方に中継装置Ｔ１、Ｔ２、Ｔ３、Ｔ４を配置することでファイアウォール越えを行い、ＩＰ電話による通話のための転送を仲介する。
【特許文献１】特開２００４−２５４０１０号公報
【特許文献２】特開２００６−２５４１６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、前記した特許文献１と特許文献２とでは、発信元であるＩＰ電話機を含むローカルネットワークと着信先であるＩＰ電話機を含むリモートネットワークとの間に、特別な中継用装置を必要としている（特許文献１における通信制御装置１０とＮＡＴ／ＦＷ装置２０、特許文献２における中継装置Ｔ１、Ｔ２、Ｔ３、Ｔ４）。また、特許文献１に開示されているネットワーク構成では、中継装置であるＮＡＴ／ＦＷ装置２０でＮＡＴとファイアウォール機能をもつことが前提で、各家庭で一般的に設置されているブロードバンドルータ（ＮＡＴ・ファイアウォール機能を搭載）を用いない環境で使用することを前提としている。これは、すでに普及している一般家庭での利用環境とは相容れない。また、特許文献２に開示されているネットワーク構成では、ブロードバンドルータとは異なる中継装置が各家庭内とその対となるインターネット側とに必要となる。従って、家庭毎に２対の中継装置の配置を強制するのは、コストの面から見て現実的ではない。
【００１０】
また、近年ＤｏＳ攻撃検知機能やＳＰＩ機能がどんどん家庭内の（ブロードバンド）ルータに搭載されてきているが、特許文献１と特許文献２とでは、それらの機能による問題に対処していない。実際問題として、ＩＰ電話の通話時には、音声を含んだパケットが２０ミリ秒の間隔で、電話機間で送受信されている。これは、音声パケットを受信するルータにとっては、短期間で大量にパケットが送りつけられてくることに等しく、ＤｏＳ攻撃を受けているようにも見える。あるベンダ製のルータでは、ＤｏＳ攻撃検知もしくはＳＰＩの機能が働くことでポートが閉鎖され、通話が遮断されるというケースが起こっている。
【００１１】
それ故に、本発明の目的は、各家庭で一般的に使用されているネットワーク環境／ルータを使用することを前提として、ＤｏＳ攻撃検知機能やＳＰＩ機能のために通話が途切れるという問題を解決することが可能な通信装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明は、ネットワーク経由で他の通信装置と通信するための通信装置に向けられている。そして、上記目的を達成するために、本発明の通信装置は、必要な情報を記憶することが可能な記憶部と、他の通信装置との間でデータを送受信するために必要となるセッション情報を交換するセッション情報交換部と、セッション情報交換部で得られたセッション情報を基に、他の通信装置との間で１つ以上のセッションを確立すると共に、パケット送出間隔を制御するセッション多重化部と、セッション情報交換部とセッション多重化部とによって利用され、通信を実行する通信実行部とを備える。
【００１３】
これによって、通信装置は、特定の１ポートに集中してパケットが送り込まれることを回避し、ルータが持つＤｏＳ検知機能及びＳＰＩ検出機能によってポートが遮断されて通信不能に陥ることを回避することができる。これは、インターネットやルータの知識が乏しいユーザにとっては、その技術を知らなくても利用可能となるため、効果が大きい。
【００１４】
好ましくは、セッション多重化部は、セッションの確立数に比例して１セッション中のパケットの送出間隔を制御する。これによって、通信装置は、音声・映像等の再生タイミングが重要なコンテンツもルータのポート遮断を回避しながら配送することが可能となる。
【００１５】
また、通信装置は、ルータによるＮＡＴ変換後のアドレス情報を取得するための変換アドレス検出部をさらに備える構成であってもよい。このような場合、セッション情報交換部は、変換アドレス検出部により取得されたＮＡＴ変換後のアドレス情報を使用し、他の通信装置との間でデータを送受信するために必要となるセッション情報を交換する。これによって、通信装置は、ＮＡＴ機能を有するルータを使う環境下でも、コンテンツの配送が可能となる。また、一般家庭に普及しているルータを利用可能となる。
【００１６】
また、通信装置は、ルータによってパケットの通過が禁止され、他の通信装置との間の通信が不能になっていないかどうかを確認するパケット拒絶検出部をさらに備える構成であってもよい。これによって、通信装置は、他の通信装置との間で通信不能になった場合に、再度接続をやり直し、通信不能な状況を解消することができる。
【００１７】
また、セッション多重化部は、他の通信装置との間で通信を行う際に、セッションを複数使用せずに一旦１つのセッションで通信を行い、パケット拒絶検出部が通信不能を検出した場合に、セッションを多重化して再度通信を開始してもよい。これによって、通信装置は、本発明をサポートしていな通信装置との間でも通信を行うことが可能となる。
【００１８】
また、セッション情報交換部は、他の通信機器との間に複数のセッションを確立しようとする際に他の通信機器がエラー応答を返してきた時、１つのセッションのみを利用して再度通信を試行してもよい。これによって、通信装置は、通信の遮断発生率が低い方を先に試行するので、通話中や視聴中に通信不能に陥る可能性を低減することができる。
【００１９】
好ましくは、パケット拒絶検出部は、セッション数及びパケット送出間隔を用いた通信で、ルータが当該通信を遮断しないことをセッション確立前に確認する。これによって、通信装置は、通話中や視聴中に通信が切断されることを回避することができる。
【００２０】
セッション情報交換部は、他の通信機器に関する情報を記憶部に記憶する。また、セッション情報交換部は、過去に通信したことのある他の通信機器と再度通信する際に、記憶部を参照して、過去の通信時に適用したセッション数及びパケット送出間隔を再利用する。これによって、通信装置は、過去に通信したことのある他の通信機器と再度通信する際、過去の通信時に適用したセッション数及びパケット送出間隔を再利用することにより、適切なセッション数及びパケット送出間隔を再度調査しなおす必要がなくなる。
【００２１】
また、パケット拒絶検出部は、過去に通信したことのある他の通信機器と再度通信する際に、セッション確立前にルータによる通信遮断の有無を確認する機能を実施しなくてもよい。これによって、通信装置は、セッション確立までに要する時間を短縮することが可能となる。
【００２２】
また、通信装置は、記憶部が備える記憶容量に優先度をつけて情報を記憶する機能を有し、記憶容量が不足した際には、優先度の低い情報を消去してもよい。例えば、優先度は、通信回数の多い順であってもよいし、通信日時の新しい順であってもよい。これによって、通信装置は、優先度の低い情報を消去することにより、記憶装置が備える記憶容量を節約することができる。また、記憶部には優先度の高い情報が記憶されるので、セッション確立までの時間短縮の回数を増やすことができる。
【００２３】
通信装置は、ユーザがルータに関する情報を入力するための入力部をさらに備える構成であってもよい。このような場合、セッション情報交換部は、記憶部に事前に記憶されたルータの情報と入力部を介して入力されたルータの情報とが一致する場合、当該ルータに対応したセッション数及びパケット送出間隔を通信に利用してもよい。これによって、通信装置は、過去に通信したことがなくても適切なセッション数及びパケット送出間隔を利用して通信できる。
【００２４】
また、セッション情報交換部は、他の通信装置と通信する際に、特定サーバに他の通信装置との間で利用するセッション数及びパケット送信間隔を問い合わせ、当該問い合わせたセッション数及びパケット送出間隔を利用してもよい。これによって、通信装置は、記憶領域に記憶されていない他の通信装置であっても、適切なセッション数及びパケット送出間隔を取得することができる。
【００２５】
また、パケット拒絶検出部は、特定サーバに問い合わせたセッション数及びパケット送出間隔を利用する際は、セッション確立前にルータによる通信遮断の有無を確認しないでもよい。これによって、通信装置は、セッション確立までに要する時間を短縮することが可能となる。
【００２６】
また、本発明は、ネットワーク経由で他の通信装置と通信するための通信方法、及びネットワーク経由で他の通信装置と通信する情報処理装置が実行するためのプログラムにも向けられている。上記方法及びプログラムは、他の通信装置との間でデータを送受信するために必要となるセッション情報を交換するセッション情報交換ステップと、セッション情報交換ステップで得られたセッション情報を基に、他の通信装置との間で１つ以上のセッションを確立し、パケット送出間隔を制御するセッション多重化ステップと、セッション情報ステップとセッション多重化ステップによって利用され、通信を実行する通信実行ステップとを備える。
【発明の効果】
【００２７】
以上のように、本発明の通信装置によれば、特定の１ポートに集中してパケットが送り込まれることを回避し、ルータが持つＤｏＳ検知機能及びＳＰＩ検出機能によってポートが遮断されて通信不能に陥ることを回避することができる。これは、インターネットやルータの知識が乏しいユーザにとっては、その技術を知らなくても利用可能となるため、効果が大きい。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２９】
（実施の形態１）
図１は、本発明の実施の形態１に係るＩＰ電話ネットワークの構成を示す概略図である。図１において、宅内ネットワーク０１２１、０１２２、ＳＴＵＮサーバ０１１１、及びＳＩＰサーバ０１１２がインターネット等のＩＰネットワーク０１１０を介して接続されている。宅内ネットワーク０１２１、０１２２には、ＩＰ電話機０１０１、０１０２、及びルータ０１０３、０１０４（モデムを内蔵したモデムルータ、もしくはモデムとブロードバンドルータの機器のセットを、以下ではルータと呼ぶこととする）を含んでいる。ＳＴＵＮサーバ０１１１は、ルータ通過時に変換されるＩＰアドレス・ポート番号を通知する機能を有する。ＳＩＰサーバ０１１２は、２点間の通信セッションの確立（接続）と切断とを実現するための仲介役となる機能を有する。
【００３０】
各家庭に一般的に配置されるルータには、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒ）機能が搭載されている。これは、家庭内で私的に割り当て可能なプライベートアドレスとＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）によって割り当てられる公的なグローバルアドレスとを変換する機能である。さらに、最近外部（インターネット）からの悪意のある攻撃や不正侵入を防ぎ、家庭内にある機器を守るためにファイアフォール機能を備えたルータが増えている。本実施の形態で用いられるルータ０１０３、０１０４は、これら各家庭に一般的に配置されているルータである。
【００３１】
ＩＰ電話機０１０１は、遠隔地にあるＩＰ電話機０１０２と通話セッションを確立する前に、ＳＴＵＮサーバ０１１１を利用して、パケットがルータ０１０３を通過した際に変換されるＩＰアドレスとポート番号との値を調べる。図２にこのときの信号の流れを表すシーケンスを示す。図２を参照して、まず、ＩＰ電話機０１０１がＳＴＵＮサーバ０１１１に向けてＳＴＵＮ  Ｂｉｎｄｉｎｇ  Ｒｅｑｕｅｓｔメッセージを送信する。このメッセージは、ルータ０１０３を通過する際、ルータ０１０３のＮＡＴ機能によって、パケットの送信元ＩＰアドレスと送信元ポート番号とが変換される。例えば、図２では送信元ＩＰアドレスが“１９２．１６８．０．１０”から“１３２．１８２．１０５．１０”に、送信元ポートが“２００００”から“２３０００”に変換されている。ＳＴＵＮ  Ｂｉｎｄｉｎｇ  Ｒｅｑｕｅｓｔメッセージを受信したＳＴＵＮサーバ０１１１は、その送信元ＩＰアドレスと送信元ポート番号とをＳＴＵＮ  Ｂｉｎｄｉｎｇ  ＲｅｓｐｏｎｓｅメッセージのＭａｐｐｅｄ−Ａｄｄｒｅｓｓ属性値に書き込んでＩＰ電話機０１０１に送り返す。
【００３２】
ＩＰ電話機０１０１は、ＳＴＵＮ  Ｂｉｎｄｉｎｇ  Ｒｅｓｐｏｎｓｅメッセージで受け取った、ルータ０１０３が変換した後の送信元ＩＰアドレスと、送信元ポート番号とを記憶部０６０３に書き込む。ＳＴＵＮ  Ｂｉｎｄｉｎｇ  Ｒｅｓｐｏｎｓｅメッセージがルータ０１０３を通過する際には、ＩＰヘッダとＵＤＰヘッダに含まれる送信先ＩＰアドレスと送信先ポート番号は変換されるが、ＳＴＵＮ  Ｂｉｎｄｉｎｇ  Ｒｅｓｐｏｎｓｅメッセージ中のＭａｐｐｅｄ−Ａｄｄｒｅｓｓ属性値は変換されない。これにより、ＩＰ電話機０１０１は、ルータ０１０３を通過する際に変換される送信元ＩＰアドレスと送信元ポート番号の値がそれぞれ“１９２．１６８．０．１０”から“１３２．１８２．１０５．１０”へ、“２００００”から“２３０００”へ変換されることを認識できる。それに続いて、ルータ０１０３のＮＡＴ変換のタイプを調査することもあるが、ＳＴＵＮの仕様の詳細についてはＲＦＣ３４８９に記述されており、ここでは説明を省略する。
【００３３】
ＮＡＴ通過時のアドレス変換値を調べた後、ＩＰ電話機０１０１は通話先であるＩＰ電話機０１０２との間でセッションの確立（接続）を行う手続きを開始する。図３は、図１に示すＩＰ電話ネットワークでの通信のシーケンスを示す図である。図３を参照して、ＩＰ電話機０１０１から遠隔地にあるＩＰ電話機０１０２へ向けて電話をかける時、ＩＰ電話機０１０１の受話器が取られると、ＩＰ電話機０１０１は特定のＳＩＰサーバ０１１２に向けてＩＮＶＩＴＥメッセージを送る。この時のＩＮＶＩＴＥメッセージの典型例を図４に示す。図４を参照して、ＩＮＶＩＴＥメッセージのヘッダ部にはＳＩＰで必要となる情報、ボディ部には映像や音声を受け取って処理するのに必要な情報が含まれる。ボディ部はＳＤＰ（Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が使われる。これはＲＦＣ２３２７で定義されている。ボディ部に含まれるＩＰアドレスとポート番号とには、ＮＡＴによる変換後の値を使う。これによって、相手のＩＰ電話機０１０２がルータ０１０３宛てに音声データを送るように仕向ける。
【００３４】
ＩＰ電話機０１０１からのＩＮＶＩＴＥメッセージを受け取ったＳＩＰサーバ０１１２は、接続先であるＩＰ電話機０１０２に向けてＩＮＶＩＴＥメッセージを送ることで相手先の呼び出しを行うと共に、ＩＰ電話機０１０１へ“１００  Ｔｒｙｉｎｇ”メッセージを返す。ＩＰ電話機０１０２は、ＩＮＶＩＴＥメッセージを受け取ると呼び出し音を鳴らすと共に、“１８０  Ｒｉｎｇｉｎｇ”メッセージをＳＩＰサーバ０１１２へ送る。なおここで、ＩＰ電話機０１０２は、ＳＩＰサーバ０１１２からのパケットがルータ０１０４によって拒絶されないようにするため、定期的にＳＩＰサーバ０１１２に向けてパケットを送出しているものとする。これは、特許文献２では、ＵＤＰホールパンチングと言われる技術であり、従来技術であるのでここでは説明を割愛する。
【００３５】
そして、ＳＩＰサーバ０１１２は、呼び出し元であるＩＰ電話機０１０１へ“１８０  Ｒｉｎｇｉｎｇ”メッセージを転送する。その後、呼び出し中のＩＰ電話機０１０２の受話器が取られると、ＩＰ電話機０１０２は、“２００  ＯＫ”メッセージをＳＩＰサーバ０１１２経由で、ＩＰ電話機０１０１へ送る。このときの“２００  ＯＫ”メッセージの典型例を図５に示す。ＩＰ電話機０１０２は、ＩＰ電話機０１０１にＲＴＰパケットの宛先として使ってもらいたいＩＰアドレスとポート番号とを指定する。その後、ＩＰ電話機０１０２は、ＩＰ電話機０１０１からのＡＣＫメッセージを受け取る。ここまで完了すると、ＩＰ電話機０１０１とＩＰ電話機０１０２との間で、ＳＩＰサーバ０１１２を経由せず直接通話が開始される。なお、図４のボディ部で使用されるＳＤＰの内容をＳＤＰオファー、図５のボディ部で使用されるＳＤＰの内容をＳＤＰアンサーと言う。
【００３６】
ＩＰ電話機０１０１とＩＰ電話機０１０２との通話では、ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を使って音声がやり取りされる。音声はＲＴＰパケットに挿入されて送受信される。ＲＴＰパケットには、音声そのものに加えて、音声のデータ形式や再生タイミングなどの付加情報が含まれる。ＩＰ電話では、ＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）方式（Ｇ．７１１）の音声符号化方式が用いられることが多々ある。このとき、１つのＲＴＰパケットには、２０ミリ秒分の音声データが詰め込まれ、２０ミリ秒間隔でＲＴＰパケットが送信される。ＲＴＰパケットの宛先は、ＳＩＰメッセージに含まれるＳＤＰで交換されたＩＰアドレスとポート番号となる。ＲＴＰの詳細については、ＲＦＣ３５５０に記載されている。
【００３７】
ＩＰ電話機０１０１とＩＰ電話機０１０２との通話が終わり、ＩＰ電話機０１０１もしくはＩＰ電話機０１０２で受話器が置かれると、ＳＩＰを使って切断処理が開始される。図３に示したように、ＩＰ電話機０１０１側で先に受話器が置かれた場合、ＩＰ電話機０１０１はＢＹＥメッセージをＳＩＰサーバ０１１２経由でＩＰ電話機０１０２に送る。ＩＰ電話機０１０２では、ＢＹＥメッセージを受け取ると、ＡＣＫメッセージをＳＩＰサーバ０１１２経由で送り返す。これによって、通話セッションが切断される。図３では、ＩＰ電話機０１０１で先に受話器が置かれた例を示したが、ＩＰ電話機０１０２で先に受話器が置かれた場合でも、ＢＹＥメッセージとＡＣＫメッセージの進行方向が逆になること以外は同じである。
【００３８】
次に、本発明のＩＰ電話機０１０１、０１０２の詳細について、図６を参照しながら説明する。なお、ＩＰ電話機０１０１と、ＩＰ電話機０１０２とは同じ構成であるため、ここではＩＰ電話機０１０１の構成について説明する。また、ＩＰ電話機０１０１とＩＰ電話機０１０２とが通信を行っているものとする。図６は、本発明の実施の形態１に係るＩＰ電話機０１０１の構成を示すブロック図である。図６を参照して、ＩＰ電話機０１０１は、家庭内に設置されたルータ０１０３を介して、インターネット等のＩＰネットワーク０１１０と繋がっている。設定内容入力部０６０１は、図１で記述したＳＴＵＮサーバ０１１１、ＳＩＰサーバ０１１２のアドレス情報（ＵＲＬやＩＰアドレス、ポート番号）、及び遠隔地にあるＩＰ電話機０１０２の電話番号の入力を受け付ける。
【００３９】
設定内容出力部０６０２は、記憶部０６０３で記憶された内容を表示する。記憶部０６０３は、設定内容入力部０６０１、通信実行部０６０４、変換アドレス検出部０６０７、セッション情報交換部０６０９、及びパケット拒絶検出部０６１０からの入力内容を記憶し、設定内容出力部０６０２、セッション多重化部０６０８、セッション情報交換部０６０９、及び通信実行部０６０４へ記憶内容を提供する。記憶部０６０３は、ＲＯＭ、フラッシュＲＯＭ、ＲＡＭ（ランダムアクセスメモリー）、ハードディスク、及びＳＤ等の外部記憶装置がその典型例である。
【００４０】
通信実行部０６０４は、記憶部０６０３を参照しながら、ＩＰネットワーク０１１０へデータを送信したり、ＩＰネットワーク０１１０からデータを受信して記憶部０６０３へ記憶する。送受信されるデータとは、前述したＳＩＰやＲＴＰのパケットを含む。そして、相手先から呼び出される場合に備えて、ＳＩＰサーバ０１１２宛てにパケットを定期的に送信する機能を有する。この定期的な送信により、ＳＩＰサーバ０１１２からのＳＩＰ  ＩＮＶＩＴＥメッセージを受信することが可能となる。また、通信実行部０６０４は、ルータ０１０３通過時にＮＡＴ変換されたＩＰアドレスとポート番号とをＳＩＰメッセージ中のボディ部（ＳＤＰの部分）に挿入するため、ＳＴＵＮサーバ０１１１と通信する指示を変換アドレス検出部０６０７から受け付ける。ＳＴＵＮサーバ０１１１への送信とその応答を受信すると、変換後のアドレス情報（ＩＰアドレス、ポート番号）を変換アドレス検出部０６０７へ引き渡す。セッション情報交換部０６０９からは、相手のＩＰ電話機との間でＳＩＰメッセージを送受信する指示を受け付ける。また、セッション多重化部０６０８から複数のセッションを利用する指示を受けつけ、その指示に基づいてデータの送受信を実施する。また、パケット拒絶検出部０６１０からの指示を受けつけ、通話先との間で送受信を実施し、受信したパケットの情報をパケット拒絶検出部０６１０へ渡す。
【００４１】
受話器０６０５は、人が話す・聞くことをサポートするためのマイクとスピーカーとを備える。音声変換部０６０６は、音声（人の声）と、音声をサンプリング化した音声データ（例えばＰＣＭなどの通信に適したデータ）とを相互にコード変換する。
【００４２】
変換アドレス検出部０６０７は、ＩＰ電話機０１０１から送出したパケットのアドレスとポート番号とがルータ０１０３のＮＡＴ機能によって書き換えられるため、ＩＰ電話機０１０２から送信されたＲＴＰパケット（音声データを含むパケット）が正常にＩＰ電話機０１０１まで届くように、通話が始まる前にＮＡＴ変換後のＩＰアドレスとポート番号とを調べる。まず、記憶部０６０３に記憶されているＳＴＵＮサーバ０１１１のアドレスに向けて、ＳＴＵＮパケットの送受信を通信実行部０６０４へ指示する。ＳＴＵＮサーバ０１１１からの応答を通信実行部０６０４から受け取り、変換後のＩＰアドレスとポート番号とを記憶部０６０３に記憶する。これは、図２に示した動作と同様である。
【００４３】
セッション多重化部０６０８は、本発明の中核となるところであり、通話で用いるセッションを多重化する。課題として前述したように、ＩＰ電話による通話時には、音声を含んだパケットが２０ミリ秒の間隔で、ＩＰ電話機間で送受信されている。これは、音声パケットを受信するルータにとっては、短期間で大量にパケットが送りつけられてくることに等しく、ＤｏＳ攻撃を受けているように見える。あるベンダ製のルータでは、短期間の間に一定数以上の特定のポート宛のパケットを受信すると、ＤｏＳ攻撃検知もしくはＳＰＩの機能が働き、通話が遮断されるというケースが起こっている。図７にその様子を示す。
【００４４】
図７は、通話開始時と通話開始後のルータ０１０３のポートの状況変化を表した概略図である。図７を参照して、ルータ０１０３は、通話開始前にはＲＴＰパケット０７０４（音声データ）を受信するためにポート０７０３を開放している、もしくはこれから開放しようとしていても、通話開始後には音声データを含んだＲＴＰパケット０７０４を外部からの攻撃であるとルータ０１０３が検知してしまった場合、ポート０７０３を閉鎖してしまう。こうなると、ＩＰ電話機０１０１では相手からの音声データが届かなくなる。これでは相手と通話ができない状態に陥ってしまう。
【００４５】
そこで、図８を参照しながら、この問題を回避するための仕組みを説明する。図８は、本発明の実施の形態１に係るＩＰ電話機０１０１のＲＴＰパケット送信時の動作を説明するための模式図である。音声データを相手側の電話機に届ける場合について、図８（ａ）には従来のＩＰ電話機の動作を、図８（ｂ）には本発明のＩＰ電話機０１０１の動作を示す。図８（ａ）を参照して、従来のＩＰ電話機は、音声データを含むＲＴＰパケットを１つのセッションを使って送信していた。それに対して、図８（ｂ）を参照して、本発明のＩＰ電話機０１０１では、ルータのＤｏＳ攻撃検知やＳＰＩ機能によって通信が遮断されないように、ＲＴＰパケット間の間隔を大きくする。例えば、２０ミリ秒間隔で送っていたものを６０ミリ秒間隔に広げる。そして、人が違和間なく音声を聞けるようにするために、間隔を広げた分を補うよう、セッションを複数確立することにする。
【００４６】
例えば、ＩＰ電話機０１０１は、１つのセッション上で２０ミリ秒間隔で送信していたものを、６０ミリ秒間隔に変更する分、確立するセッション数を１本から３本に増やす。図８（ｂ）に示す例では、ＩＰ電話機０１０１は、１つのセッションにおけるＲＴＰパケットの間隔が６０ミリ秒で、３本のセッションを確立してＲＴＰパケットを並列で送っている。このように、連続して送るべきＲＴＰパケットを複数のグループに分割し、分割したグループの分だけセッションを多重化する（分割多重化）。１セッション中でのＲＴＰパケットの間隔をＮ倍にすれば、通話相手の電話機との間でＮ倍のセッションを確立することにする。セッション多重化部０６０８は、このような機能を有しながら、音声変換部０６０６から受け取った音声データをＲＴＰパケットに挿入して送信し、受け取ったＲＴＰパケットから音声データを取り出して音声変換部０６０６に提供する。
【００４７】
図９は、セッション多重化部０６０８が実行する、ＲＴＰパケットに挿入される音声データの振り分けについて説明する模式図である。図９を参照して、キュー０９０１は、音声変換部０６０６から提供されてきた音声データを一時格納するためのキューを表す。キュー０９０２、０９０３、０９０４は、音声データを分割多重化によって送信するために、グループ分けを行うためのキューを表す。ここでは、音声データを３グループにグループ分けする場合を描いている。Ｎグループに分割する場合は、Ｎ個のキューを使う。図９において、“１〜１０”までの数字は、それぞれ分割された音声データを示す。図９に示すように、キュー０９０２、０９０３、０９０４にグループ分けされた音声データは、それぞれ並列で、通信実行部０６０４に運ばれる。
【００４８】
ＲＴＰパケットの送信とは逆に、分割多重化されたＲＴＰパケット受信時の処理の様子を図１０、及び図１１に示す。図１０は、本発明の実施の形態１に係るＩＰ電話機０１０１のＲＴＰパケット受信時の動作を説明するための模式図である。図１１は、セッション多重化部０６０８が実行する、ＲＴＰパケットに含まれる音声データの並び替えについて説明する模式図である。図１０を参照して、ＩＰ電話機０１０１は、複数のポートを使ってＲＴＰパケットを受信する。そして、図１１を参照して、セッション多重化部０６０８は、通信実行部０６０４から提供される音声データを、一旦ポート毎に用意されたキュー１１０２、１１０３、１１０４に入れ、結合用キュー１１０１で音声データの順番を正しく並べる。その後、正しく並べ替えられた音声データは音声変換部０６０６に送られる。
【００４９】
なお、図９及び図１１で記述したポートＡ、ポートＢ、ポートＣは、音声データが分割多重化されて送受信される前に決定される。これは、変換アドレス検出部０６０７が、ＮＡＴ変換後のアドレス情報について、分割多重化するセッションの数だけ調べることになる。例えば、ＩＰ電話機０１０１が１００００、２００００、３００００のポート番号でＲＴＰパケットを待ち受けることを決めたとき、１００００、２００００、３００００のそれぞれについてＮＡＴ変換後のアドレス情報を調べる。このＮＡＴ変換後のアドレス情報を用いて、ポートＡ、ポートＢ、ポートＣとして割り当てる。
【００５０】
さらには、ＲＴＰパケットの送り元である電話機に、自電話機がポートＡ、ポートＢ、ポートＣでＲＴＰパケットを待ち受けることを通知しなければ音声データを受け取れない。セッション情報交換部０６０９では、この処理を行う。
【００５１】
セッション情報交換部０６０９は、図３に示したＳＩＰメッセージを送受信（すなわち、セッションを接続、切断）する機能をもつ。ＳＤＰに含まれるアドレス情報（ＩＰアドレス、ポート）は、変換アドレス検出部０６０７によって記憶部０６０３に記憶されたＮＡＴ変換後のアドレス情報を利用する。それに加えて、セッションを多重化する場合の複数ポートの通知する機能をもつ。具体的には、ＩＰ電話機０１０１が発呼側となる場合、図１２に図示したＳＩＰ  ＩＮＶＩＴＥメッセージを送る。ＲＴＰパケットの待ち受けポートをセッション数分列挙する。一方、ＩＰ電話機０１０１が着呼側となる場合、図１３に図示したＳＩＰ  “２００  ＯＫ”メッセージを送る。多重化するセッションの数だけポートを指定する。
【００５２】
なお、“ｍ＝ａｕｄｉｏ”行だけセッション数分指定した例を１２と１３に示したが、“ｍ＝ａｕｄｉｏ”行と“ａ＝ｒｔｐｍａｐ”行のペアをセッションの数だけ指定するように記述してもよい。そして、ＳＩＰによって交換された音声通話で用いるアドレス情報を記憶部０６０３に記憶する。相手側のＩＰ電話機０１０２との間でセッションの確立が成立すると、セッション情報交換部０６０９は、音声通話の開始をセッション多重化部０６０８に指示する。この指示をうけたセッション多重化部０６０８は、送信先のアドレス情報とＲＴＰパケットの待ち受けアドレス情報とを、記憶部０６０３から参照して、音声データをやり取りする（セッション多重化部０６０８の説明は前述したとおりである）。
【００５３】
パケット拒絶検出部０６１０は、通信実行部０６０４を介して、ルータによるポート閉鎖が発生していないかを監視する機能を持つ。そして、セッション情報交換部０６０９及びセッション多重化部０６０８へポート閉鎖の有無を通知する機能を有する。
【００５４】
以上から、セッションを分割多重化することで、ルータのＤｏＳ攻撃検知もしくはＳＰＩ機能が動作するために通話不能になる問題を解決できる。仮に、ルータの所有者がルータの設定を変更すれば解決できるとしても、その所有者がネットワークやルータに精通しているとは限らないため、所有者にルータ設定を要求しなくても問題を解決できるのは価値がある。また、ＤｏＳ攻撃検知やＳＰＩ機能を所有者がその機能をＯＦＦにしてしまうと、インターネット等の外部ネットワークからの悪意のある攻撃にさらされるという危険がある。しかし本発明によれば、セキュリティのレベルを下げることなく、通話不能になるという問題を解決できる。
【００５５】
以降、ＩＰ電話機０１０１のＩＰ電話機０１０２との通話の動作について、フローチャートを参照しながら説明する。図１のＳＴＵＮサーバ０１１１とＳＩＰサーバ０１１２のアドレスをＩＰ電話機０１０１、０１０２は既に知っているものとする。また、基本的に外部からのパケットがいきなり到達してもルータ０１０３，０１０４はそれを内部へ通さないため、ＩＰ電話機０１０１，０１０２が相手のＩＰ電話機からの呼び出しを受けることができるように、ＳＩＰサーバ０１１２に対して定期的にパケットを送出しているものとする（ＵＤＰホールパンチング）。
【００５６】
まず、ＩＰ電話機０１０１は、ＲＴＰパケット（音声データ）を受信するためのＮＡＴ変換後のアドレス情報を調べる。図１５を参照して、ＲＴＰパケットを受け入れる予定のポート番号について、変換アドレス検出部０６０７は、ＳＴＵＮサーバ０１１１を利用して、ＮＡＴ変換後のアドレス情報を取得する。これは分割多重化する分だけ繰り返す（ステップＳ１５０１）。変換アドレス検出部０６０７は、取得したアドレス情報を記憶部０６０３へ保存する（ステップＳ１５０２）。
【００５７】
次に、ＩＰ電話機０１０１が発呼側と着呼側の場合とで手順が異なるので、それぞれについて説明する。先に、ＩＰ電話機０１０１が発呼側である場合について説明する。図１６を参照して、人が受話器０６０５を取り上げてダイヤルすると、セッション情報交換部０６０９が通話のためのセッション確立を開始する（ステップＳ１６０１）。セッション情報交換部０６０９は、記憶部０６０３からＮＡＴ変換後のＲＴＰパケット受信用ポートのアドレス情報を取り出し、セッション確立数（分割多重化）分に応じて、ＳＤＰオファーを作成する（ステップＳ１６０２）。
【００５８】
セッション情報交換部０６０９は、作成したＳＤＰオファーをＳＩＰのＩＮＶＩＴＥメッセージのボディ部に含め、通信実行部０６０４を使ってＳＩＰサーバ０１１２へ送る（ステップＳ１６０３）。その後、ＩＮＶＩＴＥメッセージに対するレスポンスを待ち、そのレスポンスがエラー応答に該当するか否かによって処理が分岐する（ステップＳ１６０４）。エラー応答であった場合、ステップＳ１６０２へ戻る。応答が成功であった場合、セッション情報交換部０６０９はＡＣＫメッセージを送ると共に、受信した応答に含まれるＳＤＰアンサーの内容を記憶部０６０３へ保存する（ステップＳ１６０５）。この時点で、自分の待ち受けポートと相手の待ち受けポートの情報交換ができたことになる。
【００５９】
次に、ＲＴＰパケットを送受信することで通話を行える処理に入る。図１７を参照して、セッション情報交換部０６０９は、セッション多重化部０６０８に対し、ＲＴＰパケット（音声データ）の送受信を指示する（ステップＳ１７０１）。セッション多重化部０６０８は、セッション情報交換部０６０９が保存した内容（ＮＡＴ変換後の送信元アドレス、相手がパケットを待ち受けている送信先アドレス、セッションの確立数、ＲＴＰパケットの送信間隔）を読み込む（ステップＳ１７０２）。セッション多重化部０６０８が、セッションの確立数に応じて、セッションの利用準備をする（ステップＳ１７０３）。音声変換部０６０６で、音声と送受信で用いる音声データが相互に変換され（ステップＳ１７０４）、セッション数とパケット間隔に応じて、セッション多重化部０６０８が音声データを送受信する（ステップＳ１７０５）。なお、送受信に際しては、通信実行部０６０４を利用する。
【００６０】
ポートが閉鎖されたことを検知することもなく、通話が終了する（受話器０６０５が置かれた、もしくは、ＳＩＰのＢＹＥメッセージを受け取った）場合、セッション情報交換部０６０９が通話終了を認識する（ステップＳ１７０７）。その時、セッション多重化部０６０８は、セッション情報交換部０６０９からその旨を通知され、ＲＴＰパケットの送受信をやめる（ステップＳ１７０８）。そして、セッション情報交換部０６０９は、受話器０６０５が置かれた場合には、ＳＩＰのＢＹＥメッセージの送信とＡＣＫメッセージの受信待ちを行う。もしくは、ＳＩＰのＢＹＥメッセージを受信した場合には、ＡＣＫメッセージの送信を行って、終了処理を実施する（ステップＳ１７０９）。
【００６１】
次に、電話機が着呼側である場合について説明する。図１８を参照して、通信実行部０６０４がＳＩＰのＩＮＶＩＴＥメッセージを受信すると（ステップＳ１８０１）、セッション情報交換部０６０９へその旨を通知する（ステップＳ１８０２）。セッション情報交換部０６０９は、ＩＮＶＩＴＥメッセージの内容を解釈する（ステップＳ１８０３）。この解釈では、ＩＮＶＩＴＥメッセージ中に含まれているＳＤＰオファーに記述された送信先のアドレス情報、セッション確立数、パケット送信間隔を読み取る。異常があれば、エラー応答を送信する（ステップＳ１８０４）。エラー応答を送信する場合、ステップＳ１８０１に戻る。正常であれば、解釈した内容を記憶部０６０３に保存する（ステップＳ１８０５）。そして、呼び出し音を鳴らすと共に、“１８０  Ｒｉｎｇｉｎｇ”メッセージをセッション情報交換部０６０９が返信する（ステップＳ１８０６）。
【００６２】
図１９を参照して、人によって受話器０６０５が取り上げられると、セッション情報交換部０６０９は、記憶部０６０３に保存された内容を取り出し、自電話のＮＡＴ変換後のアドレス情報とセッション確立数に応じたＳＤＰアンサーを生成する（ステップＳ１９０１）。セッション情報交換部０６０９が、“２００  ＯＫ”メッセージを返信し（ステップＳ１９０２）、ＡＣＫメッセージの受信待ちを行う（ステップＳ１９０３）。その後、ＲＴＰパケットを送受信することで通話を行える処理に入るが、これについては発呼側の場合と同じであり、前述しているため、ここでは説明を省略する。
【００６３】
（実施の形態２）
実施の形態１では、自分が所有するＩＰ電話機と通話相手のＩＰ電話機の両方で、本発明の機能を有するものとして説明した。しかし、２点間で通話が行われる際、両方の電話機で、本発明の機能を常に有しているとは限らない。相手が本発明の機能を有しない場合、図１２や図１３で示したＳＤＰ（セッションの数だけ“ｍ＝ａｕｄｉｏ"行を記載するようにしたＳＤＰ）のために、相手の電話機が何も解釈できなくなることも考えられる。そうなると、図３の接続処理時に１つのセッションも確立できず、通話が一切できなくなってしまう。このため、通話の開始時には分割多重化を行わず、従来どおりセッション情報交換部０６０９が１セッションの確立のみを行うようにしてもよい。但し、パケット拒絶検出部０６１０は、相手からのＲＴＰパケットが届くか否かを監視し、ルータのポートが閉鎖されていないかを検出することとする。通話の開始時には、挨拶（「もしもし」等）のために、双方が短い会話をすることがほとんどなので、それによって検出してもよい。もし、相手からのＲＴＰパケットが届かないことを確認した場合、セッションの再確立を実施するようにセッション情報交換部０６０９に通知する。セッション情報交換部０６０９は、パケット拒絶検出部０６１０から通知を受けると、今度はセッションを複数確立する（多重化）ことで通話可能な状態にすることを試みる。
【００６４】
この時のフローチャートについて、実施の形態１との差分を説明する。まず最初は１セッションで通話を行うので、図１６のステップＳ１６０２でのセッション数は“１”となる。そして、図１７のステップＳ１７０６で、パケット拒絶検出部０６１０がＲＴＰパケットを受信できているかを監視する。ポート閉鎖を検知した場合には、ステップＳ１６０２から再度やり直す。但し、今回はセッション確立数が複数となるように、セッション情報交換部０６０９は、ステップＳ１６０２においてセッション数を調整して再接続を試みる。
【００６５】
これにより、本発明の機能をもつＩＰ電話機と従来の電話機間でも通話をすることが可能となる。
【００６６】
（実施の形態３）
しかしながら、本発明と従来の電話機間の通話を考慮した実施の形態２のままでは、ルータによるポート閉鎖が発生した後、分割多重化による複数セッションの確立完了までの間は通話が出来ない。これは、電話の利用者としては非常に使いづらいものである。そのため、図３の接続時（セッション確立時のＩＮＶＩＴＥ）において、もし発呼側である場合には、セッション情報交換部０６０９は、まず分割多重化を行うためのＳＤＰを使ってＩＮＶＩＴＥメッセージを送ってみる。そのときに“４００  Ｂａｄ  Ｒｅｑｕｅｓｔ”、“５００  Ｓｅｒｖｅｒ  Ｉｎｔｅｒｎａｌ  Ｅｒｒｏｒ”等のエラーレスポンスが着呼側から返されてきた場合には、セッション情報交換部０６０９は１セッションのみを用いる方法に切り替え、従来のＳＤＰ形式（例えば、０４のＳＤＰ）を使って、再度セッション確立をやり直すことにしてよい。
【００６７】
また、図３の接続時（セッション確立時のＩＮＶＩＴＥ）において、もし着呼側である場合には、セッション情報交換部０６０９は、発呼側からのＩＮＶＩＴＥメッセージに含まれるＳＤＰを解釈し、分割多重化を行うためのＳＤＰであるかを確認する。分割多重化を意図したＳＤＰであれば、図１３に示したような分割多重化を行うためのＳＤＰを使って、発呼側との間で分割多重化によってＲＴＰパケットをやり取りする。分割多重化を意図したＳＤＰでなければ、従来どおりの１セッションのみを使う方法でＲＴＰパケットをやり取りするようにしてもよい。もしくは、上述した説明ではＳＤＰの内容やエラーレスポンスを観察することで相手側の電話機が本発明をサポートしているのか否かを確認したが、セッション情報交換部０６０９はＳＩＰメッセージのヘッダ部に含まれる属性値を観察することで、それを確認してもよい。例えば、Ｕｓｅｒ−Ａｇｅｎｔ属性値によって、メーカ種別や、本発明をサポートする電話機であるかを確認してもよい。
【００６８】
この時のフローチャートについて、実施の形態１との差分を説明する。発呼側である場合、図１６のステップＳ１６０２でのセッション数として、セッション情報交換部０６０９は、まずは複数値を使う。そして、ステップＳ１６０４で応答がエラーであるか否かを確認する。もしエラーであれば、相手側の電話機は本発明に対応していないものと判断し、再度ステップＳ１６０２に戻って来たときには従来どおりセッション数を“１”にして接続を試みる。
【００６９】
（実施の形態４）
しかしながら、セッションの分割多重化を実施したとしても、それでもまだＲＴＰパケット間の間隔がルータの許容する間隔より小さいことが起こりうる。その場合、通話開始時もしくは通話途中で音声が途切れてしまう。例えば、ＲＴＰパケットの間隔が９０ミリ秒以上でなければポートを閉鎖してしまうルータの場合、セッション数が３つでＲＴＰパケット間隔が６０ミリ秒の分割多重化を実施しても音声が途切れる。そのため、通話が始まるまでにこの問題を解決することが望まれる。
【００７０】
そこで、通話が開始される前に、ポート閉鎖の現象が起こっていないかを調査する機能を追加する。図１４はそれを行うための処理について記述した図である。図１４に示す処理は、図３に示す処理と比較して、接続（セッション確立）時の処理を一部変更してある。図１４を参照して、ＩＰ電話機０１０１は、ＳＩＰのＩＮＶＩＴＥメッセージを受信した時、呼び出し音を鳴らすのと“１８０  Ｒｉｎｇｉｎｇ”メッセージを返す前に、“１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓ”メッセージを返す。このとき、このメッセージにＳＤＰアンサーを含める。すなわち、この時点でＳＤＰアンサーを送ることとし、“２００  ＯＫ”の時点では含めないこととする。２点間の電話機で、ＩＮＶＩＴＥメッセージと“１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓ”メッセージを交換することで、お互いがＲＴＰパケットを待ち受けるポート番号が分かり、複数のセッションを確立できる。この複数のセッションを用いて、ステップＳ１４５０で示すように、この段階でポート閉鎖が起きないかの確認を行う。
【００７１】
パケット拒絶検出部０６１０がセッション多重化部０６０８を使って相手側の電話機にＵＤＰパケットを送る。ＵＤＰパケットに含むデータについてはこだわらない。ＵＤＰパケットの送出間隔及びセッション数は、通話時に適用しようとする間隔及びセッション数と同じにする。相互にパケットを送受信し合うことで、ポート閉鎖によってパケットが送受信できなくなっていないかを確認する。以降、この確認を事前検証と呼ぶこととする。ポート閉鎖を認識しなければ、ＩＰ電話機０１０２は、呼び出し音を鳴らすと共に、“１８０  Ｒｉｎｇｉｎｇ”メッセージを電話機０１０１へ送る。もしポート閉鎖を認識した場合には、再度ＩＮＶＩＴＥメッセージからやり直す。但しやり直し時には、分割多重化するセッション数を増やし、ＲＴＰパケット間の間隔が大きくなるようにＳＤＰの内容を作成する。
【００７２】
次に、実施の形態５の通話時の動作について、フローチャートを参照しながら説明する。先に、発呼側の動作について説明する。図２０を参照して、人が受話器０６０５を取り上げてダイヤルすると、セッション情報交換部０６０９が通話のためのセッション確立を開始する（ステップＳ２００１）。セッション情報交換部０６０９は、記憶部０６０３からＮＡＴ変換後のＲＴＰパケット受信用ポートのアドレス情報を取り出し、セッション確立数（分割多重化）分に応じて、ＳＤＰオファーを作成する（ステップＳ２００２）。
【００７３】
セッション情報交換部０６０９は、作成したＳＤＰオファーをＳＩＰのＩＮＶＩＴＥメッセージのボディ部に含め、通信実行部０６０４を使ってＳＩＰサーバ０１１２へ送る（ステップＳ２００３）。その後、ＩＮＶＩＴＥメッセージに対するレスポンスを待ち、そのレスポンスがエラー応答に該当するかしないかによって処理が分岐する（ステップＳ２００４）。エラー応答であった場合、ステップＳ２００２へ戻る。エラー応答でない場合に、“１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓ”メッセージを受信すると、ＳＤＰアンサーの内容を記憶部０６０３へ保存する（ステップＳ２００５）。そして、セッション情報交換部０６０９は、ＳＤＰアンサーに記載されていたセッション数及びパケット間隔を参照して、パケットを２点間で送受信する。このパケットはＵＤＰパケットを使えばよい。この２点間での送受信によってポート閉鎖が起こっているか否かを検出する（ステップＳ２００７）。
【００７４】
ポート閉鎖が検出されずに、相手側の電話機より“２００  ＯＫ”メッセージが送られてきた場合、セッション情報交換部０６０９はＡＣＫを送り、音声データのやり取りで用いるセッション数と送受信間隔を確定する（ステップＳ２００８）。その後、ＲＴＰパケットのやり取りが始まる。ＲＴＰパケットのやり取りについては、前述と同じであるので、ここでは説明を省略する。一方、ステップＳ２００７においてポート閉鎖を検出した場合には、ステップＳ２００２でセッション数及び送受信間隔を大きくするようＳＤＰオファーを生成しなおし、再度セッションの確立をやり直す。
【００７５】
次に、電話機が着呼側である場合について説明する。図２１を参照して、通信実行部０６０４がＳＩＰのＩＮＶＩＴＥメッセージを受信すると（ステップＳ２１０１）、セッション情報交換部０６０９へその旨を通知する（ステップＳ２１０２）。セッション情報交換部０６０９がＩＮＶＩＴＥメッセージの内容を解釈する（ステップＳ２１０３）。この解釈では、ＩＮＶＩＴＥメッセージ中に含まれているＳＤＰオファーに記述された送信先のアドレス情報、セッション確立数、及びパケット送信間隔を読み取る。異常があれば、エラー応答を送信する（ステップＳ２１０４）。エラー応答を送信する場合、ステップＳ２１０１に戻る。正常であれば、解釈した内容を記憶部０６０３に保存する（ステップＳ２１０５）。そして、ＳＤＰオファーの内容に合わせてＳＤＰアンサーを生成する（ステップＳ２１０６）。
【００７６】
セッション情報交換部０６０９は、“１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓ”メッセージにＳＤＰアンサーを含めて、発呼側へＳＩＰサーバを経由して送り返す（ステップＳ２１０７）。図２２を参照して、ＳＤＰに記載されたセッション数分のポートとパケット間隔で事前検証用のパケットを送受信する（ステップＳ２２０１）。この時、ポート閉鎖が発生していないかどうかを検出する（ステップＳ２２０２）。もし、ポート閉鎖の発生を検出した場合には、ステップＳ２１０１へ戻る。一方、ポート閉鎖の発生を検出しなかった場合には、呼び出し音を鳴らすと共に、“１８０  Ｒｉｎｇｉｎｇ”メッセージをセッション情報交換部０６０９が送信する（ステップＳ２２０３）。その後、受話器０６０５が人によって取り上げられると、セッション情報交換部０６０９が“２００  ＯＫ”メッセージを送信し（ステップＳ２２０４）、ＡＣＫの受信を待つ（ステップＳ２２０５）。その後、ＲＴＰパケットのやり取りが始まる。その説明をここでは省略する。
【００７７】
（実施の形態５）
しかしながら、実施の形態４のままでは、後日同じ電話機間で事前検証を行うと、電話をかける度に事前検証を実施する分、通話開始までの時間が長くなる。そのため、ＩＰ電話機０１０１が、一度通話した電話機の情報を記憶部０６０３に保持しておき、次回からは過去に適用したセッション数とＲＴＰパケット間隔で分割多重化すれば、適切なセッション数とＲＴＰパケット間隔の再調査と事前検証を省略でき、電話をする毎に待たされるという現象を抑えられる。なお、記録する通話相手の情報としてＵＲＩ（図１２で示した“１２３４＠ｅｘａｍｐｌｅ．ｃｏｍ”）を利用すればよい。また、記憶部０６０３が備える記憶容量に余裕がない場合には、記憶情報の優先度順を定義し、優先度の低いものを消去するようにしてもよい。例えば、記憶情報の優先度順は、相手との通話回数や通話日時などが上げられる。
【００７８】
実施の形態５の動作について、実施の形態４のフローチャートとの差分を説明する。本実施の形態では、図２０のステップＳ２００８において、セッション情報交換部０６０９が、記憶部０６０３にセッション数、パケット送受信間隔、通話相手の情報を保存するという処理を加える。そして、次回の接続時に、セッション情報交換部６０９は、ステップＳ２００２でのＳＤＰオファー作成時にその記憶した情報を利用する。
【００７９】
あるいは、工場出荷時もしくはユーザが設定内容入力部０６０１を利用時に、ルータの機種情報と使用すべきセッション数及びパケット送出間隔の情報を記憶部０６０３に事前に記憶することにしてもよい。次回セッションを確立する時は、セッション情報交換部０６０９は、記憶部０６０３に事前に記憶したセッション数及びパケット送出間隔の情報を取り出し、その情報を使って通話のためのセッションを確立してもよい。
【００８０】
また、上述した説明では、セッション情報交換部０６０９が、セッション数及びパケット送出間隔の情報を記憶部０６０３に記憶し問い合わせることを記述したが、その代わりに特定のサーバに問い合わせることにしてもよい。セッション確立を行う前に、ＵＲＩをキーとして分割多重化すべきセッション数やＲＴＰパケット間隔を前記の特定サーバに問い合わせる。なお、この場合には、特定サーバに前回のセッション数やＲＴＰパケット間隔が事前登録されているものとする。記憶部０６０３や特定サーバに、前回実施して通話できたときのセッション数やＲＴＰパケット間隔の情報がなければ、事前検証を実施するものとしてよい。前記した特定サーバへの事前登録は、前回通話時のセッション確立時、もしくは前回通話終了時等に実施すればよい。
【００８１】
以上の説明において、本発明の通信装置は、変換アドレス検出部０６０７が実施するＮＡＴ変換後のアドレス情報を調べる処理を接続処理の前にすることを記述したが、ＳＩＰのＩＮＶＩＴＥメッセージを受信した後に行ってもよいものとする。
【００８２】
また、本発明の通信装置は、ＳＤＰオファーとＳＤＰアンサーとで、セッション確立数が異なる場合には、着呼側がエラー応答を返すこととしてもよいし、少ない方のセッション確立数を採用することにしてもよい。
【００８３】
また、ポートが閉鎖されてしまった場合、しばらくの間はそのポートを使用できないことがある。そのため、本発明の通信装置は、再度セッション確立をやり直す場合には、ＲＴＰパケットの待ち受けポートを変えることにしてもよい。
【００８４】
また、本発明の通信装置は、セッションを複数確立する場合、送信先のポート１つに対して送信元のポート１つを利用して、ＲＴＰパケットを送信していたが、送信先のポートを複数使い、送信元のポートは１つだけを使うことにしてもよい。例えば、（送信先ポート、送信元ポート）の組み合わせとして、（Ａ１、Ｂ１）、（Ａ２、Ｂ２）、（Ａ３、Ｂ３）を使っていたものを、（Ａ１、Ｂ１）、（Ａ２、Ｂ１）、（Ａ３、Ｂ１）というように、送信元ポートは同じものを使うようにしてもよい。
【００８５】
また、本発明の通信装置は、送信と受信とでそれぞれ別々のセッション（ポートの組み合わせ）を使う場合でも、同様に適用できる。
【００８６】
また、分割多重化で送受信するための複数のポート番号の伝達方法は、前述したＳＤＰのフォーマットや仕組みにはこだわらない。
【００８７】
また、ＳＤＰのオファーとアンサーを、ＳＩＰのＩＮＶＩＴＥメッセージと“２００  ＯＫ”もしくは"１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓ"メッセージの対に付加されるものとして説明したが、これに拘束されるわけではない。“２００  ＯＫ”メッセージとＡＣＫメッセージの対に適用することにしてもよい。
【００８８】
また、上述した説明では、本発明は、ＩＰ電話機に適用されるものとして説明したが、ＩＰ通信可能な多くの通信装置に適用可能である。例えば、従来の電話機が繋がるＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アダプタにも適用可能である。また、音声以外の文字情報や映像等を送受信する通信装置にも適用可能である。
【００８９】
また、上述した説明では、ＩＰ電話での分割多重化によるやり取りを説明したが、本発明は、ＴＶ会議システムやその他のサービスにも適用可能である。
【００９０】
また、上述した説明では、２点間の通信に絞って説明したが、本発明は、多点間の通信に適用してもよい。
【００９１】
また、第１〜５の実施形態で述べたＩＰ電話機が行うそれぞれの処理手順は、記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク等）に格納された上述した処理手順を実行可能な所定のプログラムデータが、ＣＰＵによって解釈実行されることで実現されてもよい。この場合、プログラムデータは、記憶媒体を介して記憶装置内に導入されてもよいし、記憶媒体上から直接実行されてもよい。なお、記憶媒体は、ＲＯＭやＲＡＭやフラッシュメモリ等の半導体メモリ、フレキシブルディスクやハードディスク等の磁気ディスクメモリ、ＣＤ−ＲＯＭやＤＶＤやＢＤ等の光ディスクメモリ、及びメモリカード等をいう。また、記憶媒体は、電話回線や搬送路等の通信媒体を含む概念である。
【００９２】
また、第１〜５の実施形態で述べたＩＰ電話機に含まれる構成は、それぞれ集積回路であるＬＳＩとして実現することができる。これらは、個別に１チップ化されてもよいし、それぞれにおいて全てまたは一部を含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００９３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応例が可能性としてありえる。
【産業上の利用可能性】
【００９４】
本発明は、音声や映像等のリアルタイム性を必要とするサービスにおいて、短時間にパケットを大量に送出／受信する通信機器等に適用可能である。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態１に係るＩＰ電話ネットワークの構成を示す概略図
【図２】ＮＡＴ変換後のアドレス情報を取得する時のシーケンス図
【図３】図１に示すＩＰ電話ネットワークでの通信のシーケンスを示す図
【図４】ＩＮＶＩＴＥメッセージの典型例を示す図
【図５】“２００  ＯＫ”メッセージの典型例を示す図
【図６】本発明の実施の形態１に係るＩＰ電話機０１０１の構成を示すブロック図
【図７】通話開始前と通話開始後のポートの状況変化を表した概略図
【図８】本発明の実施の形態１に係るＩＰ電話機０１０１のＲＴＰパケット送信時の動作を説明するための模式図
【図９】セッション多重化部０６０８が実行する、ＲＴＰパケットに挿入される音声データの振り分けについて説明する模式図
【図１０】本発明の実施の形態１に係るＩＰ電話機０１０１のＲＴＰパケット受信時の動作を説明するための模式図
【図１１】セッション多重化部０６０８が実行する、ＲＴＰパケットに含まれる音声データの並び替えについて説明する模式図
【図１２】分割多重化する場合のＩＮＶＩＴＥメッセージの例
【図１３】分割多重化する場合の“２００  ＯＫ”メッセージの例
【図１４】事前検証実施時のシーケンス図
【図１５】ＮＡＴ変換後のアドレス情報を取得するときのフローチャート
【図１６】発呼側のセッション情報交換時のフローチャート
【図１７】通話するときのフローチャート
【図１８】着呼側のセッション情報交換時の前半部分を表すフローチャート
【図１９】着呼側のセッション情報交換時の後半部分を表すフローチャート
【図２０】事前検証を実施する場合の発呼側のセッション情報交換時のフローチャート
【図２１】事前検証を実施する場合の着呼側のセッション情報交換時の前半部分を表すフローチャート
【図２２】事前検証を実施する場合の着呼側のセッション情報交換時の後半部分を表すフローチャート
【図２３】特許文献１に記載の従来のＩＰ電話ネットワークの構成を示す図
【図２４】特許文献２に記載の従来のＩＰ電話ネットワークの構成を示す図
【符号の説明】
【００９６】
０１０１，０１０２  ＩＰ電話
０１０３，０１０４  ルータ
０１１０  ＩＰネットワーク
０１１１  ＳＴＵＮサーバ
０１１２  ＳＩＰサーバ
０１２１，０１２２  宅内ネットワーク
０６０１  設定内容入力部
０６０２  設定内容出力部
０６０３  記憶部
０６０４  通信実行部
０６０５  受話器
０６０６  音声変換部
０６０７  変換アドレス検出部
０６０８  セッション多重化部
０６０９  セッション情報交換部
０６１０  パケット拒絶検出部
１０  ＳＩＰ通信制御装置
２０  ＮＡＴ／ＦＷ装置
３０，３１  ネットワーク
【図１】
2009033299.tif 000003
【図２】
2009033299.tif 000004
【図３】
2009033299.tif 000005
【図４】
2009033299.tif 000006
【図５】
2009033299.tif 000007
【図６】
2009033299.tif 000008
【図７】
2009033299.tif 000009
【図８】
2009033299.tif 000010
【図９】
2009033299.tif 000011
【図１０】
2009033299.tif 000012
【図１１】
2009033299.tif 000013
【図１２】
2009033299.tif 000014
【図１３】
2009033299.tif 000015
【図１４】
2009033299.tif 000016
【図１５】
2009033299.tif 000017
【図１６】
2009033299.tif 000018
【図１７】
2009033299.tif 000019
【図１８】
2009033299.tif 000020
【図１９】
2009033299.tif 000021
【図２０】
2009033299.tif 000022
【図２１】
2009033299.tif 000023
【図２２】
2009033299.tif 000024
【図２３】
2009033299.tif 000025
【図２４】
2009033299.tif 000026