JP4091645B1 - 呼制御データ検索システム及び呼制御データ検索プログラム - Google Patents

呼制御データ検索システム及び呼制御データ検索プログラム Download PDF

Info

Publication number
JP4091645B1
JP4091645B1 JP2006305847A JP2006305847A JP4091645B1 JP 4091645 B1 JP4091645 B1 JP 4091645B1 JP 2006305847 A JP2006305847 A JP 2006305847A JP 2006305847 A JP2006305847 A JP 2006305847A JP 4091645 B1 JP4091645 B1 JP 4091645B1
Authority
JP
Japan
Prior art keywords
key
file
call
data
unit
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
JP2006305847A
Other languages
English (en)
Other versions
JP2008124758A (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.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems 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 Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2006305847A priority Critical patent/JP4091645B1/ja
Application granted granted Critical
Publication of JP4091645B1 publication Critical patent/JP4091645B1/ja
Publication of JP2008124758A publication Critical patent/JP2008124758A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】例えば、リアルタイムに発生する大量の呼制御データの中から所定の条件に一致するものを効率的に抽出することを目的とする。
【解決手段】データキャプチャ部101は、VoIPネットワーク200からキャプチャしたVoIPパケットを1分ごとに、1分ごとのキャプチャファイルに保存する。キー生成部102は、キャプチャファイルに保存されたVoIPパケットのSIPパラメータを含むキーをCall−IDごとに生成し、1分ごとのキーファイルに保存する。キー更新部103は、今回新たに保存されたキーと同じCall−IDのキーが最初に保存されたキーファイルに保存されているキーに、今回新たに保存されたキーのSIPパラメータを追加する。データ管理部105は、キャプチャファイルに保存されたVoIPパケットを、Call−IDごとにまとめて1分ごとのデータファイルに保存する。
【選択図】図1

Description

本発明は、呼制御データ検索システム及び呼制御データ検索プログラムに関するものである。本発明は、特に、VoIP(Voice・over・Internet・Protocol)の呼制御データ(「呼情報」ともいう)の高速検索方式に関するものである。
VoIPサービスを展開するIP(Internet・Protocol)ネットワークにおいて、複数のキャプチャ装置から収集した制御信号である通信データ全てに対し、Call−IDに基づいて各通信データを呼処理ごとに分離し、分離した通信データを検索して同一の呼処理に関する通信データを連結し、発信端末から着信端末までの全ての制御信号シーケンスを生成する技術が公知である(例えば、特許文献1参照)。
特開2004−248192号公報
上記のような従来のキャプチャ装置では、SIP(Session・Initiation・Protocol)メッセージなどを含むVoIPパケットをキャプチャした後、キャプチャしたデータを単にファイルなどに蓄積しておくだけであった。そのため、VoIPパケットを検索する際には、逐一パケットを解析してからでなければ、検索条件に一致するデータを抽出することができないという課題があった。しかも、大量のデータから目的のパケットを検索しなければならないため、性能に課題があった。
VoIPの代表的なアプリケーションであるIP電話が普及していない段階では、トラブル発生時に試験呼を流してパケット解析を行うといった方法が主流であったため、上記のような従来方法でも性能的にほとんど問題は発生しなかった。しかしながら、IP電話が普及し、加入者が増加すると同時に、従来の電話網と同等の信頼性が求められる状況では、トラブル発生時に、リアルタイムに発生する大量のVoIPパケットの中からトラブルの原因となったパケットを効率的に検出して、そのトラブルに迅速に対処する必要が生じている。
本発明は、例えば、リアルタイムに発生する大量の呼制御データの中から所定の条件に一致するものを効率的に抽出することを目的とする。
本発明の一の態様に係る呼制御データ検索システムは、
ファイルを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置とを備える呼制御データ検索システムにおいて、
呼を一意に識別する呼識別子と呼の属性を示す少なくとも1つの属性データとを含む呼制御データをネットワークからキャプチャし、キャプチャした呼制御データを単位時間Tcごとに記憶装置内の単位時間Tcごとのキャプチャファイルに保存するデータキャプチャ部と、
前記データキャプチャ部によりキャプチャファイルに保存された呼制御データの属性データを含むキーを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したキーを記憶装置内の単位時間Tkごとのキーファイルに保存するキー生成部と、
前記キー生成部によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルに当該キーの呼識別子と同じ呼識別子に対応するキーが保存されているかどうかを判定し、当該過去のキーファイルに当該呼識別子のキーが保存されている場合には、当該過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成部によりキーファイルに保存される当該呼識別子のキーの属性データを追加するキー更新部と、
前記データキャプチャ部によりキャプチャファイルに保存された呼制御データを、所定の形式で、記憶装置内の単位時間Tdごとのデータファイルに保存するデータ管理部と、
入力装置を用いて、任意の時刻を入力する入力部と、
処理装置を用いて、前記入力部により入力された時刻に対応するキーファイルを検索し、キーを抽出するキー検索部と、
処理装置を用いて、データファイルを検索し、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出するデータ検索部とを備えることを特徴とする。
前記入力部は、入力装置を用いて、任意の時刻と少なくとも1つの属性データとを入力し、
前記キー検索部は、前記入力部により入力された時刻に対応するキーファイルを検索し、前記入力部により入力された属性データを含むキーを抽出することを特徴とする。
前記キー更新部は、前記キー生成部によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルであって当該キーの呼識別子と同じ呼識別子に対応するキーが最初に保存されたキーファイルを検出し、検出した過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成部によりキーファイルに保存される当該呼識別子のキーの属性データを追加し、
前記入力部は、任意の時刻として呼の開始時刻を入力することを特徴とする。
単位時間Tcと単位時間Tkと単位時間Tdとは、いずれも同じ長さであることを特徴とする。
前記データ管理部は、前記データキャプチャ部によりキャプチャファイルに保存された呼制御データを、当該呼制御データの呼識別子ごとにまとめて保存し、
前記呼制御データ検索システムは、さらに、
前記データ管理部によりデータファイルに呼制御データが保存された位置を示すアドレスを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したアドレスを記憶装置内の単位時間Taごとのアドレスファイルに保存するアドレス生成部と、
処理装置を用いて、アドレスファイルを検索し、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子に対応するアドレスを抽出するアドレス検索部とを備え、
前記データ検索部は、前記アドレス検索部により抽出されたアドレスが示す位置から、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出することを特徴とする。
単位時間Tcと単位時間Tkと単位時間Taと単位時間Tdとは、いずれも同じ長さであることを特徴とする。
本発明の一の態様に係る呼制御データ検索プログラムは、
ファイルを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置とを備えるコンピュータに、
呼を一意に識別する呼識別子と呼の属性を示す少なくとも1つの属性データとを含む呼制御データをネットワークからキャプチャし、キャプチャした呼制御データを単位時間Tcごとに記憶装置内の単位時間Tcごとのキャプチャファイルに保存するデータキャプチャ処理と、
前記データキャプチャ処理によりキャプチャファイルに保存された呼制御データの属性データを含むキーを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したキーを記憶装置内の単位時間Tkごとのキーファイルに保存するキー生成処理と、
前記キー生成処理によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルに当該キーの呼識別子と同じ呼識別子に対応するキーが保存されているかどうかを判定し、当該過去のキーファイルに当該呼識別子のキーが保存されている場合には、当該過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成処理によりキーファイルに保存される当該呼識別子のキーの属性データを追加するキー更新処理と、
前記データキャプチャ処理によりキャプチャファイルに保存された呼制御データを、所定の形式で、記憶装置内の単位時間Tdごとのデータファイルに保存するデータ管理処理と、
入力装置を用いて、任意の時刻を入力する入力処理と、
処理装置を用いて、前記入力処理により入力された時刻に対応するキーファイルを検索し、キーを抽出するキー検索処理と、
処理装置を用いて、データファイルを検索し、前記キー検索処理により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出するデータ検索処理とを実行させることを特徴とする。
本発明の一の態様によれば、呼制御データ検索システムにおいて、データキャプチャ部が、ネットワークからキャプチャした呼制御データを単位時間Tcごとにキャプチャファイルに保存し、キー生成部が、キャプチャファイルに保存された呼制御データの属性データを含むキーであって、当該呼制御データの呼識別子ごとに生成したキーを単位時間Tkごとのキーファイルに保存し、キー更新部が、キーファイルにキーが保存されるときに、過去のキーファイルに当該キーの呼識別子と同じ呼識別子に対応するキーが保存されている場合には、当該過去のキーファイルに保存されている当該呼識別子のキーに、キーファイルに保存される当該呼識別子のキーの属性データを追加することにより、リアルタイムに発生する大量の呼制御データの中から所定の条件に一致するものを効率的に抽出することが可能となる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
まず、本実施の形態に係るシステム(以下、「呼制御データ検索システム」という)の構成について説明する。
図1は、呼制御データ検索システム100の構成を示すブロック図である。
図1において、呼制御データ検索システム100は、VoIPネットワーク200(ネットワークの一例)を流れるVoIPパケットを常時キャプチャファイルにキャプチャしている装置である。呼制御データ検索システム100は、一定間隔でキャプチャファイルを移動(ファイル名を変更して複写)し、移動(複写)したキャプチャファイルから、Call−IDごとに呼を抽出する。そして、検索用のキー情報(以下、単に「キー」という)を含むキーファイル、検索用データが保存された位置を示すデータ位置情報(以下、「アドレス」という)を含むアドレスファイル、検索用データとしてVoIPパケットを含むデータファイルを作成する。これにより、呼制御データ検索システム100は、検索端末300(端末装置の一例)から呼の検索要求があった場合に、その検索要求を受け付け、VoIPパケットの高速検索を行い、その検索結果を検索端末300に返すことができる。
このように、呼制御データ検索システム100は、常時行っているキャプチャと並行して、高速検索に必要な情報を生成することで、VoIPネットワーク200内の大量データを欠落なく収集することと、大量データ内からの高速検索とを両立することができる。
呼制御データ検索システム100は、データキャプチャ部101、キー生成部102、キー更新部103、アドレス生成部104、データ管理部105、入力部106、キー検索部107、アドレス検索部108、データ検索部109、出力部110を備える。また、呼制御データ検索システム100は、記憶装置151、処理装置152、入力装置153、出力装置154などのハードウェア装置(「ハードウェア資源」ともいう)を備える(又はこれらのハードウェア装置が呼制御データ検索システム100に接続される)。ハードウェア装置は呼制御データ検索システム100の各部によって利用される。
以下、各ハードウェア装置の機能について説明する。
記憶装置151は、データや情報を含むファイルを記憶する。記憶装置151は、呼制御データ検索システム100の各部がデータや情報をファイルに保存したり、ファイルを検索したり、ファイルからデータや情報を読み出したりする場合に利用される。
処理装置152は、データや情報を処理する。処理装置152は、呼制御データ検索システム100の各部がデータや情報の演算、加工、記憶装置151からの読み取り、記憶装置151内の検索、記憶装置151への書き込みなどを行う場合に利用される。
入力装置153は、データや情報を入力する。入力装置153は、呼制御データ検索システム100の各部がデータや情報を呼制御データ検索システム100の外部から入力する場合に利用される。
出力装置154は、データや情報を出力する。出力装置154は、呼制御データ検索システム100の各部がデータや情報を呼制御データ検索システム100の外部へ出力する場合に利用される。
以下、呼制御データ検索システム100の各部の機能について説明する。
データキャプチャ部101は、VoIPパケットをVoIPネットワーク200からキャプチャし、キャプチャしたVoIPパケットを単位時間Tcごとに記憶装置151内のキャプチャファイルに保存する。このとき、データキャプチャ部101は、単位時間Tcごとに別々のキャプチャファイルを作成し、キャプチャしたVoIPパケットを単位時間Tcごとのキャプチャファイルに保存する。例えば、Tc=1分とした場合、データキャプチャ部101は、VoIPネットワーク200から常時キャプチャしているVoIPパケットを1分ごとに、1分ごとのキャプチャファイルに保存する。ここで、VoIPパケットは、呼制御データの一例であり、Call−IDを含むとともに、その他のSIPパラメータを少なくとも1つ含むものである。Call−IDは、呼を一意に識別する呼識別子の一例である。Call−ID以外のSIPパラメータ(以下、単に「SIPパラメータ」という)は、呼の属性を示す属性データの一例である。
キー生成部102は、データキャプチャ部101によりキャプチャファイルに保存されたVoIPパケットのSIPパラメータを含むキーを、処理装置152を用いて、当該VoIPパケットのCall−IDごとに生成し、生成したキーを記憶装置151内のキーファイルに保存する。このとき、キー生成部102は、単位時間Tkごとに別々のキーファイルを作成し、生成したキーを単位時間Tkごとのキーファイルに保存する。例えば、Tc=Tk=1分とした場合、データキャプチャ部101が1分間にキャプチャしたVoIPパケットを1つのキャプチャファイルに保存した後、キー生成部102は、そのキャプチャファイルからVoIPパケットを全て読み出し、読み出したVoIPパケットのそれぞれに含まれるCall−IDとSIPパラメータの組み合わせを抽出する。そして、抽出したCall−IDとSIPパラメータの各組み合わせをCall−IDごとのキーとして、1分ごとのキーファイルに保存する。単位時間Tcと単位時間Tkは長さを異にしてもよいが、この例のように同じ長さとすることが望ましい。
キー更新部103は、キー生成部102によりキーファイルにキーが保存されるときに、処理装置152を用いて、過去のキーファイルに当該キーのCall−IDと同じCall−IDに対応するキーが保存されているかどうかを判定する。当該過去のキーファイルに当該Call−IDのキーが保存されている場合には、キー更新部103は、当該過去のキーファイルに保存されている当該Call−IDのキーに、キー生成部102によりキーファイルに保存される当該Call−IDのキーのSIPパラメータを追加する。本実施の形態では、キー更新部103は、処理装置152を用いて、キー生成部102によりキーファイルに保存されるキーのCall−IDと同じCall−IDに対応するキーが最初に保存されたキーファイルを、過去のキーファイルとして検出し、検出した過去のキーファイルに保存されている当該Call−IDのキーに、キー生成部102によりキーファイルに保存される当該Call−IDのキーのSIPパラメータを追加する。例えば、キー生成部102が1つのVoIPパケットから抽出したCall−IDとSIPパラメータの組み合わせを、そのCall−IDに対応するキーとして1つのキーファイルに保存した後、キー更新部103は、同じCall−IDに対応するキーが過去のキーファイルにも保存されていないかどうか確認する。同じCall−IDに対応するキーが保存されている過去のキーファイルがある場合、キー更新部103は、同じCall−IDに対応するキーが最初に保存されたキーファイル、即ち、該当する過去のキーファイルで最も古いものを検出する。そして、検出したキーファイル内の同じCall−IDに対応するキーに、キー生成部102が今回保存したキーに含まれるSIPパラメータを追加する。
データ管理部105は、データキャプチャ部101によりキャプチャファイルに保存されたVoIPパケットを、所定の形式で、記憶装置151内のデータファイルに保存する。本実施の形態では、データ管理部105は、データキャプチャ部101によりキャプチャファイルに保存されたVoIPパケットを、当該VoIPパケットのCall−IDごとにまとめて保存する。このとき、データ管理部105は、単位時間Tdごとに別々のデータファイルを作成し、VoIPパケットを単位時間Tdごとのデータファイルに保存する。例えば、Tc=Td=1分とした場合、データキャプチャ部101が1分間にキャプチャしたVoIPパケットを1つのキャプチャファイルに保存した後、データ管理部105は、そのキャプチャファイルからVoIPパケットを全て読み出し、読み出したVoIPパケットのそれぞれに含まれるCall−IDを抽出する。また、読み出したVoIPパケットを、抽出したCall−IDごとにまとめる。そして、抽出したCall−IDのハッシュ値を計算し、Call−IDごとにまとめたVoIPパケットを、計算したハッシュ値に基づいて(例えば、Call−IDのハッシュ値の若い順に)1分ごとのデータファイル内に保存する。単位時間Tcと単位時間Tdは長さを異にしてもよいが、この例のように同じ長さとすることが望ましい。
アドレス生成部104は、データ管理部105によりデータファイルにVoIPパケットが保存された位置(データファイル内でのVoIPパケットの位置)を示すアドレスを、処理装置152を用いて、当該VoIPパケットのCall−IDごとに生成して記憶装置151内のアドレスファイルに保存する(ここで、生成されるアドレスには、番地などを指す一般的なアドレスだけでなく、VoIPパケットのサイズなど、VoIPパケットの位置を示す様々な情報を含めるものとする)。このとき、アドレス生成部104は、単位時間Taごとに別々のアドレスファイルを作成し、アドレスを単位時間Taごとのアドレスファイルに保存する。例えば、Tc=Td=Ta=1分とした場合、データ管理部105が1分間にキャプチャされたVoIPパケットを1つのデータファイルに保存した後、アドレス生成部104は、そのデータファイルのどの位置にVoIPパケットが保存されているか(以下、「保存位置」という)を、Call−IDごとに特定する。さらに、Call−IDごとに、そのCall−IDを含むVoIPパケットのサイズの合計(以下、「サイズ情報」という)と、特定した保存位置の先頭(そのCall−IDを含むVoIPパケットのうち、データファイル内で一番前に保存されているVoIPパケット)を指すポインタ(データファイル内のオフセット値)を組み合わせ、この組み合わせをそのCall−IDのハッシュ値に対応するアドレスとして、1分ごとのアドレスファイルに保存する。単位時間Tcと単位時間Tdと単位時間Taは長さを異にしてもよいが、この例のように同じ長さとすることが望ましい。
入力部106は、入力装置153を用いて、検索端末300が指定する任意の時刻を入力するとともに、検索端末300が指定するSIPパラメータを少なくとも1つ入力する。本実施の形態では、入力部106は、任意の時刻として呼の開始時刻を入力する。検索端末300がCall−IDを指定する場合には、入力部106は、SIPパラメータの代わりに、あるいは、SIPパラメータとともにそのCall−IDを入力してもよい。検索端末300が検索の対象とする時間帯(呼が開始された時間帯)を指定する場合には、入力部106は、任意の時刻としてその時間帯を入力してもよい。
キー検索部107は、処理装置152を用いて、入力部106により入力された時刻に対応するキーファイルを検索し、入力部106により入力されたSIPパラメータを含むキーを抽出する。入力部106がCall−IDを入力した場合には、キー検索部107は、そのCall−IDに対応するキーを抽出する。入力部106が任意の時刻として時間帯を入力した場合には、キー検索部107は、その時間帯に対応するキーファイルを全て検索する。
アドレス検索部108は、処理装置152を用いて、アドレスファイルを検索し、キー検索部107により抽出されたキーのCall−IDと同じCall−IDに対応するアドレスを抽出する。
データ検索部109は、処理装置152を用いて、データファイルを検索し、キー検索部107により抽出されたキーのCall−IDと同じCall−IDを含むVoIPパケットを抽出する。本実施の形態では、データ検索部109は、アドレス検索部108により抽出されたアドレスが示す位置から、キー検索部107により抽出されたキーのCall−IDと同じCall−IDを含むVoIPパケットを抽出する。
出力部110は、出力装置154を用いて、データ検索部109により抽出されたVoIPパケット、あるいは、そのVoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを検索端末300に対して出力する。
図2は、呼制御データ検索システム100のハードウェア資源の一例を示す図である。
図2において、呼制御データ検索システム100は、不図示のシステムユニット、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ装置906などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、LAN(ローカルエリアネットワーク)、ゲートウェイを介してインターネットに接続されている。
呼制御データ検索システム100は、プログラムを実行するCPU911(Central・Processing・Unit)(「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう)を備えている。CPU911は、処理装置152の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置151の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905などは、入力装置153の一例である。また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置154の一例である。
通信ボード915は、LANに限らず、インターネット、あるいは、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークなどのWAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921により実行される。プログラム群923には、本実施の形態の説明において「〜部」、「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(IDentifier)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、本実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914などのメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク(MD)、DVD(Digital・Versatile・Disc)などの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
また、本実施の形態の説明において「〜部」、「〜手段」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」、「〜手段」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
次に、呼制御データ検索システム100の動作について説明する。
以下では、説明をより具体的にするため、呼制御データ検索システム100が図2に例示したコンピュータとハードウェア資源により実現されているものとする。また、キャプチャファイル、キーファイル、アドレスファイル、データファイルがそれぞれ保存される単位時間Tc、Tk、Ta、Tdをいずれも1分とする。
図3及び図4は、VoIPパケットをキャプチャしてから所定の形式で保存するまでの呼制御データ検索システム100の動作を示すフローチャートである。図5は、VoIPパケットを検索する際の呼制御データ検索システム100の動作を示すフローチャートである。
図3において、データキャプチャ部101は、通信ボード915を用いて、VoIPパケットをVoIPネットワーク200からキャプチャする(ステップS101)。そして、データキャプチャ部101は、ステップS101でキャプチャしたVoIPパケットを1分ごとに、磁気ディスク装置920内の1分ごとのキャプチャファイルに保存する(ステップS102)。
キー生成部102は、ステップS102でキャプチャファイルに保存されたVoIPパケットのSIPパラメータを含むキーを、CPU911を用いて、当該VoIPパケットのCall−IDごとに生成する(ステップS103)。そして、キー生成部102は、ステップS103で生成したキーを、磁気ディスク装置920内の1分ごとのキーファイルに保存する(ステップS104)。キーファイルは、キー生成部102によって、1分ごとに生成される。
キー更新部103は、CPU911を用いて、過去のキーファイルに、ステップS104で今回新たに保存されたキーのCall−IDと同じCall−IDに対応するキーが保存されているかどうかを判定する(ステップS105)。キー更新部103は、ステップS105で同じCall−IDに対応するキーが過去のキーファイルにも保存されていると判定した場合、CPU911を用いて、ステップS104で今回新たに保存されたキーのCall−IDと同じCall−IDに対応するキーが最初に保存されたキーファイルを検出する。そして、そのキーファイルに保存されている同じCall−IDのキーに、ステップS104で今回新たに保存されたキーのSIPパラメータを追加する(ステップS106)。一方、キー更新部103は、ステップS105で同じCall−IDに対応するキーが過去のキーファイルには保存されていないと判定した場合、ステップS106の処理は実行しない。
図4において、データ管理部105は、磁気ディスク装置920内の1分ごとのデータファイルにおいて、ステップS102でキャプチャファイルに保存されたVoIPパケットをCall−IDごとにまとめて保存する(ステップS201)。データファイルは、データ管理部105によって、1分ごとに生成される。
アドレス生成部104は、ステップS102でキャプチャファイルに保存されたVoIPパケットがステップS201で保存されたデータファイル内の位置を示すアドレス(データファイル内のオフセット値とVoIPパケットのサイズ)を、CPU911を用いて、Call−IDごとに生成する(ステップS202)。そして、アドレス生成部104は、ステップS202で生成したアドレスを、磁気ディスク装置920内の1分ごとのアドレスファイルに保存する(ステップS203)。アドレスファイルは、アドレス生成部104によって、1分ごとに生成される。
図5において、入力部106は、キーボード902やマウス903を用いて(検索端末300を呼制御データ検索システム100の一部とした場合)、あるいは、通信ボード915を用いて(検索端末300をネットワークによって呼制御データ検索システム100と接続した場合)、検索端末300が指定する呼の開始時刻とSIPパラメータを入力(受信)する(ステップS301)。
キー検索部107は、CPU911を用いて、ステップS301で入力された時刻に対応するキーファイルを検索する(ステップS302)。そして、キー検索部107は、ステップS302で入力されたSIPパラメータを含むキーを抽出する(ステップS303)。
アドレス検索部108は、CPU911を用いて、アドレスファイルを検索する(ステップS304)。そして、アドレス検索部108は、ステップS303で抽出されたキーのCall−IDと同じCall−IDに対応するアドレスを抽出する(ステップS305)。
データ検索部109は、CPU911を用いて、データファイルを検索する(ステップS306)。そして、データ検索部109は、ステップS305で抽出されたアドレスが示す位置から、ステップS303で抽出されたキーのCall−IDと同じCall−IDを含むVoIPパケットを抽出する(ステップS307)。
出力部110は、表示装置901やプリンタ装置906を用いて(検索端末300を呼制御データ検索システム100の一部とした場合)、あるいは、通信ボード915を用いて(検索端末300をネットワークによって呼制御データ検索システム100と接続した場合)、ステップS307で抽出されたVoIPパケット、あるいは、そのVoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを検索端末300に対して出力(送信)する(ステップS308)。
ここで、図3から図5までに示したフローチャートは、呼制御データ検索システム100を実現するコンピュータ上で実行されるプログラム(以下、「呼制御データ検索プログラム」という)の処理手順に相当する。この処理手順において、呼制御データ検索プログラムは、データキャプチャ処理、キー生成処理、キー更新処理、アドレス生成処理、データ管理処理、入力処理、キー検索処理、アドレス検索処理、データ検索処理、出力処理をコンピュータに実行させる。
図3のステップS101〜S102はデータキャプチャ処理の一例、ステップS103〜S104はキー生成処理の一例、ステップS105〜S106はキー更新処理の一例である。図4のステップS201はデータ管理処理の一例、ステップS202〜S203はアドレス生成処理の一例である。図5のステップS301は入力処理の一例、ステップS302〜S303はキー検索処理の一例、ステップS304〜S305はアドレス検索処理の一例、ステップS306〜S307はデータ検索処理の一例、ステップS308は出力処理の一例である。
次に、上述した呼制御データ検索システム100の動作の詳細について、その一例を示す。
図6及び図7は、図3及び図4に示した呼制御データ検索システム100の動作の一例を示す概念図である。
図6において、データキャプチャ部101は、VoIPネットワーク200上を流れるトラヒックの中からSIPメッセージを含むデータ(即ち、VoIPパケット)を抽出し、抽出したデータを磁気ディスク装置920(記憶装置151の一例)に常時出力してキャプチャファイル501aに保存している(図3のステップS101に相当)。キー生成部102、アドレス生成部104、データ管理部105(以下、これらを合わせて「キー/データ生成部」という)は、データキャプチャ部101がキャプチャファイル501aの名称を変更する(キャプチャファイル501aを別名で保存する)ことにより生成するファイルを監視する。
このように、本実施の形態では、データキャプチャ部101とキー/データ生成部を分離することで、パケットのキャプチャ処理と、キーやアドレスやデータの生成処理や管理処理を並行して実施することが可能となる。
図7において、データキャプチャ部101は、例えば2006年11月1日の10時15分00秒〜10時15分59秒にキャプチャしたVoIPパケットを含むキャプチャファイル501aのファイル名を、“2006−11−01”や“10:15”などの日時を示す文字列を含むものに変更し、2006年11月1日の10時15分00秒〜10時15分59秒のキャプチャファイル501bとして保存する(図3のステップS102に相当)。そして、キャプチャファイル501aに保存されているデータを消去した後、再度キャプチャを開始する。データキャプチャ部101が名称を変更したキャプチャファイル501bは、キー/データ生成部の処理対象となる。
キー生成部102は、2006年11月1日の10時15分00秒〜10時15分59秒のキャプチャファイル501bを磁気ディスク装置920(記憶装置151の一例)から読み込み、このキャプチャファイル501bに保存されているVoIPパケットからCall−IDとSIPパラメータを抽出する。そして、それぞれのCall−IDとSIPパラメータの組み合わせをキーとして、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bを生成し、磁気ディスク装置920内に保存する(図3のステップS103〜S104に相当)。このキーファイル502bのファイル名にも、“2006−11−01”や“10:15”などの日時を示す文字列が含まれる。
ここで、図8に示すように、キー生成部102が過去に、Call−IDが“A”でSIPパラメータが“X”となるキーを生成し、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存していたものとする。そして、2006年11月1日の9時45分より前のキーファイル502で、Call−IDが“A”のキーを含むものは存在しないものとする。さらに、キー生成部102が今回新たにCall−IDが“A”でSIPパラメータが“Y”となるキーを生成し、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存したものとする。このとき、キー更新部103は、Call−IDと、キー生成部102がそのCall−IDのキーを最初に保存したキーファイル502を特定するためのファイル情報を、RAM914などのメモリ503上で管理している。ファイル情報には、例えば、各Call−IDに対応するキーが最初に保存されたキーファイル502へのポインタやそのキーファイル502の名称などが含まれている。キー更新部103は、このようなファイル情報を参照するために、キー生成部102が今回生成したキーのCall−IDでメモリ503を検索する(図3のステップS105に相当)。
今回生成されたキーのCall−IDは“A”であるため、図9に示すように、キー更新部103は、Call−IDを“A”としてメモリ503を検索し、このCall−IDに対応するファイル情報から2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aへのポインタやそのファイル名を参照する。そして、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにアクセスし、このキーファイル502a内のCall−IDを“A”とするキーに、今回生成されたキーのSIPパラメータとして“Y”を追加する(図3のステップS106に相当)。その結果、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502a内のCall−IDを“A”とするキーが更新され、SIPパラメータとして“X”と“Y”を含むキーとなる。
このように、本実施の形態では、Call−IDで識別される1つの呼に関連するVoIPパケットが、ファイルの作成間隔を跨って出現する場合であっても、同じCall−IDに対応する最初のキーに全てのSIPパラメータを含めることで、キーを用いた検索処理を実施する際に、最初のキーを参照するだけで該当するCall−IDに関わる全てのVoIPパケットを抽出することができる。その結果、高速検索が可能となる。
前述したように、図7において、キー生成部102が、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bを生成した後、あるいは、それと並行して、データ管理部105は、2006年11月1日の10時15分00秒〜10時15分59秒のキャプチャファイル501bを磁気ディスク装置920(記憶装置151の一例)から読み込み、このキャプチャファイル501bに保存されているVoIPパケットを抽出する。そして、各VoIPパケットからCall−IDを抽出し、CPU911により、それぞれのCall−IDのハッシュ値を計算する。データ管理部105は、さらに、計算したハッシュ値に基づいて、各Call−IDを含むVoIPパケットの保存位置を決定し、決定した保存位置に各Call−IDのVoIPパケットがまとめて配置されるように、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bを生成し、磁気ディスク装置920内に保存する(図4のステップS201に相当)。具体的には、データ管理部105は、それぞれのVoIPパケットをCall−IDのハッシュ値の昇順に並べたデータファイル505bを磁気ディスク装置920内に保存する。このデータファイル505bのファイル名にも、“2006−11−01”や“10:15”などの日時を示す文字列が含まれる。
アドレス生成部104は、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bを磁気ディスク装置920から読み込み、このデータファイル505bに保存されているVoIPパケットの保存位置を、Call−IDごとに特定する。そして、VoIPパケットの保存位置の先頭へのポインタ(データファイル505b内のオフセット値)とサイズ情報をCall−IDごとに組み合わせ、各Call−IDのハッシュ値に対応するアドレスとして、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bを生成し、磁気ディスク装置920内に保存する(図4のステップS202〜S203に相当)。このアドレスファイル504bのファイル名にも、“2006−11−01”や“10:15”などの日時を示す文字列が含まれる。
上記のように、本実施の形態では、それぞれのファイルの名称に、ファイルに保存されたデータに対応する日時を示す文字列が含まれているため、キー検索部107、アドレス検索部108、データ検索部109が、それぞれのファイルを検索する際に、効率的に検索処理を実施することが可能となる。
この例では、データ管理部105が複数のCall−IDのハッシュ値を計算したときに、計算結果が同一となり、いわゆるハッシュの衝突が生じる場合がある。この場合、従来技術と同様に対応可能である。例えば、ハッシュの衝突が生じたとき、アドレス生成部104は、ハッシュ値が同一となるCall−IDを含むVoIPパケットの位置を示すアドレスを線形リストとして管理することができる。このとき、アドレスファイル504bにおいて、該当するハッシュ値に対応するアドレスには、線形リストの次のアドレスを指すポインタが含まれることとなる。そして、ハッシュ値が同一となるCall−IDを含むVoIPパケットの位置を示すアドレスを検索する際には、そのハッシュ値に対応するアドレスがアドレスファイル504b内で最初にアクセスされ、そこから線形リスト内のポインタを辿って適切なアドレスが抽出される。
この例では、データ管理部105は、Call−IDのハッシュ値を計算した後、計算したハッシュ値をキー生成部102に提供する。キー生成部102は、データ管理部105が計算したCall−IDのハッシュ値を、そのCall−IDが対応するキーとともにキーファイル502bに保存する。これにより、アドレス検索部108は、Call−IDの代わりにハッシュ値を用いて検索処理を行うことが可能となる。
ここで、この例におけるキーファイル502の構成の一例を図10に示す。
図10において、キーファイル502は、可変長レコードのファイル形式で構成されている。キーファイル502は、単位時間Tk(この例では、1分)ごとに論理的に区別できる形式であればどのように構成されていてもよいが、ファイルシステム上で単位時間Tkごとに別個のファイルとして構成されることが望ましい。それぞれのキーファイル502が、ファイルシステム上で別々のファイルとなっている場合、この例のように、ファイル名を利用した処理が可能となる。キーファイル502だけでなく、キャプチャファイル501、アドレスファイル504、データファイル505についても同様である。
キーファイル502のレコードは、1分ごとのキーファイル502においてCall−IDごとに存在する。各レコードは、「レコード長」、「キー数」、「パケットタイプ」、「ハッシュ値」、「タイムスタンプ」、「タイムスタンプ(ミリ秒)」、「ヘッダ部長」、「直前キーデータ登録時刻」、「直前キーデータオフセット」、「内部オフセット」、「キー長」、「キーオフセット」、「キーデータ」の13種類のカラムデータで構成されている。「レコード長」、「キー数」、「パケットタイプ」、「ハッシュ値」、「タイムスタンプ」、「タイムスタンプ(ミリ秒)」、「ヘッダ部長」、「直前キーデータ登録時刻」、「直前キーデータオフセット」、「内部オフセット」の10個のカラムは、いずれも固定長であり、レコードのヘッダ部を構成している。「キー長」、「キーオフセット」、「キーデータ」の3種類のカラムは、レコードに含まれるキーを構成している。
1つのレコードにおいて、
・「レコード長」は、このレコード全体の長さをバイト数で表す。
・「キー数」は、このレコード中のSIPパラメータの数(種類)を整数Nで表す。この例では、N=10個(種類)となる。
・「パケットタイプ」は、このレコードが対応する呼(SIPメッセージ)のタイプを表す。この例では、“INVITE”又は“REGISTER”となる。
・「ハッシュ値」は、このレコードが対応するCall−IDのハッシュ値を表す。このハッシュ値は、前述したように、アドレス生成部104が計算するものである。
・「タイムスタンプ」は、このレコードが対応するCall−IDの最初のパケット受信時刻を秒単位で表す。
・「タイムスタンプ(ミリ秒)」は、このレコードが対応するCall−IDの最初のパケット受信時刻の1秒以下の数値をミリ秒単位で表す。
・「ヘッダ部長」は、このレコードのヘッダ部の長さをバイト数で表す。この例では、“28”バイトとなる。
・「直前キーデータ登録時刻」は、このレコードが対応するCall−IDと同じCall−IDのレコードで、このレコードの直前に登録されたもの(以下、「直前レコード」という)の登録時刻を分単位で表す。このレコードより前に同じCall−IDに対応するレコードが登録されていない場合には、“0”となる。
・「直前キーデータオフセット」は、直前レコードのキーファイル502内のオフセットである。このレコードより前に同じCall−IDに対応するレコードが登録されていない場合には、“0”となる。
・「内部オフセット」は、このレコードのキーにSIPパラメータが追加されたときに、このレコードを更新する代わりに生成されたレコードのキーファイル502内のオフセットである。初期値は、“0”となる。
1つのレコードにおいて、10個の「キー長」、10個の「キーオフセット」、10種類の「キーデータ」からなる1つのキーが存在する。
・「キー長」は、10種類あるSIPパラメータ(ここでは、Call−IDもSIPパラメータに含む)それぞれのデータの長さをバイト数で表す。この例では、1つの「キー長」カラムの長さを2バイトとしているので、「キー長」の最大値は“65535”となる。また、該当するSIPパラメータのデータが存在しない場合には“0”とする。
・「キーオフセット」は、SIPパラメータそれぞれのデータが格納されている位置をオフセットで表す。
・「キーデータ」は、SIPパラメータそれぞれのデータの格納場所である。
1つのキーにおいて、1種類のSIPパラメータのデータが複数存在する場合には、そのSIPパラメータが固定長ならば、「キーデータ」内で単にデータを連結して格納する。一方、そのSIPパラメータが可変長ならば、「キーデータ」内でデータ同士をNULLなどで区切ってデータを格納する。
図10に例示したキーファイル502におけるキーの構成の一例を図11に示す。
1つのキーにおいて、「Call−ID」は、このキーに対応するCall−IDを表す。Call−IDを除くと、このキーには、9種類のSIPパラメータが存在する。
(1)「発IPアドレス」は、INVITE/REGISTERのSIPメッセージに含まれる発IPアドレスを表す。
(2)「着IPアドレス」は、INVITEのSIPメッセージに含まれる着IPアドレスを表す。
(3)「発信者電話番号1」は、INVITEのSIPメッセージに含まれるP−Asserted−Identityフィールドを表す。P−Asserted−Identityフィールドは、番号通知用の発信者電話番号を指定するものである。
(4)「発信者電話番号2」は、INVITEのSIPメッセージに含まれるFromフィールドを表す。Fromフィールドは、発信者電話番号と網アドレスを指定するものであり、例えば、“050xxxxxxxx@xxx.co.jp”といった形式で表される。
(5)「発信者電話番号3」は、INVITEのSIPメッセージに含まれるP−Preferred−Identityフィールドを表す。P−Preferred−Identityフィールドは、番号通知用の発信者電話番号を指定するものである。
(6)「ユーザ認証用の電話番号」は、INVITEのSIPメッセージに含まれるProxy−Authorizationフィールドのusername部を表す。
(7)「相手電話番号1」は、SIPメッセージに含まれるToフィールドを表す。Toフィールドは、相手電話番号と網アドレスを指定するものであり、例えば、“050xxxxxxxx@xxx.co.jp”といった形式で表される。
(8)「ステータスコード」は、INVITEに対する応答のSIPメッセージに含まれるステータスコードである。
(9)「相手電話番号2」は、SIPメッセージに含まれるRequest−urlを表す。Request−urlは、相手電話番号と網アドレスを指定するものであり、例えば、“050xxxxxxxx@xxx.co.jp”といった形式で表される。
上記(3)〜(6)の「発信者電話番号1」、「発信者電話番号2」、「発信者電話番号3」、「ユーザ認証用の電話番号」は、いずれも発信元の電話番号を表すが、形式や用途を異にするものである。また、上記(7)及び(9)の「相手電話番号1」、「相手電話番号2」は、いずれも相手先の電話番号を表すが、形式や用途を異にするものである。
ここで、図10に例示したキーファイル502が、図9に例示したキー更新処理によりどのように更新されるかを説明する。
図9に示した例では、キー更新部103が、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにアクセスし、このキーファイル502a内のCall−IDを“A”とするキーに、新たに2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存されたキーのSIPパラメータである“Y”を追加していた。そして、その結果、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502a内のCall−IDを“A”とするキーが更新され、SIPパラメータとして“X”と“Y”を含むキーとなった。
キー更新部103がキーの更新を行う直前、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにおいて、Call−IDを“A”とするキーのレコードは1つしかなかったものとする。ここでは、このレコードを最初のレコードという。2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている最初のレコードの一例を図12に示す。図中、左端の数字は各行の左端のバイトがレコードの先頭から何バイト目であるかを表している。同様に、右端の数字は各行の右端のバイトがレコードの先頭から何バイト目であるかを表している。
図12において、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている最初のレコードが有する主なカラムデータの内容を以下に示す。
・「タイムスタンプ」:例えば、2006年11月1日の9時45分30秒である。
・「直前キーデータ登録時刻」:直前レコードが存在しないため、“0”である。
・「直前キーデータオフセット」:直前レコードが存在しないため、“0”である。
・「内部オフセット」:初期値の“0”である。
・「キー長」(No.0):「Call−ID」のデータの長さである。ここでは、“a”とする。
・「キー長」(No.8):「ステータスコード」のデータを1つ含んでいるため、“3”である。
・「キーデータ」(No.0):「Call−ID」は“A”である。
・「キーデータ」(No.8):「ステータスコード」は“X”である。
キー更新部103がキーの更新を行う直前、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bにおいて、Call−IDを“A”とするキーのレコードは1つしかない。2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存されている最初のレコードの一例を図13に示す。このレコードは、キー更新部103がキーの更新を行うときには更新されない。
図13において、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存されている最初のレコードが有する主なカラムデータの内容を以下に示す。
・「タイムスタンプ」:2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている最初のレコードと同様に、2006年11月1日の9時45分30秒である。
・「直前キーデータ登録時刻」:直前レコードが2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されているため、2006年11月1日の9時45分である。このカラムデータに基づいて、直前レコードが保存されているキーファイル502aのファイル名を知ることができる。
・「直前キーデータオフセット」:2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにおける最初のレコードのオフセットである。ここでは、“n”とする。このカラムデータに基づいて、直前レコードが保存されているキーファイル502a内の位置を知ることができる。
・「内部オフセット」:初期値の“0”である。
・「キー長」(No.0):「Call−ID」のデータの長さである。ここでは、“a”とする。
・「キー長」(No.8):「ステータスコード」のデータを1つ含んでいるため、“3”である。
・「キーデータ」(No.0):「Call−ID」は“A”である。
・「キーデータ」(No.8):「ステータスコード」は“Y”である。
キー更新部103がキーの更新を行うときは、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにおいて、Call−IDを“A”とするキーのレコードは更新前のものと更新後のものの2つとなる。ここでは、更新後のレコードを次のレコードという。2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている最初のレコードの一例を図14に、このキーファイル502aに保存されている次のレコードの一例を図15に示す。
図14において、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている最初のレコードが有する主なカラムデータの内容を以下に示す。
・「タイムスタンプ」:2006年11月1日の9時45分30秒のままである。
・「直前キーデータ登録時刻」:“0”のままである。
・「直前キーデータオフセット」:“0”のままである。
・「内部オフセット」:2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにおける次のレコードのオフセットである。ここでは、“m”とする。このカラムデータに基づいて、次のレコードが保存されているキーファイル502a内の位置を知ることができる。
・「キー長」(No.0):「Call−ID」のデータの長さである。ここでは、“a”とする。
・「キー長」(No.8):“3”のままである。
・「キーデータ」(No.0):「Call−ID」は“A”である。
・「キーデータ」(No.8):「ステータスコード」は“X”である。
図15において、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されている次のレコードが有する主なカラムデータの内容を以下に示す。
・「タイムスタンプ」:最初のレコードと同様に、2006年11月1日の9時45分30秒である。
・「直前キーデータ登録時刻」:最初のレコードと同様に、“0”である。
・「直前キーデータオフセット」:最初のレコードと同様に、“0”である。
・「内部オフセット」:初期値の“0”である。
・「キー長」(No.0):「Call−ID」のデータの長さである。ここでは、“a”とする。
・「キー長」(No.8):「ステータスコード」のデータが1つ追加されたため、“6”である。
・「キーデータ」(No.0):「Call−ID」は“A”である。
・「キーデータ」(No.8):「ステータスコード」は“X”及び“Y”である。新しいデータである“Y”は直前のデータである“X”に連結されている。ここで、「ステータスコード」は固定長であるため、“X”と“Y”の間にNULLなどを挿入する必要はない。
このように、本実施の形態では、キーファイル502に設けた「内部オフセット」のカラムを利用することにより、更新前のレコードはほとんど変更せずに、更新後のレコードを単純に追加していくだけでキー更新処理を実施することが可能となる。
図16は、図5に示した呼制御データ検索システム100の動作の一例を示す概念図である。
図16において、VoIPネットワーク200の運用者などが、例えば2006年11月1日の9時45分に開始された呼で異常切断があったものを検索したい場合には、検索端末300のユーザとして、呼の開始時刻を、2006年11月1日の9時45分とし、SIPパラメータを、異常切断を示すステータスコード(切断原因コード)である“Y”とする検索条件を指定する。入力部106は、ユーザからの検索条件の入力を、キーボード902やマウス903を介して受け付ける(図5のステップS301に相当)。
キー検索部107は、CPU911により、検索条件で指定された時刻に対応する2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aを検索し、検索条件でステータスコードとして指定された“Y”を含むキーを全て抽出する(図5のステップS302〜S303に相当)。この例では、Call−IDが“A”であり、ステータスコードとして“X”及び“Y”を含むキーを抽出する。また、このキーを記録しているキーファイル502aのレコードから、Call−IDのハッシュ値を取得する。図16には示していない2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bにも、Call−IDが“A”であり、ステータスコードとして“Y”を含むキーが存在するが、キー検索部107はこのキーファイル502bを検索する必要がない。
アドレス検索部108は、CPU911により、2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aと2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bを検索し、それぞれのアドレスファイル504から、キー検索部107により取得されたCall−IDのハッシュ値に対応するアドレスを抽出する(図5のステップS304〜S305に相当)。アドレス検索部108は、このように、キー検索部107により抽出されたキーのレコードから取得可能な情報を利用して、検索対象とするアドレスファイル504を初めから絞り込んでもよいが、単に磁気ディスク装置920(記憶装置151の一例)内の全てのアドレスファイル504を検索してもよいし、検索条件で指定された時刻以降のアドレスファイル504のみを検索してもよい。また、アドレス検索部108は、キー検索部107からCall−IDのハッシュ値ではなく、Call−IDを取得して自らそのハッシュ値を計算し、計算したハッシュ値に対応するアドレスを抽出してもよい。
データ検索部109は、CPU911により、アドレス検索部108により2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aから抽出されたアドレスに含まれるポインタが示す位置から、そのアドレスに含まれるサイズ情報が示すサイズ分のVoIPパケットを抽出する。即ち、2006年11月1日の9時45分00秒〜9時45分59秒のデータファイル505aから、Call−IDとして“A”を含むVoIPパケットを抽出する。また、データ検索部109は、アドレス検索部108により2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bから抽出されたアドレスに含まれるポインタが示す位置から、そのアドレスに含まれるサイズ情報が示すサイズ分のVoIPパケットを抽出する。即ち、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bから、Call−IDとして“A”を含むVoIPパケットを抽出する(図5のステップS306〜S307に相当)。
出力部110は、表示装置901の表示画面に、データ検索部109により抽出されたVoIPパケット、あるいは、当該VoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを出力する(図5のステップS308に相当)。これにより、VoIPネットワーク200の運用者などは、2006年11月1日の9時45分に開始された呼で異常切断があったものを容易に発見することができる。
このように、本実施の形態では、検索条件に検索用のキーを用いるため、検索時のパケット解析が不要となり、高速な検索が可能となる。また、検索用のデータをCall−IDごとに並べ替えているため、データ抽出時にはシーケンシャルアクセスによる高速なデータ抽出が可能となる。
この例では、キー検索部107が、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aから、検索条件でステータスコードとして指定された“Y”を含むキーを全て抽出しているが、この場合、2006年11月1日の9時45分に開始された呼以外の呼に係るキーも抽出される可能性がある。そこで、2006年11月1日の9時45分に開始された呼のみ、即ち、2006年11月1日の9時45分にVoIPパケットがキャプチャされた呼のうち、当該VoIPパケットが当該呼に係る最初のVoIPパケットであるものを検索対象とするために、キー検索処理において抽出するキーを限定することが望ましい。
キー検索処理におけるキーの限定方法として、キー検索部107は、検索条件で指定された時刻に対応する2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aを検索する際に、タイムスタンプが2006年11月1日の9時45分00秒〜9時45分59秒の範囲内にあるレコードのみからキーを抽出することにしてもよい。この例では、タイムスタンプが2006年11月1日の9時45分30秒となっているレコードから、Call−IDが“A”であり、ステータスコードとして“X”及び“Y”を含むキーを抽出する。
別の限定方法として、キー検索部107は、検索条件で指定された時刻に対応する2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aを検索する際に、直前レコードが存在しないレコードのみからキーを抽出することにしてもよい。この例では、直前キーデータ登録時刻が“0”となっているレコードから、Call−IDが“A”であり、ステータスコードとして“X”及び“Y”を含むキーを抽出する。
本実施の形態では、図5のステップS301において、入力部106は、検索端末300が指定する呼の開始時刻とSIPパラメータを入力しているが、検索端末300が指定する呼の開始時刻のみを入力してもよい。この場合、ステップS303において、キー検索部107は、ステップS302で検索したキーファイルから、全てのキーを抽出する。
また、図5のステップS301において、入力部106は、検索端末300が指定する時間帯のみを入力してもよい。この場合、ステップS302において、キー検索部107は、ステップS301で入力された時間帯に対応するキーファイルを全て検索し、ステップS303において、ステップS302で検索したキーファイルの各々から、全てのキーを抽出する。
実施の形態2.
実施の形態1において、図16に示した例では、検索端末300のユーザが呼の開始時刻を検索条件として指定しているが、任意の時刻を指定してもよい。
例えば2006年11月1日の10時15分に制御がなされた呼で特定の事象があったものを検索したい場合には、検索端末300のユーザは、時刻を、2006年11月1日の10時15分とし、SIPパラメータを、特定の事象があったことを示すステータスコードである“X”とする検索条件を指定する。入力部106は、ユーザからの検索条件の入力を、キーボード902やマウス903を介して受け付ける。
キー検索部107は、CPU911により、検索条件で指定された時刻に対応するキーファイル502として、図16には示していない2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bを検索し、全てのキーを抽出する。さらに、抽出したキーが含まれているレコードの直前キーデータ登録時刻と直前キーデータオフセットを参照し、その直前キーデータ登録時刻をファイル名に含むキーファイル502内で、その直前キーデータオフセットが示す位置にある直前レコードを読み出す。読み出したレコードに対する直前レコードも存在する場合には、順番に直前レコードを辿っていき、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bから抽出したキーと同じCall−IDが最初に登録されたキーファイル502から、このCall−IDに対応するキーを抽出する。キー検索部107は、このように抽出したキーのうち、さらに、検索条件でステータスコードとして指定された“X”を含むキーのみを抽出する。この例では、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aから、Call−IDが“A”であり、ステータスコードとして“X”及び“Y”を含むキーを抽出する。また、このキーを記録しているキーファイル502aのレコードから、Call−IDのハッシュ値を取得する。
アドレス検索部108は、CPU911により、2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aと2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bを検索し、それぞれのアドレスファイル504から、キー検索部107により取得されたCall−IDのハッシュ値に対応するアドレスを抽出する。
データ検索部109は、CPU911により、アドレス検索部108により2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。また、データ検索部109は、アドレス検索部108により2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。
出力部110は、表示装置901の表示画面に、データ検索部109により抽出されたVoIPパケット、あるいは、当該VoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを出力する。これにより、検索端末300のユーザは、2006年11月1日の10時15分に制御がなされた呼で特定の事象があったものを容易に発見することができる。
このように、本実施の形態では、キーファイル502に設けた「直前キーデータ登録時刻」と「直前キーデータオフセット」のカラムを利用することにより、あるレコードから順番に直前レコードを辿っていき、そのレコードのキーと同じCall−IDが最初に登録されたキーファイル502から、このCall−IDに対応するキーを読み出すことができる。読み出したキーには、当該Call−IDに係るSIPパラメータが全て追加されているので、当該Call−IDから特定される呼に関する情報を効率的に取得することが可能となる。
実施の形態3.
実施の形態1では、例えば、キー生成部102が1つのVoIPパケットから抽出したCall−IDとSIPパラメータの組み合わせを、そのCall−IDに対応するキーとして1つのキーファイルに保存した後、キー更新部103は、同じCall−IDに対応するキーが保存されている過去のキーファイルがある場合、そのCall−IDに対応するキーが最初に保存されたキーファイル、即ち、該当する過去のキーファイルで最も古いものを検出している。一方、本実施の形態では、同じCall−IDに対応するキーが保存されている過去のキーファイルがある場合、キー更新部103は、そのCall−IDに対応するキーが保存されている全てのキーファイル、即ち、該当する過去のキーファイル全てを検出する。そして、検出したキーファイルの全てについて、各キーファイル内の同じCall−IDに対応するキーに、キー生成部102が今回保存したキーに含まれるSIPパラメータを追加する。
実施の形態1において、図16に示した例では、キー生成部102が過去に、Call−IDが“A”でSIPパラメータが“X”となるキーを生成し、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存している。そして、キー生成部102が新たにCall−IDが“A”でSIPパラメータが“Y”となるキーを生成し、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存した後、キー更新部103が2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにアクセスし、このキーファイル502a内のCall−IDを“A”とするキーに、SIPパラメータとして“Y”を追加している。本実施の形態において、以下の例では、その後さらに、キー生成部102が新たにCall−IDが“A”でSIPパラメータが“Z”となるキーを生成し、2006年11月1日の10時30分00秒〜10時30分59秒のキーファイル502cに保存するものとする。そして、キー更新部103が2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aと2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bにアクセスし、キーファイル502a、キーファイル502b内のCall−IDを“A”とするキーに、SIPパラメータとして“Z”を追加するものとする。つまり、以下の例では、Call−IDが“A”であるVoIPパケットが、少なくとも3回(具体的には、2006年11月1日の9時45分、10時15分、10時30分に)キャプチャされていることになる。そして、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aには、SIPパラメータとして“X”、“Y”、“Z”が、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bには、SIPパラメータとして“Y”、“Z”が、2006年11月1日の10時30分00秒〜10時30分59秒のキーファイル502cには、SIPパラメータとして“Z”が保存されていることになる。
また、実施の形態1において、図16に示した例では、検索端末300のユーザが呼の開始時刻を検索条件として指定している。本実施の形態においても、同様の例が適用できるが、以下の例では、検索端末300のユーザが、任意の時刻を指定するものとする。
例えば2006年11月1日の10時15分に制御がなされた呼で特定の事象があったものを検索したい場合には、検索端末300のユーザは、時刻を、2006年11月1日の10時15分とし、SIPパラメータを、特定の事象があったことを示すステータスコードである“Z”とする検索条件を指定する。ここでは、検索端末300のユーザは、検索条件として、さらに、Call−IDを“A”と指定してもよいが、Call−IDが指定されない場合には、全てのCall−IDを検索の対象とすればよい。入力部106は、ユーザからの検索条件の入力を、キーボード902やマウス903を介して受け付ける。
キー検索部107は、CPU911により、検索条件で指定された時刻に対応するキーファイル502として、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bを検索し、検索条件でステータスコードとして指定された“Z”を含むキーを全て抽出する。この例では、Call−IDが“A”であり、ステータスコードとして“Y”及び“Z”を含むキーを抽出する。また、このキーを記録しているキーファイル502bのレコードから、Call−IDのハッシュ値を取得する。2006年11月1日の10時30分00秒〜10時30分59秒のキーファイル502cにも、Call−IDが“A”であり、ステータスコードとして“Z”を含むキーが存在するが、キー検索部107はこのキーファイル502cを検索する必要がない。また、2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aにも、Call−IDが“A”であり、ステータスコードとして“Z”を含むキーが存在するが、キー検索部107はこのキーファイル502aも検索する必要がない。
アドレス検索部108は、CPU911により、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bと現在時刻に対応するアドレスファイル504の間に保存された全てのアドレスファイル504を検索し、それぞれのアドレスファイル504から、キー検索部107により取得されたCall−IDのハッシュ値に対応するアドレスを抽出する。この例では、少なくとも2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bと図示していない2006年11月1日の10時30分00秒〜10時30分59秒のアドレスファイル504cからアドレスを抽出することになる。
データ検索部109は、CPU911により、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。即ち、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bから、Call−IDとして“A”を含むVoIPパケットを抽出する。また、データ検索部109は、アドレス検索部108により2006年11月1日の10時30分00秒〜10時30分59秒のアドレスファイル504cから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。即ち、図示していない2006年11月1日の10時30分00秒〜10時30分59秒のデータファイル505cから、Call−IDとして“A”を含むVoIPパケットを抽出する。その他、もしアドレスファイル504から抽出されたアドレスがあれば、同様に、当該アドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。
出力部110は、表示装置901の表示画面に、データ検索部109により抽出されたVoIPパケット、あるいは、当該VoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを出力する。これにより、検索端末300のユーザは、2006年11月1日の10時15分に制御がなされた呼で特定の事象があったものを容易に発見することができる。
このように、本実施の形態では、ユーザが指定した時刻に対応するキーファイル502のみを検索すれば、読み出したキーに、その時刻以降に発生したSIPパラメータが全て追加されているので、呼に関する情報を効率的に取得することが可能となる。
実施の形態4.
実施の形態3において示した例では、検索端末300のユーザが任意の時刻を検索条件として指定している。一方、本実施の形態では、検索端末300のユーザが、任意の時間帯を指定するものとする。
例えば2006年11月1日の10時15分から10時30分に制御がなされた呼で特定の事象があったものを検索したい場合には、検索端末300のユーザは、時間帯の開始時刻を、2006年11月1日の10時15分とし、時間帯の終了時刻を、2006年11月1日の10時30分とし、SIPパラメータを、特定の事象があったことを示すステータスコードである“Z”とする検索条件を指定する。ここでも、検索端末300のユーザは、検索条件として、さらに、Call−IDを“A”と指定してもよいが、Call−IDが指定されない場合には、全てのCall−IDを検索の対象とすればよい。入力部106は、ユーザからの検索条件の入力を、キーボード902やマウス903を介して受け付ける。
キー検索部107は、CPU911により、検索条件で指定された時刻帯に対応するキーファイル502として、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bから2006年11月1日の10時30分00秒〜10時30分59秒のキーファイル502cまでの16個のキーファイル502を検索し、検索条件でステータスコードとして指定された“Z”を含むキーを全て抽出する。この例では、まず、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bから、Call−IDが“A”であり、ステータスコードとして“Y”及び“Z”を含むキーを抽出する。検索条件として、Call−IDのように一意に決まるSIPパラメータが指定されている場合には、この時点、即ち、最初のキーが抽出された時点でキー検索処理を終了してもよい(例えば、Call−IDとして“A”が指定されていれば、Call−IDが“A”である最初のキーが抽出されている現時点で、既に必要なキーは抽出されている)。その他の場合には、上記時間帯に対応するキーファイル502を古いものから順次検索して、Call−IDのように一意に決まるSIPパラメータが同一の2番目以降のキーは、対象外とみなしてもよい。キー検索部107は、抽出したキーを記録しているキーファイル502のレコードから、Call−IDのハッシュ値を取得する。
アドレス検索部108は、CPU911により、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bと2006年11月1日の10時30分00秒〜10時30分59秒のアドレスファイル504cの間に保存された全てのアドレスファイル504を検索し、それぞれのアドレスファイル504から、キー検索部107により取得されたCall−IDのハッシュ値に対応するアドレスを抽出する。この例では、少なくとも2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bと図示していない2006年11月1日の10時30分00秒〜10時30分59秒のアドレスファイル504cからアドレスを抽出することになる。
データ検索部109は、CPU911により、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。即ち、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bから、Call−IDとして“A”を含むVoIPパケットを抽出する。また、データ検索部109は、アドレス検索部108により2006年11月1日の10時30分00秒〜10時30分59秒のアドレスファイル504cから抽出されたアドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。即ち、図示していない2006年11月1日の10時30分00秒〜10時30分59秒のデータファイル505cから、Call−IDとして“A”を含むVoIPパケットを抽出する。その他、もしアドレスファイル504から抽出されたアドレスがあれば、同様に、当該アドレスに含まれるポインタが示す位置から、Call−IDとして“A”を含むVoIPパケットを抽出する。
出力部110は、表示装置901の表示画面に、データ検索部109により抽出されたVoIPパケット、あるいは、当該VoIPパケットに含まれるCall−IDやSIPパラメータの一覧などを出力する。これにより、検索端末300のユーザは、2006年11月1日の10時15分から10時30分に制御がなされた呼で特定の事象があったものを容易に発見することができる。
このように、本実施の形態では、ユーザが指定した時間帯に対応するキーファイル502から各Call−IDについて最初に読み出したキーに、そのキーが対応する時刻以降に発生したSIPパラメータが全て追加されているので、呼に関する情報を効率的に取得することが可能となる。
実施の形態5.
実施の形態1において、図7に示した例では、データ管理部105は、キャプチャファイル501bに保存されているVoIPパケットを抽出する度に、それぞれのVoIPパケットをCall−IDのハッシュ値の昇順に並べて、それぞれのデータファイル505内で同じCall−IDのVoIPパケットがまとめて配置されるようにしていたが、磁気ディスク装置920(記憶装置151の一例)内のデータファイル505全体で同じCall−IDのVoIPパケットがまとめて配置されるようにしてもよい。
例えば、キー生成部102が、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bを生成した後、データ管理部105は、2006年11月1日の10時15分00秒〜10時15分59秒のキャプチャファイル501bを磁気ディスク装置920から読み込み、このキャプチャファイル501bに保存されているVoIPパケットからCall−IDを抽出する。データ管理部105は、抽出したCall−IDのうち、キー生成部102が過去のキーファイル502に保存したキーと同じものについては無視する。この例では、キー更新部103が、Call−IDを“A”とするキーが2006年11月1日の9時45分00秒〜9時45分59秒のキーファイル502aに保存されていることを検出するため、データ管理部105は、このCall−IDを無視する。一方、データ管理部105は、2006年11月1日の10時15分00秒〜10時15分59秒のキーファイル502bに保存されたキーが、対応するCall−IDの最初のキーであれば、そのCall−IDについては、ハッシュ値を計算し、計算したハッシュ値に基づいて、そのCall−IDを含むVoIPパケットの保存位置を決定する。データ管理部105は、さらに、決定した保存位置に各Call−IDのVoIPパケットがまとめて配置されるように、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bを生成し、磁気ディスク装置920内に保存する。
このとき、データ管理部105は、今回ハッシュ値を計算していないCall−IDを含むVoIPパケットは、過去のデータファイル505に保存すべきものであると判断する。そして、それぞれのVoIPパケットのCall−IDのキーが保存されているキーファイル502の時間と対応する磁気ディスク装置920内の過去のデータファイル505を検索し、同じCall−IDのVoIPパケットが保存されているデータファイル505に今回のVoIPパケットを挿入する。これにより、磁気ディスク装置920内のデータファイル505全体で同じCall−IDのVoIPパケットがまとめて配置されるようにする。
アドレス生成部104は、図7に示した例と同様に、2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bを磁気ディスク装置920から読み込み、このデータファイル505bに保存されているVoIPパケットの保存位置を、Call−IDごとに特定する。そして、VoIPパケットの保存位置の先頭へのポインタ(データファイル505b内のオフセット値)とサイズ情報をCall−IDごとに組み合わせ、各Call−IDのハッシュ値に対応するアドレスとして、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bを生成し、磁気ディスク装置920内に保存する。
このように、本実施の形態では、VoIPパケットが磁気ディスク装置920内のデータファイル505全体でCall−IDごとにまとめて配置されるため、検索端末300のユーザが、例えば2006年11月1日の9時45分に開始された呼で異常切断があったものを検索したい場合には、アドレス検索部108は、2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aのみを検索すればよい。そして、データ検索部109は、アドレス検索部108により2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aから抽出されたアドレスに基づいて、2006年11月1日の9時45分00秒〜9時45分59秒のデータファイル505aのみにアクセスし、2006年11月1日の9時45分に開始された呼に係るVoIPパケットを全て抽出することができる。
この例では、データ管理部105は、2006年11月1日の10時15分00秒〜10時15分59秒のアドレスファイル504bにアドレスが含まれていないVoIPパケットを、過去のデータファイル505に保存しているが、それぞれのVoIPパケットを2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル505bに保存し、同じCall−IDのVoIPパケットが保存されているデータファイル505からのリンクを設定してもよい。この場合も、例えば2006年11月1日の9時45分に開始された呼で異常切断があったものを検索したいときには、アドレス検索部108は、2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aのみを検索すればよい。そして、データ検索部109は、アドレス検索部108により2006年11月1日の9時45分00秒〜9時45分59秒のアドレスファイル504aから抽出されたアドレスに基づいて、2006年11月1日の9時45分00秒〜9時45分59秒のデータファイル505aにアクセスし、さらにそのデータファイル505aのリンク先である2006年11月1日の10時15分00秒〜10時15分59秒のデータファイル504bにもアクセスする。これにより、2006年11月1日の9時45分に開始された呼に係るVoIPパケットを全て抽出することができる。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
実施の形態1に係る呼制御データ検索システムの構成を示すブロック図である。 実施の形態1に係る呼制御データ検索システムのハードウェア資源の一例を示す図である。 実施の形態1に係る呼制御データ検索システムの動作を示すフローチャートである。 実施の形態1に係る呼制御データ検索システムの動作を示すフローチャートである。 実施の形態1に係る呼制御データ検索システムの動作を示すフローチャートである。 実施の形態1に係る呼制御データ検索システムの動作の一例を示す概念図である。 実施の形態1に係る呼制御データ検索システムの動作の一例を示す概念図である。 実施の形態1に係る呼制御データ検索システムの動作の一例を示す概念図である。 実施の形態1に係る呼制御データ検索システムの動作の一例を示す概念図である。 実施の形態1におけるキーファイルの構成の一例を示す表である。 実施の形態1におけるキーの構成の一例を示す表である。 実施の形態1におけるキーファイルのレコードの一例を示す概念図である。 実施の形態1におけるキーファイルのレコードの一例を示す概念図である。 実施の形態1におけるキーファイルのレコードの一例を示す概念図である。 実施の形態1におけるキーファイルのレコードの一例を示す概念図である。 実施の形態1に係る呼制御データ検索システムの動作の一例を示す概念図である。
符号の説明
100 呼制御データ検索システム、101 データキャプチャ部、102 キー生成部、103 キー更新部、104 アドレス生成部、105 データ管理部、106 入力部、107 キー検索部、108 アドレス検索部、109 データ検索部、110 出力部、151 記憶装置、152 処理装置、153 入力装置、154 出力装置、200 VoIPネットワーク、300 検索端末、501 キャプチャファイル、502 キーファイル、503 メモリ、504 アドレスファイル、505 データファイル、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、923 プログラム群、924 ファイル群。

Claims (6)

  1. ファイルを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置とを備える呼制御データ検索システムにおいて、
    呼を一意に識別する呼識別子と呼で特定の事象があったことを示す属性データとを含む呼制御データをネットワークからキャプチャし、キャプチャした呼制御データを単位時間Tcごとに記憶装置内の単位時間Tcごとのキャプチャファイルに保存するデータキャプチャ部と、
    前記データキャプチャ部によりキャプチャファイルに保存された呼制御データの属性データを含むキーを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したキーを記憶装置内の単位時間Tkごとのキーファイルに保存するキー生成部と、
    前記キー生成部によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルに当該キーの呼識別子と同じ呼識別子に対応するキーが保存されているかどうかを判定し、当該過去のキーファイルに当該呼識別子のキーが保存されている場合には、当該過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成部によりキーファイルに保存される当該呼識別子のキーの属性データを追加するキー更新部と、
    前記データキャプチャ部によりキャプチャファイルに保存された呼制御データを、所定の形式で、記憶装置内の単位時間Tdごとのデータファイルに保存するデータ管理部と、
    入力装置を用いて、任意の時刻を入力するとともに、任意の属性データを指定する入力部と、
    処理装置を用いて、前記入力部により入力された時刻に対応するキーファイルを検索し、前記入力部により指定された属性データと同じ属性データを含むキーを抽出するキー検索部と、
    処理装置を用いて、データファイルを検索し、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出するデータ検索部とを備えることを特徴とする呼制御データ検索システム。
  2. 前記キー更新部は、前記キー生成部によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルであって当該キーの呼識別子と同じ呼識別子に対応するキーが最初に保存されたキーファイルを検出し、検出した過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成部によりキーファイルに保存される当該呼識別子のキーの属性データを追加し、
    前記入力部は、任意の時刻として呼の開始時刻を入力することを特徴とする請求項1に記載の呼制御データ検索システム。
  3. 単位時間Tcと単位時間Tkと単位時間Tdとは、いずれも同じ長さであることを特徴とする請求項1に記載の呼制御データ検索システム。
  4. 前記データ管理部は、前記データキャプチャ部によりキャプチャファイルに保存された呼制御データを、当該呼制御データの呼識別子ごとにまとめて保存し、
    前記呼制御データ検索システムは、さらに、
    前記データ管理部によりデータファイルに呼制御データが保存された位置を示すアドレスを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したアドレスを記憶装置内の単位時間Taごとのアドレスファイルに保存するアドレス生成部と、
    処理装置を用いて、アドレスファイルを検索し、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子に対応するアドレスを抽出するアドレス検索部とを備え、
    前記データ検索部は、前記アドレス検索部により抽出されたアドレスが示す位置から、前記キー検索部により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出することを特徴とする請求項1に記載の呼制御データ検索システム。
  5. 単位時間Tcと単位時間Tkと単位時間Taと単位時間Tdとは、いずれも同じ長さであることを特徴とする請求項に記載の呼制御データ検索システム。
  6. ファイルを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置とを備えるコンピュータに、
    呼を一意に識別する呼識別子と呼で特定の事象があったことを示す属性データとを含む呼制御データをネットワークからキャプチャし、キャプチャした呼制御データを単位時間Tcごとに記憶装置内の単位時間Tcごとのキャプチャファイルに保存するデータキャプチャ処理と、
    前記データキャプチャ処理によりキャプチャファイルに保存された呼制御データの属性データを含むキーを、処理装置を用いて、当該呼制御データの呼識別子ごとに生成し、生成したキーを記憶装置内の単位時間Tkごとのキーファイルに保存するキー生成処理と、
    前記キー生成処理によりキーファイルにキーが保存されるときに、処理装置を用いて、過去のキーファイルに当該キーの呼識別子と同じ呼識別子に対応するキーが保存されているかどうかを判定し、当該過去のキーファイルに当該呼識別子のキーが保存されている場合には、当該過去のキーファイルに保存されている当該呼識別子のキーに、前記キー生成処理によりキーファイルに保存される当該呼識別子のキーの属性データを追加するキー更新処理と、
    前記データキャプチャ処理によりキャプチャファイルに保存された呼制御データを、所定の形式で、記憶装置内の単位時間Tdごとのデータファイルに保存するデータ管理処理と、
    入力装置を用いて、任意の時刻を入力するとともに、任意の属性データを指定する入力処理と、
    処理装置を用いて、前記入力処理により入力された時刻に対応するキーファイルを検索し、前記入力処理により指定された属性データと同じ属性データを含むキーを抽出するキー検索処理と、
    処理装置を用いて、データファイルを検索し、前記キー検索処理により抽出されたキーの呼識別子と同じ呼識別子を含む呼制御データを抽出するデータ検索処理とを実行させることを特徴とする呼制御データ検索プログラム。
JP2006305847A 2006-11-10 2006-11-10 呼制御データ検索システム及び呼制御データ検索プログラム Expired - Fee Related JP4091645B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006305847A JP4091645B1 (ja) 2006-11-10 2006-11-10 呼制御データ検索システム及び呼制御データ検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006305847A JP4091645B1 (ja) 2006-11-10 2006-11-10 呼制御データ検索システム及び呼制御データ検索プログラム

Publications (2)

Publication Number Publication Date
JP4091645B1 true JP4091645B1 (ja) 2008-05-28
JP2008124758A JP2008124758A (ja) 2008-05-29

Family

ID=39509063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006305847A Expired - Fee Related JP4091645B1 (ja) 2006-11-10 2006-11-10 呼制御データ検索システム及び呼制御データ検索プログラム

Country Status (1)

Country Link
JP (1) JP4091645B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6750417B2 (ja) 2016-09-15 2020-09-02 富士通株式会社 パケット制御プログラム、パケット制御装置及びパケット制御システム

Also Published As

Publication number Publication date
JP2008124758A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
US7287136B2 (en) Cache device, and method and computer program for controlling cached data
US20050131923A1 (en) Information processing apparatus and its control method
US8422642B2 (en) Message system for conducting message
US11947614B1 (en) Method and system for centralized multi-instance deployment consolidation
KR20030006734A (ko) 통신망을 이용한 영상 데이터 관리 방법 및 시스템
JP2007095059A (ja) データベースへのクエリ送信方法およびクエリ送信システム
JPH0981445A (ja) 情報管理装置
WO2010113670A1 (ja) 通信システム、通信端末、サーバ、データ保存方法および記録媒体
US7533125B2 (en) Managing a data file with an access code
CN111400378A (zh) 基于ElasticSearch的日志实时显示方法、装置、计算机设备和介质
US20070168453A1 (en) Function managing apparatus
JP2006217195A (ja) 音声メッセージ伝達システムおよびプログラム
JP4091645B1 (ja) 呼制御データ検索システム及び呼制御データ検索プログラム
JP4645418B2 (ja) 画像メッセージ伝達システム及びプログラム
JP4429173B2 (ja) デジタル通信データに基づいてアクションをトリガーする方法及びコンピュータ・システム
US8473009B2 (en) Communication terminal and computer readable medium
CN113890753B (zh) 数字身份管理方法、装置、系统、计算机设备和存储介质
JP2007200047A (ja) アクセスログ表示システムおよび方法
JP4729089B2 (ja) ウェブサイト集計装置及びウェブサイト集計プログラム
JP5301638B2 (ja) 検索媒介情報を管理する方法および検索媒介情報管理システム
JP3885050B2 (ja) ネットワーク管理方法
JP2006113663A (ja) データ保管システム、その方法、ファイルサーバ、端末およびプログラム
JP4952635B2 (ja) 情報処理装置及びそのログ収集プログラム
JP2018022218A (ja) 情報処理装置及び情報処理プログラム
CN115955423A (zh) 一种基于域名的网络流量处理方法、装置以及处理设备

Legal Events

Date Code Title Description
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: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140307

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees