JP5488267B2 - 情報処理装置、情報処理方法、情報処理プログラム - Google Patents

情報処理装置、情報処理方法、情報処理プログラム Download PDF

Info

Publication number
JP5488267B2
JP5488267B2 JP2010150425A JP2010150425A JP5488267B2 JP 5488267 B2 JP5488267 B2 JP 5488267B2 JP 2010150425 A JP2010150425 A JP 2010150425A JP 2010150425 A JP2010150425 A JP 2010150425A JP 5488267 B2 JP5488267 B2 JP 5488267B2
Authority
JP
Japan
Prior art keywords
header
character string
header name
signal
stored
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
JP2010150425A
Other languages
English (en)
Other versions
JP2012014451A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010150425A priority Critical patent/JP5488267B2/ja
Priority to US13/164,365 priority patent/US9325743B2/en
Publication of JP2012014451A publication Critical patent/JP2012014451A/ja
Application granted granted Critical
Publication of JP5488267B2 publication Critical patent/JP5488267B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、情報処理装置、情報処理方法、情報処理プログラムに関する。
従来、IP(Internet Protocol)ネットワーク上で端末間をSIP(Session Initiation Protocol)を利用して接続するSIPサーバが利用される。また、SIPサーバには、接続が確立した後の端末間に対して、音声や動画通信などの処理を実行するアプリケーションが実装される。このようなSIPサーバは、受信したSIP信号を解析した結果に基づいて呼制御する。また、SIPサーバ上のアプリケーションは、SIPサーバがSIP信号を解析した結果に基づいて処理を実行する。
ここで、図16を用いてSIPサーバが実行するSIP信号の解析処理の一例を説明する。図16は、SIPサーバが受信するSIP信号の一例を示す図である。SIP信号の解析処理は、ヘッダ名とヘッダ値とを有するヘッダから任意の値を抽出する処理である。ヘッダ名は、図16に示す「From」、「Via」、「Max−Forwards」などであり、各ヘッダ名の「:」以降がヘッダ値である。
例えば、SIPサーバは、図16に示すヘッダ名「From」に対応するヘッダ値として「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」を抽出する。そして、SIPサーバは、抽出したヘッダ値「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」をヘッダ名「From」と対応付けた解析結果オブジェクトを作成する。
SIP信号の解析処理において、解析対象となるヘッダ名の文字列は、SIP規約にしたがって大文字・小文字を区別して規定される。ところが、送信元端末は、規約に関係なく独自に生成した文字列をヘッダ名とするSIP信号を送信する。つまり、SIPサーバは、SIP規約にしたがって規定されたヘッダ名の文字列とは大文字・小文字の区別が異なる文字列のヘッダ名を受信する場合がある。
例えば、SIP規約にしたがって規定されたヘッダ名の文字列が「From」であるにもかかわらず、SIPサーバは、ヘッダ名の文字列が「froM」であるSIP信号を受信する場合がある。かかる場合、SIPサーバは、「froM」が「From」に該当すると判定するのに複雑な処理が必要である。具体的に例を挙げると、SIPサーバは、規定された文字列「From」として認識可能な全ての文字列の組み合わせに関する情報を記憶し、記憶した情報の中から「froM」を検索する必要がある。
このようにSIP信号の解析処理が複雑化するのを防止する手法として、SIPサーバは、受信したSIP信号に含まれるヘッダ名を強制的に大文字又は小文字に変換する手法が知られている。
ここで、図17を用いてSIP信号に含まれるヘッダ名を強制的に大文字又は小文字に変換する手法を説明する。図17は、SIP信号に含まれるヘッダ名を強制的に小文字に変換する手法の一例を示す図である。図17に示すように、例えば、SIPサーバは、ヘッダ名が「froM」であるSIP信号を受信した場合、ヘッダ名の文字列を小文字の「from」に変換する。また、SIPサーバは、規定のヘッダ名の文字列「From」を小文字の「from」に変換する。SIPサーバは、「froM」を小文字に変換した「from」と一致するヘッダ名を検索する。そして、規定のヘッダ名の文字列「From」を小文字に変換した「from」と一致すると判定する。すなわち、SIPサーバは、受信したヘッダ名の「froM」が「From」に該当すると判定する。そして、SIPサーバは、SIP信号のヘッダ名「froM」から抽出したヘッダ値「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」と小文字に変換したヘッダ名「from」とを対応付けた解析結果オブジェクトを作成する。SIP信号に含まれるヘッダ名を強制的に大文字に変換する手法も上記と同様である。
同様に、SIPサーバは、ヘッダ名に対応するヘッダ値の取得をSIPサーバ上に存在するアプリケーションから要求された場合には、ヘッダ名を強制的に大文字又は小文字に変換することによって処理が複雑化するのを防止する。図17に示すように、例えば、SIPサーバは、ヘッダ名「FROM」に対応するヘッダ値の取得をアプリケーションから要求された場合、「FROM」の文字列を「from」に変換する。そして、SIPサーバは、「FROM」の文字列を小文字に変換した「from」と一致するヘッダ名を解析結果オブジェクトから検索する。そして、SIPサーバは、解析結果オブジェクトから「from」に対応するヘッダ値「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」を抽出し、アプリケーションへ通知する。
特開2003−234750号公報
しかしながら、上述した従来の技術では、受信信号の解析処理を効率的に実行することができないという課題があった。
具体的には、SIPサーバが受信するSIP信号は、多数のヘッダ名とヘッダ値とのペアを有するので、SIPサーバは、信号を受信する度に、多数のヘッダ名の文字列を大文字又は小文字に変換しなければならない。また、SIPサーバは、特定の端末から繰り返し信号を受信する場合、一度変換した文字列のヘッダ名と同じ信号を受信することになる。すなわち、SIPサーバは、信号を受信する度に、一度変換した文字列のヘッダ名を再度変換しなければならない。
また、SIPサーバは、例えば、端末間の接続を要求する要求信号を接続元端末から受信し、受信した要求信号を接続先端末へ転送する。そして、SIPサーバは、接続先端末から要求に対する応答信号を受信し、受信した応答信号を接続元端末へ転送する。このとき、SIPサーバは、要求信号のヘッダをコピーして生成された応答信号を受信する場合が多い。この結果、SIPサーバは、応答信号を受信する場合にも、要求信号の解析で変換した文字列のヘッダ名と同じ文字列の信号を受信する場合がある。すなわち、SIPサーバは、応答信号を受信する度に、一度変換した文字列のヘッダ名を変換しなければならない。
また、SIPサーバは、SIPサーバ上に存在するアプリケーションからヘッダ名に対応するヘッダ値の取得を依頼されると、ヘッダ名の文字列を変換し、対応するヘッダ値を検索する。そして、SIPサーバは、アプリケーションから通常複数回に及びヘッダ値の取得を依頼される場合があり、以前変換した文字列のヘッダ名であっても、ヘッダ値の取得を依頼される度にヘッダ名の文字列を変換しなければならない。したがって、SIPサーバは、SIP信号の解析処理を効率的に実行できない。
開示の技術は、上記に鑑みてなされたものであって、受信信号の解析処理を効率的に実行することが可能である情報処理装置、情報処理方法、情報処理プログラムを提供することを目的とする。
本願の開示する情報処理装置の第1記憶部は、自装置と他の通信装置との通信に利用する通信規約に規定されたヘッダ名と同一の文字列を記憶する。第2記憶部は、通信規約に規定されたヘッダ名を小文字若しくは大文字に変換した文字列を記憶する。第3記憶部は、過去に受信した信号から抽出したヘッダ名であって、通信規約に規定された文字列ではあるが同一の文字列とは異なる文字列を記憶する。情報処理装置は、他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第1記憶部に記憶されているか否かを判定する。他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第1記憶部に記憶されている場合に、情報処理装置は当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第1記憶部に記憶されていないと判定されると、受信信号に含まれるヘッダ名と同じ文字列が第3記憶部に記憶されているか否かを判定する。他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第3記憶部に記憶されている場合に、情報処理装置は当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第3記憶部に記憶されていないと判定されると、情報処理装置は受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換し、変換したヘッダ名の文字列と同じ文字列が第2記憶部に記憶されているか否かを判定する。変換したヘッダ名の文字列と同じ文字列が第2記憶部に記憶されている場合に、情報処理装置は当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。
本願の開示する情報処理装置、情報処理方法、情報処理プログラムの一つの態様によれば、受信信号の解析処理を効率的に実行することができるという効果を奏する。
図1は、実施例1に係るSIPサーバのネットワーク構成を示す図である。 図2は、実施例1に係るSIPサーバの構成を示すブロック図である。 図3は、信号受信部が受信するSIP信号の一例を示す図である。 図4は、第1のテーブルが記憶する情報の一例を示す図である。 図5は、第2のテーブルが記憶する情報の一例を示す図である。 図6は、第3のテーブルが記憶する情報の一例を示す図である。 図7は、ヘッダ管理テーブルが記憶する解析結果オブジェクトの一例を示す図である。 図8は、トランザクション管理テーブルが記憶する情報の一例を示す図である。 図9は、ダイアログ管理テーブルが記憶する情報の一例を示す図である。 図10は、信号解析部が解析するSIP信号の一例を示す図である。 図11は、信号解析部が第3のテーブルへ格納する情報の一例を示す図である。 図12は、信号解析部が作成する解析結果オブジェクトの一例を示す図である。 図13は、SIP信号を受信した場合の信号解析部によるSIP信号解析処理の処理手順を示すフローチャートである。 図14は、アプリケーション実行部から指定されたヘッダ名に対応するヘッダ値の取得を要求された場合の信号解析部によるヘッダ値取得処理の処理手順を示すフローチャートである。 図15は、信号解析プログラムを実行するコンピュータシステムを示す図である。 図16は、SIPサーバが受信するSIP信号の一例を示す図である。 図17は、SIP信号に含まれるヘッダ名を強制的に大文字又は小文字に変換する手法の一例を示す図である。
以下に、本願の開示する情報処理装置、情報処理方法、情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[SIPサーバのネットワーク構成]
図1は、実施例1に係るSIPサーバ100のネットワーク構成を示す図である。図1に示すように、実施例1に係るSIPサーバ100は、クライアント端末200とクライアント端末300とをSIP網400を介して接続する。
[SIPサーバの構成]
図2を用いて実施例1に係るSIPサーバ100の構成を説明する。図2は、実施例1に係るSIPサーバの構成を示すブロック図である。図2に示すように、実施例1に係るSIPサーバ100は、信号受信部110と信号送信部120とタイマ管理部130と記憶部140と制御部150とを有する。
信号受信部110は、クライアント端末200及び300からSIP信号を受信し、受信したSIP信号を信号解析部151へ転送する制御部である。ここで、信号受信部110が受信する信号の一例を説明する。図3は、信号受信部110が受信するSIP信号の一例を示す図である。図3に示すように、信号受信部110が受信するSIP信号は、リクエストライン3001とヘッダ3002とを有する。
リクエストライン3001は、受信した信号の種別を示し、例えば、図3に示す受信信号の場合は、SIPサーバ100へのIPアドレス登録を申請する信号であることを示す「REGISTER」である。また、ヘッダ3002は、ヘッダ名とヘッダ値とを有し、信号が要求する内容の実行に必要な機能を指定する。例えば、図3に示す受信信号の場合は、ヘッダ名として「From」と「Via」と「Max−Forwards」と「To」と「CSeq」と「Call−Id」と「Content−Length」と「Contact」とを有する。
ヘッダ名「From」は、リクエストの生成元の論理的なアドレスを示す。また、ヘッダ名「Via」は、リクエストの生成元が応答の受信を望むアドレスに関する情報を示し、これを参照することで、リクエスト生成元にレスポンスを返信することができる。また、ヘッダ名「Max−Forwards」は、ホップ数の上限に関する情報を示す。また、ヘッダ名「To」は、リクエストの論理的な宛先を示す。また、ヘッダ名「CSeq」は、新しいトランザクションと、再送を区別するためのインクリメント値に関する情報を示す。また、ヘッダ名「Call−Id」は、「呼」を識別する固有のIDに関する情報を示す。また、ヘッダ名「Content−Length」は、ヘッダのボディの長さに関する情報を示す。また、ヘッダ名「Contact」は、リクエストを次にどこへ送信するかを示す。
例えば、図3の場合、ヘッダ名「From」に対応するヘッダ値は「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」である。また、ヘッダ名「Via」に対応するヘッダ値は、「SIP/2.0/UDP 123.456.789.012:35070;branch=z9hG4bK-07d902120e270600f0-16」である。また、ヘッダ名「Max−Forwards」に対応するヘッダ値は「70」である。ヘッダ名「To」に対応するヘッダ値は「<sip:abc@sipas.fujitsu.com>」である。また、ヘッダ名「CSeq」に対応するヘッダ値は「16 REGISTER」である。また、ヘッダ名「Call−Id」に対応するヘッダ値は「07d902120e270600f0@123.456.789.012」である。また、ヘッダ名「Content−Length」に対応するヘッダ値は「0」である。また、ヘッダ名「Contact」に対応するヘッダ値は「<sip:abc@123.456.789.012:35070>」である。
信号送信部120は、クライアント端末200又は300へSIP信号を送信する制御部である。例えば、信号送信部120は、後述する信号生成部155が生成したSIP信号を受信すると、受信したSIP信号のヘッダから送信先を特定し、特定した送信先へSIP信号を送信する。
タイマ管理部130は、SIPサーバにおける各種タイマを監視し、必要な処理を行う制御部である。例えば、タイマ管理部130は、信号を受信した時間を記録し、トランザクション管理部152に通知する。また、タイマ管理部130は、端末間の接続時間を計測し、計測した接続時間をダイアログ管理部153に通知する。
記憶部140は、第1のテーブル140aと第2のテーブル140bと第3のテーブル140cとヘッダ管理テーブル140dとトランザクション管理テーブル140eとダイアログ管理テーブル140fとを有する。例えば、記憶部140は、半導体メモリ素子、又はハードディスクなどの記憶装置である。
第1のテーブル140aは、自装置と他の通信装置との通信に利用する通信規約に規定されたヘッダ名と同一の文字列を記憶する。言い換えると、第1のテーブル140aは、SIP規約で規定された文字列のヘッダ名を記憶する。例えば、第1のテーブル140aは、図4に示すように、「キー、規定ヘッダ名」として「From、From」、「Via、Via」、「Max−Forwards、Max−Forwards」、「To、To」、「CSeq、CSeq」を記憶する。また、第1のテーブル140aは、「キー、規定ヘッダ名」として「Call−Id、Call−Id」、「Content−Length、Content−Length」、「Contact、Contact」を記憶する。
ここで、「キー」には、SIP規約に規定されている文字列のヘッダ名が格納され、「規定ヘッダ名」には、SIP規約に規定されている文字列のヘッダ名が格納される。つまり、第1のテーブル140aは、SIP規約で規定された文字列のヘッダ名を記憶する。なお、図4は、第1のテーブル140aが記憶する情報の一例を示す図である。また、第1のテーブル140aは、サーバ起動時に生成された以降、サーバ稼働中は同一の内容を記憶する。第1のテーブル140aは、SIPサーバ100内に一つ存在する。
第2のテーブル140bは、前記通信規約に規定されたヘッダ名を小文字若しくは大文字に変換した文字列を記憶する。言い換えると、第2のテーブル140bは、SIP規約で規定された文字列を小文字に変換したヘッダ名を記憶する。例えば、第2のテーブル140bは、図5に示すように、「キー、規定ヘッダ名」として「from、From」、「via、Via」、「max−fowards、Max−Forwards」、「to、To」、「cseq、CSeq」を記憶する。また、第2のテーブル140bは、「キー、規定ヘッダ名」として「call−id、Call−Id」、「content−length、Content−Length」、「contact、Contact」を記憶する。
ここで、「キー」には、SIP規約に規定されている文字列のヘッダ名が小文字に変換して格納され、「規定ヘッダ名」には、SIP規約に規定されている文字列のヘッダ名が格納される。つまり、第2のテーブル140bは、SIP規約で規定された文字列を小文字に変換したヘッダ名を記憶する。なお、図5は、第2のテーブル140bが記憶する情報の一例を示す図である。また、第2のテーブル140bは、サーバ起動時に生成された以降、サーバ稼働中は同一の内容を記憶する。第2のテーブル140bは、SIPサーバ100内に一つ存在する。
第3のテーブル140cは、自装置との間で通信を行った通信装置ごとに、過去に受信した信号から抽出したヘッダ名であって、通信規約に規定された文字列ではあるが同一の文字列とは異なる文字列を記憶する。言い換えると、第3のテーブル140cは、SIP規約に規定されている形とは異なる形で信号に現れたヘッダ名を記憶する。例えば、第3のテーブル140cは、第1のテーブル及び第2のテーブルの「キー」に該当しない文字列のヘッダ名を「規定ヘッダ名」と対応付けて記憶する。第3のテーブル140cは、SIP規約で規定された文字列ではなく、文字列を小文字に変換すると第2のテーブルの「キー」と同一となる文字列のヘッダ名を記憶する。例えば、第3のテーブル140cは、図6に示すように、「キー、規定ヘッダ名」として「ViA、Via」を記憶する。ここで、第3のテーブル140cの「キー」には、受信したSIP信号に用いられた文字列のヘッダ名が格納され、「規定ヘッダ名」には、SIP規約に規定されている文字列のヘッダ名が格納される。なお、図6は、第3のテーブル140cが記憶する情報の一例を示す図である。また、第3のテーブル140cは、初期状態においては空である。また、第3のテーブル140cは、送信元端末ごとに生成される。
また、第3のテーブル140cは、関連する通信終了時などの適当な時点で、後述する第2の信号解析部151bによって、二次記憶装置に退避され、退避された情報を再利用可能な状態にしてもよい。例えば、二次記憶装置は、SIPサーバ100に挿入される、例えば、フレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」であってもよい。
ヘッダ管理テーブル140dは、解析結果オブジェクトを記憶する。例えば、ヘッダ管理テーブル140dは、図7に示すように、「ヘッダ名」と「ヘッダ値」とを対応付けて記憶する。具体的には、ヘッダ名「From」に対応するヘッダ値は、「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」である。また、ヘッダ名「Via」に対応するヘッダ値は、「SIP/2.0/UDP 123.456.789.012:35070;branch=z9hG4bK-07d902120e270600f0-16」である。また、ヘッダ名「Max−Forwards」に対応するヘッダ値は、「70」である。なお、図7は、ヘッダ管理テーブル140dが記憶する解析結果オブジェクトの一例を示す図である。
トランザクション管理テーブル140eは、トランザクション管理部152によって作成されたSIPトランザクション処理の状態情報を記憶する。例えば、トランザクション管理テーブル140eは、図8に示すように、「トランザクションID」と「トランザクションタイプ」と「セッション開始時間」と「状態」とを関連付けて記憶する。なお、図8は、トランザクション管理テーブル140eが記憶する情報の一例を示す図である。
ここで記憶される「トランザクションID」には、トランザクションを一意に識別する識別子が格納される。また、「トランザクションタイプ」には、受信した要求信号の種類として、例えば、セッションの確立を要求する信号である「INVITE」やIPアドレスの登録を要求する信号である「REGISTER」が格納される。また、「セッション開始時間」には、要求信号を最初に受信した時間が格納される。また、「状態」には、例えば、セッションが終了した場合には「終了」、セッションが進行中の場合には「暫定応答」や「成功応答」など送受信した最新の信号の種類を示す情報が格納される。
図8に示したように「トランザクションID」が「0001」であるトランザクションは、2010年3月3日14時50分03秒に「INVITE」信号を受信し、現在、セッションが終了したことを示す。また、「トランザクションID」が「0002」であるトランザクションは、2010年3月3日14時52分01秒に「REGISTER」信号を受信し、セッションが終了したことを示す。また、「トランザクションID」が「0003」であるトランザクションは、2010年3月3日14時52分45秒に「INVITE」信号を受信し、暫定応答が送信されたことを示す。
ダイアログ管理テーブル140fは、ダイアログ管理部153によって作成されたダイアログに関する情報を記憶する。例えば、ダイアログ管理テーブル140fは、図9に示すように、「ダイアログID」と「「Call−Id」と「From」と「To」と「通話情報」とを関連付けて記憶する。なお、図9は、ダイアログ管理テーブル140fが記憶する情報の一例を示す図である。また、ダイアログ管理テーブル140fは、一般的には、ダイアログごとに個別に生成される。
図9に示すように、「ダイアログID」には、ダイアログを一意に識別する識別子が格納され「Call−Id」には「呼」を識別する固有のIDに関する情報が格納される。また、「From」にはダイアログにおける接続元アドレスが格納され、「To」にはダイアログにおける接続先アドレスが格納され、「通話情報」には通話の開始時刻及び通話の終了時刻を示す情報が格納される。
例えば、「ダイアログID」が「aaaaa」であるダイアログは、「Call−Id」が「a−11111」で識別される「0010001」と「0020001」との接続を示す。そして、この通話は、2010年3月3日14時50分17秒から開始し、2010年3月3日14時55分23秒に終了したことを示す。また、「ダイアログID」が「bbbbb」であるダイアログは、「Call−Id」が「b−11111」で識別される「0010010」と「0020010」との接続を示す。そして、この通話は、2010年3月3日14時58分03秒から通話が開始し、現在通話中であることを示す。
制御部150は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。制御部150は、信号解析部151とトランザクション管理部152とダイアログ管理部153とアプリケーション実行部154と信号生成部155とを有する。例えば、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
信号解析部151は、信号を解析して解析結果オブジェクトを生成する制御部であり、第1の信号解析部151aと、第2の信号解析部151bと、第3の信号解析部151cとを有する。また、信号解析部151は、アプリケーション実行部154から指定されたヘッダ名に対して、解析結果オブジェクトから対応するヘッダ値を抽出し、抽出したヘッダ値をアプリケーション実行部154へ送信する。
第1の信号解析部151aは、他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が第1のテーブル140aに記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。言い換えると、第1の信号解析部151aは、信号受信部110によって受信されたSIP信号からヘッダ名を抽出し、抽出したヘッダ名が第1のテーブル140aに存在するか否かを判定する制御部である。例えば、第1の信号解析部151aは、抽出したヘッダ名が第1のテーブル140aに存在すると判定した場合に、当該抽出したヘッダ名から対応するヘッダ値を抽出して解析結果オブジェクトを作成する。また、第1の信号解析部151aは、抽出したヘッダ名が第1のテーブル140aに存在しないと判定した場合には、受信したSIP信号を第2の信号解析部151bに転送する。
具体的な例を挙げて説明すると、信号受信部110によって図10に示したSIP信号が受信された場合、第1の信号解析部151aは、ヘッダ名「From」を抽出する。第1の信号解析部151aは、図4に示した第1のテーブル140aの「キー」の項目を検索し、抽出したヘッダ名「From」と同じ文字列のヘッダ名が存在するか否かを判定する。そして、第1の信号解析部151aは、第1のテーブル140aの「キー」の項目「From」と抽出したヘッダ名「From」とが同一の文字列であると判定する。なお、図10は、信号解析部151が解析するSIP信号の一例を示す図である。
続いて、第1の信号解析部151aは、第1のテーブル140aの「From」の項目「From」に対応する「規定ヘッダ名」の項目から規定のヘッダ名「From」を抽出する。続いて、第1の信号解析部151aは、受信信号から、抽出ヘッダ名「From」に対応するヘッダ値「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」を抽出する。そして、第1の信号解析部151aは、規定ヘッダ名「From」とヘッダ値「"abc" <sip:abc@sipas.fujitsu.com>;tag=1838-a7-2e-8f-cd361869」とを対応付けて解析結果オブジェクトへ格納する。
続いて、第1の信号解析部151aは、受信したSIP信号からヘッダ名「ViA」を抽出する。そして、第1の信号解析部151aは、第1のテーブル140aの「キー」の項目を検索し、抽出したヘッダ名「ViA」と同じ文字列のヘッダ名が第1のテーブル140aの「キー」の項目には存在しないと判定する。
同様に、第1の信号解析部151aは、¥「Max−Forwards」と「To」と「CSeq」のそれぞれが第1のテーブル140aに存在すると判定する。この結果、第1の信号解析部151aは、規定ヘッダ名「Max−Forwards」とヘッダ値「70」とを対応付けて解析結果オブジェクトへ格納する。また、第1の信号解析部151aは、規定ヘッダ名「To」とヘッダ値「<sip:abc@sipas.fujitsu.com>」とを対応付けて解析結果オブジェクトへ格納する。また、第1の信号解析部151aは、規定ヘッダ名「CSeq」とヘッダ値「16 REGISTER」とを対応付けて解析結果オブジェクトへ格納する。
また、同様に、第1の信号解析部151aは、「Call−IDNo」が第1のテーブル140aに存在しないと判定する。また、同様に、第1の信号解析部151aは、「Content−Length」が第1のテーブル140aに存在すると判定する。この結果、第1の信号解析部151aは、規定ヘッダ名「Content−Length」とヘッダ値「0」とを対応付けて解析結果オブジェクトへ格納する。
また、同様に、第1の信号解析部151aは、「conTact」が第1のテーブル140aに存在しないと判定する。第1の信号解析部151aは、受信したSIP信号を第2の信号解析部151bへ転送する。
つまり、第1の信号解析部151aは、「From」と「Max−Forwards」と「To」と「CSeq」と「Content−Length」とが第1のテーブル140aに存在すると判定する。この結果、第1の信号解析部151aは、「From」と「Max−Forwards」と「To」と「CSeq」と「Content−Length」の解析結果オブジェクトを作成する。また、第1の信号解析部151aは、受信したSIP信号を第2の信号解析部151bへ転送する。
また、第1の信号解析部151aは、アプリケーション実行部154からヘッダ名を指定された場合には、指定されたヘッダ名が第1のテーブル140aに存在するか否かを判定する制御部である。例えば、第1の信号解析部151aは、指定されたヘッダ名が第1のテーブル140aに存在すると判定した場合に、当該指定されたヘッダ名に対応するヘッダ値を解析結果オブジェクトから抽出し、抽出したヘッダ値をアプリケーション実行部154に送信する。また、第1の信号解析部151aは、指定されたヘッダ名が第1のテーブル140aに存在しないと判定した場合には、当該指定されたヘッダ名を第2の信号解析部151bに転送する。
第2の信号解析部151bは、第1の信号解析部151aによって第1のテーブル140aに記憶されていないと判定されると、受信信号に含まれるヘッダ名と同じ文字列が第3のテーブル140cに記憶されているか否かを判定する。記憶されている場合に、第2の信号解析部151bは、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。言い換えると、第2の信号解析部151bは、受信したSIP信号から抽出したヘッダ名が第3のテーブル140cに存在するか否かを判定する制御部である。例えば、第2の信号解析部151bは、抽出したヘッダ名が第3のテーブル140cに存在すると判定した場合に、当該抽出したヘッダ名から対応するヘッダ値を抽出して解析結果オブジェクトを作成する。また、第2の信号解析部151bは、抽出したヘッダ名が第3のテーブル140cに存在しないと判定した場合には、受信信号を第3の信号解析部151cに転送する。なお、第2の信号解析部151bは、解析結果オブジェクトを検索することでヘッダ名の解析が終了したか否かを判定することができる。したがって、第2の信号解析部151bは、解析が終了していないヘッダ名を抽出し、抽出したヘッダ名を解析することができる。
具体的には、第2の信号解析部151bは、解析結果オブジェクトを検索し、第1のテーブル140aに記憶されていないと判定されたヘッダ名「ViA」と「Call−IDNo」と「conTact」とを受信したSIP信号から抽出する。第2の信号解析部151bは、信号を受信した場合、送信元に該当する第3のテーブル140cが存在するか否かを判定する。
例えば、第2の信号解析部151bは、送信元に該当する第3のテーブル140cが存在すると判定した場合には、図6に示した第3のテーブル140cの「キー」の項目を検索し、抽出したヘッダ名「ViA」と同じ文字列のヘッダ名が存在するか否かを判定する。そして、第2の信号解析部151bは、第3のテーブル140cの「キー」の項目「ViA」と抽出したヘッダ名「ViA」とが同一の文字列であると判定する。
続いて、第2の信号解析部151bは、第3のテーブル140cの「キー」の項目「ViA」に対応する「規定ヘッダ名」の項目から規定のヘッダ名「Via」を抽出する。続いて、第2の信号解析部151bは、受信信号から、抽出ヘッダ名「ViA」に対応するヘッダ値「SIP/2.0/UDP 123.456.789.012:35070;branch=z9hG4bK-07d902120e270600f0-16」を抽出する。そして、第2の信号解析部151bは、規定ヘッダ名「Via」とヘッダ値「SIP/2.0/UDP 123.456.789.012:35070;branch=z9hG4bK-07d902120e270600f0-16」とを対応付けて解析結果オブジェクトへ格納する。
また、第2の信号解析部151bは、第3のテーブル140cの「キー」の項目を検索し、抽出したヘッダ名「Call−IDNo」と同じ文字列のヘッダ名が存在するか否かを判定する。そして、第2の信号解析部151bは、第3のテーブル140cの「キー」の項目には抽出したヘッダ名「Call−IDNo」と同一の文字列が存在しないと判定する。また、同様に、第2の信号解析部151bは、「conTact」が第3のテーブル140cに存在しないと判定する。続いて、第2の信号解析部151bは、受信したSIP信号を第3の信号解析部151cへ転送する。
また、第2の信号解析部151bは、送信元に該当する第3のテーブル140cが存在しないと判定した場合には、受信したSIP信号を第3の信号解析部151cに転送する。
また、第2の信号解析部151bは、アプリケーション実行部154に指定されたヘッダ名が第1の信号解析部151aによって第1のテーブル140aに存在しないと判定された場合に、当該指定されたヘッダ名が第3のテーブル140cに存在するか否かを判定する制御部である。例えば、第2の信号解析部151bは、指定されたヘッダ名が第3のテーブル140cに存在すると判定した場合に、当該指定されたヘッダ名に対応するヘッダ値を解析結果オブジェクトから抽出し、抽出したヘッダ値をアプリケーション実行部154に送信する。また、第2の信号解析部151bは、指定されたヘッダ名が第3のテーブル140cに存在しないと判定した場合には、当該ヘッダ名を第3の信号解析部151cに転送する。
なお、第2の信号解析部151bは、送信元に該当する第3のテーブル140cがファイルなどの二次記憶装置に格納されている場合には、二次記憶装置から送信元に該当する第3のテーブル140cを読み出してもよい。
第3の信号解析部151cは、第2の信号解析部151bによって第3のテーブル140cに記憶されていないと判定されると、受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換する。第3の信号解析部151cは、変換したヘッダ名と同じ文字列が第2のテーブル140bに記憶されているか否かを判定する。記憶されている場合に、第3の信号解析部151cは、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する。言い換えると、第3の信号解析部151cは、抽出したヘッダ名の文字列を小文字若しくは大文字に変換し、当該抽出したヘッダ名が第2のテーブル140bに存在するか否かを判定する制御部である。例えば、第3の信号解析部151cは、受信したヘッダ名の文字列を小文字に変換し、変換した文字列のヘッダ名が第2のテーブル140bに存在するか否かを判定する。
第3の信号解析部151cは、変換した文字列のヘッダ名が第2のテーブル140bに存在しないと判定した場合には、当該文字列のヘッダ名から対応するヘッダ値を抽出し解析結果オブジェクトを作成する。一方、第3の信号解析部151cは、受信信号に含まれるヘッダ名と同じ文字列が第2のテーブル140bに記憶されていると判定した場合に、当該ヘッダ名を第3のテーブル140cに格納する。なお、第3の信号解析部151cは、解析結果オブジェクトを検索することでヘッダ名の解析が終了したか否かを判定することができる。したがって、第3の信号解析部151cは、解析が終了していないヘッダ名を抽出し、抽出したヘッダ名を解析することができる。
具体的には、第3の信号解析部151cは、解析結果オブジェクトを検索し、第1のテーブル140a及び第3のテーブル140cに記憶されていないと判定されたヘッダ名「Call−IDNo」と「conTact」とを抽出する。
第3の信号解析部151cは、抽出したヘッダ名「Call−IDNo」の文字列を「call−idno」に変換する。第3の信号解析部151cは、第2のテーブル140bの「キー」の項目を検索し、文字列を変換したヘッダ名「call−idno」と同じ文字列のヘッダ名が存在するか否かを判定する。そして、第3の信号解析部151cは、第2のテーブル140bの「キー」の項目には文字列を変換したヘッダ名「call−idno」と同一の文字列が存在しないと判定する。かかる場合、第3の信号解析部151cは、「call−idno」について、受信信号から、対応するヘッダ値「07d902120e270600f0@123.456.789.012」を抽出する。そして、第3の信号解析部151cは、ヘッダ名を小文字の文字列に変換した「call−idno」とヘッダ値「07d902120e270600f0@123.456.789.012」とを対応付けて解析結果オブジェクトへ格納する。
また、第3の信号解析部151cは、抽出したヘッダ名「conTact」の文字列を「contact」に変換する。第3の信号解析部151cは、第2のテーブル140bの「キー」の項目を検索し、文字列を変換したヘッダ名「contact」と同じ文字列のヘッダ名が存在するか否かを判定する。そして、第3の信号解析部151cは、第2のテーブル140bの「キー」の項目「contact」と文字列変換したヘッダ名「contact」とが同一の文字列であると判定する。
続いて、第3の信号解析部151cは、第2のテーブル140bの「キー」の項目「contact」に対応する「規定ヘッダ名」の項目から規定のヘッダ名「Contact」を抽出する。続いて、第3の信号解析部151cは、受信信号から、抽出したヘッダ名「conTact」に対応するヘッダ値「<sip:abc@123.456.789.012:35070>」を抽出する。そして、第3の信号解析部151bは、規定ヘッダ名「Contact」とヘッダ値「<sip:abc@123.456.789.012:35070>」とを対応付けて解析結果オブジェクトへ格納する。第3の信号解析部151cが格納した後に作成される解析結果オブジェクトを図12に示す。なお、図12は、信号解析部151が作成する解析結果オブジェクトの一例を示す図である。また、第3の信号解析部151cは、図11のように、受信したSIP信号のヘッダ名「conTact」と規定の文字列のヘッダ名「Contact」とを対応付けた情報を第3のテーブル140cに格納する。なお、図11は、信号解析部が第3のテーブルへ格納する情報の一例を示す図である。
また、第3の信号解析部151cは、指定されたヘッダ名の文字列を小文字若しくは大文字に変換し、当該指定されたヘッダ名が第2のテーブル140bに存在するか否かを判定する。例えば、第3の信号解析部151cは、指定されたヘッダ名の文字列を小文字に変換し、変換した文字列のヘッダ名が第2のテーブル140bに存在するか否かを判定する。第3の信号解析部151cは、変換した文字列のヘッダ名が第2のテーブル140bに存在すると判定した場合には、当該指定されたヘッダ名に対応する規定のヘッダ名を抽出する。そして、第3の信号解析部151cは、規定のヘッダ名に対応するヘッダ値を解析結果オブジェクトから抽出し、抽出したヘッダ値をアプリケーション実行部154に送信する。一方、第3の信号解析部151cは、変換した文字列のヘッダ名が第2のテーブル140bに存在しないと判定した場合には、当該変換した文字列のヘッダ名に対応するヘッダ値を解析結果オブジェクトから抽出する。そして、第3の信号解析部151cは、抽出したヘッダ値をアプリケーション実行部154に送信する。
なお、第3の信号解析部151cは、関連する通信終了時などの適当な時点で第3のテーブル140cを二次記憶装置に退避するようにしてもよい。例えば、二次記憶装置は、SIPサーバ100に挿入される、例えば、フレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」であってもよい。
トランザクション管理部152は、トランザクションの処理状態を管理する制御部である。例えば、トランザクション管理部152は、処理を要求するリクエスト信号とこれに対する回答であるレスポンス信号から「トランザクションタイプ」と「セッション開始時間」と「状態」とを抽出して、トランザクション管理テーブル140eに書き込む。
ダイアログ管理部153は、接続された端末間の接続関係を管理する制御部であり、例えば、クライアント端末200とクライアント端末300との通話状態に関する情報を管理する。例えば、ダイアログ管理部153は、信号が有するヘッダから「Call−Id」と「From」と「To」とに関する情報を抽出し、ダイアログ管理テーブル140fを生成する。
アプリケーション実行部154は、接続が確立されたクライアント端末200とクライアント端末300に対してアプリケーションを実行する制御部である。例えば、アプリケーション実行部154は、記憶部140に格納されたアプリケーションを読み出し、接続が確立されたクライアント端末間にアプリケーションで規定された処理を実行する。また、アプリケーション実行部154は、APIを使うことで信号解析部151へヘッダ名を指定し、指定したヘッダ名に対応するヘッダ値を取得する。
信号生成部155は、信号を生成し、生成した信号を信号送信部120へ転送する制御部である。例えば、信号生成部155は、受信したSIP信号について、信号のヘッダを更新することで新たな信号を生成する。また、信号生成部155は、アプリケーション実行部154が実行した処理から新たな信号を生成する。
[SIPサーバ100によるSIP信号のヘッダ処理の処理手順]
図13を用いて、SIPサーバ100によるヘッダ処理の処理手順を説明する。図13は、SIP信号を受信した場合の信号解析部によるSIP信号解析処理の処理手順を示すフローチャートである。図13に示すように、SIPサーバ100において、信号受信部110は、SIP信号を受信したと判定した場合には(ステップS101、Yes)、受信したSIP信号を第1の信号解析部151aへ転送する。第1の信号解析部151aは、受信したSIP信号からヘッダ名を抽出し(ステップS102)、抽出したヘッダ名が第1のテーブル140aに存在するか否かを判定する(ステップS103)。第1の信号解析部151aは、抽出したヘッダ名が第1のテーブル140aに存在すると判定した場合には(ステップS103、Yes)、ヘッダ名に対応するヘッダ値を解析する(ステップS104)。続いて、第1の信号解析部151aは、解析結果オブジェクトに解析結果を格納する(ステップS105)。
一方、第1の信号解析部151aは、抽出したヘッダ名が第1のテーブル140aに存在しないと判定した場合には(ステップS103、No)、受信したSIP信号を第2の信号解析部151bへ転送する。第2の信号解析部151bは、SIP信号から送信元を特定し(ステップS106)、特定した送信元に対応する第3のテーブル140cが二次記憶装置上に存在するか否かを判定する(ステップS107)。第2の信号解析部151bは、送信元に対応する第3のテーブル140cが二次記憶装置上に存在しないと判定した場合(ステップS107、No)、受信したSIP信号を第3の信号解析部151cへ転送する。第3の信号解析部151cは、受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名の文字列を小文字に変換する(ステップS112)。
第2の信号解析部151bは、特定した送信元に対応する第3のテーブル140cが二次記憶装置上に存在すると判定した場合には(ステップS107、Yes)、第3のテーブル140cの情報をメモリに読み込む(ステップS108)。続いて、第2の信号解析部151bは、受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名が第3のテーブル140cに存在するか否かを判定する(ステップS109)。ここで、第2の信号解析部151bは、抽出したヘッダ名が第3のテーブル140cに存在すると判定した場合には(ステップS109、Yes)、ヘッダ名に対応するヘッダ値を解析する(ステップS110)。続いて、第2の信号解析部151bは、解析結果オブジェクトに解析結果を格納する(ステップS111)。
一方、第2の信号解析部151bは、抽出したヘッダ名が第3のテーブル140cに存在しないと判定した場合(ステップS109、No)、受信したSIP信号を第3の信号解析部151cへ転送する。第3の信号解析部151cは、受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名の文字列を小文字に変換する(ステップS112)。
第3の信号解析部151cは、文字列を小文字に変換したヘッダ名が第2のテーブル140bに存在するか否かを判定する(ステップS113)。ここで、第3の信号解析部151cは、該当するヘッダ名が第2のテーブル140bに存在しないと判定した場合には(ステップS113、No)、解析結果オブジェクトに解析結果を格納する(ステップS114)。
一方、第3の信号解析部151cは、文字列を小文字に変換したヘッダ名が第2のテーブル140bに存在すると判定した場合には(ステップS113、Yes)、対応するヘッダ値を抽出し(ステップS115)、解析結果オブジェクトに解析結果を格納する(ステップS116)。続いて、第3の信号解析部151cは、第3のテーブル140cに受信したSIP信号のヘッダから抽出した文字列のヘッダ名と、第2のテーブル140bから抽出した規定の文字列のヘッダ名とを格納する(ステップS117)。
[SIPサーバ100によるアプリケーション実行部154からのヘッダ値取得要求に対する処理の処理手順]
図14を用いて、SIPサーバ100によるアプリケーション実行部154からのヘッダ値取得要求に対する処理の処理手順を説明する。図14は、SIPサーバ100によるアプリケーション実行部154からのヘッダ値取得要求に対する処理の処理手順を説明する図である。図14に示すように、第1の信号解析部151aは、アプリケーション実行部154からヘッダ名を指定された場合(ステップS201、Yes)、指定されたヘッダ名が第1のテーブル140aに存在するか否かを判定する(ステップS202)。第1の信号解析部151aは、指定されたヘッダ名が第1のテーブル140aに存在すると判定した場合には(ステップS202、Yes)、対応するヘッダ値を解析結果オブジェクトから抽出し、アプリケーション実行部154へ送信する(ステップS203)。
一方、第1の信号解析部151aは、指定されたヘッダ名が第1のテーブルに存在しないと判定した場合には(ステップS202、No)、指定されたヘッダ名を第2の信号解析部151bへ転送する。第2の信号解析部151bは、通話先を特定し(ステップS204)、特定した通話先に対応する第3のテーブル140cが二次記憶装置に存在するか否かを判定する(ステップS205)。第2の信号解析部151bは、通話先に対応する第3のテーブル140cが二次記憶装置に存在しないと判定した場合(ステップS205、No)、指定されたヘッダ名を第3の信号解析部151cへ転送する。そして、第3の信号解析部151cは、指定されたヘッダ名の文字列を小文字に変換する(ステップS209)。
第2の信号解析部151bは、特定した通話先に対応する第3のテーブル140cが二次記憶装置に存在すると判定した場合には(ステップS205、Yes)、第3のテーブル140cの情報をメモリに読み込む(ステップS206)。続いて、第2の信号解析部151bは、指定されたヘッダ名が第3のテーブル140cに存在するか否かを判定する(ステップS207)。第2の信号解析部151bは、指定されたヘッダ名が第3のテーブル140cに存在すると判定した場合には(ステップS207、Yes)、対応するヘッダ値を解析結果オブジェクトから抽出し、アプリケーション実行部154へ送信する(ステップS208)。
一方、第2の信号解析部151bは、指定されたヘッダ名が第3のテーブル140cに存在しないと判定した場合(ステップS207、No)、指定されたヘッダ名を第3の信号解析部151cへ転送する。そして、第3の信号解析部151cは、指定されたヘッダ名の文字列を小文字に変換する(ステップS209)。
第3の信号解析部151cは、文字列を小文字に変換したヘッダ名が第2のテーブル140bに存在するか否かを判定する(ステップS210)。ここで、第3の信号解析部151cは、該当するヘッダ名が第2のテーブル140bに存在しないと判定した場合には(ステップS210、No)、小文字に変換した文字列のヘッダ名に対応するヘッダ値を解析結果オブジェクトから抽出する。そして、第3の信号解析部151cは、抽出したヘッダ値をアプリケーション実行部154へ送信する(ステップS211)。
一方、第3の信号解析部151cは、文字列を小文字に変換したヘッダ名が第2のテーブルに存在すると判定した場合には(ステップS210、Yes)、対応するヘッダ値を解析結果オブジェクトから抽出する。そして、第3の信号解析部151cは、抽出したヘッダ値をアプリケーション実行部154へ送信する(ステップS212)。
[実施例1の効果]
上述してきたように、本実施例1では、第1の信号解析部151aは、信号受信部110が受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名が第1のテーブル140aに存在するか否かを判定する。第1の信号解析部151aは、抽出したヘッダ名が第1のテーブル140aに存在しないと判定した場合、受信したSIP信号を第2の信号解析部151bへ転送する。第2の信号解析部151bは、受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名が第3のテーブル140cに存在するか否かを判定する。第2の信号解析部151bは、抽出したヘッダ名が第3のテーブル140cに存在しないと判定した場合、受信したSIP信号を第3の信号解析部151cへ転送する。第3の信号解析部151cは、受信したSIP信号からヘッダ名を抽出し、抽出したヘッダ名の文字列を小文字に変換する。第3の信号解析部151cは、小文字に変換したヘッダ名の文字列が第2のテーブル140bに存在するか否かを判定する。第3の信号解析部151cは、小文字に変換したヘッダ名の文字列が第2のテーブル140bに存在すると判定した場合、第2のテーブル140bから抽出した規定のヘッダ名の文字列と受信信号のヘッダ名の文字列とを対応付けて第3のテーブル140cに記録する。
すなわち、実施例にかかるSIPサーバ100は、SIP規約に規定された文字列とは異なるヘッダ名を第3のテーブル140cに記憶する。したがって、SIPサーバ100は、SIP規約に規定された文字列とは異なるヘッダ名を有するSIP信号を受信した場合、一度変換した文字列のヘッダ名については第3のテーブル140cを検索することで、規定された文字列のヘッダ名を抽出できる。この結果、SIPサーバ100は、効率的に信号のヘッダ解析処理が実行できる。
また、実施例にかかるSIPサーバ100は、一度変換した文字列のヘッダ名については再度文字列を変換する必要がないので、Java(登録商標)言語を実装する場合、使い捨ての文字列オブジェクトの発生を減らすことができる。この結果、SIPサーバ100は、ガベージコレクションの発生頻度を低下できるので、SIPサーバの処理性能を向上することができる。
また、実施例にかかるSIPサーバ100は、送信元ごとに作成した第3のテーブル140cを二次記憶装置へ格納することができるためメモリリークを回避することができる。また、この結果、SIPサーバ100は、メモリ利用効率を向上することができる。
ところで、本願の開示するSIPサーバは、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本願の開示する情報処理装置の他の実施例について説明する。
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、信号受信部110と第1の信号解析部151aとが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。また、図示した記憶部が格納する情報は一例に過ぎず、必ずしも図示のごとく情報が格納される必要はない。
また、本実施例においてサーバは、SIPサーバとして説明したが、SIPサーバに限定されない。例えば、サーバは、パケットに付与されたヘッダ解析処理を行うサーバであれば、HTTP(Hyper Text Transfer Protocol)サーバであってもよい。
(プログラム)
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図15は、信号解析プログラムを実行するコンピュータシステムを示す図である。図15に示すように、コンピュータシステム500は、RAM510と、ROM530と、CPU520とを有する。ここで、ROM530には、上記実施例と同様の機能を発揮するプログラムを予め記憶されている。つまり、図15に示すように、ROM530には、第1の信号解析プログラム531と第2の信号解析プログラム532と第3の信号解析プログラム533とが予め記憶されている。
そして、CPU520には、これらのプログラム531〜533を読み出してRAM510に展開する。そして、CPU520は、第1の信号解析プログラム531を第1の信号解析プロセス521として実行する。またCPU520は、第2の信号解析プログラム532を第2の信号解析プロセス522として実行し、第3の信号解析プログラム533を第3の信号解析プロセス523として実行する。なお、第1の信号解析プロセス521は、図2に示した第1の信号解析部に対応する。同様に、第2の信号解析プロセス522は、第2の信号解析部に対応する。また、第3の信号解析プロセス523は、第3の信号解析部に対応する。
ところで、上記したプログラム531〜533は、必ずしもROM530に記憶させておく必要はない。例えば、コンピュータシステム500に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム500の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータシステム500に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム500がこれらからプログラムを読み出して実行するようにしてもよい。
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータシステム500は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム500によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
100 SIPサーバ
110 信号受信部
120 信号送信部
130 タイマ管理部
140 記憶部
140a 第1のテーブル
140b 第2のテーブル
140c 第3のテーブル
140d ヘッダ情報管理テーブル
140e トランザクション管理テーブル
140f ダイアログ管理テーブル
150 制御部
151 信号解析部
151a 第1の信号解析部
151b 第2の信号解析部
151c 第3の信号解析部
152 トランザクション管理部
153 ダイアログ管理部
154 アプリケーション実行部
155 信号生成部
200 クライアント端末
300 クライアント端末
400 SIP網
500 コンピュータシステム
510 RAM
520 CPU
530 ROM

