JP5102153B2 - Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム - Google Patents

Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム Download PDF

Info

Publication number
JP5102153B2
JP5102153B2 JP2008224252A JP2008224252A JP5102153B2 JP 5102153 B2 JP5102153 B2 JP 5102153B2 JP 2008224252 A JP2008224252 A JP 2008224252A JP 2008224252 A JP2008224252 A JP 2008224252A JP 5102153 B2 JP5102153 B2 JP 5102153B2
Authority
JP
Japan
Prior art keywords
sip
increment value
request
response
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008224252A
Other languages
English (en)
Other versions
JP2010062692A (ja
Inventor
賢史 小森田
英俊 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2008224252A priority Critical patent/JP5102153B2/ja
Publication of JP2010062692A publication Critical patent/JP2010062692A/ja
Application granted granted Critical
Publication of JP5102153B2 publication Critical patent/JP5102153B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、SIP(Session Initiation Protocol)シグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラムに関する。特に、SIPサーバにおけるネットワーク主導のSIPシグナリングを可能とする技術に関する。
近年、多様なネットワークサービスについて、オールIP(Internet Protocol)化が進められている。特に、音声通話については、VoIP(Voice over IP)が普及している。この技術によれば、IP上でのセッション制御(呼制御)が必要であって、発呼、着呼及びメディア種別など、サービスを開始するために必要な情報をやり取りする。これを実現するプロトコルとして、SIPが採用されている。
SIPは、基本的にはPeer-to-Peer型であり、両方の端末間で直接的に通信する。しかし、実際には、課金又は相手のアドレス解決などを処理するSIPサーバを介することが多い。SIPサーバは、クライアント(User Agent Client)から受信したリクエストに応じて、サービスを提供する。SIPサーバの中でも、SIPプロキシサーバは、クライアントから受信したSIPリクエストを、次のサーバに中継する機能を有する。
SIPリクエストには、CSeq(Command Sequence)ヘッダが付与される。CSeqヘッダは、コマンドシーケンス番号とメソッドとを記述することができる。コマンドシーケンス番号は、32ビットの符号なし整数(231未満)の値であり、新規リクエスト毎に1増分される。これによって、メッセージの再送を判断することができる。即ち、同一ダイアログ(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
図1は、従来技術におけるシーケンス図である。
SIPは、Peer-to-Peerの通信であるために、リクエストの順序を管理するCSeqは、端末(SIP−UA(User Agent))毎に管理されている。従って、端末Aが送信するSIPリクエストのCSeqと、端末Bが送信するSIPリクエストのCSeqとは、独立して異なる値となる。即ち、各端末は、自ら送信するSIPリクエストCSeqと、相手方端末から受信したCSeqとを保持する。
端末は、セッションを開始する場合、CSeqを適当な初期値xから始める。図1によれば、端末Aは、CSeq:xのSIPリクエストをSIPサーバ1へ送信する。SIPサーバ1は、CSeq:xを保持し、そのSIPリクエストを端末Bへ転送する。これに対し、端末Bも、CSeq:xを保持し、CSeq:xのSIPレスポンスを、SIPサーバ1へ返信する。SIPサーバ1は、そのSIPレスポンスを端末Aへ転送する。これによって、端末Aは、SIPリクエストが正常に端末Bへ転送されたことを認識する。次に、端末Aが、SIPリクエストを送信する場合、CSeqが1増分されたCSeq:x+1のSIPリクエストをSIPサーバ1へ送信する。尚、端末及びSIPサーバは、先に記憶されたCSeq以下のリクエストは処理しない。
特開2008−166929号公報
しかしながら、複数のSIPサーバ(SIPプロキシサーバを含む)の間で、「ネットワーク主導の制御」がSIPメッセージとして交換される場合がある。ここで、「ネットワーク主導の制御」とは、例えば、SIPサーバ間での認証シーケンスのようなシーケンスである。
SIPサーバが、ネットワーク主導の制御として、新しいSIPリクエストを作成する場合、CSeqを1増分させる必要がある。しかし、SIPサーバが送信するCSeqと、端末に記憶されたCSeqとが、不整合を生じることとなる。端末としては、新しいCSeqのメッセージの後に到着した、古いCSeqのメッセージを処理しないこととなり、最悪の場合、シーケンスが中断することとなる。結局、ネットワーク主導の制御を要する場合、SIPサーバは、一度、端末へその旨を通知した上で、端末が、CSeqを増分して、再度、シーケンスを開始しなければならない。しかし、このように、CSeqの増分、即ち、リクエストメッセージの送信元を端末に限定することは、無駄なシーケンスを発生させることとなり、パフォーマンスを低下させることとなる。また、ネットワーク内で閉じたシーケンスを実行することもできない。
そこで、本発明によれば、端末間に介在するSIPサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のSIPシグナリングの制御を可能にするコマンドシーケンス番号の制御方法、サーバ及びプログラムを提供することを目的とする。
本発明によれば、SIPサーバにおけるコマンドシーケンス番号(CSeq)の制御方法において、
ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する第1のステップと、
受信したSIPリクエストについて、コマンドシーケンス番号に増分値を増分し、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに増分値を記述し、当該SIPリクエストを転送する第2のステップと、
SIPリクエストに対応して受信したSIPレスポンスについて、当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、当該SIPレスポンスのコマンドシーケンス番号から増分値を減分すると共に、当該SIPレスポンスに増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送する第3のステップと
を有することを特徴とする。
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されていない場合、該SIPリクエストを転送し、
SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、SIPレスポンスを転送することも好ましい。
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、SIPリクエストを転送し、
SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスを転送することも好ましい。
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
SIPリクエストを受信し、該SIPリクエストに差分ヘッダが記述されていない場合、該SIPリクエストのコマンドシーケンス番号に増分値を増分すると共に、増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに増分値を記述したSIPリクエストを転送し、
SIPレスポンスを受信し、該SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、該SIPレスポンスのコマンドシーケンス番号から増分値を減分すると共に、増分値を含む差分ヘッダを記述したSIPレスポンスを転送することも好ましい。
本発明のコマンドシーケンス番号の制御方法における他の実施形態によれば、
SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値よりも小さい場合、SIPリクエストのコマンドシーケンス番号に第1の増分値と第2の増分値の差分値を増分すると共に、第1の増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値を記述したSIPリクエストを転送し、
若しくは、第2の増分値が第1の増分値以上である場合、第2の増分値を第1の増分値として記憶し、SIPリクエストを転送し、
SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値が記述されている場合に、SIPレスポンスのコマンドシーケンス番号から第1の増分値と第2の増分値の差分値を減分すると共に、第1の増分値を含む差分ヘッダを記述したSIPレスポンスを転送する
ことも好ましい。
本発明によれば、コマンドシーケンス番号(CSeq)を制御するSIPサーバにおいて、
ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
SIPリクエストを受信するリクエスト受信手段と、
SIPリクエストのコマンドシーケンス番号に増分値を増分するコマンドシーケンス番号増分手段と、
SIPリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに増分値を記述し、当該SIPリクエストを転送するリクエスト転送手段と、
SIPリクエストに対応するSIPレスポンスを受信するレスポンス受信手段と、
SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、SIPレスポンスのコマンドシーケンス番号から増分値を減分するコマンドシーケンス番号減分手段と、
SIPレスポンスに増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送するレスポンス転送手段と
を有することを特徴とする。
本発明のSIPサーバにおける他の実施形態によれば、
リクエスト転送手段が、該SIPリクエストを転送した後、
増分値学習手段は、レスポンス受信手段がSIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することも好ましい。
本発明のSIPサーバにおける他の実施形態によれば、増分値学習手段は、リクエスト受信手段がSIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することも好ましい。
本発明のSIPサーバにおける他の実施形態によれば、
リクエスト受信手段は、SIPリクエストを受信し、
リクエスト転送手段は、増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに増分値を記述したSIPリクエストを転送し、
レスポンス受信手段は、SIPリクエストに対応するSIPレスポンスを受信し、
コマンドシーケンス番号減分手段は、SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、該SIPレスポンスのコマンドシーケンス番号から増分値を減分し、
レスポンス転送手段は、増分値を含む差分ヘッダを記述したSIPレスポンスを転送することも好ましい。
本発明のSIPサーバにおける他の実施形態によれば、
コマンドシーケンス番号増分手段は、受信したSIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値よりも小さい場合、SIPリクエストのコマンドシーケンス番号に第1の増分値と第2の増分値の差分値を増分し、
リクエスト転送手段は、第1の増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値を記述したSIPリクエストを転送するか、
若しくは、
リクエスト受信手段は、第2の増分値が第1の増分値以上である場合、第2の増分値を第1の増分値として増分値学習手段へ記憶し、
リクエスト転送手段は、SIPリクエストを転送し、
更に、
レスポンス受信手段は、SIPリクエストに対応するSIPレスポンスを受信し、
コマンドシーケンス番号減分手段は、SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値が記述されている場合に、SIPレスポンスのコマンドシーケンス番号から第1の増分値と第2の増分値の差分値を減分し、
レスポンス転送手段は、第1の増分値を含む差分ヘッダを記述したSIPレスポンスを転送することも好ましい。
本発明によれば、コマンドシーケンス番号(CSeq)を制御するSIPサーバに搭載されたコンピュータを機能させるプログラムにおいて、
ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
SIPリクエストを受信するリクエスト受信手段と、
SIPリクエストのコマンドシーケンス番号に増分値を増分するコマンドシーケンス番号増分手段と、
SIPリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに増分値を記述し、当該SIPリクエストを転送するリクエスト転送手段と、
SIPリクエストに対応するSIPレスポンスを受信するレスポンス受信手段と、
SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、SIPレスポンスのコマンドシーケンス番号から増分値を減分するコマンドシーケンス番号減分手段と、
SIPレスポンスに増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送するレスポンス転送手段と
してコンピュータを機能させることを特徴とする。
本発明のSIPシグナリングをネットワーク主導で制御する方法、サーバ及びプログラムによれば、端末間に介在するSIPサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のSIPシグナリングの制御を可能にする。
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
図2は、本発明における基本シーケンス図である。
(S201)端末Aは、CSeq:xを保持している。図1と同様に、端末Aは、SIPリクエスト(SIP Request(CSeq:x))を、SIPサーバ1を介して端末Bへ送信する。これによって、SIPサーバ1及び端末Bは、CSeq:xを保持する。そして、端末Bは、SIPレスポンス(SIP Response(CSeq:x))を、SIPサーバ1へ返信する。
(S202)このとき、SIPサーバ1が、ネットワーク主導の制御として、1つ以上のリクエストを生成し且つ送信するとする。SIPサーバ1は、新しいSIPリクエスト毎に、CSeqを1増分する必要がある。ここで、ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する。SIPサーバ1は、yだけ、CSeqを増分させたとする。
SIPサーバ1は、ネットワーク主導で増分した増分値yだけ、CSeq:xを増分する。そして、SIPサーバ1は、以下の情報を含むSIPリクエストを、端末Bへ送信する。
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の差分ヘッダを表し、増分値が記述される。当該SIPサーバのViaヘッダにも増分値を表す「CSeqDiff=y」が記述される。
SIPサーバはそれぞれ、通過するSIPメッセージのViaヘッダに、自らのVia情報を追加していく。例えば、CSeqを増加したSIPサーバ(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ヘッダは、SIPリクエストに対応するSIPレスポンスに記述された状態で、返信される。従って、当該SIPサーバ自らのViaヘッダに、自ら記述したCSeqDiffの存在を確認することができる。
尚、Viaヘッダにおける当該SIPサーバ自らの情報は、SIPリクエストを転送する際に付加され、返信されたそのSIPレスポンスを転送する際に除去される。従って、当該SIPサーバから先に転送されたSIPサーバのViaヘッダを読むことはできない。そのために、本発明によれば、CSeqの差分ヘッダCSeqDiffを用いている。
(S203)SIPリクエストを受信した端末Bは、CSeq:x+yを保持する。そして、端末Bは、SIPサーバ1へ、以下の情報を含むSIPレスポンス(SIP
Response)を返信する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
このとき、Viaヘッダは、SIPサーバ1から受信したSIPリクエストのままである。
(S204)SIPサーバ1は、受信したSIPレスポンスのViaヘッダを判定する。ここで、SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されているかどうかを判定する。記述されている場合、そのCSeq(x+y)から、ネットワーク主導の制御によって増分した増分値yを減分する。そして、SIPサーバ1は、以下の情報を含むSIPレスポンスを端末Aへ返信する。
SIP Response (CSeq:x)
CSeqDiff:y
ここで、SIPレスポンスには、CSeqの差分ヘッダに増分値「CSeqDiff:y」が記述される。
(S205)端末Aは、SIPレスポンスを受信する。このとき、端末Aは、先に送信したSIPリクエスト(S201)のCSeq:xと、SIPレスポンスで受信したCSeqとが同値であることを確認する。
次に、端末Aが、引き続き同じセッションでSIPリクエストを送信する場合について説明する。
(S211)端末Aは、同じセッションで、以下の情報を含むSIPリクエストを、SIPサーバ1へ送信する。
SIP Request (CSeq:x+z)
このとき、CSeqはx+zであるとする。
(S212)SIPサーバ1は、先にネットワーク主導で増分した増分値yだけ、CSeq:x+zを増分する。そして、SIPサーバ1は、以下の情報を含むSIPリクエストを、端末Bへ送信する。
SIP Request (CSeq:x+y+z)
CSeqDiff:y
Via:...;CSeqDiff=y
SIPリクエストには、CSeqの差分ヘッダの「CSeqDiff:y」が記述され、当該SIPサーバのViaヘッダにも増分値を表す「CSeqDiff=y」が記述される。
(S213)SIPリクエストを受信した端末Bは、CSeq:x+y+zを保持する。そして、端末Bは、SIPサーバ1へ、以下の情報を含むSIPレスポンスを返信する。
SIP Rsponse (CSeq:x+y+z)
Via:...;CSeqDiff=y
このとき、Viaヘッダは、SIPサーバ1から受信したSIPリクエストのままである。
(S214)SIPサーバ1は、受信したSIPレスポンスのViaヘッダを判定する。ここで、SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されているかどうかを判定する。記述されている場合、そのCSeq(x+y+z)から、ネットワーク主導の制御によって増分した増分値yを減分する。そして、SIPサーバ1は、以下の情報を含むSIPレスポンスを端末Aへ返信する。
SIP Response (CSeq:x+z)
CSeqDiff:y
ここで、SIPレスポンスには、CSeqの差分ヘッダに増分値「CSeqDiff:y」が記述される。
(S215)端末Aは、SIPレスポンスを受信する。このとき、端末Aは、先に送信したSIPリクエスト(S211)のCSeq:x+zと、SIPレスポンスで受信したCSeqとが同値であることを確認する。
図3は、増分値を学習するシーケンス図である。
前述した図2は、SIPサーバ自ら増分したCSeqを学習するものである。これに対し、以下で説明する図3は、SIPレスポンスで増分を学習するSIPサーバaと、SIPリクエストで増分を学習するSIPサーバcとが表されている。即ち、複数のSIPサーバによってネットワーク全体として、CSeqが学習され且つ代理調整される。
S301〜S304は、増分値を学習する第1のシーケンスである。
(S301)SIPサーバaは、CSeq:xを保持する端末Aから、SIPリクエスト(SIP
Request(CSeq:x))を受信したとする。ここで、SIPリクエストには、差分ヘッダが記述されていない。
(S302)SIPサーバaは、そのSIPリクエストを転送する。
(S303)SIPサーバaは、以下の情報を含むSIPレスポンスを受信したとする。
SIP Response (CSeq:x)
CSeqDiff:y
このとき、SIPサーバaは、受信したSIPレスポンスに差分ヘッダが記述されているか否かを判定する。ここで、差分ヘッダCSeqDiff=yが記述されているので、その増分値yを記憶する。
(S304)SIPサーバaは、そのSIPレスポンスを、そのまま端末Aへ転送する。
SIP Response (CSeq:x)
CSeqDiff=y
S311〜S314は、増分値を学習する第2のシーケンスである。
(S311)SIPサーバcが、以下の情報を含むSIPリクエストを受信したとする。
SIP Request (CSeq:x+y)
CSeqDiff:y
Via:...;CSeqDiff=y
このとき、受信したSIPリクエストには、増分値yを含む差分ヘッダ(CSeqDiff:100)が記述されている。
(S312)SIPサーバcは、その増分値yを記憶する。そして、SIPサーバcは、以下の情報を含むSIPリクエストを転送する。
SIP Request (CSeq:x+y)
CSeqDiff:y
Via:...;CSeqDiff=y
(S313)これに対し、SIPサーバcが、以下の情報を含むSIPレスポンスを受信する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
(S314)SIPサーバcは、以下の情報を含むSIPレスポンスを転送する。
SIP Response (CSeq:x+y)
Via:...;CSeqDiff=y
図4は、増分値を増分又は減分するシーケンス図である。
S401〜S404は、増分値を増分又は減分する第1のシーケンス図である。
(S401)SIPサーバaが、図3と同じセッションの下、以下の情報を含むSIPリクエストを、端末Aから受信したとする。
SIP Request (CSeq:x+z)
尚、SIPサーバaは、増分値yを保持している。
(S402)SIPサーバaは、受信したSIPリクエストについて、CSeqDiffヘッダが付加されていないことを確認する。CSeqDiffヘッダが付加されていないということは、CSeqに、先に学習した増分値yが増分されていないと判断される。そこで、SIPサーバaは、増分値yだけ、CSeq:x+zを増分する。そして、SIPサーバは、以下の情報を含むSIPリクエストを、SIPサーバcへ送信する。
SIP Request (CSeq:x+y+z)
CSeqDiff:y
Via:...;CSeqDiff=y
SIPリクエストには、増分値yを含む差分ヘッダが記述され、当該SIPサーバ自らのViaヘッダに増分値yが記述される。
(S403)SIPサーバcは、以下の情報を含むSIPレスポンスを受信したとする。
SIP Response (CSeq:x+y+z)
Via:...;CSeqDiff=y
(S404)SIPサーバaは、受信したSIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値yが記述されているか否かを判定する。記述されている場合、そのCSeq(x+y+z)から、増分値yを減分する。そして、SIPサーバaは、以下の情報を含むSIPレスポンスを転送する。
SIP Response (CSeq:x+z)
CSeqDiff=y
ここで、SIPレスポンスには、増分値yを含む差分ヘッダが記述される。
S411〜S414は、増分値を増分又は減分する第2のシーケンス図である。
(S411)SIPサーバcが、以下の情報を含むSIPリクエストを受信したとする。
SIP Request (CSeq:x)
CSeqDiff:z
尚、SIPサーバaは、第1の増分値yを保持している。
(S412)このとき、SIPサーバcは、SIPリクエストの差分ヘッダに含まれる第2の増分値zが、記憶された第1の増分値yよりも小さいので、以下の情報を含むSIPリクエストを転送する。
SIP Request (CSeq:x+(y-z))
CSeqDiff:y
Via:...;CSeqDiff=y-z
CSeqには、第1の増分値と第2の増分値の差分値(y-z)を増分する。SIPリクエストには、第1の増分値yを含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値(y-z)を記述する。そして、そのSIPリクエストは、転送される。
(S413)これに対し、SIPサーバcが、以下の情報を含むSIPレスポンスを受信する。
SIP Response (CSeq:x+(y-z))
Via:...;CSeqDiff=y-z
(S414)SIPサーバcは、受信したSIPレスポンスにおける当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値(y-z)が記述されているか否かを判定する。記述されている場合、CSeq:x+(y-z)から第1の増分値と第2の増分値の差分値(y-z)を減分する。また、SIPレスポンスには、第1の増分値yを含む差分ヘッダを記述する。そして、そのSIPレスポンスは、転送される。
図5は、本発明におけるSIPサーバの機能構成図である。
図5によれば、SIPサーバ1は、SIPサーバ機能部10と、TCP/UDP−IPレイヤ部13と、通信インタフェース部14とを有する。SIPサーバ機能部10は、リクエスト受信部111と、コマンドシーケンス番号増分部112と、リクエスト転送部113と、増分値学習部100と、レスポンス受信部121と、コマンドシーケンス番号減分部122と、レスポンス転送部123とを有する。通信インタフェース部14を除いて、これら機能構成部は、サーバに搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
リクエスト受信部111は、SIPリクエストを受信する。SIPリクエストに含まれるコマンドシーケンス番号は、コマンドシーケンス番号増分部112へ出力される。ここで、SIPリクエストに、第2の増分値を含む差分ヘッダが記述されており、第2の増分値が、既に記憶している第1の増分値以上である場合、第2の増分値を第1の増分値として増分値学習部100へ記憶させる。
コマンドシーケンス番号増分部112は、受信したSIPリクエストのコマンドシーケンス番号に、増分値学習部100に記憶された第1の増分値を増分する。ここで、コマンドシーケンス番号増分部112は、SIPリクエストに差分ヘッダが含まれており、その差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値よりも小さい場合、コマンドシーケンス番号に第1の増分値と第2の増分値の差分値を増分する。一方、SIPリクエストに差分ヘッダが含まれているが、その差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値以上である場合、その第2の増分値を増分値学習部100に記憶させる。
リクエスト転送部113は、増分値を記憶している場合、転送するSIPリクエストに、増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに増分値/第1の増分値と第2の増分値の差分値を記述する。
レスポンス受信部121は、SIPリクエストに対応するSIPレスポンスを受信する。
コマンドシーケンス番号減分部122は、受信したSIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値/第1の増分値と第2の増分値の差分値が記述されている場合に、SIPレスポンスのコマンドシーケンス番号から増分値/第1の増分値と第2の増分値の差分値を減分する。
レスポンス転送部123は、SIPレスポンスに、増分値を含む差分ヘッダを記述する。
増分値学習部100は、ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する。また、そのSIPリクエストに対応するSIPレスポンスを受信した際に、そのSIPレスポンスに差分ヘッダが記述されている場合、その差分ヘッダに含まれる増分値を記憶する。また、差分ヘッダが記述されているSIPリクエストを受信した場合、その差分ヘッダに含まれる増分値を記憶する。
前述の実施形態の中では、SIPサーバ機能はサーバが備えるものとして説明したが、勿論、端末が備えるものであってもよい。その場合、端末が最初に送信するSIPリクエストには、CSeqDiffヘッダが含まれる。
以上、詳細に説明したように、本発明のコマンドシーケンス番号の制御方法、サーバ及びプログラムによれば、端末間に介在するSIPサーバがコマンドシーケンス番号CSeqを整合するように機能することによって、ネットワーク主導のSIPシグナリングの制御を可能にする。本発明によれば、ネットワーク主導の制御によってコマンドシーケンス番号が増分された場合であっても、SIPサーバが端末間に生じるコマンドシーケンス番号の不整合を調整することができる。
(1)認証シーケンスのように、ネットワーク主導の制御によって、新たにSIPリクエストが生成された場合であっても、端末に影響を与えない。
(2)コマンドシーケンス番号の調整だけのために、端末までシーケンスを戻す必要がなく、シーケンスの簡略化(高速化)が可能となる。
(3)本発明の対応SIPサーバと非対応SIPサーバとが、ネットワークに混在している場合であっても動作可能となる。
(4)コマンドシーケンス番号を増分したSIPサーバが除外された場合であっても、ネットワーク全体として、コマンドシーケンス番号の整合性が維持される。
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
従来技術におけるシーケンス図である。 本発明における基本シーケンス図である。 増分値を学習するシーケンス図である。 増分値を増分又は減分するシーケンス図である。 本発明におけるSIPサーバの機能構成図である。
符号の説明
1 SIPサーバ
10 SIPサーバ機能部
100 増分値学習部
111 リクエスト受信部
112 コマンドシーケンス番号増分部
113 リクエスト転送部
121 レスポンス受信部
122 コマンドシーケンス番号減分部
123 レスポンス転送部
13 TCP/UDP−IPレイヤ部
14 通信インタフェース部
2 端末、SIPクライアント

Claims (11)

  1. SIP(Session Initiation Protocol)サーバにおけるコマンドシーケンス番号(CSeq(Command Sequence))の制御方法において、
    ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する第1のステップと、
    受信したSIPリクエストについて、コマンドシーケンス番号に前記増分値を増分し、前記増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに前記増分値を記述し、当該SIPリクエストを転送する第2のステップと、
    前記SIPリクエストに対応して受信したSIPレスポンスについて、当該SIPサーバ自らのViaヘッダに前記増分値が記述されている場合に、当該SIPレスポンスのコマンドシーケンス番号から前記増分値を減分すると共に、当該SIPレスポンスに前記増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送する第3のステップと
    を有することを特徴とするコマンドシーケンス番号の制御方法。
  2. 前記SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されていない場合、該SIPリクエストを転送し、
    前記SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、前記SIPレスポンスを転送する
    ことを特徴とする請求項に記載のコマンドシーケンス番号の制御方法。
  3. 前記SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶し、前記SIPリクエストを転送し、
    前記SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスを転送する
    ことを特徴とする請求項に記載のコマンドシーケンス番号の制御方法。
  4. 前記SIPリクエストを受信し、該SIPリクエストに差分ヘッダが記述されていない場合、該SIPリクエストのコマンドシーケンス番号に前記増分値を増分すると共に、前記増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに前記増分値を記述したSIPリクエストを転送し、
    前記SIPレスポンスを受信し、該SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、該SIPレスポンスのコマンドシーケンス番号から前記増分値を減分すると共に、前記増分値を含む差分ヘッダを記述した前記SIPレスポンスを転送する
    ことを特徴とする請求項2又は3に記載のコマンドシーケンス番号の制御方法。
  5. 前記SIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値よりも小さい場合、前記SIPリクエストのコマンドシーケンス番号に第1の増分値と第2の増分値の差分値を増分すると共に、第1の増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値を記述したSIPリクエストを転送し、
    若しくは、第2の増分値が第1の増分値以上である場合、第2の増分値を第1の増分値として記憶し、前記SIPリクエストを転送し、
    前記SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値が記述されている場合に、前記SIPレスポンスのコマンドシーケンス番号から第1の増分値と第2の増分値の差分値を減分すると共に、第1の増分値を含む差分ヘッダを記述した前記SIPレスポンスを転送する
    ことを特徴とする請求項2又は3に記載のコマンドシーケンス番号の制御方法。
  6. コマンドシーケンス番号(CSeq)を制御するSIPサーバにおいて、
    ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
    SIPリクエストを受信するリクエスト受信手段と、
    前記SIPリクエストのコマンドシーケンス番号に前記増分値を増分するコマンドシーケンス番号増分手段と、
    前記SIPリクエストに、前記増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに前記増分値を記述し、当該SIPリクエストを転送するリクエスト転送手段と、
    前記SIPリクエストに対応するSIPレスポンスを受信するレスポンス受信手段と、
    前記SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに前記増分値が記述されている場合に、前記SIPレスポンスのコマンドシーケンス番号から前記増分値を減分するコマンドシーケンス番号減分手段と、
    前記SIPレスポンスに前記増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送するレスポンス転送手段と
    を有することを特徴とするSIPサーバ。
  7. 前記リクエスト転送手段が、該SIPリクエストを転送した後、
    前記増分値学習手段は、前記レスポンス受信手段が前記SIPリクエストに対応するSIPレスポンスを受信した際に、該SIPレスポンスに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶する
    ことを特徴とする請求項に記載のSIPサーバ。
  8. 前記増分値学習手段は、前記リクエスト受信手段がSIPリクエストを受信した際に、該SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる増分値を記憶することを特徴とする請求項に記載のSIPサーバ。
  9. 前記リクエスト受信手段は、SIPリクエストを受信し、
    前記リクエスト転送手段は、前記増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに前記増分値を記述したSIPリクエストを転送し、
    前記レスポンス受信手段は、前記SIPリクエストに対応するSIPレスポンスを受信し、
    前記コマンドシーケンス番号減分手段は、前記SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに増分値が記述されている場合に、該SIPレスポンスのコマンドシーケンス番号から前記増分値を減分し、
    前記レスポンス転送手段は、増分値を含む差分ヘッダを記述した前記SIPレスポンスを転送する
    ことを特徴とする請求項7又は8に記載のSIPサーバ。
  10. 前記コマンドシーケンス番号増分手段は、受信した前記SIPリクエストに差分ヘッダが記述されている場合、該差分ヘッダに含まれる第2の増分値が、記憶された第1の増分値よりも小さい場合、前記SIPリクエストのコマンドシーケンス番号に第1の増分値と第2の増分値の差分値を増分し、
    前記リクエスト転送手段は、第1の増分値を含む差分ヘッダを記述し、当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値を記述したSIPリクエストを転送するか、
    若しくは、
    前記リクエスト受信手段は、第2の増分値が第1の増分値以上である場合、第2の増分値を第1の増分値として前記増分値学習手段へ記憶し、
    前記リクエスト転送手段は、前記SIPリクエストを転送し、
    更に、
    前記レスポンス受信手段は、前記SIPリクエストに対応するSIPレスポンスを受信し、
    前記コマンドシーケンス番号減分手段は、前記SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに第1の増分値と第2の増分値の差分値が記述されている場合に、前記SIPレスポンスのコマンドシーケンス番号から第1の増分値と第2の増分値の差分値を減分し、
    前記レスポンス転送手段は、第1の増分値を含む差分ヘッダを記述した前記SIPレスポンスを転送する
    ことを特徴とする請求項7又は8に記載のSIPサーバ。
  11. コマンドシーケンス番号(CSeq)を制御するSIPサーバに搭載されたコンピュータを機能させるプログラムにおいて、
    ネットワーク主導の制御として生成したSIPリクエストの数に応じて、当該SIPサーバ自ら増分したコマンドシーケンス番号の増分値を記憶する増分値学習手段と、
    SIPリクエストを受信するリクエスト受信手段と、
    前記SIPリクエストのコマンドシーケンス番号に前記増分値を増分するコマンドシーケンス番号増分手段と、
    前記SIPリクエストに、前記増分値を含む差分ヘッダ(CSeqDiff)を記述すると共に、当該SIPサーバ自らのViaヘッダに前記増分値を記述し、当該SIPリクエストを転送するリクエスト転送手段と、
    前記SIPリクエストに対応するSIPレスポンスを受信するレスポンス受信手段と、
    前記SIPレスポンスにおける当該SIPサーバ自らのViaヘッダに前記増分値が記述されている場合に、前記SIPレスポンスのコマンドシーケンス番号から前記増分値を減分するコマンドシーケンス番号減分手段と、
    前記SIPレスポンスに前記増分値を含む差分ヘッダを記述し、当該SIPレスポンスを転送するレスポンス転送手段と
    してコンピュータを機能させることを特徴とするSIPサーバ用のプログラム。
JP2008224252A 2008-09-02 2008-09-02 Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム Expired - Fee Related JP5102153B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008224252A JP5102153B2 (ja) 2008-09-02 2008-09-02 Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008224252A JP5102153B2 (ja) 2008-09-02 2008-09-02 Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム

Publications (2)

Publication Number Publication Date
JP2010062692A JP2010062692A (ja) 2010-03-18
JP5102153B2 true JP5102153B2 (ja) 2012-12-19

Family

ID=42189045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008224252A Expired - Fee Related JP5102153B2 (ja) 2008-09-02 2008-09-02 Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム

Country Status (1)

Country Link
JP (1) JP5102153B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6185892B2 (ja) * 2014-07-29 2017-08-23 日本電信電話株式会社 Sipサーバ及びsip信号の受信順序入れ替わり防止方法
CN110572391A (zh) * 2019-09-06 2019-12-13 公牛集团股份有限公司 一种通信方法、装置、系统、可读存储介质及计算机装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050237931A1 (en) * 2004-03-19 2005-10-27 Marconi Communications, Inc. Method and apparatus for conferencing with stream selectivity

Also Published As

Publication number Publication date
JP2010062692A (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
JP5145339B2 (ja) クライアントにより制御される動的コール転送
EP1856896B1 (en) Transferring state information in a network
KR101109276B1 (ko) 세션 접속 유지
US7469299B2 (en) Bridging user agent and a proxy server for supporting network services
US7480254B2 (en) System, apparatus, and method for providing multi-application support using a single protocol stack
KR101219925B1 (ko) Sip와 같은 컴퓨터 프로토콜에 기초하여 전화 호출을다이얼로그와 연관시키는 방법
CN101599924B (zh) 通信系统
JP2006094488A (ja) 経路情報に関するストレージ要件の軽減
CN102165748A (zh) 会议服务中的文件传送
US8208411B2 (en) Telephone system, server and proxy response telephone
CN100574474C (zh) 一种通讯系统中建立通讯业务连接的方法
CA2422385A1 (en) Extensible communication controls
JP4608371B2 (ja) Sipサービス変換装置、およびその方法
EP2068524A1 (en) A method and a system for acquiring the transmission path of the sip message
US8018899B2 (en) Handoff system and method between different kinds of devices, SIP server and operational method of SIP server
US8463307B1 (en) Method of requesting a communication session using segmented signaling messages
JP5102153B2 (ja) Sipシグナリングにおけるコマンドシーケンス番号の制御方法、サーバ及びプログラム
JP4677350B2 (ja) 呼制御信号転送装置、呼制御信号転送方法および呼制御信号転送プログラム
JP4371874B2 (ja) 通話保留音出力方法及びsipサーバ
US20080137647A1 (en) VoIP terminal and method for providing multi-call service
JP2008099168A (ja) Sip端末装置におけるピアツーピア接続の接続規制方法
Herrero et al. Application layer
JP2005327101A (ja) セッション継続確認方法、および、sipプロキシサーバ
WO2008080334A1 (fr) Agent d'utilisateur dos à dos et procédé de transmission d'informations associé
Nurmela Session initiation protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120904

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120924

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5102153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees