鄭 偉
GSM-R移動交換機ASN.1話單的解碼
鄭 偉
摘 要:根據(jù)ASN.1數(shù)據(jù)結(jié)構(gòu)的特性,結(jié)合中國鐵路GSM-R網(wǎng)絡(luò)話單存儲結(jié)構(gòu)的特點,提出了一種改進的話單解碼算法設(shè)計文件,對該算法文件的特點進行了分析。
關(guān)鍵詞:鐵路綜合數(shù)字移動通信系統(tǒng);話單;ASN.1算法;設(shè)計
MSC移動交換機是GSM-R網(wǎng)絡(luò)中的主要設(shè)備,目前北京、武漢、上海、濟南、南昌、廣州等6局采用諾西公司生產(chǎn)的D900型MSC設(shè)備,占已開通GSM-R網(wǎng)絡(luò)鐵路局?jǐn)?shù)量的一半以上。在諾西公司MSC交換機中,所產(chǎn)生的的話單采用ASN.1格式進行存儲,記錄了組呼類型、補充業(yè)務(wù)、司機與調(diào)度員之間的通話等重要內(nèi)容。該格式話單為純十六進制數(shù)據(jù)文件,對于普通維護人員來說不可讀,為此針對ASN.1格式話單文件設(shè)計了解碼算法,使之對交換機產(chǎn)生的話單可讀、可查,便于GSM-R網(wǎng)絡(luò)的維護管理。
ASN.1(抽象語法表示)是一種數(shù)據(jù)存儲結(jié)構(gòu)標(biāo)準(zhǔn),屬ISO/ITU-T標(biāo)準(zhǔn)體系之一,其數(shù)據(jù)結(jié)構(gòu)同XML類似,特點是:對任意一個數(shù)據(jù)塊,均采用統(tǒng)一的“標(biāo)記 (TAG) -長度 (LEN) -值(VALUE)”的數(shù)據(jù)結(jié)構(gòu)形式,且允許多重嵌套。典型的ASN.1格式數(shù)據(jù)塊存儲形式如圖1所示。
其中,話單1、話單2、...話單n表示每個數(shù)據(jù)塊的長度,TAG表示存儲的數(shù)據(jù)段名稱或含義,LEN表示數(shù)據(jù)段內(nèi)容的長度,VALUE表示存儲數(shù)據(jù)段的具體值。
圖1 典型的ASN.1格式數(shù)據(jù)塊存儲形式
典型話單基本內(nèi)容應(yīng)包含:話單類型、手機號碼、通話起始日期、起始時間、通話時長等。以ASN.1格式存儲的話單文件,可以用多個相同結(jié)構(gòu)的數(shù)據(jù)塊來表示。
1.對TAG進行編碼定義,例如TAG=1為話單類型,TAG=2為手機號碼,TAG=3為起始日期等。字節(jié)長度表示該數(shù)據(jù)內(nèi)容名稱代碼的長度,如果字節(jié)長度為1(實際應(yīng)用中為1—2字節(jié)可變長度),則在一條話單中可記錄的數(shù)據(jù)內(nèi)容類型為256種 (從 00H-FFH)。TAG字段編碼方式見表1。
2.LEN字節(jié)表示后續(xù)數(shù)據(jù)的存儲長度,如 LEN=00001011(二進制),即 11(十進制),表明后續(xù)11個字節(jié)以ASCII碼形式存儲11位的手機號碼。LEN字節(jié)的值表示自本字節(jié)下一字節(jié)起長度為LEN個字節(jié)的內(nèi)容為記錄的具體內(nèi)容。
表1 TAG字段編碼表 (節(jié)選)
3.VALUE字節(jié) (其長度為LEN個字節(jié))表示具體內(nèi)容。
4.話單起始標(biāo)志。在諾西公司的交換機中,一條話單的起始標(biāo)志定義為“E1 81”,即該字符組合為話單的起始標(biāo)志。
圖2為以十六進制文件編輯器方式打開的原始話單文件信息 (節(jié)選)。
圖2 原始話單信息示例 (節(jié)選)
按照上述規(guī)則,則可以對圖2中的字符內(nèi)容進行解碼。
1.“E1 81”,為話單起始標(biāo)志,該標(biāo)志在倒數(shù)第二行的最后一個字節(jié)再次出現(xiàn)。
2.第一行“E1 81”后為“DC”,即十進制220,表示本條話單有220個字節(jié)組成。
3.該結(jié)構(gòu)為“TAG-LEN-VALUE”的嵌套方式,“E1 81”為TAG,“DC”為LEN,后續(xù)字節(jié)均為 VALUE,且該 VALUE內(nèi)包含多個“TAGLEN-VALUE”結(jié)構(gòu),即一個話單文件為若干條話單以“E1+81+話單長度+TAG+LEN+VALUE”方式連接而成。
根據(jù)上述分析,一個典型的話單文件存儲結(jié)構(gòu)如圖3所示。
圖3 典型話單文件存儲結(jié)構(gòu)示意圖
圖4 算法流程示意圖
典型解碼算法流程如圖4所示。算法設(shè)計思路:①首先得到整個文件長度,作為判斷是否超出文件范圍的依據(jù);②對每條話單逐個分析數(shù)據(jù)塊,不超出話單長度時進行循環(huán),否則啟動新話單或啟動結(jié)束流程;③超出單條話單,判斷是否重啟新一條話單處理進程或是整個話單文件結(jié)束;④如果整個話單文件未結(jié)束,則進行新一條話單的處理;⑤如果處理的是最后一條話單,則整體結(jié)束。
按照上述設(shè)計思路,現(xiàn)已實現(xiàn)了對話單文件的解碼功能。以圖1中的原始話單為例,通過上述算法,解碼得到的可讀文本信息如圖5所示。
可以看出,該話單為一條移動用戶被叫話單(MTC),記錄了號碼為914321105的 FAS用戶(調(diào)度員),通過車次功能號 20075826101(即K8261次)呼叫該車次司機的通話記錄,實際接續(xù)的手機號碼為14984020291,自2011年7月1日3:33:00開始,通話時長為11 s,呼叫接通時K8261次司機位于LAC(位置區(qū))為17153、CI(小區(qū)ID)為8213的基站覆蓋范圍內(nèi)。
圖5 通過解法得到的可讀文本信息
按照本設(shè)計思路,已采用VISUAL BASIC6.0編程工具實現(xiàn)了上述功能。在指定話單數(shù)據(jù)文件后,通過本算法可將十六進制的原始話單文件轉(zhuǎn)化為如上例中的純文本文件,供網(wǎng)絡(luò)管理者或其他管理部門調(diào)取、分析通話記錄使用。
[1]中華人民共和國鐵道部運輸局.GSM-R數(shù)字移動通信網(wǎng)編號計劃(V2.0)[S].2006.
[2]鐘章隊,李旭,蔣文怡.鐵路綜合數(shù)字移動通信系統(tǒng)(GSM-R)[M].北京:中國鐵道出版社,2003.
[3]中華人民共和國鐵道部.運基信號[2010]821號.客專信號系統(tǒng)安全數(shù)據(jù)網(wǎng)技術(shù)規(guī)范(V2.0)[S].2010.
[4]中華人民共和國鐵道部.運基信號[2010]267號.關(guān)于印發(fā)鐵路信號安全通信協(xié)議技術(shù)規(guī)范的通知[R].2010.
Abstract:According to the characteristics of the ASN.1 data structure and combined with the characteristics of the Chinese Railways GSM-R network storage structure,this paper raises an improved billing file decoding algorithms for design documents and analyses the characteristics of the file.
Key words:GSM-R;Billing file;ASN.1 Algorithm;Design
鄭 偉:北京鐵路局北京通信段 工程師 100069 北京
2012-10-21
(責(zé)任編輯:諸 紅)