Claims (6)

  1. 自装置と他の通信装置との通信に利用する通信規約に規定されたヘッダ名と同一の文字列を記憶する第1記憶部と、
    前記通信規約に規定されたヘッダ名を小文字若しくは大文字に変換した文字列を記憶する第2記憶部と、
    過去に受信した信号から抽出したヘッダ名であって、前記通信規約に規定された文字列ではあるが前記同一の文字列とは異なる文字列を記憶する第3記憶部と、
    前記他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が前記第1記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第1抽出部と、
    前記第1抽出部によって前記第1記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名と同じ文字列が前記第3記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第2抽出部と、
    前記第2抽出部によって前記第3記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換し、変換したヘッダ名の文字列と同じ文字列が前記第2記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第3抽出部と、
    を有することを特徴とする情報処理装置。
  2. 前記第3抽出部は、前記受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換し、変換したヘッダ名の文字列と同じ文字列が前記第2記憶部に記憶されていると判定した場合に、当該ヘッダ名を前記第3記憶部に格納することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第3記憶部は、自装置との間で通信を行った通信装置ごとに、過去に受信した信号から抽出したヘッダ名であって、前記通信規約に規定された文字列ではあるが前記同一の文字列とは異なる文字列を記憶することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記第3抽出部は、前記他の通信装置との通信が切断された場合に、前記第3記憶部を前記第1記憶部および前記第2記憶部とが記憶される領域とは異なる記憶領域に移動させることを特徴とする請求項1に記載の情報処理装置。
  5. 自装置と他の通信装置との通信に利用する通信規約に規定されたヘッダ名と同一の文字列を記憶する第1記憶部と、
    前記通信規約に規定されたヘッダ名を小文字若しくは大文字に変換した文字列を記憶する第2記憶部と、
    過去に受信した信号から抽出したヘッダ名であって、前記通信規約に規定された文字列ではあるが前記同一の文字列とは異なる文字列を記憶する第3記憶部と、
    前記他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が前記第1記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第1抽出ステップと、
    前記第1抽出ステップによって前記第1記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名と同じ文字列が前記第3記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第2抽出ステップと、
    前記第2抽出ステップによって前記第3記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換し、変換したヘッダ名の文字列と同じ文字列が前記第2記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第3抽出ステップと、
    を有することを特徴とする情報処理方法。
  6. 自装置と他の通信装置との通信に利用する通信規約に規定されたヘッダ名と同一の文字列を記憶する第1記憶部と、
    前記通信規約に規定されたヘッダ名を小文字若しくは大文字に変換した文字列を記憶する第2記憶部と、
    過去に受信した信号から抽出したヘッダ名であって、前記通信規約に規定された文字列ではあるが前記同一の文字列とは異なる文字列を記憶する第3記憶部と、
    前記他の通信装置から受信した受信信号に含まれるヘッダ名と同じ文字列が前記第1記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第1抽出手順と、
    前記第1抽出手順によって前記第1記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名と同じ文字列が前記第3記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第2抽出手順と、
    前記第2抽出手順によって前記第3記憶部に記憶されていないと判定されると、前記受信信号に含まれるヘッダ名の文字列を大文字若しくは小文字に変換し、変換したヘッダ名の文字列と同じ文字列が前記第2記憶部に記憶されているか否かを判定し、記憶されている場合に、当該ヘッダ名に対応するヘッダ値を受信信号から抽出する第3抽出手順と、
    をコンピュータに実行させることを特徴とする情報処理プログラム。
