JPH07168772A - 抽象構文記法メッセージの符号化・復号化処理方法 - Google Patents

抽象構文記法メッセージの符号化・復号化処理方法

Info

Publication number
JPH07168772A
JPH07168772A JP5315196A JP31519693A JPH07168772A JP H07168772 A JPH07168772 A JP H07168772A JP 5315196 A JP5315196 A JP 5315196A JP 31519693 A JP31519693 A JP 31519693A JP H07168772 A JPH07168772 A JP H07168772A
Authority
JP
Japan
Prior art keywords
message
data value
data
encoding
abstract syntax
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.)
Pending
Application number
JP5315196A
Other languages
English (en)
Inventor
Masato Aitsu
誠人 合津
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP5315196A priority Critical patent/JPH07168772A/ja
Publication of JPH07168772A publication Critical patent/JPH07168772A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 比較的に簡単な共通的な仕組みと工程で、容
易に抽象構文記法メッセージの符号化や復号化処理を行
うことに適用し得る。 【構成】 前処理S80において、先ず基本的要素のメ
ッセージ・データ値に対するフォーマットを定義する
(S80a)。次にASN.1型メッセージのデータ値
の構造体を定義するincludeファイルIE.hを
生成(S80b)する。また、ASN.1メッセージフ
ォーマットの構文解析S81において、YACCを使用
して構造体IEStructの配列データIEData
上にIE.hを読み出すパーサプログラムを作成(S8
1a)する。次にパーサプログラムを使用してIE.h
からデータIEDataを作成(S81b)する。メッ
セージ送信S82において、HCP1をコール(S82
a)し、HCP1とIEDataを用いて、メッセージ
組み立てを行う(S82b)。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は抽象構文記法メッセー
ジの符号化・復号化処理方法に関し、例えば、抽象構文
記法1(ASN.1)によるメッセージの符号化・復号
化の処理に適用し得るものである。尚、このASNと
は、Abstract SyntaxNotaion
(抽象構文記法)の略である。
【0002】
【従来の技術】近年、CCITT勧告X.209など
で、抽象構文記法1(ASN.1)のための基本符号化
規則の仕様が勧告されている。
【0003】そして、このCCITT勧告X.209の
勧告では、(a)アプリケーション層内で選ばれる情報
オブジェクトの多様さと複雑さ、(b)そのような情報
オブジェクトを記述するための高度な記法の必要性、
(c)そのような情報オブジェクトを符号化するための
規則を分離し、標準化することの価値、などを考慮して
情報オブジェクトを符号化するための規則を勧告してい
る。
【0004】また、CCITT勧告X.208(抽象構
文記法Iの仕様)は、抽象構文の定義のための記法を規
定しており、アプリケーション層の仕様がプレゼンテー
ションサービスを用いて転送する必要のある情報の型を
定義することを可能にする。また、CCITT勧告X.
208(抽象構文記法Iの仕様)は、定義された型の値
の仕様のための記法も規定している。
【0005】そして、このCCITT勧告X.209
(抽象構文記法1(ASN.1))は、CCITT勧告
X.208(抽象構文記法Iの仕様)で規定されている
記法を用いて定義された型の値に適用される得る符号化
規則は1個以上存在してよい。そして、このCCITT
勧告X.209(抽象構文記法1(ASN.1))は、
基本符号化規則と呼ばれる、符号化規則のうちの1個を
定義している。
【0006】そして、このCCITT勧告X.209
(抽象構文記法1(ASN.1))は、CCITT勧告
X.208(抽象構文記法Iの仕様)で規定された記法
を用いて定義された型の値に対する、転送構文の仕様を
導出するために使われる基本符号化規則の集合を規定し
ている。
【0007】これらの基本符号化規則は、また転送され
るデータの値を識別するために転送構文を復号化するた
めにも適用される。そして、これらの基本符号化規則
は、(プレゼンテーションコンテクストによって要求さ
れたとき、プレゼンテーションサービス提供者によっ
て)通信時に使用される。
【0008】そして、上記CCITT勧告X.209
(抽象構文記法1(ASN.1))の基本符号化規則で
は、以下のような仕様を規定している。(1)各メッセ
ージは、各種データ値の並びで構成される。そして、
(2)データ値は、識別子オクテット、長さオクテッ
ト、コンテンツオクテット、コンテンツ終了表示オクテ
ットなどから構成され、一般にそのデータ長は可変であ
る。
【0009】そして、更に、(3)データ値は、そのコ
ンテンツオクテットが直接値を表す基本形の符号化構造
のものと、コンテンツオクテットが1個又はそれ以上の
データ値を含む構造型の符号化構造のものとの2種類が
規定されている。
【0010】
【発明が解決しようとする課題】しかしながら、上述の
CCITT勧告X.209(抽象構文記法1(ASN.
1))の規則によって、あるデータ値の先頭位置は、メ
ッセージの先頭位置から可変な位置に存在するものであ
る。このため、CCITT勧告X.209(抽象構文記
法1(ASN.1))の規則によるメッセージフォーマ
ットのインタフェースを規定(若しくは変更)する都度
に、メッセージ中のデータ値の抽出(これを復号化とい
う)や、メッセージの組み立て(これを符号化という)
を行うための構文解析ルーチン(ソフトウエア、プログ
ラム)を変更する必要があるので、非能率的で、作業工
数が長くなっていた。
【0011】例えば、CCITT勧告X.209(抽象
構文記法1(ASN.1))の規則によるメッセージフ
ォーマットを扱うソフトウエアで、C言語を用いて開発
するような場合に、上述のような符号化や復号化のため
の構文解析用ソフトウエアや符号化や復号化のためのプ
ログラムの変更作業の煩わしさがあった。
【0012】この発明は、以上の課題に鑑み為されたも
のであり、その目的とする所は、比較的に簡単な共通的
な仕組みと工程で、容易に抽象構文記法メッセージの符
号化や復号化処理を行うことに適用し得る抽象構文記法
メッセージの符号化・復号化処理方法を提供することで
ある。
【0013】
【課題を解決するための手段】この発明の抽象構文記法
メッセージの符号化・復号化処理方法は、以上の目的を
達成するために、以下の特徴的な構成で実現した。
【0014】つまり、基本的要素のメッセージ又はデー
タ値に対するフォーマットの基本構造形式を定義し、上
記定義に従って抽象構文記法メッセージを生成するため
の組込みファイルを予め形成しておき、更に、抽象構文
記法メッセージへの符号化を行うためのメッセージ符号
化用ルーチン又は抽象構文記法メッセージから復号化す
るためのメッセージ復号化用ルーチンを形成しておき、
しかも、上記組込みファイルの内容に対して構文解析を
行う構文解析手段を用いて必要なデータを予め抽出して
おく。
【0015】そして、抽象構文記法メッセージへの符号
化のときには、必要な上記データに対してメッセージ符
号化用ルーチンの処理を実行することで、抽象構文記法
メッセージへの符号化を行う。
【0016】また、抽象構文記法メッセージからの復号
化のときには、抽象構文記法メッセージから上記メッセ
ージ復号化用ルーチンを上記構文解析手段を用いて実行
することで必要なデータへ復号化する構成としたことを
特徴とする。
【0017】
【作用】この発明の抽象構文記法メッセージの符号化・
復号化処理方法において、上述の抽象構文記法メッセー
ジとは、例えば、CCITT勧告X.208、X209
などで勧告されているASN.1型の符号化規則などに
基づくものがある。
【0018】また、メッセージ又はデータ値とは、例え
ば、転送メッセージや制御メッセージなど、いろいろな
メッセージに適用し得る。また、データ値とは、例え
ば、上記メッセージ中で設定されるデータ値などを意味
する。
【0019】更に、上述のフォーマットの基本構造形式
とは、メッセージ又はデータ値のフォーマットの名前
(name)やタグ(tag)やデータの構成位置など
のオクテット構成又はバイト構成などを意味する。
【0020】更にまた、上述の組込みファイルとは、例
えば、C言語プログラミングにおける、include
文などを意味する。
【0021】また、上述の構文解析手段とは、例えば、
YACCや、パーサプログラムなどを意味する。
【0022】以上の構成で、この発明を適用しようとす
るシステムにおいて、必要で且つ基本的な要素のメッセ
ージやデータ値のフォーマットの基本構造形式を定義す
る。そして、このメッセージ又はデータ値のフォーマッ
トの定義に従って予め組込みファイルを形成しておく。
【0023】従って、メッセージの種類やデータ値など
が追加された場合や変更された場合は、上述のフォーマ
ットと上記組込みファイルを修正することだけで適用し
得る。即ち、上述の構文解析手段の変更やメッセージ符
号化用ルーチンの変更やメッセージ復号化用ルーチンの
変更を行うことなく符号化又は復号化を行い得る。
【0024】このようなことで、発明を適用するシステ
ムなどの仕様などを変更した場合の、変更作業量を低減
することができる。つまり、構文解析手段やメッセージ
符号化用ルーチンやメッセージ復号化用ルーチンなどは
共通的に使用し得る。
【0025】
【実施例】次にこの発明をPBX(構内交換装置)シス
テムにおける抽象構文記法1(ASN.1)メッセージ
の符号化・復号化処理に適用した場合の好適な一実施例
を図面を用いて説明する。
【0026】そこで、この一実施例では、CCITT勧
告X.209(抽象構文記法1(ASN.1))の規則
によるメッセージフォーマットを扱うソフトウエアで、
C言語を用いて開発するような場合に、上述のような符
号化や復号化のための構文解析用ソフトウエアの変更作
業の煩わしさを無くすために、ある条件を満たしたデー
タ値の構造体(構造形式)を定義する、include
(組み込み)ファイルを作成することだけで、この構造
体(構造形式)をベースとしたデータ型とCCITT勧
告X.209(抽象構文記法1(ASN.1))の規則
によるメッセージへの変換とを行おうとするものであ
る。
【0027】尚、このincludeファイルとは、前
処理命令であって、ヘッダやソースファイルをプログラ
ムに挿入することである。
【0028】『一実施例の符号化・復号化処理方法の概
要』:図1はこの一実施例のASN.1型メッセージの
符号化・復号化処理のフローチャートである。この図1
(a)で、前処理S80において、先ず基本的要素のメ
ッセージ(例えば、図3のMakeCallメッセージ
など)やデータ値(図9など)に対するフォーマットを
定義する(S80a)。次に、ASN.1型メッセージ
のデータ値の構造体を定義するinclude(組み込
み)ファイルIE.h(図14、図15)を生成する。
【0029】また、図1(b)で、ASN.1型メッセ
ージフォーマットの構文解析(S81)において、YA
CC(Yet Another Compiler C
ompiler)を使用して構造体(IEStruc
t)の配列データ(IEData)上にIE.hを読み
出すパーサプログラムを作成する(S81a)。次にこ
のパーサプログラムを使用してIE.hからデータ(I
EData)を作成する(S81b)。
【0030】更に、図1(c)で、ASN.1型メッセ
ージの送信処理(S82)においては、先ず、エンコー
ドメッセージ(EncodeMsg)ルーチンHCP1
をコールする(S82a)。次にこのHCP1とデータ
(IEData)とを用いて、ASN.1型メッセージ
への組み立て(符号化)(S82b)を行う。
【0031】更にまた、図1(d)で、ASN.1型メ
ッセージの受信処理(S83)においては、先ず、デコ
ードメッセージ(DecodeMsg)ルーチンHCP
2をコールする(S83a)。次にこのHCP2とパー
サプログラムとを用いて、ASN.1型メッセージから
データ値を抽出(復号化)(S83b)する。
【0032】以上の符号化・復号化処理方法の概要をP
BXシステムに適用して、図面を用いて更に具体的に詳
述する。
【0033】『PBXシステムの構成』:そして、この
一実施例では、PBX(構内交換)システムへの適用に
ついて、説明するので、図2に、このPBXシステムの
構成を示す。
【0034】この図2において、コンピュータ100か
らの制御のもとにPBX200は、例えば、端末装置5
001〜端末装置8−53−500などからの信号を収
容し、端末装置間の発呼制御などを行う。
【0035】そして、この一実施例において特徴的なソ
フトウエアは、上述のコンピュータ100とPBX20
0との間の制御などに適用するものである。
【0036】そこで、上述のCCITT勧告X.209
(抽象構文記法1(ASN.1))の規則に従った、メ
ッセージフォーマットや、データ値の構造形式を次に説
明する。
【0037】『ASN.1型メッセージフォーマットの
インタフェース例』:コンピュータ100によるPBX
(構内交換機)200の制御を行うコンピュータ100
とPBX200間とのインタフェースを例にして以下で
説明する。そして、前提条件として、このインタフェー
スにおいて、以下のメッセージが存在するものとする。
【0038】(MakeCallメッセージ): 図
3は、MakeCallメッセージのフォーマットであ
る。このMakeCallメッセージのフォーマット
は、コンピュータからPBXに「ある端末装置から他の
端末装置に発呼を要求する」メッセージである。
【0039】(Alertメッセージ): 図4は、
Alertメッセージのフォーマットである。このAl
ertメッセージのフォーマットは、PBXからコンピ
ュータに「ある端末装置が他の端末装置から呼び出され
ていることを通知する」メッセージである。
【0040】(AnswerCallメッセージ):
図5は、AnswerCallメッセージのフォーマ
ットである。このAnswerCallメッセージのフ
ォーマットは、コンピュータからPBXに「呼び出され
ている端末装置に応答することを要求する」メッセージ
である。
【0041】(Connectメッセージ): 図6
は、Connectメッセージのフォーマットである。
このConnectメッセージのフォーマットは、PB
Xからコンピュータに「ある端末装置が通信中になった
ということを通知する」メッセージである。
【0042】(Disconnectメッセージ):
図7は、Disconnectメッセージのフォーマ
ットである。このDisconnectメッセージのフ
ォーマットは、コンピュータからPBXに「ある呼を切
断させることを要求する」メッセージである。
【0043】(EndCallメッセージ): 図8
は、EndCallメッセージのフォーマットである。
このEndCallメッセージのフォーマットは、PB
Xからコンピュータに「ある呼が終了したことを通知す
る」メッセージである。
【0044】上述の各メッセージフォーマットには、以
下のような各データ値が存在するものとする。
【0045】(Deviceデータ値1a): 図9
は、Dviceデータ値のフォーマットである。この図
9において、オクテット1には、データ値識別子がO
(=オクテット)×A1=161(固定)で設定され
る。更に、オクテット2には、データ値内容長が8〜2
7で設定される。更にまた、オクテット3〜5には、タ
イプ(Device typeデータ値)が、図10の
フォーマットで設定される。
【0046】(DeviceTypeデータ値2a):
図10は、DeviceTypeデータ値のフォー
マットである。この図10において、オクテット1に
は、データ値識別子がO(=オクテット)×A2=16
2(固定)で設定される。更に、オクテット2には、デ
ータ値内容長が1で設定される、更にまた、オクテット
3には、タイプが設定される。このタイプには、例え
ば、O×01:一般内線(自局)が設定される。O×0
2:MKT(自局)が設定される。O×09:FAX
(自局)が設定される。O×11:一般内線(他局)が
設定される。O×12:MKT(他局)が設定される。
また、O×19:FAX(他局)が設定される。
【0047】(DialNoデータ値3a): 図1
1は、DialNoデータ値のフォーマットである。こ
の図11において、オクテット1には、データ値識別子
がO×A3=163(固定)で設定される。更に、オク
テット2には、データ値内容長が1〜20の値で設定さ
れる。更にまた、オクテット3〜22には、ダイヤル番
号がASCII(アスキー)文字列でO×30〜O×3
9の値で設定される。
【0048】(Dateデータ値4a): 図12
は、Dateデータ値のフォーマットである。この図1
2において、オクテット1には、データ値識別子がO×
A4=164で設定される。更に、オクテット2には、
データ値内容長が5で設定される。更にまた、オクテッ
ト3〜7には、月日時間分秒が設定される。
【0049】(CallStateデータ値5a):
図13は、CallStateデータ値のフォーマッ
トである。この図13において、オクテット1には、デ
ータ値識別子がO×A5=165で設定される。更に、
オクテット2には、データ値内容長が1で設定される。
更にまた、オクテット3には、呼状態が設定される。例
えば、O×00で空きを表し、O×01でオフフックを
表し、O×02でダイヤル中を表し、O×03で呼び出
し中を表し、O×04で通話中を表し、O×05でBT
聴取中を表す。
【0050】『データ値の構造体(構造形式)定義と構
文解析の例』:図14(その1)、図15(その2)
は、C言語のincludeファイル(IE.h)に、
この一実施例において特徴的な上述の各データ値の構造
体(構造形式)を定義している。
【0051】そして、この図14、図15のプログラム
(S1〜S40)の構造体(構造形式)は、メッセージ
又はデータ値の構造と、それぞれのタグ(識別子)をコ
メントとして定義している。
【0052】即ち、この図14において、ステップS1
は、DeviceTypeデータ値をデータ値識別子1
62(図10)で定義している。そして、S2は、Di
alNo.をデータ値識別子163(図11)で定義し
ている。そして、S3は、構造体指定子で構成する予約
語で、Deviceデータ値をデータ値識別子161
(図9)を予約している。
【0053】更に、この図14のステップS4は、De
viceTypeを設定している。そして、S5は、D
ialNoを設定している。そして、S6は、終りを表
す。
【0054】そして、図14のS7〜S13は、日付
(Date)の構造をデータ値識別子164で設定して
いる。そして、S14は、CallStateメッセー
ジをデータ識別子165で設定している。そして、S1
5〜S18は、MakeCallメッセージをメッセー
ジ識別子97で設定している。
【0055】そして、図15のS19〜S23は、Al
ertメッセージをメッセージ識別子98で設定してい
る。そして、S24〜S27は、AnswerCall
メッセージをメッセージ識別子99で設定している。そ
して、S28〜S32は、Connectメッセージを
メッセージ識別子100で設定している。
【0056】そして、S33〜S35は、Discon
nectメッセージをメッセージ識別子101で設定し
ている。そして、S36〜S40は、EndCallメ
ッセージをメッセージ識別子102で設定している。
【0057】(符号化処理方法):ここで、コンピュー
タからPBXへ端末装置5001から端末装置8−53
−500に発呼するMakeCallメッセージは、図
16に示すように組み立て(符号化)される。
【0058】この図16において、例えば、MakeC
allメッセージ16aのcalling(呼び出し)
16a1に対して、Deviceデータ値16bとし
て、type16b1と、no.(番号)16b2とが
設定される。MakeCallメッセージのメッセージ
識別子は『61』である。また、Deviceデータ値
16bのデータ値識別子は『A1』である。
【0059】そして、図16において、Device
type16b1(データ値識別子『A2』)に対し
て、Device type16cで『01』(一般内
線(自局))が設定される。更に、Device n
o.16b2(データ値識別子『A3』)に対して、D
ial No.(ダイアル番号)16dとして、『50
01』が設定される。この『5001』に対して、符号
化出力として、『3530 30 31』が出力され
る。
【0060】以上によって、前半の符号化出力=61
A1 09 A2 01 01 A3 04 35 3
0 30 31が出力される。
【0061】そして、図16のMakeCallメッセ
ージ16aのcalled(呼び出された側)16a2
に対して、Deviceデータ値16eとして、typ
e16e1と、no.(番号)とが設定される。このD
eviceデータ値16eのデータ値識別子は『A1』
である。
【0062】そして、図16において、Device
type16e1(データ値識別子『A2』)に対し
て、Device type16fで『11』(一般内
線(他局))が設定される。更に、Device n
o.16e2(データ値識別子『A3』)に対して、D
ial No.16gとして、『853500』が設定
される。この『853500』に対する符号化出力とし
ては、『38 35 33 35 30 30』が出
力される。
【0063】以上によって、後半の符号化出力=A1
0B A2 01 11 A3 06 38 35 3
3 35 30 30が出力される。
【0064】以上のようなメッセージ及びデータ値の設
定から、符号化が行われ、エンコードメッセージとし
て、図16に示すように、最終的に以下の符号化データ
が出力される。
【0065】前半(61、A1、09、A2、01、0
1、A3、04、35、30、30、31)、後半(A
1、0B、A2、01、11、A3、06、38、3
5、33、35、30、30) (復号化処理方法):また、PBXからコンピュータへ
端末装置5001から端末装置8−53−500に呼び
出しがあったことを通知するAlertメッセージは、
図17に示すように、データ値を抽出(復号化)する。
【0066】例えば、図17に示す以下のようなデータ
が受信されるものとする。前半(62、A1、09、A
2、01、01、A3、04、35、30、30、3
1)、中半(A1、0B、A2、01、11、A3、0
6、38、35、33、35、30、30)、後半(A
4、06、02、16、08、30、00) この図17において、例えば、上述の符号化メッセージ
(エンコードメッセージ)の前半の62、A1、09、
A2、01、01、A3、04、35、30、30、3
1を受信すると、Alertメッセージ17a(メッセ
ージ識別子『62』)として、alerting(呼び
出し)17a1と、alerted17a2と、dat
e17a3とが設定される。そして、alerting
(呼び出し)17a1に対して、Deviceデータ値
17b(データ値識別子『A1』)として、type1
7b1と、no.17b2とが設定される。
【0067】そして、type17b1(データ値識別
子『A2』)に対して、Device type17c
として『01』が抽出出力される。更に、no.17b
2(データ値識別子『A3』)に対して、Dial N
o.17dとして『5001』が抽出出力される。
【0068】また、上述の中半の符号化データA1、0
B、A2、01、11、A3、06、38、35、3
3、35、30、30のデータを受信すると、上述のa
lerted17a2に対して、Deviceデータ値
17e(データ識別子『A1』)として、type17
e1と、no.17e2とが設定される。そして、ty
pe17e1(データ値識別子『A2』)に対して、D
evicetype17fとして『11』が抽出出力さ
れる。更に、no.17e2(データ値識別子『A
3』)に対して、Dial No.17gとして『85
3500』が抽出出力される。
【0069】更に、上述の後半の符号化データA4、0
6、02、16、08、30、00を受信すると、da
te17a3に対して、Dateデータ値17h(デー
タ値識別子『A4』)の日付データ(2月21日8時4
8分00秒のデータ)が抽出出力される。
【0070】『ASN.1型メッセージフォーマットの
構文解析方法』:構文解析においては、例えば、UNI
X(AT&T社)上やMS−DOS(マイクロソフト
社)上で利用できるコンパイラ−・コンパイラであるY
ACC(Yet Another Compiler
Compiler)などを使用して、図18のような構
造体(IEStruct)(S151)の配列データ
(IEData)上に上述の『IE.hファイル』の情
報を読み出すパーサ(parser)プログラムを作成
する。
【0071】尚、上述のYACCは、コンパイラの構文
解析部(パーサ)を自動生成するプログラムで、目的言
語の文法を入力するとその言語用のパーサを生成するも
のである。このYACCについての詳細は、例えば、文
献:日経バイト(日経BP社)、1987年6月、「Y
ACCに挑戦」などに説明されている。
【0072】また、上述のパーサとは、狭義の構文解析
部であって、基本的には、プログラム命令を解読し、そ
の言語の規約に従って構文の木構造を定めるルーチンを
いう。
【0073】そして、このパーサプログラムを作成する
には、「struct」、「unsigned」(符号
無しの整数を示す)、「char」、「int」、「l
ong」、「enum」(列挙型指定子)、「
[ 」、「 ] 」、「ξ」、「ζ」、「/*」、「*
/」、「*」、「j」などをトークンとして、以下の2
つのプログラムを順番にコールすればよい。
【0074】 パーサプログラム1:「typedef型名データ名/*タグ*/;」 又は「structデータ名/*タグ*/ξ・・・ζ;」 というような構文をIE.hファイルから読み出し、デ
ータ名とタグをIEStructのnameとtagに
それぞれ取り出していく。
【0075】 パーサプログラム2:「structデータ名/*タグ*/ξ (struct)下位データ名*メンバ名; ・・・・ ζ;」 というような構文を上述の『IE.hファイル』から読
み出し、下位データ名を取り出し、これを上述の『IE
Data』中の各IEStructのname中からサ
ーチし、見つかったIEStructのtagをSub
IEに設定していく。
【0076】また、SubIEなしの場合は、内容長を
算出し、len(length、長さ)に設定してい
く。但し、可変長の場合はlen=−1とする。
【0077】以上より、IE.hから図19に示すよう
なデータ(IEData)が作成される。この図19に
おいて、S161〜S165までは、デバイスタイプ
(Device type)のデータである。更に、S
166〜S170までは、ダイヤル番号のデータであ
る。更にまた、S171〜S177までは、デバイスデ
ータ値である。また、S178〜S185までは、En
dCallメッセージのデータである。更にまた、S1
86〜S190までは、ストッパのデータである。
【0078】以上のパーサプログラムによって、IED
ata(図19)を作成しておき、ASN.1型メッセ
ージ送信時にEncodeMsgルーチン(図20、図
21のHCP1)をコールし、ASN.1型メッセージ
の組み立て(符号化)を行うことができる。
【0079】『EncodeMsgルーチンHCP
1』:この図20、図21のHCP1の符号化処理(E
ncodeMsgルーチン)において、先ず、「int
len」SB3(03)を用いて、*len=0とす
る(S71〜S72)。次に「char**DecDa
ta」SB2(02)を用いて、Dectataはヌル
ポインタか否かを判断する(S73)。ヌルポインタで
あるならば終了する。
【0080】次にこのS73において、ヌルポインタで
ないと判断されると、次に「struct IEStr
uct IEData[ ]」SB5(05)と、「t
ag」SB5b(07)と、「char tag」SB
1(01)とを用いて、tagを上述の「IEDat
a」からサーチする(S74)。そして、このS74に
おいては、初期条件として、iedataptr=&I
EData[0];とする。また、継続条件として、i
edataptr→tag!=tag;とする。更に、
更新条件として、iedataptr++;とする。こ
れらの、条件においては、「struct IEStr
uct*iedataptr」SB9(04)を使用す
る。
【0081】そして、上記S74に続いて、「nam
e」SB5a(06)を用いて、サーチアウト又は「n
ame」はヌルか否かを判断する(S75)。ヌルなら
ば終了する。次に上記S74に続いて、「SubIE
[n]」SB5d(09)を用いて、データ値が構造型
か否かを判断する(S76)。そして、このS76に続
いて、次に「char tag」SB1(01)と、
「char*EncData」SB4(04)とを用い
て、自データ値の識別子編集を行い、*EncData
=tagとする(S77)。
【0082】そして、上記S76に続いて、次に「in
t *len」SB3(03)と、「char *En
cData」SB4(04)を用いて、自データ値の内
容長の編集を行い、*(EncData+1)=*le
nとする(S78)。そして、上記S78に続いて、次
に「int*len」SB3(03)を用いて、出力編
集データ長に自データ値の識別子と内容長分(例えば、
2バイト)加算し、*len=*len+2とする(S
79)。
【0083】(図21のS80〜S83までの処理):
尚、上述のS76において、データ値が構造型であ
るならば、次に「char*EncData」SB4
(04)と、「SubIE[n]」SB5d(09)と
を用いて、下位データ値に対して数回ループし、下位デ
ータ値の組み立てを行う(S80)。
【0084】このS80においては、初期条件として、
editptr=EncData+2と、n=0;とす
る。また、継続条件として、iedataptr→Su
bIE[n];=0;とする。更に、更新条件として、
n++とする。これらの条件においては、「char*
editptr」SB8(03)と、「int n」S
B7(02)とを用いて行う。
【0085】そして、上記S80に続いて、次に「Su
bIE[n]」SB5d(09)と、「char**D
ecData」SB2(02)とを用いて、自ルーチン
を再起呼び出しし、EncodeMsg(iedata
ptr→SubIE[n]、*(DecData+
n)、&Sublen、editptr);を行う(S
81)。尚、ここでは「int Sublen」SB6
(01)と、「char*editptr」SB8(0
3)とを用いる。
【0086】そして、上記S81に続いて、編集ポイン
タ更新を、「char*editptr」SB8(0
3)と、「int Sublen」SB6(01)とを
用いて行い、editptr=editptr+Sub
len+2を行う(S82)。そして、上記S82に続
いて、次に出力編集データ長の更新を、「int Su
blen」SB6(01)を用いて行い、*len=*
len+Sublenを行う(S83)。
【0087】(図21のS84〜S85までの処理):
また、上述のS76において、データ値が構造型で
ない場合は、上述のS76に続いて、「char**D
ecData」SB2(02)と、「char*Enc
Data」SB4(04)と、「len」SB5c(0
8)とを用いて、入力DecDataをEncData
+2に、iedataptr→len分コピーする(S
84)。そして、上記S84に続いて、「len」SB
5c(08)と、「int*len」SB3(03)と
を用いて、出力編集データ長の更新を行い、*len=
iedataptr→lenを行う(S85)。
【0088】以上のようにして、メッセージ送信時に、
上述のエンコード用メッセージルーチン(Encode
Msgルーチン:HCP1)をコールすることで、AS
N.1型のメッセージに組み立てる(符号化する)こと
ができる。
【0089】『DecodeMsgルーチンHCP
2』:また、ASN.1型メッセージ受信時に、デコー
ド用メッセージルーチン(DecodeMsgルーチン
(図22、図23のHCP2))をコールし、ASN.
1型メッセージからデータ値の抽出(復号化)を行うこ
とができる。
【0090】(図22、図23のS51〜S60までの
処理): 先ず、「char**DecData」S
B12(03)を用いて、初期設定を行い、*DecD
ata=ヌル(null)とする(図22のS51〜S
52)。そして、上記S52に続いて、次にtagをI
EDataからサーチする(S53)。このサーチにお
いては、初期条件として、iedataptr=&IE
Data[0];とする。また、継続条件として、ie
dataptr→tag!=tagとする。更に、更新
条件として、iedataptr++とする。これらの
条件においては、「struct IEStruct*
iedataptr」SB14(01)を用いる。
【0091】そして、図22の上記S53の後、「na
me」SB4a(05)を用いてサーチアウト又はna
meがヌルか否かを判断する(S54)。また、上記S
53に続いて、次にデータ値が構造型か否かを、「Su
bIE[n]」SB13c(07)を用いて行う(S5
5)。このS55において、構造型の判断されると、次
に「char**DecData」SB12(03)を
用いて、DecDataに、MAX IE LEN×
(size of char*)バイト分のエリアをア
ロケートし、このエリアをヌルクリアとする(S5
6)。
【0092】そして、上記S56に続いて、「SubI
E[n]」SB13c(07)と、「char*Enc
Data」SB11(02)とを用いて、下位データ値
を数回ループし、下位データ値をEncDataから抽
出する(S57)。このS57において、初期条件とし
て、n=0、Subenc=EncData+2;とす
る。また、継続条件として、iedataptr→Su
bIE[n]!=0;とする。更に、更新条件として、
n++とする。これらの条件として、「intn」SB
16(03)と、「char*Subenc」SB15
(02)とを用いる。
【0093】そして、図22の上記S57に続いて、次
に、「char*Subenc」SB15(02)と、
「int n」SB16(03)とを用いて自ルーチン
を再起的に呼び、DecodeMsg(*Suben
c,DecData+n,Subenc);を行う(図
23のS58)。
【0094】上記S58に続いて、「char**De
cData」SB12(03)を用いて、下位データ値
は抽出できたか否かを判断する。又はDecData+
nはヌルポインタでないか否かを判断する(S59)。
【0095】そして、図23の上記S59において、下
位データ値が抽出された、又はヌルポインタでないと判
断されると、次に、「char*Subenc」SB1
5(02)を用いて、下位データ値でポインタを更新
し、Subenc=Subenc+*(Subenc+
1)+2を行う(S60)。
【0096】(図23のS61〜S62の処理):
上述の図22のS55において、データ値が構造型でな
いと判断されると、上記S55に続いて、「char*
*DecData」SB12(03)と、「char*
EncData」SB11(02)とを用いて、Dec
Dataに*(EncData+1)バイト分、エリア
をアロケートする(図23のS61)。
【0097】上記S61に続いて、「char**De
cData」SB12(03)と、「char*Enc
Data」SB11(02)とを用いて、DecDat
aに*(EncData+1)バイト分、コピーする。
【0098】以上のデコード用メッセージ(Decod
eMsg)ルーチンHCP2によって、ASN.1型メ
ッセージに対する復号化を行い、データ値を抽出するこ
とができる。
【0099】『一実施例の効果』: 以上の一実施例
のPBXシステムにおける抽象構文記法1(ASN.
1)メッセージの符号化・復号化処理方法によれば、A
SN.1型メッセージを扱うソフトウエアをC言語で開
発する場合、符号化や復号化の煩わしさをなくし、所定
の条件を満たしたデータ値の構造体を定義したincl
udeファイルIE.hを作成するだけで、この構造体
ベースのデータ型とASN.1型メッセージの変換を行
うことができる。
【0100】また、ASN.1型メッセージフォーマッ
トのインタフェース仕様の変更を行う場合でも、メッセ
ージやデータ値のフォーマットと、includeファ
イルを変更するだけで、構文解析ルーチンや符号化・復
号化ルーチンを変更する必要が少なくなる。
【0101】従って、抽象構文記法1(ASN.1)の
規則によるメッセージフォーマットのインタフェースを
持つソフトウエアの作成・変更に要する作業工数を飛躍
的に減少させることができる。
【0102】『他の実施例』: (1)尚、この発明
は、以上の一実施例への適用に限定するものではない。
即ち、この発明からは、種々の態様で適用することがで
きる。即ち、上述の一実施例では、PBXシステム(図
2)への適用を例として説明したが、このようなシステ
ムへの適用に限定するものではない。
【0103】(2)また、上述の一実施例では、inc
ludeファイルなどのプログラムをC言語で記述する
ことで説明したが、このような言語での記述に限定する
ものではない。
【0104】(3)更に、上述の各種プログラムによる
ソフトウエアは、コンピュータ又はPBXの中に構成さ
れるものであり、上述の動作は基本的にはCPUやRA
MやROMや磁気ディスク装置などのハードウエア構成
とソフトウエアとの構成で実現することができる。
【0105】(4)更にまた、上述の一実施例のフォー
マット構成やプログラム構成に限定するものではない。
例えば、上述のようなYACCを使用することに限定す
るものではない。
【0106】
【発明の効果】以上述べた様にこの発明の抽象構文記法
メッセージの符号化・復号化処理方法は、基本的要素の
メッセージ又はデータ値に対するフォーマットの基本構
造形式を定義し、組込みファイルを予め形成しておき、
更に、メッセージ符号化用ルーチン又はメッセージ復号
化用ルーチンを形成しておき、しかも、上記組込みファ
イルの内容に対して構文解析手段を用いて必要なデータ
を予め抽出しておき、抽象構文記法メッセージへの符号
化のときには、必要な上記データに対してメッセージ符
号化用ルーチンの処理を実行することで、抽象構文記法
メッセージへの符号化を行い、又は抽象構文記法メッセ
ージからの復号化のときには、抽象構文記法メッセージ
から上記メッセージ復号化用ルーチンを構文解析手段を
用いて実行することで必要なデータへ復号化する構成と
したことで、比較的に簡単な共通的な仕組みと工程で、
容易に抽象構文記法メッセージの符号化や復号化処理を
行うことができる。
【図面の簡単な説明】
【図1】この発明の一実施例のASN.1型メッセージ
の符号化・復号化処理方法の概要説明図である。
【図2】一実施例のPBXシステムの構成図である。
【図3】一実施例のMakeCallメッセージの説明
図である。
【図4】一実施例のAlertメッセージの説明図であ
る。
【図5】一実施例のAnswerCallメッセージの
説明図である。
【図6】一実施例のConnectメッセージの説明図
である。
【図7】一実施例のDisconnectメッセージの
説明図である。
【図8】一実施例のEndCallメッセージの説明図
である。
【図9】一実施例のDeviceデータ値の説明図であ
る。
【図10】一実施例のDeviceTypeデータ値の
説明図である。
【図11】一実施例のDialNo.データ値の説明図
である。
【図12】一実施例のDateデータ値の説明図であ
る。
【図13】一実施例のCallStateデータ値の説
明図である。
【図14】一実施例のincludeファイルの説明図
(その1)である。
【図15】一実施例のincludeファイルの説明図
(その2)である。
【図16】一実施例の符号化の説明図である。
【図17】一実施例の復号化の説明図である。
【図18】一実施例の構造体IEStructの説明図
である。
【図19】一実施例の配列データIEDataの説明図
である。
【図20】一実施例のエンコード用メッセージ(Enc
odeMsg)ルーチンHCP1のフローチャート(そ
の1)である。
【図21】一実施例のエンコード用メッセージ(Enc
odeMsg)ルーチンHCP1のフローチャート(そ
の2)である。
【図22】一実施例のデコード用メッセージ(Deco
deMsg)ルーチンHCP2のフローチャート(その
1)である。
【図23】一実施例のデコード用メッセージ(Deco
deMsg)ルーチンHCP2のフローチャート(その
2)である。
【符号の説明】
HCP1…エンコード用メッセージ(EncodeMs
g)ルーチン、HCP2…デコード用メッセージ(De
codeMsg)ルーチン、IE.h…include
ファイル、IEStruct…構造体、IEData…
配列データ、S80…前処理、S81…構文解析、S8
2…メッセージ送信処理、S83…メッセージ受信処
理。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 基本的要素のメッセージ又はデータ値に
    対するフォーマットの基本構造形式を定義し、 上記定義に従って抽象構文記法メッセージを生成するた
    めの組込みファイルを予め形成しておき、 更に、抽象構文記法メッセージへの符号化を行うための
    メッセージ符号化用ルーチン又は抽象構文記法メッセー
    ジから復号化するためのメッセージ復号化用ルーチンを
    形成しておき、 しかも、上記組込みファイルの内容に対して構文解析を
    行う構文解析手段を用いて必要なデータを予め抽出して
    おき、 抽象構文記法メッセージへの符号化のときには、必要な
    上記データに対してメッセージ符号化用ルーチンの処理
    を実行することで、抽象構文記法メッセージへの符号化
    を行い、 又は抽象構文記法メッセージからの復号化のときには、
    抽象構文記法メッセージから上記メッセージ復号化用ル
    ーチンを上記構文解析手段を用いて実行することで必要
    なデータへ復号化する構成としたことを特徴とした抽象
    構文記法メッセージの符号化・復号化処理方法
JP5315196A 1993-12-15 1993-12-15 抽象構文記法メッセージの符号化・復号化処理方法 Pending JPH07168772A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5315196A JPH07168772A (ja) 1993-12-15 1993-12-15 抽象構文記法メッセージの符号化・復号化処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5315196A JPH07168772A (ja) 1993-12-15 1993-12-15 抽象構文記法メッセージの符号化・復号化処理方法

Publications (1)

Publication Number Publication Date
JPH07168772A true JPH07168772A (ja) 1995-07-04

Family

ID=18062570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5315196A Pending JPH07168772A (ja) 1993-12-15 1993-12-15 抽象構文記法メッセージの符号化・復号化処理方法

Country Status (1)

Country Link
JP (1) JPH07168772A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041805A (ja) * 2005-08-02 2007-02-15 Hitachi Ltd プログラム生成装置、プログラム生成方法及びコンパイラ
CN100466652C (zh) * 2004-09-24 2009-03-04 华为技术有限公司 一种对消息的编解码方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100466652C (zh) * 2004-09-24 2009-03-04 华为技术有限公司 一种对消息的编解码方法
JP2007041805A (ja) * 2005-08-02 2007-02-15 Hitachi Ltd プログラム生成装置、プログラム生成方法及びコンパイラ

Similar Documents

Publication Publication Date Title
US4716583A (en) Verbal computer terminal system
US4659877A (en) Verbal computer terminal system
US6742181B1 (en) Inter-application data transmitting/receiving system and method
EP0567137A1 (en) Protocol data unit encoding/decoding device
EP1139335B1 (en) Voice browser system
JPH07168772A (ja) 抽象構文記法メッセージの符号化・復号化処理方法
JPH10126480A (ja) 携帯電話機
JP2931307B2 (ja) 画像通信方法
WO1997008616A1 (en) System and method for parsing and building data signals
JP2739830B2 (ja) マルチプロセッサシステム用データ通信装置
JP2004234405A (ja) プロトコル符号化/復号化装置
JP2931306B2 (ja) 画像通信方法
JP3006187B2 (ja) 分散処理システム
KR940027458A (ko) 범용컴퓨터의 정보를 전송하는 팩시밀리 구현 회로 및 제어방법
JPH0417037A (ja) 端末装置の処理時間測定方式
JPH0954732A (ja) Mhs機能高度化方法
JPH10334060A (ja) 演算処理装置、並列分散処理システムおよびデータ伝送方法
JPS63232547A (ja) デ−タ通信装置
KR20020043917A (ko) 동적 서비스 제공을 위한 소프트웨어 프레임
JPH0646099A (ja) プロトコル符号化/復号化装置
JPH05303484A (ja) データリンク方式
JP2638184B2 (ja) プロトコル処理装置
JPH01137873A (ja) ファクシミリ接続装置
JPH0326168A (ja) ファクシミリアダプタ装置
JPH0195317A (ja) メッセージ送信方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term