(57)【要約】【課題】端末間に介在するＳＩＰサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のＳＩＰシグナリングの制御を可能にするコマンドシーケンス番号の制御方法、サーバ及びプログラムを提供する。【解決手段】ＳＩＰサーバは、ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する。そして、受信したＳＩＰリクエストのコマンドシーケンス番号に増分値を増分し、そのＳＩＰリクエストを転送する。その後、そのＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、そのＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分し、そのＳＩＰレスポンスを転送する。【選択図】図２
2010062692.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＰ(Session Initiation Protocol)サーバにおけるコマンドシーケンス番号の制御方法において、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する第１のステップと、
受信したＳＩＰリクエストのコマンドシーケンス番号に前記増分値を増分し、該ＳＩＰリクエストを転送する第２のステップと、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分し、該ＳＩＰレスポンスを転送する第３のステップと
を有することを特徴とするコマンドシーケンス番号の制御方法。
【請求項２】
前記コマンドシーケンス番号は、ＳＩＰシグナリングにおけるCSeq(Command Sequence)であることを特徴とする請求項１に記載のコマンドシーケンス番号の制御方法。
【請求項３】
第２のステップについて、前記ＳＩＰリクエストに、前記増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該ＳＩＰサーバ自らのViaヘッダに前記増分値を記述し、
第３のステップについて、前記ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに前記増分値が記述されている場合に、前記ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分すると共に、前記ＳＩＰレスポンスに前記増分値を含む差分ヘッダを記述する
ことを特徴とする請求項１又は２に記載のコマンドシーケンス番号の制御方法。
【請求項４】
前記ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されていない場合、該ＳＩＰリクエストを転送し、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、前記ＳＩＰレスポンスを転送する
ことを特徴とする請求項３に記載のコマンドシーケンス番号の制御方法。
【請求項５】
前記ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、前記ＳＩＰリクエストを転送し、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスを転送する
ことを特徴とする請求項３に記載のコマンドシーケンス番号の制御方法。
【請求項６】
前記ＳＩＰリクエストを受信し、該ＳＩＰリクエストに差分ヘッダが記述されていない場合、該ＳＩＰリクエストのコマンドシーケンス番号に前記増分値を増分すると共に、前記増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに前記増分値を記述したＳＩＰリクエストを転送し、
前記ＳＩＰレスポンスを受信し、該ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、該ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分すると共に、前記増分値を含む差分ヘッダを記述した前記ＳＩＰレスポンスを転送する
ことを特徴とする請求項４又は５に記載のコマンドシーケンス番号の制御方法。
【請求項７】
前記ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値よりも小さい場合、前記ＳＩＰリクエストのコマンドシーケンス番号に第１の増分値と第２の増分値の差分値を増分すると共に、第１の増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値を記述したＳＩＰリクエストを転送し、
若しくは、第２の増分値が第１の増分値以上である場合、第２の増分値を第１の増分値として記憶し、前記ＳＩＰリクエストを転送し、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値が記述されている場合に、前記ＳＩＰレスポンスのコマンドシーケンス番号から第１の増分値と第２の増分値の差分値を減分すると共に、第１の増分値を含む差分ヘッダを記述した前記ＳＩＰレスポンスを転送する
ことを特徴とする請求項４又は５に記載のコマンドシーケンス番号の制御方法。
【請求項８】
コマンドシーケンス番号を制御するＳＩＰサーバにおいて、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
ＳＩＰリクエストを受信するリクエスト受信手段と、
前記ＳＩＰリクエストのコマンドシーケンス番号に前記増分値を増分するコマンドシーケンス番号増分手段と、
前記ＳＩＰリクエストを転送するリクエスト転送手段と、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信するレスポンス受信手段と、
前記ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分するコマンドシーケンス番号減分手段と、
前記ＳＩＰレスポンスを転送するレスポンス転送手段と
を有することを特徴とするＳＩＰサーバ。
【請求項９】
前記コマンドシーケンス番号は、ＳＩＰシグナリングにおけるCSeqであることを特徴とする請求項８に記載のＳＩＰサーバ。
【請求項１０】
前記リクエスト転送手段は、前記ＳＩＰリクエストに、前記増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該ＳＩＰサーバ自らのViaヘッダに前記増分値を記述し、
前記レスポンス受信手段は、前記ＳＩＰレスポンスを受信し、
前記コマンドシーケンス番号減分手段は、前記ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに前記増分値が記述されている場合に、前記ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分し、
前記レスポンス転送手段は、前記ＳＩＰレスポンスに前記増分値を含む差分ヘッダを記述する
ことを特徴とする請求項８又は９に記載のＳＩＰサーバ。
【請求項１１】
前記リクエスト転送手段が、該ＳＩＰリクエストを転送した後、
前記増分値学習手段は、前記レスポンス受信手段が前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶する
ことを特徴とする請求項１０に記載のＳＩＰサーバ。
【請求項１２】
前記増分値学習手段は、前記リクエスト受信手段がＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することを特徴とする請求項１０に記載のＳＩＰサーバ。
【請求項１３】
前記リクエスト受信手段は、ＳＩＰリクエストを受信し、
前記リクエスト転送手段は、前記増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに前記増分値を記述したＳＩＰリクエストを転送し、
前記レスポンス受信手段は、前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信し、
前記コマンドシーケンス番号減分手段は、前記ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、該ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分し、
前記レスポンス転送手段は、増分値を含む差分ヘッダを記述した前記ＳＩＰレスポンスを転送する
ことを特徴とする請求項１１又は１２に記載のＳＩＰサーバ。
【請求項１４】
前記コマンドシーケンス番号増分手段は、受信した前記ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値よりも小さい場合、前記ＳＩＰリクエストのコマンドシーケンス番号に第１の増分値と第２の増分値の差分値を増分し、
前記リクエスト転送手段は、第１の増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値を記述したＳＩＰリクエストを転送するか、
若しくは、
前記リクエスト受信手段は、第２の増分値が第１の増分値以上である場合、第２の増分値を第１の増分値として前記増分値学習手段へ記憶し、
前記リクエスト転送手段は、前記ＳＩＰリクエストを転送し、
更に、
前記レスポンス受信手段は、前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信し、
前記コマンドシーケンス番号減分手段は、前記ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値が記述されている場合に、前記ＳＩＰレスポンスのコマンドシーケンス番号から第１の増分値と第２の増分値の差分値を減分し、
前記レスポンス転送手段は、第１の増分値を含む差分ヘッダを記述した前記ＳＩＰレスポンスを転送する
ことを特徴とする請求項１１又は１２に記載のＳＩＰサーバ。
【請求項１５】
コマンドシーケンス番号を制御するＳＩＰサーバに搭載されたコンピュータを機能させるプログラムにおいて、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
ＳＩＰリクエストを受信するリクエスト受信手段と、
前記ＳＩＰリクエストのコマンドシーケンス番号に前記増分値を増分するコマンドシーケンス番号増分手段と、
前記ＳＩＰリクエストを転送するリクエスト転送手段と、
前記ＳＩＰリクエストに対応するＳＩＰレスポンスを受信するレスポンス受信手段と、
前記ＳＩＰレスポンスのコマンドシーケンス番号から前記増分値を減分するコマンドシーケンス番号減分手段と、
前記ＳＩＰレスポンスを転送するレスポンス転送手段と
してコンピュータを機能させることを特徴とするＳＩＰサーバ用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＰ(Session Initiation Protocol)シグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラムに関する。特に、ＳＩＰサーバにおけるネットワーク主導のＳＩＰシグナリングを可能とする技術に関する。
【背景技術】
【０００２】
近年、多様なネットワークサービスについて、オールＩＰ(Internet Protocol)化が進められている。特に、音声通話については、ＶｏＩＰ(Voice over IP)が普及している。この技術によれば、ＩＰ上でのセッション制御（呼制御）が必要であって、発呼、着呼及びメディア種別など、サービスを開始するために必要な情報をやり取りする。これを実現するプロトコルとして、ＳＩＰが採用されている。
【０００３】
ＳＩＰは、基本的にはPeer-to-Peer型であり、両方の端末間で直接的に通信する。しかし、実際には、課金又は相手のアドレス解決などを処理するＳＩＰサーバを介することが多い。ＳＩＰサーバは、クライアント(User Agent Client)から受信したリクエストに応じて、サービスを提供する。ＳＩＰサーバの中でも、ＳＩＰプロキシサーバは、クライアントから受信したＳＩＰリクエストを、次のサーバに中継する機能を有する。
【０００４】
ＳＩＰリクエストには、CSeq(Command Sequence)ヘッダが付与される。CSeqヘッダは、コマンドシーケンス番号とメソッドとを記述することができる。コマンドシーケンス番号は、３２ビットの符号なし整数（２３１未満）の値であり、新規リクエスト毎に１増分される。これによって、メッセージの再送を判断することができる。即ち、同一ダイアログ(To、Toタグ、From、Fromタグ、Call-IDが同じ)であって、先に受信されたメッセージと同一のCSeqの値であれば、そのメッセージは、再送されたものと判断できる。
INVITE sip:bob@kddi1.com SIP/2.0
Via: SIP/2.0/UDP pc.kddi2.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob ＜sip:bob@kddi1.com＞
From: Alice ＜sip:alice@kddi2.com＞;tag=1928301774
Call-ID: a84b4c76e66710@pc33.kddi2.com
CSeq: 314159 INVITE
Contact: ＜sip:alice@pc.kddi2.com＞
Content-Type: application/sdp
Content-Length: 142
【０００５】
図１は、従来技術におけるシーケンス図である。
【０００６】
ＳＩＰは、Peer-to-Peerの通信であるために、リクエストの順序を管理するCSeqは、端末（ＳＩＰ−ＵＡ(User Agent)）毎に管理されている。従って、端末Ａが送信するＳＩＰリクエストのCSeqと、端末Ｂが送信するＳＩＰリクエストのCSeqとは、独立して異なる値となる。即ち、各端末は、自ら送信するＳＩＰリクエストCSeqと、相手方端末から受信したCSeqとを保持する。
【０００７】
端末は、セッションを開始する場合、CSeqを適当な初期値xから始める。図１によれば、端末Ａは、CSeq:xのＳＩＰリクエストをＳＩＰサーバ１へ送信する。ＳＩＰサーバ１は、CSeq:xを保持し、そのＳＩＰリクエストを端末Ｂへ転送する。これに対し、端末Ｂも、CSeq:xを保持し、CSeq:xのＳＩＰレスポンスを、ＳＩＰサーバ１へ返信する。ＳＩＰサーバ１は、そのＳＩＰレスポンスを端末Ａへ転送する。これによって、端末Ａは、ＳＩＰリクエストが正常に端末Ｂへ転送されたことを認識する。次に、端末Ａが、ＳＩＰリクエストを送信する場合、CSeqが１増分されたCSeq:x+1のＳＩＰリクエストをＳＩＰサーバ１へ送信する。尚、端末及びＳＩＰサーバは、先に記憶されたCSeq以下のリクエストは処理しない。
【０００８】
【特許文献１】特開２００８−１６６９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、複数のＳＩＰサーバ（ＳＩＰプロキシサーバを含む）の間で、「ネットワーク主導の制御」がＳＩＰメッセージとして交換される場合がある。ここで、「ネットワーク主導の制御」とは、例えば、ＳＩＰサーバ間での認証シーケンスのようなシーケンスである。
【００１０】
ＳＩＰサーバが、ネットワーク主導の制御として、新しいＳＩＰリクエストを作成する場合、CSeqを１増分させる必要がある。しかし、ＳＩＰサーバが送信するCSeqと、端末に記憶されたCSeqとが、不整合を生じることとなる。端末としては、新しいCSeqのメッセージの後に到着した、古いCSeqのメッセージを処理しないこととなり、最悪の場合、シーケンスが中断することとなる。結局、ネットワーク主導の制御を要する場合、ＳＩＰサーバは、一度、端末へその旨を通知した上で、端末が、CSeqを増分して、再度、シーケンスを開始しなければならない。しかし、このように、CSeqの増分、即ち、リクエストメッセージの送信元を端末に限定することは、無駄なシーケンスを発生させることとなり、パフォーマンスを低下させることとなる。また、ネットワーク内で閉じたシーケンスを実行することもできない。
【００１１】
そこで、本発明によれば、端末間に介在するＳＩＰサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のＳＩＰシグナリングの制御を可能にするコマンドシーケンス番号の制御方法、サーバ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によれば、ＳＩＰサーバにおけるコマンドシーケンス番号の制御方法において、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する第１のステップと、
受信したＳＩＰリクエストのコマンドシーケンス番号に増分値を増分し、該ＳＩＰリクエストを転送する第２のステップと、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分し、該ＳＩＰレスポンスを転送する第３のステップと
を有することを特徴とする。
【００１３】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、コマンドシーケンス番号は、ＳＩＰシグナリングにおけるCSeqであることも好ましい。
【００１４】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
第２のステップについて、ＳＩＰリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該ＳＩＰサーバ自らのViaヘッダに増分値を記述し、
第３のステップについて、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分すると共に、ＳＩＰレスポンスに増分値を含む差分ヘッダを記述することも好ましい。
【００１５】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されていない場合、該ＳＩＰリクエストを転送し、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、ＳＩＰレスポンスを転送することも好ましい。
【００１６】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、ＳＩＰリクエストを転送し、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスを転送することも好ましい。
【００１７】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
ＳＩＰリクエストを受信し、該ＳＩＰリクエストに差分ヘッダが記述されていない場合、該ＳＩＰリクエストのコマンドシーケンス番号に増分値を増分すると共に、増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに増分値を記述したＳＩＰリクエストを転送し、
ＳＩＰレスポンスを受信し、該ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、該ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分すると共に、増分値を含む差分ヘッダを記述したＳＩＰレスポンスを転送することも好ましい。
【００１８】
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
ＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値よりも小さい場合、ＳＩＰリクエストのコマンドシーケンス番号に第１の増分値と第２の増分値の差分値を増分すると共に、第１の増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値を記述したＳＩＰリクエストを転送し、
若しくは、第２の増分値が第１の増分値以上である場合、第２の増分値を第１の増分値として記憶し、ＳＩＰリクエストを転送し、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値が記述されている場合に、ＳＩＰレスポンスのコマンドシーケンス番号から第１の増分値と第２の増分値の差分値を減分すると共に、第１の増分値を含む差分ヘッダを記述したＳＩＰレスポンスを転送する
ことも好ましい。
【００１９】
本発明によれば、コマンドシーケンス番号を制御するＳＩＰサーバにおいて、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
ＳＩＰリクエストを受信するリクエスト受信手段と、
ＳＩＰリクエストのコマンドシーケンス番号に増分値を増分するコマンドシーケンス番号増分手段と、
ＳＩＰリクエストを転送するリクエスト転送手段と、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信するレスポンス受信手段と、
ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分するコマンドシーケンス番号減分手段と、
ＳＩＰレスポンスを転送するレスポンス転送手段と
を有することを特徴とする。
【００２０】
本発明のＳＩＰサーバにおける他の実施形態によれば、コマンドシーケンス番号は、ＳＩＰシグナリングにおけるCSeqであることも好ましい。
【００２１】
本発明のＳＩＰサーバにおける他の実施形態によれば、
リクエスト転送手段は、ＳＩＰリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該ＳＩＰサーバ自らのViaヘッダに増分値を記述し、
レスポンス受信手段は、ＳＩＰレスポンスを受信し、
コマンドシーケンス番号減分手段は、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分し、
レスポンス転送手段は、ＳＩＰレスポンスに増分値を含む差分ヘッダを記述する
ことも好ましい。
【００２２】
本発明のＳＩＰサーバにおける他の実施形態によれば、
リクエスト転送手段が、該ＳＩＰリクエストを転送した後、
増分値学習手段は、レスポンス受信手段がＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、該ＳＩＰレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することも好ましい。
【００２３】
本発明のＳＩＰサーバにおける他の実施形態によれば、増分値学習手段は、リクエスト受信手段がＳＩＰリクエストを受信した際に、該ＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することも好ましい。
【００２４】
本発明のＳＩＰサーバにおける他の実施形態によれば、
リクエスト受信手段は、ＳＩＰリクエストを受信し、
リクエスト転送手段は、増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに増分値を記述したＳＩＰリクエストを転送し、
レスポンス受信手段は、ＳＩＰリクエストに対応するＳＩＰレスポンスを受信し、
コマンドシーケンス番号減分手段は、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されている場合に、該ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分し、
レスポンス転送手段は、増分値を含む差分ヘッダを記述したＳＩＰレスポンスを転送することも好ましい。
【００２５】
本発明のＳＩＰサーバにおける他の実施形態によれば、
コマンドシーケンス番号増分手段は、受信したＳＩＰリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値よりも小さい場合、ＳＩＰリクエストのコマンドシーケンス番号に第１の増分値と第２の増分値の差分値を増分し、
リクエスト転送手段は、第１の増分値を含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値を記述したＳＩＰリクエストを転送するか、
若しくは、
リクエスト受信手段は、第２の増分値が第１の増分値以上である場合、第２の増分値を第１の増分値として増分値学習手段へ記憶し、
リクエスト転送手段は、ＳＩＰリクエストを転送し、
更に、
レスポンス受信手段は、ＳＩＰリクエストに対応するＳＩＰレスポンスを受信し、
コマンドシーケンス番号減分手段は、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値が記述されている場合に、ＳＩＰレスポンスのコマンドシーケンス番号から第１の増分値と第２の増分値の差分値を減分し、
レスポンス転送手段は、第１の増分値を含む差分ヘッダを記述したＳＩＰレスポンスを転送することも好ましい。
【００２６】
本発明によれば、コマンドシーケンス番号を制御するＳＩＰサーバに搭載されたコンピュータを機能させるプログラムにおいて、
ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
ＳＩＰリクエストを受信するリクエスト受信手段と、
ＳＩＰリクエストのコマンドシーケンス番号に増分値を増分するコマンドシーケンス番号増分手段と、
ＳＩＰリクエストを転送するリクエスト転送手段と、
ＳＩＰリクエストに対応するＳＩＰレスポンスを受信するレスポンス受信手段と、
ＳＩＰレスポンスのコマンドシーケンス番号から増分値を減分するコマンドシーケンス番号減分手段と、
ＳＩＰレスポンスを転送するレスポンス転送手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【００２７】
本発明のＳＩＰシグナリングをネットワーク主導で制御する方法、サーバ及びプログラムによれば、端末間に介在するＳＩＰサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のＳＩＰシグナリングの制御を可能にする。
【発明を実施するための最良の形態】
【００２８】
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
【００２９】
図２は、本発明における基本シーケンス図である。
【００３０】
（Ｓ２０１）端末Ａは、CSeq:xを保持している。図１と同様に、端末Ａは、ＳＩＰリクエスト(SIP Request(CSeq:x))を、ＳＩＰサーバ１を介して端末Ｂへ送信する。これによって、ＳＩＰサーバ１及び端末Ｂは、CSeq:xを保持する。そして、端末Ｂは、ＳＩＰレスポンス(SIP Response(CSeq:x))を、ＳＩＰサーバ１へ返信する。
【００３１】
（Ｓ２０２）このとき、ＳＩＰサーバ１が、ネットワーク主導の制御として、１つ以上のリクエストを生成し且つ送信するとする。ＳＩＰサーバ１は、新しいＳＩＰリクエスト毎に、CSeqを１増分する必要がある。ここで、ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する。ＳＩＰサーバ１は、yだけ、CSeqを増分させたとする。
【００３２】
ＳＩＰサーバ１は、ネットワーク主導で増分した増分値yだけ、CSeq:xを増分する。そして、ＳＩＰサーバ１は、以下の情報を含むＳＩＰリクエストを、端末Ｂへ送信する。
SIP Request (CSeq:x+y)
CSeqDiff:y
Via:...;CSeqDiff=y
【００３３】
「CSeq:x+y」は、増分された結果値であり、例えばx=100及びy=10である場合、CSeq:x+yは、CSeq:110と記述される。「CSeqDiff:y」は、CSeqの差分ヘッダを表し、増分値が記述される。当該ＳＩＰサーバのViaヘッダにも増分値を表す「CSeqDiff=y」が記述される。
【００３４】
ＳＩＰサーバはそれぞれ、通過するＳＩＰメッセージのViaヘッダに、自らのVia情報を追加していく。例えば、CSeqを増加したＳＩＰサーバ(pc2.kddi.com)は、以下のようにViaヘッダに記述を追加する。
Via: SIP/2.0/UDP pc.kddi.com;branch=z9hG4bK776TEST,
SIP/2.0/UDP pc1.kddi.com;branch=z9hG4bK776TEST2,
SIP/2.0/UDP pc2.kddi.com;branch=z9hG4bK776TEST3;CSeqDiff=y,
...
Viaヘッダは、ＳＩＰリクエストに対応するＳＩＰレスポンスに記述された状態で、返信される。従って、当該ＳＩＰサーバ自らのViaヘッダに、自ら記述したCSeqDiffの存在を確認することができる。
【００３５】
尚、Viaヘッダにおける当該ＳＩＰサーバ自らの情報は、ＳＩＰリクエストを転送する際に付加され、返信されたそのＳＩＰレスポンスを転送する際に除去される。従って、当該ＳＩＰサーバから先に転送されたＳＩＰサーバのViaヘッダを読むことはできない。そのために、本発明によれば、CSeqの差分ヘッダCSeqDiffを用いている。
【００３６】
（Ｓ２０３）ＳＩＰリクエストを受信した端末Ｂは、CSeq:x+yを保持する。そして、端末Ｂは、ＳＩＰサーバ１へ、以下の情報を含むＳＩＰレスポンス(SIP
Response)を返信する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
このとき、Viaヘッダは、ＳＩＰサーバ１から受信したＳＩＰリクエストのままである。
【００３７】
（Ｓ２０４）ＳＩＰサーバ１は、受信したＳＩＰレスポンスのViaヘッダを判定する。ここで、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されているかどうかを判定する。記述されている場合、そのCSeq(x+y)から、ネットワーク主導の制御によって増分した増分値yを減分する。そして、ＳＩＰサーバ１は、以下の情報を含むＳＩＰレスポンスを端末Ａへ返信する。
SIP Response (CSeq:x)
CSeqDiff:y
ここで、ＳＩＰレスポンスには、CSeqの差分ヘッダに増分値「CSeqDiff:y」が記述される。
【００３８】
（Ｓ２０５）端末Ａは、ＳＩＰレスポンスを受信する。このとき、端末Ａは、先に送信したＳＩＰリクエスト（Ｓ２０１）のCSeq:xと、ＳＩＰレスポンスで受信したCSeqとが同値であることを確認する。
【００３９】
次に、端末Ａが、引き続き同じセッションでＳＩＰリクエストを送信する場合について説明する。
【００４０】
（Ｓ２１１）端末Ａは、同じセッションで、以下の情報を含むＳＩＰリクエストを、ＳＩＰサーバ１へ送信する。
SIP Request (CSeq:x+z)
このとき、CSeqはx+zであるとする。
【００４１】
（Ｓ２１２）ＳＩＰサーバ１は、先にネットワーク主導で増分した増分値yだけ、CSeq:x+zを増分する。そして、ＳＩＰサーバ１は、以下の情報を含むＳＩＰリクエストを、端末Ｂへ送信する。
SIP Request (CSeq:x+y+z)
CSeqDiff:y
Via:...;CSeqDiff=y
ＳＩＰリクエストには、CSeqの差分ヘッダの「CSeqDiff:y」が記述され、当該ＳＩＰサーバのViaヘッダにも増分値を表す「CSeqDiff=y」が記述される。
【００４２】
（Ｓ２１３）ＳＩＰリクエストを受信した端末Ｂは、CSeq:x+y+zを保持する。そして、端末Ｂは、ＳＩＰサーバ１へ、以下の情報を含むＳＩＰレスポンスを返信する。
SIP Rsponse (CSeq:x+y+z)
Via:...;CSeqDiff=y
このとき、Viaヘッダは、ＳＩＰサーバ１から受信したＳＩＰリクエストのままである。
【００４３】
（Ｓ２１４）ＳＩＰサーバ１は、受信したＳＩＰレスポンスのViaヘッダを判定する。ここで、ＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値が記述されているかどうかを判定する。記述されている場合、そのCSeq(x+y+z)から、ネットワーク主導の制御によって増分した増分値yを減分する。そして、ＳＩＰサーバ１は、以下の情報を含むＳＩＰレスポンスを端末Ａへ返信する。
SIP Response (CSeq:x+z)
CSeqDiff:y
ここで、ＳＩＰレスポンスには、CSeqの差分ヘッダに増分値「CSeqDiff:y」が記述される。
【００４４】
（Ｓ２１５）端末Ａは、ＳＩＰレスポンスを受信する。このとき、端末Ａは、先に送信したＳＩＰリクエスト（Ｓ２１１）のCSeq:x+zと、ＳＩＰレスポンスで受信したCSeqとが同値であることを確認する。
【００４５】
図３は、増分値を学習するシーケンス図である。
【００４６】
前述した図２は、ＳＩＰサーバ自ら増分したCSeqを学習するものである。これに対し、以下で説明する図３は、ＳＩＰレスポンスで増分を学習するＳＩＰサーバａと、ＳＩＰリクエストで増分を学習するＳＩＰサーバｃとが表されている。即ち、複数のＳＩＰサーバによってネットワーク全体として、CSeqが学習され且つ代理調整される。
【００４７】
Ｓ３０１〜Ｓ３０４は、増分値を学習する第１のシーケンスである。
（Ｓ３０１）ＳＩＰサーバａは、CSeq:xを保持する端末Ａから、ＳＩＰリクエスト(SIP
Request(CSeq:x))を受信したとする。ここで、ＳＩＰリクエストには、差分ヘッダが記述されていない。
（Ｓ３０２）ＳＩＰサーバａは、そのＳＩＰリクエストを転送する。
【００４８】
（Ｓ３０３）ＳＩＰサーバａは、以下の情報を含むＳＩＰレスポンスを受信したとする。
SIP Response (CSeq:x)
CSeqDiff:y
このとき、ＳＩＰサーバａは、受信したＳＩＰレスポンスに差分ヘッダが記述されているか否かを判定する。ここで、差分ヘッダCSeqDiff=yが記述されているので、その増分値yを記憶する。
（Ｓ３０４）ＳＩＰサーバａは、そのＳＩＰレスポンスを、そのまま端末Ａへ転送する。
SIP Response (CSeq:x)
CSeqDiff=y
【００４９】
Ｓ３１１〜Ｓ３１４は、増分値を学習する第２のシーケンスである。
（Ｓ３１１）ＳＩＰサーバｃが、以下の情報を含むＳＩＰリクエストを受信したとする。
SIP Request (CSeq:x+y)
CSeqDiff:y
Via:...;CSeqDiff=y
このとき、受信したＳＩＰリクエストには、増分値yを含む差分ヘッダ(CSeqDiff:100)が記述されている。
（Ｓ３１２）ＳＩＰサーバｃは、その増分値yを記憶する。そして、ＳＩＰサーバｃは、以下の情報を含むＳＩＰリクエストを転送する。
SIP Request (CSeq:x+y)
CSeqDiff:y
Via:...;CSeqDiff=y
【００５０】
（Ｓ３１３）これに対し、ＳＩＰサーバｃが、以下の情報を含むＳＩＰレスポンスを受信する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
【００５１】
（Ｓ３１４）ＳＩＰサーバｃは、以下の情報を含むＳＩＰレスポンスを転送する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
【００５２】
図４は、増分値を増分又は減分するシーケンス図である。
【００５３】
Ｓ４０１〜Ｓ４０４は、増分値を増分又は減分する第１のシーケンス図である。
（Ｓ４０１）ＳＩＰサーバａが、図３と同じセッションの下、以下の情報を含むＳＩＰリクエストを、端末Ａから受信したとする。
SIP Request (CSeq:x+z)
尚、ＳＩＰサーバaは、増分値yを保持している。
【００５４】
（Ｓ４０２）ＳＩＰサーバａは、受信したＳＩＰリクエストについて、CSeqDiffヘッダが付加されていないことを確認する。CSeqDiffヘッダが付加されていないということは、CSeqに、先に学習した増分値yが増分されていないと判断される。そこで、ＳＩＰサーバａは、増分値yだけ、CSeq:x+zを増分する。そして、ＳＩＰサーバは、以下の情報を含むＳＩＰリクエストを、ＳＩＰサーバｃへ送信する。
SIP Request (CSeq:x+y+z)
CSeqDiff:y
Via:...;CSeqDiff=y
ＳＩＰリクエストには、増分値yを含む差分ヘッダが記述され、当該ＳＩＰサーバ自らのViaヘッダに増分値yが記述される。
【００５５】
（Ｓ４０３）ＳＩＰサーバｃは、以下の情報を含むＳＩＰレスポンスを受信したとする。
SIP Response (CSeq:x+y+z)
Via:...;CSeqDiff=y
【００５６】
（Ｓ４０４）ＳＩＰサーバａは、受信したＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値yが記述されているか否かを判定する。記述されている場合、そのCSeq(x+y+z)から、増分値yを減分する。そして、ＳＩＰサーバａは、以下の情報を含むＳＩＰレスポンスを転送する。
SIP Response (CSeq:x+z)
CSeqDiff=y
ここで、ＳＩＰレスポンスには、増分値yを含む差分ヘッダが記述される。
【００５７】
Ｓ４１１〜Ｓ４１４は、増分値を増分又は減分する第２のシーケンス図である。
【００５８】
（Ｓ４１１）ＳＩＰサーバｃが、以下の情報を含むＳＩＰリクエストを受信したとする。
SIP Request (CSeq:x)
CSeqDiff:z
尚、ＳＩＰサーバaは、第１の増分値yを保持している。
【００５９】
（Ｓ４１２）このとき、ＳＩＰサーバｃは、ＳＩＰリクエストの差分ヘッダに含まれる第２の増分値zが、記憶された第１の増分値yよりも小さいので、以下の情報を含むＳＩＰリクエストを転送する。
SIP Request (CSeq:x+(y-z))
CSeqDiff:y
Via:...;CSeqDiff=y-z
CSeqには、第１の増分値と第２の増分値の差分値(y-z)を増分する。ＳＩＰリクエストには、第１の増分値yを含む差分ヘッダを記述し、当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値(y-z)を記述する。そして、そのＳＩＰリクエストは、転送される。
【００６０】
（Ｓ４１３）これに対し、ＳＩＰサーバｃが、以下の情報を含むＳＩＰレスポンスを受信する。
SIP Response (CSeq:x+(y-z))
Via:...;CSeqDiff=y-z
【００６１】
（Ｓ４１４）ＳＩＰサーバｃは、受信したＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに第１の増分値と第２の増分値の差分値(y-z)が記述されているか否かを判定する。記述されている場合、CSeq:x+(y-z)から第１の増分値と第２の増分値の差分値(y-z)を減分する。また、ＳＩＰレスポンスには、第１の増分値yを含む差分ヘッダを記述する。そして、そのＳＩＰレスポンスは、転送される。
【００６２】
図５は、本発明におけるＳＩＰサーバの機能構成図である。
【００６３】
図５によれば、ＳＩＰサーバ１は、ＳＩＰサーバ機能部１０と、ＴＣＰ／ＵＤＰ−ＩＰレイヤ部１３と、通信インタフェース部１４とを有する。ＳＩＰサーバ機能部１０は、リクエスト受信部１１１と、コマンドシーケンス番号増分部１１２と、リクエスト転送部１１３と、増分値学習部１００と、レスポンス受信部１２１と、コマンドシーケンス番号減分部１２２と、レスポンス転送部１２３とを有する。通信インタフェース部１４を除いて、これら機能構成部は、サーバに搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００６４】
リクエスト受信部１１１は、ＳＩＰリクエストを受信する。ＳＩＰリクエストに含まれるコマンドシーケンス番号は、コマンドシーケンス番号増分部１１２へ出力される。ここで、ＳＩＰリクエストに、第２の増分値を含む差分ヘッダが記述されており、第２の増分値が、既に記憶している第１の増分値以上である場合、第２の増分値を第１の増分値として増分値学習部１００へ記憶させる。
【００６５】
コマンドシーケンス番号増分部１１２は、受信したＳＩＰリクエストのコマンドシーケンス番号に、増分値学習部１００に記憶された第１の増分値を増分する。ここで、コマンドシーケンス番号増分部１１２は、ＳＩＰリクエストに差分ヘッダが含まれており、その差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値よりも小さい場合、コマンドシーケンス番号に第１の増分値と第２の増分値の差分値を増分する。一方、ＳＩＰリクエストに差分ヘッダが含まれているが、その差分ヘッダに含まれる第２の増分値が、記憶された第１の増分値以上である場合、その第２の増分値を増分値学習部１００に記憶させる。
【００６６】
リクエスト転送部１１３は、増分値を記憶している場合、転送するＳＩＰリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該ＳＩＰサーバ自らのViaヘッダに増分値／第１の増分値と第２の増分値の差分値を記述する。
【００６７】
レスポンス受信部１２１は、ＳＩＰリクエストに対応するＳＩＰレスポンスを受信する。
【００６８】
コマンドシーケンス番号減分部１２２は、受信したＳＩＰレスポンスにおける当該ＳＩＰサーバ自らのViaヘッダに増分値／第１の増分値と第２の増分値の差分値が記述されている場合に、ＳＩＰレスポンスのコマンドシーケンス番号から増分値／第１の増分値と第２の増分値の差分値を減分する。
【００６９】
レスポンス転送部１２３は、ＳＩＰレスポンスに、増分値を含む差分ヘッダを記述する。
【００７０】
増分値学習部１００は、ネットワーク主導の制御として生成したＳＩＰリクエストの数に応じて、当該ＳＩＰサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する。また、そのＳＩＰリクエストに対応するＳＩＰレスポンスを受信した際に、そのＳＩＰレスポンスに差分ヘッダが記述されている場合、その差分ヘッダに含まれる増分値を記憶する。また、差分ヘッダが記述されているＳＩＰリクエストを受信した場合、その差分ヘッダに含まれる増分値を記憶する。
【００７１】
前述の実施形態の中では、ＳＩＰサーバ機能はサーバが備えるものとして説明したが、勿論、端末が備えるものであってもよい。その場合、端末が最初に送信するＳＩＰリクエストには、CSeqDiffヘッダが含まれる。
【００７２】
以上、詳細に説明したように、本発明のコマンドシーケンス番号の制御方法、サーバ及びプログラムによれば、端末間に介在するＳＩＰサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のＳＩＰシグナリングの制御を可能にする。本発明によれば、ネットワーク主導の制御によってコマンドシーケンス番号が増分された場合であっても、ＳＩＰサーバが端末間に生じるコマンドシーケンス番号の不整合を調整することができる。
【００７３】
（１）認証シーケンスのように、ネットワーク主導の制御によって、新たにＳＩＰリクエストが生成された場合であっても、端末に影響を与えない。
（２）コマンドシーケンス番号の調整だけのために、端末までシーケンスを戻す必要がなく、シーケンスの簡略化（高速化）が可能となる。
（３）本発明の対応ＳＩＰサーバと非対応ＳＩＰサーバとが、ネットワークに混在している場合であっても動作可能となる。
（４）コマンドシーケンス番号を増分したＳＩＰサーバが除外された場合であっても、ネットワーク全体として、コマンドシーケンス番号の整合性が維持される。
【００７４】
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【図面の簡単な説明】
【００７５】
【図１】従来技術におけるシーケンス図である。
【図２】本発明における基本シーケンス図である。
【図３】増分値を学習するシーケンス図である。
【図４】増分値を増分又は減分するシーケンス図である。
【図５】本発明におけるＳＩＰサーバの機能構成図である。
【符号の説明】
【００７６】
１  ＳＩＰサーバ
１０  ＳＩＰサーバ機能部
１００  増分値学習部
１１１  リクエスト受信部
１１２  コマンドシーケンス番号増分部
１１３  リクエスト転送部
１２１  レスポンス受信部
１２２  コマンドシーケンス番号減分部
１２３  レスポンス転送部
１３  ＴＣＰ／ＵＤＰ−ＩＰレイヤ部
１４  通信インタフェース部
２  端末、ＳＩＰクライアント
【図１】
2010062692.tif 000003
【図２】
2010062692.tif 000004
【図３】
2010062692.tif 000005
【図４】
2010062692.tif 000006
【図５】
2010062692.tif 000007