(57)【要約】【課題】各ＳＩＰサーバが扱えるようにメッセージを変換するための変換ルールを効率的に作成すること。【解決手段】変換ルール生成装置１は、第１ＳＩＰサーバ９ａが処理可能な第１原文メッセージ１１ａと、第２ＳＩＰサーバ９ｂが処理可能な第２原文メッセージ１１ｂとの入力を受け付け、その両メッセージの差分メッセージ１５を抽出する差分抽出部１４と、抽出された差分メッセージ１５の差分箇所について、その一方を変換前の文字列とし、他方を変換後の文字列とした文字列の組み合わせを変換ルール１７として抽出する差分解釈部１６と、を有する。【選択図】図１
2017174147.tif 000002
【特許請求の範囲】
【請求項１】
第１ＳＩＰサーバが処理可能な第１原文メッセージと、第２ＳＩＰサーバが処理可能な第２原文メッセージとの入力を受け付け、それらの両メッセージの差分を示す差分メッセージを抽出する差分抽出部と、
抽出された前記差分メッセージの差分箇所について、その一方を変換前の文字列とし、他方を変換後の文字列とした文字列の組み合わせを変換ルールとして抽出し、前記抽出された変換ルールを前記第１原文メッセージと前記第２原文メッセージとの変換処理を行う変換装置に設定する差分解釈部と、を有することを特徴とする
変換ルール生成装置。
【請求項２】
前記差分解釈部が抽出した前記変換ルールに対して、その変換ルールを修正または補完するための入力を受け付けるルール設定部を有することを特徴とする
請求項１に記載の変換ルール生成装置。
【請求項３】
前記差分抽出部が前記差分メッセージを抽出する対象として、前記第１原文メッセージおよび前記第２原文メッセージに代えて、前記第１原文メッセージおよび前記第２原文メッセージそれぞれが同じ構文ルールになるように正規化した第１正規化メッセージおよび第２正規化メッセージを抽出対象として前記差分抽出部に入力する正規化部を有することを特徴とする
請求項１または請求項２に記載の変換ルール生成装置。
【請求項４】
変換ルール生成装置は、差分抽出部と、差分解釈部とを有しており、
前記差分抽出部は、第１ＳＩＰサーバが処理可能な第１原文メッセージと、第２ＳＩＰサーバが処理可能な第２原文メッセージとの入力を受け付け、それらの両メッセージの差分を示す差分メッセージを抽出し、
前記差分解釈部は、抽出された前記差分メッセージの差分箇所について、その一方を変換前の文字列とし、他方を変換後の文字列とした文字列の組み合わせを変換ルールとして抽出し、前記抽出された変換ルールを前記第１原文メッセージと前記第２原文メッセージとの変換処理を行う変換装置に設定することを特徴とする
変換ルール生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換ルール生成装置、および、変換ルール生成方法の技術に関する。
【背景技術】
【０００２】
ＶｏＩＰ（Voice Over IP）を行うＩＰ電話などに使用するため、そのセッションを管理するためのプロトコルであるＳＩＰ（Session Initiation Protocol）の標準化が進んでいる（非特許文献１など）。ＳＩＰサーバの実装具合は、サーバのベンダや発売時期によってまちまちであり、各ＳＩＰサーバが扱えるＳＩＰメッセージも若干異なることもある。
そこで、Ａ社のＳＩＰサーバからＢ社のＳＩＰサーバへのＳＩＰメッセージを途中で変換するゲートウェイ装置として、ＳＢＣ（Session Border Controller）を配置することもある。これにより、Ｂ社のＳＩＰサーバは、自身に適したように変換されたＳＩＰメッセージを受信できるので、ＳＩＰサーバ間の実装の差分がＳＢＣによって吸収される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】The Internet Society、"SIP: Session Initiation Protocol"、［online］、2002年6月、Network Working Group、［2016年3月22日検索］、インターネット〈URL：http://www.ietf.org/rfc/rfc3261.txt.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＢＣにメッセージ変換機能を動作させるためには、メッセージの文字列変換ルール（マニピュレーションルール）をＳＢＣに設定する必要がある。この変換ルールを作成するには、どのバージョンに対応しているか、どの機能を実装しているか、メッセージの記述をどのように解釈するか、などの違いを各社が使用するＳＩＰサーバごとに把握する必要がある。そのため、手作業で変換ルールを作成する作業がＳＢＣの運用者にとって大きな負担となっていた。
【０００５】
そこで、本発明は、各ＳＩＰサーバが扱えるようにメッセージを変換するための変換ルールを効率的に作成することを、主な課題とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明の変換ルール生成装置は、
第１ＳＩＰサーバが処理可能な第１原文メッセージと、第２ＳＩＰサーバが処理可能な第２原文メッセージとの入力を受け付け、それらの両メッセージの差分を示す差分メッセージを抽出する差分抽出部と、
抽出された前記差分メッセージの差分箇所について、その一方を変換前の文字列とし、他方を変換後の文字列とした文字列の組み合わせを変換ルールとして抽出し、前記抽出された変換ルールを前記第１原文メッセージと前記第２原文メッセージとの変換処理を行う変換装置に設定する差分解釈部と、を有することを特徴とする。
【０００７】
これにより、変換ルール生成装置が原文のＳＩＰメッセージをもとに、各ＳＩＰサーバが扱えるようにメッセージを変換するための変換ルールを効率的に作成することができる。
【０００８】
本発明は、前記差分解釈部が抽出した前記変換ルールに対して、その変換ルールを修正または補完するための入力を受け付けるルール設定部を有することを特徴とする。
【０００９】
これにより、自動抽出されなかった各ＳＩＰサーバ独自の設定を、指定させることができる。
【００１０】
本発明は、前記差分抽出部が前記差分メッセージを抽出する対象として、前記第１原文メッセージおよび前記第２原文メッセージに代えて、前記第１原文メッセージおよび前記第２原文メッセージそれぞれが同じ構文ルールになるように正規化した第１正規化メッセージおよび第２正規化メッセージを抽出対象として前記差分抽出部に入力する正規化部を有することを特徴とする。
【００１１】
これにより、意味内容は同じだが表現にゆらぎがあるＳＩＰメッセージが形式統一されることで、差分抽出の精度が向上する。
【発明の効果】
【００１２】
本発明によれば、各ＳＩＰサーバが扱えるようにメッセージを変換するための変換ルールを効率的に作成することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係わるＳＩＰ処理システムを示す構成図である。
【図２】本実施形態に係わる第１原文メッセージを示す。
【図３】本実施形態に係わる第２原文メッセージを示す。
【図４】本実施形態に係わる第１正規化メッセージを示す。
【図５】本実施形態に係わる第２正規化メッセージを示す。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【００１５】
図１は、ＳＩＰ処理システムを示す構成図である。ＳＩＰ処理システムは、変換装置８と、第１ＳＩＰサーバ９ａと、第２ＳＩＰサーバ９ｂと、変換ルール生成装置１とを含めて構成される。
なお、ＳＩＰ処理システムの各装置は、それぞれＣＰＵ（Central Processing Unit）と、メモリと、ハードディスクなどの記憶手段（記憶部）と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラム（アプリケーションや、その略のアプリとも呼ばれる）を実行することにより、各処理部により構成される制御部（制御手段）を動作させる。
【００１６】
変換装置８は、変換部８１と変換ルール８２（マニピュレーションルール）とを有する。
変換部８１は、第１ＳＩＰサーバ９ａから出力されるＳＩＰメッセージの入力を受け付け、そのＳＩＰメッセージを第２ＳＩＰサーバ９ｂ向けのメッセージに変換し、その変換結果を第２ＳＩＰサーバ９ｂに向けて送信する。
変換ルール８２は、変換部８１が実行するメッセージ変換処理のルールを示すデータ構造である。
変換部８１は、例えば、「beforeをafterに変換」という変換ルール８２を読み込み、入力されるＳＩＰメッセージ「foo.txt」から出力されるＳＩＰメッセージ「bar.txt」を作成するために、ＵＮＩＸ（登録商標）系ＯＳの文字列置換コマンドである以下のsedコマンドを実行する。
sed -e 's/before/after/g' ./foo.txt > ./bar.txt
【００１７】
変換ルール生成装置１は、変換ルール８２を作成する装置である。
変換ルール生成装置１は、第１原文メッセージ１１ａ（図２）と、第２原文メッセージ１１ｂ（図３）と、第１正規化メッセージ１３ａ（図４）と、第２正規化メッセージ１３ｂ（図５）と、差分メッセージ１５と、変換ルール１７とを、それぞれ記憶手段に格納する。
さらに、変換ルール生成装置１は、前記の記憶手段に格納されたデータを扱う処理部として、正規化部１２と、差分抽出部１４と、差分解釈部１６と、ルール設定部１８とを有する。
【００１８】
図２は、第１原文メッセージ１１ａの具体例を示す。
第１原文メッセージ１１ａは、第１ＳＩＰサーバ９ａに入力されるＳＩＰメッセージ、または、第１ＳＩＰサーバ９ａから出力されるＳＩＰメッセージである（換言すると、第１ＳＩＰサーバ９ａが処理可能なＳＩＰメッセージ）。図２では、テキストデータ形式の第１原文メッセージ１１ａに対して、説明用に行番号Ａ１〜Ａ２９を付している。以下、図３以降の各メッセージにも行番号を付している。行Ａ１の「INVITE」の表記から、この第１原文メッセージ１１ａがセッションを確立するためのINVITE（招待）メッセージであることがわかる。
【００１９】
図３は、第２原文メッセージ１１ｂの具体例を示す。
第２原文メッセージ１１ｂは、第２ＳＩＰサーバ９ｂに入力されるＳＩＰメッセージ、または、第２ＳＩＰサーバ９ｂから出力されるＳＩＰメッセージである（換言すると、第２ＳＩＰサーバ９ｂが処理可能なＳＩＰメッセージ）。図３では、行Ｂ１〜Ｂ３３のテキストデータ形式の第２原文メッセージ１１ｂを示している。
【００２０】
変換ルール生成装置１は、ルール生成の対象となる第１原文メッセージ１１ａと第２原文メッセージ１１ｂとの組み合わせを取得する。この組み合わせ方法は、例えば、以下に示すように、入力時点でペアの情報として対応付けられている。
・あらかじめ人間が机上で作成した第１原文メッセージ１１ａと第２原文メッセージ１１ｂとの組み合わせの入力を受け付ける。
・ＲＦＣ（Request for Comments）／３ＧＰＰ（Third Generation Partnership Project）／ＴＴＣ（The Telecommunication Technology Committee）などの標準文書に記載のシーケンス例などから抜粋した第１原文メッセージ１１ａと第２原文メッセージ１１ｂとの組み合わせの入力を受け付ける。
【００２１】
または、変換ルール生成装置１は、第１ＳＩＰサーバ９ａが過去に入出力したＳＩＰメッセージと、第２ＳＩＰサーバ９ｂが過去に入出力したＳＩＰメッセージとの入力を別々に受け付けた後、以下の処理により、ルール生成の対象となる第１原文メッセージ１１ａと第２原文メッセージ１１ｂとの組み合わせを決定してもよい。
・行Ａ１，Ｂ１に記載のようにメッセージ種別（INVITEなど）が互いに同じであるメッセージ組
・行Ａ６，Ｂ６に記載のようにセッションＩＤ（Call-ID）が互いに同じであるメッセージ組
・行Ａ４，Ａ５，Ｂ４，Ｂ５に記載のようにセッション相手の組み合わせ（From,To）が互いに同じであるメッセージ組
これにより、例えば、ＳＩＰサーバＡ→ＳＩＰサーバＢの第１メッセージと、ＳＩＰサーバＣ→ＳＩＰサーバＤの第２メッセージとを組み合わせて、ＳＩＰサーバＡ→ＳＩＰサーバＤのメッセージ変換ルールを作成することができる（間接的なメッセージペア）。
【００２２】
図４は、第１正規化メッセージ１３ａの具体例を示す。
図５は、第２正規化メッセージ１３ｂの具体例を示す。
正規化部１２は、図２の第１原文メッセージ１１ａ（行Ａ１〜Ａ２９）を正規化した図４の第１正規化メッセージ１３ａ（行Ｃ１〜Ｃ２９）を作成し、一方、図３の第２原文メッセージ１１ｂ（行Ｂ１〜Ｂ３３）を正規化した図５の第２正規化メッセージ１３ｂ（行Ｄ１〜Ｄ３３）を作成する。
まず、正規化部１２は、第１原文メッセージ１１ａおよび第２原文メッセージ１１ｂの各行について、コロン「:」の直後の半角スペースを削除する。
次に、正規化部１２は、行Ａ４，Ｂ４の「t: <sip:〜略〜>」を行Ｃ４，Ｄ４の「To:<sip:〜略〜>」に正規化する。これにより、短縮形「t」が非短縮形「To」に変換される。さらに、正規化部１２は、行Ａ５，Ｂ５の短縮形「f」も行Ｃ５，Ｄ５の非短縮形「From」に変換する。
【００２３】
このように、正規化処理とは、差分抽出部１４による差分抽出処理を行いやすくするための前処理であり、前記の図２〜図５の例以外にも、以下に例示されるように、差分抽出対象の両メッセージの意味的な差分は残しつつ、単なる形式的な差分を減らす処理である。
・１つの行に１つの項目だけを記載するか、１つの行に複数の項目を記載可能とするかという構文ルールを一義的になるように統一する。
・ヘッダ（項目）の登場順序を整列して、なるべく両メッセージで同じ行番号には同じ項目（Call-ID、Viaなど）が並ぶようにする。
・ＳＩＰメッセージを機械が読み込むときに無視されるが、人間がＳＩＰメッセージを読みやすくするための各種記号（半角スペース、タブ記号、コメントなど）の出現位置や出現頻度などの構文ルールを一義的になるように統一する。例えばそれらの各種記号を一括して削除する。
【００２４】
また、正規化部１２は、字句解析処理や構文解析処理を用いて、ＳＩＰメッセージの内容を変えずに、表記を統一してもよい。
例えば、正規化部１２は、字句解析処理によって、行Ａ６を、「Call-ID」と「:」と「qwertyuiop123456@192.0.2.123」という３つの要素（字句）に分割する。
次に、正規化部１２は、構文解析処理によって、セッションＩＤ（Call-ID）という項目の値が「qwertyuiop123456@192.0.2.123」であるという行Ａ６の意味を取得する。なお、ＳＩＰの標準仕様を示すＲＦＣ（Request for Comments）3261の２５節には、ＳＩＰメッセージの構文解析をするための参考情報として、拡張ＢＮＦ（Extended Backus Naur Form）が記載されている。
さらに、正規化部１２は、「あて先（To）、送信元（From）の後にセッションＩＤを表記する」などの予め定められた所定のルールをもとに、この行Ａ６の行の順番を決定する。
【００２５】
差分抽出部１４は、第１正規化メッセージ１３ａと第２正規化メッセージ１３ｂとを行単位または文字単位で比較し、両メッセージの差分を差分メッセージ１５として抽出する。ここでの差分とは、例えば、記載の追加、削除、変更などである。または、差分抽出部１４は、正規化されていないメッセージ（第１原文メッセージ１１ａ、第２原文メッセージ１１ｂ）を差分メッセージ１５の抽出対象としてもよい。
差分抽出部１４は、例えば、第１正規化メッセージ１３ａと第２正規化メッセージ１３ｂとの差分として、対応する２行（Ｃ１７、Ｄ１７）に着目し、第１正規化メッセージ１３ａから第２正規化メッセージ１３ｂに対して、次行Ｄ１８「P-Early-Media:supported」が追加されたことを抽出する。つまり、差分メッセージ１５は、変換前「空行Ｃ１８」→変換後「P-Early-Media:supportedを示す行Ｄ１８を空行Ｄ１９の前に追加」、という内容である。なお、「P-Early-Media:supported」とは、セッション確立前の呼出音として独自の音源を再生できるアーリーメディアの機能にＳＩＰサーバが対応していることを示すＳＩＰメッセージである。
【００２６】
差分解釈部１６は、差分メッセージ１５から変換ルール１７を作成する。変換ルール１７は、第１正規化メッセージ１３ａから第２正規化メッセージ１３ｂへとテキストデータを変換（置換）するときの「変換前」と「変換後」との組み合わせで表現される。換言すると、変換装置８は、入力されたＳＩＰメッセージに対して、変換ルール１７（＝後に変換ルール８２として設定される）を適用することで、出力するＳＩＰメッセージを作成する。
例えば、差分メッセージ１５が前記の変換前「空行Ｃ１８」→変換後「P-Early-Media:supportedを示す行Ｄ１８を空行Ｄ１９の前に追加」、であるときには、変換ルール１７は、以下の通りである。
変換前「[CR][LF][CR][LF]」…（空行をヒットさせるために、改行コードが２回連続で出現する箇所）
変換後「[CR][LF]P-Early-Media:supported[CR][LF][CR][LF]」…（空行の間に「P-Early-Media:supported」の行を挿入する）
つまり、差分解釈部１６は、第１正規化メッセージ１３ａ内の差分箇所（改行コードが２回連続で出現する箇所）を変換前の文字列とし、第２正規化メッセージ１３ｂ内の差分箇所（「P-Early-Media:supported」の行が挿入された箇所）を変換後の文字列とし、その２つの文字列の組み合わせを変換ルール１７として抽出する。
ここで、変換前または変換後の文字列として、差分箇所だけでなく、その前後数行の非差分箇所も含めてもよい。これにより、差分箇所のテキストデータ内での位置を特定する精度が向上する。
【００２７】
なお、差分解釈部１６は、変換ルール１７を作成するときには、以下に例示するように、多様な表現を用いてもよい。
・正規表現。例えば、変換前「P-Asserted-Identity〜〜*」とは、「P-Asserted-Identity〜〜」の後に任意の文字が０個以上続くことを示す正規表現「*」が付加されている例である。または、「[３文字以上の英数字]＠[３文字以上の英数字].com」というメールアドレスの正規表現を変換前の表現とし、変換後としてその正規表現を削除する旨の変換ルール１７を作成することで、ＩＰアドレスは可読でもメールアドレスは処理できないサーバにも対応させることができる。
・ランダムな文字列。例えば、変換後にランダムな文字列を用いることで、変換前の秘匿ワードを隠蔽したり、変換前には存在しないワードを追加したりできる。
・構文解析処理で得たＳＩＰ項目（ヘッダ）単位での指定。例えば、同じ内容を示すがヘッダの名称がＳＩＰのバージョンで変わった場合、変換前「旧ヘッダの内容」→変換後「内容はかえずにヘッダを新ヘッダに変更」とすることで、新しいバージョンのＳＩＰメッセージに変換することができる。
【００２８】
ルール設定部１８は、作成された変換ルール１７に対して、ユーザ（変換装置８の運用事業者）などにより適宜修正または補完するための入力（編集工程）を受け付ける。ルール設定部１８は、例えば、以下に例示するような編集を受け付ける。
・呼毎に値が変わりうる値とそうでない値をユーザ（ＳＢＣの運用事業者）によって柔軟に変更可能とする。
・変換ルール１７の適用条件。SIPメッセージ全体で１度だけを適用する、各行で最大１回適用する、ダイアログ外リクエストのみに適用するなどの適用条件を柔軟に変更可能とする。
【００２９】
なお、ルール設定部１８は、入力をしやすくするための補助情報を表示したり、入力情報を簡略化させたりしてもよい。例えば、「SIPの拡張 RFC XXXX」に対応させるためには「ルールＸを各行で最大１回適用する必要がある」旨の情報を事前設定しておく。これにより、ユーザは「ルールＸを各行で最大１回適用する」をオンにする代わりに、「SIPの拡張 RFC XXXXに対応させる」をチェックボックスなどでオンにすればよい。
また、ルール設定部１８は、ＳＩＰの標準に適合したルールだけでなく、標準外のルールも受け付けるように変換ルール１７を編集させてもよい。例えば、「Ｘ１→Ｙ１に変換」というルールはＳＩＰの標準ではメッセージ全体で１回だけ適用すればよいが、標準を誤って解釈している古い第２ＳＩＰサーバ９ｂと接続するには何度でも適用する必要があるので、そのように変換ルール１７を編集させることを許可する。
【００３０】
そして、変換ルール生成装置１は、作成された変換ルール１７を変換装置８に送信して変換ルール８２として使用させることで、変換装置８は、変換ルール８２を手作業で作成させる負担をユーザに強いることなく、ＳＩＰメッセージの変換処理を実現することができる。なお、変換ルール８２となる変換ルール１７は、ルール設定部１８の設定前のものでもよく、設定後のものでもよい。
【００３１】
以上説明した本実施形態は、ＮＮＩ（Network NetworkInterface）やＵＮＩ（User Network Interface）などのゲートウェイ装置であるＳＢＣ（Session Border Controller）が変換装置８として動作することで、中継するＳＩＰメッセージのテキストデータを変換する。これにより、ＳＩＰ標準上のオプション機能の有無などで直接やりとりが困難であるＳＩＰサーバ間のＳＩＰメッセージであっても、変換装置８が差分吸収を行うことで、やりとりを可能にする。
【００３２】
さらに、本実施形態では、変換装置８の変換処理内容を規定する変換ルール８２について、変換ルール生成装置１が、既に存在するＳＩＰメッセージをもとに、その変換前後のメッセージ差分から変換ルール１７（マニピュレーションルール）を抽出する。これにより、変換ルール８２の作成の手間を削減することができる。
また、変換ルール生成装置１には、ルール設定部１８により手動での変換ルール１７の編集も受け付ける。これにより、標準外の独自ルールが実装されてしまったＳＩＰサーバにも対応させる。
【符号の説明】
【００３３】
１      変換ルール生成装置
８      変換装置
９ａ    第１ＳＩＰサーバ
９ｂ    第２ＳＩＰサーバ
１１ａ  第１原文メッセージ
１１ｂ  第２原文メッセージ
１２    正規化部
１３ａ  第１正規化メッセージ
１３ｂ  第２正規化メッセージ
１４    差分抽出部
１５    差分メッセージ
１６    差分解釈部
１７    変換ルール
８１    変換部
８２    変換ルール
【図１】
2017174147.tif 000003
【図２】
2017174147.tif 000004
【図３】
2017174147.tif 000005
【図４】
2017174147.tif 000006
【図５】
2017174147.tif 000007