JP2010150425A 2010-06-30 2010-06-30 情報処理装置、情報処理方法、情報処理プログラム Expired - Fee Related JP5488267B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010150425A JP5488267B2 (ja) 2010-06-30 2010-06-30 情報処理装置、情報処理方法、情報処理プログラム
US13/164,365 US9325743B2 (en) 2010-06-30 2011-06-20 Information processing apparatus, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010150425A JP5488267B2 (ja) 2010-06-30 2010-06-30 情報処理装置、情報処理方法、情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2012014451A JP2012014451A (ja) 2012-01-19
JP5488267B2 true JP5488267B2 (ja) 2014-05-14

Family

ID=45400590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010150425A Expired - Fee Related JP5488267B2 (ja) 2010-06-30 2010-06-30 情報処理装置、情報処理方法、情報処理プログラム

Country Status (2)

Country Link
US (1) US9325743B2 (ja)
JP (1) JP5488267B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2504694A (en) 2012-08-06 2014-02-12 Ibm Searching for Header Names using conversion to canonical form including integer value
US8825814B1 (en) * 2013-05-23 2014-09-02 Vonage Network Llc Method and apparatus for minimizing application delay by pushing application notifications
KR102498486B1 (ko) * 2018-08-08 2023-02-10 삼성전자주식회사 전자 장치 및 그의 통신 중계 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047279A1 (en) * 2000-04-13 2001-11-29 Gargone Peter Sebastian Automating high-level business functions in a generic manner
US20030172127A1 (en) * 2002-02-06 2003-09-11 Northrup Charles J. Execution of process by references to directory service
JP3825332B2 (ja) 2002-02-08 2006-09-27 日本電信電話株式会社 タグ変換によるlan間の接続方法及びタグ変換装置
US7613802B2 (en) * 2002-05-13 2009-11-03 Ricoh Co., Ltd. Creating devices to support a variety of models of remote diagnostics from various manufacturers
US7606882B2 (en) * 2002-05-13 2009-10-20 Ricoh Co., Ltd. Method for obtaining an identifier of a monitored device
US20050060643A1 (en) * 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
US7624436B2 (en) * 2005-06-30 2009-11-24 Intel Corporation Multi-pattern packet content inspection mechanisms employing tagged values
WO2007021828A2 (en) * 2005-08-11 2007-02-22 Level 3 Communications, Inc. Systems and methods for flow signature formation and use
CN100502402C (zh) * 2005-08-19 2009-06-17 华为技术有限公司 一种在ims网络中处理会话消息的方法及装置
US7921070B2 (en) * 2005-12-27 2011-04-05 Alcatel-Lucent Usa Inc. Method and apparatus for identifying message field names
US7587386B2 (en) * 2007-05-14 2009-09-08 Sap Ag Translating case-sensitive technical identfiers

Also Published As

Publication number Publication date
US20120005373A1 (en) 2012-01-05
JP2012014451A (ja) 2012-01-19
US9325743B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
US9378245B2 (en) Name database server, name resolution system, entry search method and entry search program
JP6026423B2 (ja) 部分データストリームにおけるデータ損失の監視を行うための方法、非一時的記録媒体およびネットワークデバイス
US9055096B2 (en) Apparatus and method for detecting an attack in a computer network
JP5812008B2 (ja) ネームデータベースサーバ、名前解決システム、エントリ検索方法およびエントリ検索プログラム
US9893931B2 (en) Connection recovery method, apparatus, and system
JP7056893B2 (ja) アプリケーションプログラミングインタフェースapi要求を伝送するための方法、装置、apiゲートウェイ、及びプログラム
JP2020113924A (ja) モニタリングプログラム,プログラマブルデバイス及びモニタリング方法
JP2009244948A (ja) サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
JP5488267B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム
CN111064729B (zh) 报文的处理方法及装置、存储介质和电子装置
US10516628B2 (en) Transfer device, transfer system, and transfer method
JP2011513814A5 (ja)
US8738801B2 (en) Methods and apparatus for updating index information while adding and updating documents in a distributed network
JP2006309642A (ja) プロトコル変換装置及びプロトコル変換プログラム
CN113965392B (zh) 恶意服务器检测方法、系统、可读介质及电子设备
CN115865457A (zh) 一种网络攻击行为的识别方法、服务器及介质
JP2010191848A (ja) 通信システム、送信装置、受信装置、及びプログラム
JP2007035053A (ja) 異なる端末器間のセッション保持方法
KR100947114B1 (ko) 더미 메시지를 이용하여 웹 서비스의 품질 데이터를추출하는 방법
CN106534140A (zh) 一种sip消息的传递系统及方法
KR20100133646A (ko) 응용프로그램 시그니쳐 생성방법
CN110798542A (zh) 一种获取ip地址的方法及系统
US9306900B2 (en) Communication device, communication system, and communication method
CN111405029B (zh) 一种请求处理方法及装置
JP2002229898A (ja) 通信ネットワークシステムにおけるプロキシサーバ、ならびに同サーバによる代理アクセス方法、および同方法のプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140122

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: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5488267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees