新四季網

一種話單解碼方法及裝置的製作方法

2023-05-01 20:05:11 2


專利名稱::一種話單解碼方法及裝置的製作方法
技術領域:
:本發明涉及話單解碼
技術領域:
,尤其涉及一種話單解碼方法和裝置。
背景技術:
:隨著電信系統的發展,網絡設備為用戶提供的服務越來越豐富,其種類也越發繁多,即使同類設備由於供應商和版本不同,向下遊計費系統提供的話單接口也常會不同。因此,計費系統需要面對越來越多的話單接口,處理各種格式的話單文件。例如ASN.l(抽象語法表示法1)結構、AMA(自動報文記帳)結構、TLV(標籤-長度-內容)結構、LV(長度-內容)結構、塊狀結構、XML(可擴展標識語言)結構等結構的話單。通常,計費系統為了計費,首先對這些原始話單文件進行解碼,從中提取出一條條具體的話單信息,然後再做進一步的計費處理。如圖1所示,為現有技術話單計費系統結構示意框圖。圖1中Mediation(話單調解器)是介於網絡設備和下遊計費系統之間的話單解碼設備,負責從網元上採集話單,對話單進行解碼預處理後送往下遊的計費系統進行計費或結算。Mediation能夠處理上遊不同的網絡設目前,常用的一種對應多種格式的話單解碼的方法是採用硬編碼的方式對不同格式的話單進行解碼,每種格式的話單都具有一套獨立的解碼方式。例如,如果話單為ASN.l結構,則專門選擇專用於解碼ASN.l結構的解碼器進行解碼。然而,本發明人在進行本發明的過程種,發現該現有技術具有以下缺點現有技術由於對每種不同結構的話單都釆用硬編碼的方式進行解碼處理,即對不同結構的話單具有僅該結構適用的解碼方式,如果處理的話單格式發生變動就可能需要重新編寫一套適用新格式的解碼方式。例如,如果將標準ASN.l格式的話單文件,每個話單文件的前面加上4個字節的信息作為標識。那麼原來用於解碼標準ASN.l格式話單的解碼方式則無法對變化後的新格式的話單文件進行解碼。除非對原來的解碼程序重新修改,因此現有技術對不同格式的話單緣應能力非常差,當電信網絡中增加或者更新一種新的網絡設備而需要應對一種新格式的話單文件時,現有技術則無法快速滿足這種變化,只有對原有的解碼設備進行更新,修改原有的解碼程序或者增加新的解碼處理方式,而這些處理常常需要花費很長的時間,使得更新的周期過長。
發明內容本發明實施例的目的在於提供一種話單解碼方法和裝置,能夠對網絡中的任意結構的話單文件進行解析。本發明實施例提供了一種話單解碼方法,包括按照話單文件的結構特點,選擇與接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息;提取所述話單信息;將所提取出的話單信息封裝在計費系統能夠識別的話單文件中。基於上述技術方案,本發明實施例還提供了一種用於話單解碼的裝置,包括接收單元,用於接收待解碼的話單文件;識別單元,用於按照話單文件的結構特點,選擇與所述接收單元所接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單"息5提取單元,用於提取由所述識別單元識別得到的話單信息;封裝單元,用於將由所述提取單元所提取的話單信息封裝在計費系統能夠識別的話單文件中。與現有技術相比,本發明具有以下優點本發明實施例能夠根據話單文件的結構特點,在解碼時能夠選擇適合的識別方式對話單文件進行識別,得到該話單文件中的具體話單信息。即便當話單文件的結構發生改變,也只需根據新話單文件的結構特點,重新選擇對應的識別方式,而無需更換整個解碼處理方式,因此本發明實施例能夠靈活地適應結構多樣的話單文件,同時也對識別新結構的話單文件的擴展提供了便利。並且還提高了解碼效率。圖1為現有技術話單計費系統結構示意框圖2為本發明一種方法實施例的流程示意框圖3為一種ASN.l結構的話單文件實施例的組織結構示意圖4為本發明識別順序結構的結構單元的方法流程示意框圖5為ASN.l格式的話單文件結構示意圖6為本發明識別數組結構的結構單元的方法流程示意框圖7為本發明識別選擇結構的結構單元的方法流程示意框圖8為本發明原子單元的識別和提取方法流程示意框圖9為圖3所示結構的話單文件的解碼樹示意圖IO為本發明一種裝置實施例的結構示意框圖11為圖IO所示裝置實施例中的識別器的結構示意框圖12為圖11所示裝置實施例中的識別單元的結構示意框圖。具體實施例方式下面結合附圖對本發明的實施方式做進一步的詳細闡述。本發明公開的一種話單解碼方法實施例為按照話單文件的結構特點,選擇與接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息,其中,所述識別方式可以預先"i殳置保存。在識別時,如果話單文件由多種結構格式組成,則可以根據話單文件的結構特點,任意變化不同組合的識別方式,分別對所述話單文件中相應格式7進行解碼;然後提取所述話單信息。將所提取出的話單信息封裝在計費系統能夠識別的話單文件中。此外,在上述方法實施例的基礎上,對於結構較複雜的話單文件,本發明實施例還可以在對話單解碼前事先根據待解碼的話單文件的結構特點,設置對待解碼話單文件的結構特點的描述。然後在解碼時,將收到的話單文件當作數據流按照預先設置的話單文件的結構特點的描述,從話單文件頭開始採用與該文件中結構單元對應的識別方式識別出包含的子結構單元。當一個結構單元中包含了多個子結構單元時,還可以再分別採用與每個子結構單元對應的識別方式對子結構單元做進一步識別,依次類推,直到識別出只包含了具體話單信息字)爻的最小的原子單元,然後提取出所述原子單元中的話單信息,再將所述話單信息封裝在計費系統能夠識別的話單文件中以供計費系統計費,從而達到對原始話單解碼的目的。本發明公開的另一種方式實施例如圖2所示,為本發明另一種話單解碼方法實施例的流程示意框圖,該實施例包括S201:根據原始話單文件的結構特點,預先設置待解碼的原始話單文件的結構特點的描述。其中,對話單文件的結構特點的描述可從話單的組織結構和封裝格式上進行描述,其中,所述組織結構用於表示話單文件中包含的結構單元的情況。例如可以描述一個話單文件中是怎樣包含話單體的,每個話單體中怎樣包含話單的,這些話單種類如何,又是如何排列的等。所述封裝格式用於表示該話單文件是按照怎樣的格式封裝的,例如,該文件中有幾個字節的文件頭,通過什麼符號表示該文件的起止,該文件的長度是否為定長等。由於電信網絡中的網元設備種類具有多樣性,因此不同的網元設備生成的話單文件的結構也各不相同,例如常見的話單結構有ASN.1結構、TLV結構、LV結構、塊狀結構、XML結構、以及KeyValue結構等。下面以帶文件頭和文件尾的變長文本話單文件(以下將該類型簡稱為ASN.l結構的話單)為例,來舉例i兌明一下如何描述話單文件的結構8例如2007-06-0918:44:2313920004301,13345961111,2007-06-0918:44:2313924308017,13345964111,2007-06-0918:34:33,2007-06-0918:44:2513924243701,13323111157,2007-06-0918:44:33,2007-06-0918:48:2313640430163,13239611516,2007-06-0918:54:234其中,所述話單文件的文件頭記錄該文件的處理時間(如上述示例中的"2007-06-0918:44:23"),文件尾記錄話單的總數(如上述示例中的"4"),話單體則記錄每條話單的信息。其中,所述話單體包含了SMS(ShortMessagingService,短消息業務)和VOICE(語音)兩種類型的話單信息,其中,SMS話單有3個欄位(主叫號碼、被叫號碼、和呼叫時間),VOICE話單有4個欄位(主叫號碼、被叫號碼、呼起時間、和終止時間)。所述話單文件的組織結構還可同時參見圖3所示,圖3為本實施例所述話單文件的組織結構示意圖。根據上述示例的話單文件的結構特點,則可將該話單文件的結構特點描述為二CDRFile::=SEQUENCEheadHead,//表示該話單文件包括文件頭,話單體,文件尾bodyBody,tailTailHead::=BASICProcessTime;〃表示文件頭為記錄處理時間的原子單元Tail::=BASICRecordNum;〃表示文件尾為記錄話單總數9的原子單元Body::=SEQUENCEOFRecord〃表示話單體為包含多條話單的數組結構Record::=CHOICE〃表示話單為選擇結構,包含語音和短消息兩種格式voiceVoice,smsSmsVoice::=SEQUENCE〃表示語音話單為順序結構,按照主叫號,被叫號,呼叫起始時間,和終止時間的順序記錄話單信息callernumCallerNum;callernumCalledNum,starttimeStartTime,endtimeEndTimeSms::=SEQUENCE〃表示語音話單為順序結構,按照主叫號,被叫號,和起始時間的順序記錄話單信息callernumCallerNum;callednumCalledNum,starttimeStartTime10其中,上述描述中的"SEQUENCE"表示該話單文件為順序結構的結構單元,一個順序結構的結構單元中可包含多個子結構單元。對於順序結構的話單文件在解碼時需要按照子結構單元的順序從頭到尾逐次解碼。如按照文件頭、話單體、文件尾的順序解碼。當話單體包含了多條話單時,也同樣按照各條話單的排列順序解碼,如果一條話單中的欄位都按照順序排列,那麼在解碼時也同樣要按著欄位的排列順序進行解碼,直到該話單的所有內容解析完畢;上述描述中的"BASIC"表示原子單元,用於描述分解得到的最小單元,在一個原子單元中可以僅包含一個攜帶具體話單信息的一個欄位;上述描述中的"SEQUENCEOF"表示數組結構,一個數組結構的結構單元中只包含一種類型的若干個子結構單元,例如,數組結構的話單體只包含話單,可以有很多條話單。對於數組結構的話單體在解碼時需要對包含的每條話單都要處理。上述描述中的"CHOICE"表示選擇結構,一個選擇結構的結構單元只包含一個子結構單元,該子結構單元的種類可以為任意類型,例如,簡訊、GPRS類型等。因此,在解碼時,需要先判斷該子結構單元是哪種類型,以便採用相應的處理方式做進一步的識別或者提取處理。此外,對於ASN.l結構的話單,其常用的結構單元中的組織結構類型除了上述列舉的幾種外,還包括但不限於此集合結構,用"SET"表示,一個集合結構的結構單元中可包含多個子結構單元,這些子結構單元的排列順序可以不固定。例如,一條集合結構的話單如果包含A、B、C三個欄位,這三個欄位排列的順序可能是CBA也可能是BCA。因此,與順序結構不同,對於集合結構的結構單元在解碼時,需要先判斷當前處理的是哪個子結構單元,然後再釆用相應的處理方式做進一步的識別或者提取處理。S202:按照上述S201中預置的對原始話單文件的結構特點的描述,對接收到的話單文件釆用與該話單中相應層的結構單元對應的識別方式識別出所述結構單元中包含的子結構單元,然後再採用與所述子結構單元對應的識別方式識別出所述子結構單元中包含的更小的子結構單元,依此類推進行逐層識別,直到識別出其中的所有原子單元。由於一個話單文件通常採用套嵌結構封裝,即將一個話單文件看作是最上層的結枸單元,那麼該結構單元往往包含了多個子結構單元,而每個子結構單元也有可能還包含了若干個更小的子結構單元,這樣逐層嵌套直到最小的原子單元。因此,在識別時,通常可採用逐層識別的方式,從最上層開始採用與相應層對應的識別方式進行逐層識別,直到識別得到所有原子單元。S203:當從所述S202中得知從所述原始話單文件中識別出所有的原子單元後,分別從各原子單元中提取相應的話單信息。S204:將所提取的話單信息封裝在計費系統容易識別的話單文件中,再將封裝後的話單文件發送至所述計費系統,以供計費統計。此外,上述S203中的提取動作不僅可以在識別出整個話單文件中所有原子單元後執行,而且還可以在當話單文件中某一個子結構單元識別出包含的原子單元後就直接提取,然後再識別和提取另一個子結構單元中的話單信息。本領域技術人員知道,話單文件的組織結構有很多種,可以有不同類型的結構單元,每一層結構單元中還可以包含不同類型的子結構單元,因此,當一個話單文件中嵌套了多層不同類型的結構單元時,在上述S202中需要分別根據每層的結構單元的組織結構特點,採用相應的識別方式對相應層的結構單元進行識別,以識別出包含的所有子結構單元,然後再根據每個子結構單元的組織結構特點,分別選擇與所述子結構單元相對應的識別方式進而識別出更小的子結構單元。由於每層結構單元的組織結構和格式會有可能不同,因此不同層需要採用與之對應的不同的識別方式。下面根據常用的幾種不同組織結構的結構單元,分別舉例說明一下本實施例中對不同結構單元採用的具體識別方式,例如如圖4所示,對於順序結構的結構單元,由於包含的子結構單元為順序排列的,因此採用的識別方式為按照順序對包含的子結構單元逐個識別,例如,先對第一個子結構單元做進一步識別處理,當第一個子結構單元中識別12出了所有的原子單元後,然後再按照順序對第二個子結構單元做進一步識別處理,直到該順序結構的結構單元中包含的所有的子結構單元都^、別完畢,該方法可具體包括S401:判斷當前待解碼的結構單元是否滿足預定義的結構單元的識別條件,若是,則可以按照所滿足的結構單元的封裝格式識別得到所述結構單元中包含的所有子結構單元,然後執行S402;否則,執行S406。其中,判斷結構單元的識別條件可以具體為判斷所述結構單元的封裝格式是否屬於指定類型,例如指定的待識別的結構單元的封裝格式為ASN.l格式的文件,如參見圖5所示,一個ASN.l格式的文件包括標籤(TAG)部分、長度(Length)部分、和內容(Content)部分。因此,可以通過識別結構單元中是否包含TAG部分,來確定待識別的結構單元是否為ASN.l結構的。S402:根據該結構單元的封裝格式標明所述結構單元和該結構單元包含的所有子結構單元的作用範圍。然後再執行S403。其中,標明所述結構單元的作用範圍的目的在於為了能夠在所述結構單元的長度範圍內保證所有的子結構單元都被識別過,通過保證所述結構單元中所有包含了話單信息的原子單元都能夠識別,以進一步保證所述結構單元中攜帶的話單信息都能被提取。其中,標明所述結構單元中所有子結構單元的作用範圍的目的在於為了能夠保證在所述所有子結構單元的長度範圍內,識別出所有子結構單元中包含的所有更小的子結構單元,以保證所有子結構單元中的包含的所有的話單信息都能被提取。由於常用的話單文件的封裝格式有很多種,不同的封裝^^式採用不同的識別方法識別其中包含的子結構單元,可以通過相應的識別器實現,下面根據常用的幾種不同封裝格式的結構單元,分別舉例說明一下本實施例中不同格式的結構的結構單元對應的判斷方法,以及標明作用範圍的方法,如表1所示。需要說明的是,表l所列方法同樣適用於本發明的其他實施例中。頁表1識別器判斷結構單元是否滿足條件子結構單元的作用範圍結構單元的作用範圍ASN.l識別器1通過TAG部分來判斷要處理的數據流是否滿足該結構單元解碼條件;通過Lengh部分來計算其所有子結構單元的作用範圍通過TAG部分、LENGH部分和Content部分的總和計算該結構單元的總的作用範圍文本行識別器2通過換行符判斷要處理的數據流是否滿足條件文本行的長度文本行的長度定長文本行識別器3通過換行符和預定義的長度值判斷要處理的數據流是否滿足條件通過預定義的長度來可以獲得其所有子結構單元的作用範圍通過預定義的長度以及換行符的長度來可以計算該結構單元的總的作用範圍變長文本行識別器4通過換行符、預定義的分隔符和欄位個數判斷要處理的數據流是否滿足條件通過前面步驟獲得其所有子結構單元的作用範圍通過前面步驟獲得該結構單元的總的作用範圍塊識別器5通過預定義的塊頭和塊尾的標誌判斷要處理的數據流是否滿足該結構單元解碼條件通過前面步驟獲得其所有子結構單元的作用範圍通過前面步驟獲得其所有子結構單元的作用範圍任意識別當前數據流即滿足父結構所限定父結構所限定14tableseeoriginaldocumentpage15通過上述標明出結構單元的作用範圍後,使得結構單元只能對該作用範圍內的數據流進行識別處理,並且作用範圍內的所有悽t據都必須得到識別處理,以保證所述結構單元在識別時不會越界,同時又保證了話單信息不會丟失。S403:分別採用與子結構單元對應的識別方式,按照順序對所包含的各子結構單元在各自作用範圍內逐個識別,以得到所有子結構單元中的所有原子單元。在識別過程中,在每識別完一個子結構單元後,可執行S404;當無法正常識別,則執行S406。所述順序識別的方法例如先採用適用於第一個子結構單元的識別方式對該子結構單元啦支進一步識別處理,當該子結構單元中還包含了其他更小的子結構單元時,再分別採用各自適用的識別方式分別識別所述更小的子結構單元,直到識別出所述子結構單元中包含的所有原子單元;然後如果還有第二個子結構單元,再對第二個子結構單元做進一步伊、別處理,依此類推。S404:判斷所述結構單元中所有子結構單元的作用範圍內是否都識別完畢?若是,則繼續執行S405;否則,返回至所述S403,以按照順序繼續識別下一個子結構單元。S405:判斷在所述結構單元的作用範圍內是否識別完畢,若是,則結束識別流程;否則,執行S406。其中,判斷結構單元的作用範圍是否識別完畢的目的在於由於一個話單文件在識別時會將該話單文件當作一個數據流,從話單的文件頭開始識別,到話單體時,由於一個話單體中包含了多個子結構單元,則開始按照該話單體的組織結構特點,採用相應的識別方式進行識別,在對多個子結構單元識別時,會先對其中一個子結構單元逐層識別,直到識別出該子結構單元中所有的原子單元,然後再對其他子結構單元識別。當話單體中的所有子結構單元都被識別完成後,還需對話單文件的話單尾進行識別,只有當將所述話單文件的結構單元的作用範圍內的所有信息都識別,即處理了話單所有長度的內容,才能認為完成了該話單文件的識別。因此,該步驟的目的在於為了保證整個話單文件的正確性和完整性。S406:報告識別錯誤。此外,上述S405是針對當前識別的結構單元為一個話單文件,即為最上一層的結構單元。如果當前識別的結構單元為話單文件中包含的某一個子結構單元時,則所述S405中,當判斷得到所述當前識別的結構單元的作用範圍識別完畢後,在結束識別流程之前,還需要向上層母結構單元返回所述結構單元成功識別的長度,以便所述上層母結構單元收到所述結構單元的成功識別的長度後,能夠確定該母結構單元中還有多少長度的信息沒有識別,供母結構單元判斷是否在母結構單元的作用範圍內是否識別完畢。此外,上述S403中當一個子結構單元識別完畢後,還可以不先執行S404的判斷,而是按照順序繼續識別下一個子結構單元,等依次識別後,再執行所述S404,當S404中判斷得到還有子結構單元沒有識別到時,則再返回至所述S403對未識別的子結構單元進行識別。如圖6所示,對於數組結構的結構單元,採用的識別方式為對包含的子結構單元分別識別,例如,先對其中的一個子結構單元做進一步識別處理,當從該子結構單元中識別出了所有的原子單元後,再識別其他子結構單元,直到該數組結構的結構單元中包含的所有的子結構單元都識別完畢。數組結構的結構單元的識別方式與上述圖4所示的順序結構的結構單元的識別方法基本相同,不同之處在於,數組結構的結構單元中包含的子結構單元都為同一種類型,因此,在本實施例中S603可以對數組結構的結構單元中包含的子結構單元都採用相同的識別方式進行識別。本實施例的識別方法可具體包括S601:判斷當前待解碼的結構單元是否滿足預定義的結構單元的識別條件,若是,則可以按照所滿足的結構單元的封裝格式識別得到所述結構單元中包含的所有子結構單元,然後執行S602;否則,執行S606。其中,判斷結構單元的識別條件可以具體為判斷所述結構單元的封裝格式是否屬於指定類型,本實施例中的判斷識別條件的方法與圖4所示實施例中的相同,在此不再——贅述。S602:根據該結構單元的封裝格式標明所述結構單元和該結構單元包含的所有子結構單元的作用範圍。然後再執行S603。S603:採用與子結構單元對應的識別方式,對所包含的子結構單元進行識別,以得到所有子結構單元中的所有原子單元。在識別過程中,在每識別完一個子結構單元後,可I丸行S604;當無法正常識別,則4丸行S606。S604:判斷所述結構單元中所有子結構單元的作用範圍內是否都識別完畢?若是,則繼續執行S605;否則,返回所述S603,以繼續識別其他子結構單元。S605:判斷所述結構單元的作用範圍是否識別完畢,若是,則結束識別流程;否則,執行S606。S606:報告識別錯誤。17此外,上述S605是針對當前識別的結構單元為一個話單文件,即為最上一層的結構單元。如果當前識別的結構單元為話單文件中包含的某一個子結構單元時,則所述S605中,當判斷得到所述當前識別的結構單元的作用範圍識別完畢後,在結束識別流程之前,還需要向上層母結構單元返回所述結構單元成功識別的長度,以便所述上層母結構單元收到所述結構單元的成功識別的長度後,能夠確定該母結構單元中還有多少長度的信息沒有識別,供母結構單元判斷是否在母結構單元的作用範圍內識別完畢。此外,上述S603中當一個子結構單元識別完畢後,還可以不先執行S604的判斷,而是繼續識別另一個子結構單元,等都識別後,再執行所述S604,當S604中判斷得到還有子結構單元沒有識別到時,則再返回至所述S603對未識別的子結構單元進行識別。如圖7所示,對於選擇結構的結構單元,由於選擇結構的結構單元只包含一個子結構單元,而所述子結構單元可以為各種類型,因此,在對該子結構單元做進一步識別前,需要先確定子結構單元屬於哪一種類型。以便根據相應類型的組織結構和封裝格式的特點選擇對應的識別方式進行對子結構單元做進一步識別。本實施例的識別方式可具體包括S70k判斷當前待解碼的結構單元是否滿足預定義的結構單元的識別條件,若是,則可以按照所滿足的結構單元的封裝格式識別得到所述結構單元中包含的子結構單元,然後執行S702;否則,執行S706。其中,判斷結構單元的識別條件可以具體為判斷所述結構單元的封裝格式是否屬於指定類型,本實施例中的判斷識別條件的方法與圖4所示實施例中的相同,在此不再一一贅述。S702:根據該結構單元的封裝格式標明所述結構單元和該結構單元包含的子結構單元的作用範圍。然後再執行S703。S703:根據所包含的子結構單元的封裝格式來確定所述子結構單元屬於哪種類型,如語音、或短消息等類型。其中,可按照表1所列舉的滿足條件判斷子結構單元的類型。S704:釆用與所述子結構單元類型對應的識別方式,對該子結構單元進行識別,以得到所述子結構單元中包含的所有原子單元。在識別過程中,在識別完後,可執行S705;當無法正常識別,則執行S707。S705:判斷在所述子結構單元的作用範圍內是否識別完畢?若是,則繼續扭Pf亍S706;否則,返回至所述S704,繼續識別。S706:判斷在所述結構單元的作用範圍是否識別完畢,若是,則結束識別流程;否則,執行S707。S707:報告識別錯誤。此外,上述S706是針對當前識別的結構單元為一個話單文件,即為最上一層的結構單元。如果當前識別的結構單元為話單文件中包含的一個子結構單元時,則所述S706中,當判斷得到所述當前識別的結構單元的作用範圍識別完畢後,在結束識別流程之前,還需要向上層母結構單元返回所述結構單元成功識別的長度,以便所述上層母結構單元收到所述結構單元的成功識別的長度後,能夠確定該母結構單元中還有多少長度的沒有識別,供母結構單元判斷是否在母結構單元的作用範圍內是否識別完畢。此外,對於集合結構的結構單元,由於集合結構中包含多個子結構單元,各子結構單元的排列順序不固定,因此,在對各子結構單元做進一步識別前,需要先確定待識別的子結構單元分別屬於哪種結構的,以便選擇相應的識別方式進行對各子結構單元進一步識別。由於集合結構的識別方式與圖7所示的選擇結構的識別方式大致相同,在此不再贅述。如圖8所示,對於原子單元,由於原子結構單元屬於話單文件的最小結構單元,因此當識別到原子單元時,則無需再做進一步的子結構單元的識別,而是^^艮據所述原子單元的封裝格式識別出包含話單信息的欄位,然後提取所述欄位得到話單信息,對於原子單元的識別和提取方法包括S801:判斷當前待解碼的原子單元是否滿足預定義的結構單元的識別條件,若是,則可以按照所滿足的結構單元的封裝格式識別得到所述原子單元中包含有話單信息的所有欄位,然後執行S802;否則,執行S805。19其中,判斷原子單元的識別條件可以具體為判斷所述原子單元的封裝格式是否屬於指定類型,本實施例中的判斷識別條件的方昧與圖4所示實施例中的相同,在此不再——贅述。S802:根據所述原子單元的封裝格式標明所述原子單元的作用範圍。然後執行S803。S803:判斷是否需要提取話單信息,若是,則執行S804;否則,執行S805。S804:根據所述欄位的編碼特點,選擇相應的提取器,按照該提取器的提取方式提取所述欄位中話單信息。當提取完畢,則結束本流程;當無法正常提取時,則執行S805。其中,欄位的不同編碼方式所對應的提取方法可參見表2所示。表2提取器原始值提取方式ASCII提取器A普通欄位串從偏移量開始取值,直到串尾符或者指定的最大長度有符號大端整數提取器B有符號大端整數轉換成主機能表示的整數值有符號小端整數提取器C有符號小端整數轉換成主機能表示的整數值無符號大端整數提取器D無符號大端整數轉換成主機能表示的整數值無符號小端整數提取器E無符號小端整數轉換成主機能表示的整數值BCD碼提取器FBCD碼每個字節轉換成兩個字符標識,但是遇到F後結束TBCD碼提取器GTBCD碼每個字節轉換成兩個字符標識,但是著兩個字符要進行反20轉並且遇到F後結束十六進位提取器H十六進位每個字節轉換成兩個字符標識,轉換後的長度為原來的兩倍S805:報告識別錯誤。此外,在上述圖2所示的實施例中S202中,設置原始話單的結構描述除了採用語言設置外,還可以直接在解碼樹上通過改變解碼樹的節點布局,以及設置各節點的配置參數來實現對整個話單文件的結構描述的設置。下面仍以上述圖2所示實施例中所列舉的圖3所示的ASN.l結構的話單文件的結構特點為例,根據表1和表2中所列舉的識別器和提取器,詳細說明一下如何使用解碼樹設置原始話單文件的結構描述如圖9所述,為圖3所示結構的話單文件的解碼樹示意圖。該解碼樹上的每個葉子節點表示一個原子單元,非葉子節點表示複合類型的結構單元,在每個節點上都有一個識別器,用於判斷收到的話單文中對應節點的結構單元是否滿足預定義的識別條件。對於存在話單信息的葉子節點還需要配置相應的提取器和輸出欄位,以便將提取得到的話單信息封裝到指定的輸出欄位上。其中,對每個節點配置識別器、提取器、以及組織結構類型等參數時,可以直接使用識別器或提取器的標號以及特殊符號進行設置,例如[]表示該節點的結構類型;{}表示該節點的識別器;表示該原子節點的抽取器;表示該原子節點的輸出欄位。以圖9所示的解碼樹中左下角的節點為例其中,欄位1的結構類型為BASIC(即原子單元),識別器為8(即分隔符識別器),抽取器是A(即ASCII抽取器),輸出欄位是Calller。基於上述技術方案,本發明實施例還公開了一種用於話單解碼的裝置,如圖10所示,為本發明一種裝置實施例的結構示意框圖,所述裝置包括接收單元1001、識別單元1002、提取單元1003、封裝單元1004,其中,所述接收單元1001,用於接收待解碼的話單文件;當所述接收單元100121收到待解碼的話單文件後,由所述識別單元1002對所述接收單元1001中所接收到的話單文件進行識別,其識別的具體方式為選擇與所述接收單元1001所接收到的話單文件的結構特點對應的識別方式識別出所迷話單文件中的具體話單信息。其中,在所述識別單元1002中可以保存有與話單文件可能出現的各種結構特點所對應的各種識別器(圖中未示出),在每個識別器中都保存有各自對應的結構特點所適用的識別方式,所述識別器(圖中未示出)用於按照所保存的識別方式識別話單文件。所述識別單元1002中還包括選擇識別單元(圖中未示出),用於按照所述待解碼話單文件的結構特點,選擇相應的識別器(圖中未示出),以使用該識別器(圖中未示出)來識別所述接收單元1001中收到的話單文件,得到所述話單文件中包含的具體話單信息;當所述識別單元1002識別得到所述話單文件中的所有話單信息時,由所述提取單元1003提取。所述提取單元1003用於提取由所述識別單元1002識別得到的話單信息;所述封裝單元1004,用於將由所述提取單元1003所提取的話單信息封裝在計費系統能夠識別的話單文件中,以-使所述計費系統計費。此外,對於結構較複雜的話單文件,所述裝置還可以包括配置單元(圖中未示出),用於在對收到的話單文件解碼前,預先通過所述配置單元(圖中未示出)設置待解碼的話單文件的結構特點描述。然後,在解碼時,由所述識別單元1002中的選擇識別單元(圖中未示出)按照所述配置單元(圖中未示出)中描述的待解碼話單文件的結構特點,選擇與所述接收單元1001所接收到的話單文件的結構特點對應的識別器(圖中未示出)識別出所述話單文件中的具體話單信息。其中,所述配置單元(圖中未示出)可採用語言形式描述話單文件的結構特點,而且還可以釆用解碼樹的設置方式,通過改變解碼樹的節點布局以及設置各節點的配置參數來實現對整個話單文件的結構描述的設置。上述實施例由於針對話單信息的不同結構特點,預先設置了不同的識別器,因此在對話單文件解碼時,能夠通過所述識別單元1002根據待解碼的話單文件的結構特點,選擇合適的識別方式從所述話單文件中識別得到具體話單信息。本實施例由於可以根據預置的結構特點描述,在識別時調用相應的識別器(圖中未示出)進行識別,因此,即便當話單文件的結構發生改變,也只需在設置單元(圖中未示出)中簡單更新變化環節的結構描述,或者只需在識別單元1002中添加新的識別器(圖中未示出),而不用再對整個解碼流程的原始代碼進行修改。因此,本實施例能夠靈活地適應結構多樣的話單文件,也為新格式的話單文件的識別方式的擴展提供了便利。並且還提高了解碼效率。與此同時,當所述話單文件為嵌套結構時,即話單文件的結構單元中還包含了子結構單元,在子結構單元中可能還包含了更小單元的子結構單元。因此在上述圖IO所示實施例的基礎上,所述裝置中的識別單元1002可才艮據收到的話單文件中結構單元的封裝格式特點,對接收到的話單文件逐層採用與相應層的結構單元對應的識別器(圖中未示出)識別出所述結構單元中包含的所有子結構單元,直到子結構單元為包含有具體話單信息的原子單元。如圖11所示,為圖10所示裝置實施例中的識別器的結構示意框圖,當話單文件為多層嵌套時,所述裝置在圖IO所示裝置實施例的基礎上,所述識別單元1002中的識別器具體包括封裝^"式確定單元10021、和子結構單元確定單元10022,其中,所述封裝格式確定單元10021,用於通過判斷當前待識別的結構單元滿足所述設置單元(圖中未示出)中預置的哪一種結構單元的識別條件,確定所述結構單元所滿足的封裝格式;所述子結構單元確定單元10022,用於按照所述封裝格式確定單元10021所確定的封裝格式識別得到所述結構單元中包含的所有子結構單元。當確定得到子結構單元後,然後可按照所述設置單元(圖中未示出)中預置的所述子結構單元的結構特點描述,再選擇相應的識別器(圖中未示出)對所述子結構單元做進一步識別,進而識別得到所述子結構單元中包含的更小子結構單元。依次類推逐層採用相應的識別器(圖中未示出)逐層識別,直到識別得到包含有最小的話單信息的原子單元。其中,再次選擇的識別器(圖中未示出)中可同樣包含與上述圖11所示識別器相同的結構,在此不再23一一贅述。此外,在上述圖11所示裝置實施例的基礎上,為了保證.整個話單文件的正確性和完整性,還可標明話單文件中的結構單元以及包含的所有子結構單元的作用範圍。以便保證在作用範圍內的信息都被識別到。如圖12所示,圖12為圖11所示裝置實施例中的識別單元的結構示意框圖,在上述圖11所示裝置實施例的勤出上,所述識別單元1002還包括作用範圍標明單元10023、控制單元10024,其中所述作用範圍標明單元10023,用於4艮據所述封裝格式確定單元10021所確定的封裝格式標明所述結構單元和所述子結構單元確定單元10022中確定的所有子結構單元的作用範圍;所述控制單元10024,用於根據由所述作用範圍標明單元10023所標明的所述結構單元的作用範圍判斷,若在所述結構單元的作用範圍內都識別完畢,則指令所述裝置的提取單元1003執行所述提取功能;否則,則報告識別錯誤。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解並實施。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。以上所述的本發明實施方式,並不構成對本發明保護範圍的限定。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的保護範圍之內。權利要求1、一種話單解碼方法,其特徵在於,包括按照話單文件的結構特點,選擇與接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息;提取所述話單信息;將所提取出的話單信息封裝在計費系統能夠識別的話單文件中。2、如權利要求1所述的話單解碼方法,其特徵在於,在初次執行所述識別動作之前還包括根據話單文件的結構特點,預先設置待解碼的話單文件的結構特點的描述;所述按照話單文件的結構特點,選擇與接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息具體為按照預置的話單文件的結構的描述,對接收到的話單文件採用與所述話單文件中包含的結構單元對應的識別方式識別出所述結構單元中包含的子結構單元;再採用與所述子結構單元對應的識別方式對所述子結構單元做進一步識別,依次類推逐層識別,直到識別得到包含具體話單信息的原子單元;所述提取所述話單信息具體為從所述原子單元中提取所述話單信息。3、如權利要求2所述的話單解碼方法,其特徵在於,所述採用與結構單元對應的識別方式識別出所述結構單元中包含的子結構單元具體包括判斷當前待識別的結構單元是否滿足預置的結構單元的識別條件,若是,則按照所滿足的結構單元的封裝格式識別得到所述結構單元中包含的所有子結構單元。4、如權利要求2或3所述的話單解碼方法,其特徵在於,在所述採用與括"、、、;、工'、、'"、、'根據所述結構有子結構單元的作用範圍;所述對子結構單元^L進一步識別具體為在所述所有子結構單元的作用範圍內對子結構單元做進一步識別。5、如權利要求2所述的話單解碼方法,其特徵在於,在所述提取之前還包括判斷在所述結構單元的作用範圍內是否都識別完畢,若是,則執行所述提取步驟;否則,報告識別錯誤。6、如權利要求2所述的話單解碼方法,其特徵在於,當所述結構單元為順序結構時,所述採用與所述子結構單元對應的識別方式對所述子結構單元做進一步識別具體為7、一種用於話單解碼的裝置,其特徵在於,包括接收單元,用於接收待解碼的話單文件;識別單元,用於按照話單文件的結構特點,選擇與所述接收單元所接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息;提取單元,用於提取由所述識別單元識別得到的話單信息;封裝單元,用於將由所述提取單元所提取的話單信息封裝在計費系統能夠識別的話單文件中。8、如權利要求7所述的用於話單解碼的裝置,其特徵在於,所述裝置還包括配置單元,用於按照話單文件的結構特點,配置待解碼的話單文件的結構特點的描述;所述識別單元包括各種識別器,分別保存有與話單文件的結構特點對應的識別方式,用於按照所保存的識別方式識別話單文件;選擇識別單元,用於按照所述配置單元中話單文件的結構特點的描述,選擇相應的識別器以識別所述接收單元中的話單文件,得到所述話單文件中的具體話單信息。9、如權利要求8所述的用於話單解碼的裝置,其特徵在於,所述識別器包括封裝格式確定單元,用於通過判斷當前待識別的結構單元是否滿足預置的結構單元的識別條件,確定所述結構單元所滿足的封裝格式;子結構單元確定單元,用於按照所述封裝格式確定單元所確定的封裝格式識別得到所述結構單元中包含的所有子結構單元。10、如權利要求7至9中任一項所述的話單解碼方法,其特徵在於,所述識別單元還包括作用範圍標明單元,用於根據所述封裝格式確定單元所確定的封裝格式標明所述結構單元和所述子結構單元確定單元中確定的所有子結構單元的作用範圍;控制單元,用於根據由所述作用範圍標明單元所標明的所述結構單元的作用範圍判斷,若在所述結構單元的作用範圍內都識別完畢,則指令所述提取單元執行所述提取功能;否則,則報告識別錯誤。全文摘要本發明公開了一種話單解碼方法,包括按照話單文件的結構特點,選擇與接收到的話單文件的結構特點對應的識別方式識別出所述話單文件中的具體話單信息;提取所述話單信息;將所提取出的話單信息封裝在計費系統能夠識別的話單文件中。與此同時,本發明實施例還公開了一種用於話單解碼的裝置。本發明實施例能夠根據話單文件的結構特點,選擇適合的識別方式對話單文件識別,識別方式較靈活,而且對識別新結構的話單文件的擴展提供了便利,提高了解碼效率。文檔編號H04M15/00GK101459746SQ200710195369公開日2009年6月17日申請日期2007年12月13日優先權日2007年12月13日發明者何海兵,李昌振,梅有玉,奇王申請人:華為軟體技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