專利名稱:一種利用計費標識進行通信計費的方法
技術領域:
本發明涉及數據通信計費技術,特別涉及一種在無線數據通信系統中利用計費標識進行通信計費的方法。
背景技術:
在無線數據通信系統中,需要為每個上下文分配一個計費標識(ChargeID),該Charge ID為每個上下文的唯一標識,對于一個通用分組無線業務網關支持節點(GGSN)來說,Charge ID在一段時間內不能重復,通常采用累加的方法生成Charge ID,基于該Charge ID進行通信計費操作。
如圖1所示,圖1為現有技術生成Charge ID的流程圖,其具體步驟為步驟100,在無線數據通信系統中設置一個n位的基準值和一個32-n位的累加值,該基準值保存在主信令板的閃存(FLASH)中,如果無線數據通信系統復位,該基準值在系統復位時自動加1,然后再次保存在主信令板的FLASH中,以備下次復位后讀出;如果無線數據通信系統正常運行,則該基準值保持不變;步驟102、103,在無線數據通信系統正常運行時,基準值作為高n位,把累加值作為低32-n位,組成32位的Charge ID,該Charge ID為每次分配給上下文的值,Charge ID中的累加值是在無線數據通信系統正常運行期間從0開始累加得到的,在實際的無線數據通信系統中,通常n的二進制位數為4,累加值的二進制位數為28位。
為了保證在主備信令板倒換時Charge ID不發生重復,在進行備份時,將基準值加1后備份到備板上,該加1后的基準值保存到備板的FLASH中,如步驟101所示,當主備信令板倒換時,以倒換后的主板上的基準值生成Charge ID。
當主備信令板倒換后,采用倒換后的主板上的基準值生成Charge ID的方法雖然避免了Charge ID當前分配重復的問題,但卻存在以下問題,第一個問題為該方法用Charge ID的高n位作為單板重啟計數值(Recovery),而對端節點是根據Recovery的值判斷GGSN是否重啟,當主備信令板倒換時,對應Charge ID高n位的基準值會發生變化,從而導致Recovery值也會發生改變,在此情況下,當GGSN發消息給對端節點時,對端節點根據所收到的Recovery值判斷出GGSN發生重啟,對端節點就會去活所有與Recovery改變前相關的上下文,造成所有通過該GGSN上網的用戶的業務數據的全部中斷;第二個問題為備份倒換完成后,系統再重啟時,如果GGSN從新的主信令板FLASH中讀出的基準值,此時仍存在Charge ID分配重復的問題。
更進一步的,由于生成Charge ID的過程是從0開始計數的,因此0也就作為合法的Charge ID,但是協議中明確規定0應保留而不分配。
發明內容
有鑒于此,本發明提供了一種利用計費標識進行通信計費的方法,該方法不僅有效防止了Charge ID分配重復的問題,而且解決了現有技術中由于無線數據通信系統基準值發生變化而導致不該出現的GGSN上下文去活問題。
根據上述目的,本發明提供一種利用計費標識進行通信計費的方法,適用于無線數據通信系統中,該方法包括A、分別設置基準值、累加值和重啟計數值(Recovery),其中,基準值和重啟計數值存儲于主板的閃存(FLASH)上;B、將步驟A設置的基準值備份到備板,并將步驟A設置的基準值加2后保存在備板的FLASH中;同時,將步驟A設置的Recovery值備份到備板,并將步驟A設置的Recovery值加1后保存在備板的FLASH中;C、在通用分組無線業務網關支持節點(GGSN)向對端節點發送消息時,先獲取當前基準值作為高位,當前累加值作為低位,生成當前計費標識(ChargeID),并獲取當前的Recovery值;然后GGSN向對端節點發送攜帶有當前ChargeID和當前Recovery值的消息,對端節點收到該消息后,根據消息中的Recovery值確定當前無線數據通信系統是重啟還是主備倒換,并根據消息中的Charge ID進行通信計費。
當無線數據通信系統進行主備倒換時,所述步驟C包括C11.將倒換后主板備份的基準值加1作為當前基準值,該當前基準值作為Charge ID的高位,當前累加值作為Charge ID的低位,生成當前Charge ID;C12.讀出倒換后主板備份的Recovery值作為當前Recovery值,將當前基準值備份到備板,當前基準值加2后保存在備板FLASH中;同時,將當前Recovery值備份到備板,Recovery值加1后保存在備板FLASH中;C13.向對端節點發送帶有當前Charge ID和當前Recovery值的消息,對端節點根據所收消息中Recovery的值判斷無線數據通信系統未重啟,兩端節點根據消息中的Charge ID進行正常通信計費。
當無線數據通信系統重啟或信令板復位時,所述步驟C包括C21.從主板FLASH中讀出基準值作為當前基準值,該當前基準值作為Charge ID的高位,將當前累加值重新歸0作為Charge ID的低位,生成當前Charge ID;C22.從主板FLASH中讀出Recovery值作為當前Recovery值,將當前基準值備份到備板,將當前基準值加2后保存在備板FLASH中;同時,將當前Recovery值備份到備板,當前Recovery值加1后保存在備板FLASH中;C23.GGSN向對端節點發送帶有當前Charge ID和當前Recovery值的消息,對端節點根據所收消息中Recovery的值判斷無線數據通信系統已重啟或復位,則去活所有與Recovery值未改變前相關的GGSN上下文。
上述方案中,所述累加值是無線數據通信系統在正常運行時由無線數據通信系統分配的。所述基準值和累加值不同時為0。
所述Charge ID和Recovery值分別由32位二進制數和8位二進制數組成。所述基準值和累加值分別由4位二進制數和28位二進制數組成。
本發明提供的方法,一方面通過將Charge ID的高n位即基準值與單板重啟計數值分離的方案,解決了主備信令板進行倒換時系統Recovery值產生變化的問題,從而解決了主備板倒換后系統基準值變化導致的GGSN中上下文去活的問題;另一方面,改變了主備板中對基準值,即Charge ID的高n位進行備份的處理方法,使無線數據通信系統中的Charge ID不會因主備倒換時基準值發生重復而出現重復的現象,進而避免了計費信息出錯。
圖1為現有技術中生成Charge ID的流程圖。
圖2為本發明生成Charge ID的實施例流程圖。
具體實施例方式
為了使本發明的目的、技術方案和優點更加清楚明白,以下舉實施例并參照附圖,對本發明進一步詳細說明。
由于Charge ID的基準值與單板重啟計數值沒有必然的聯系,因此本發明是將這兩個變量進行分離設置,并對基準值和重啟計數值的備份分別進行特定的處理,以避免出現重復。
當無線數據通信系統進行批量備份時,如圖2所示,圖2為本發明生成Charge ID的實施例流程圖,其具體過程為步驟200,在無線數據通信系統中,分別設置一個由n位二進制數組成的基準值、一個由m位二進制數組成的累加值和一個重啟計數值(Recovery),基準值和重啟計數值存儲于主板的閃存(FLASH)中,且基準值與累加值不同時為0。
步驟201,在進行備份時,將基準值備份到備板,將基準值加2后保存在備信令板的FLASH中,同時將Recovery的值備份到備板,將Recovery加1后的值保存在備板的FLASH中。
步驟202,進行主備倒換時,將倒換后的主板基準值加1作為新的基準值,新的基準值作為Charge ID的高位,即Charge ID的高位發生改變,并將當前累加值作為Charge ID的低位,形成Charge ID,讀出倒換后備板中的Recovery值,即Recovery值保持不變,將基準值備份到備板,將基準值加2后保存在備信令板的FLASH中,同時將Recovery的值備份到備板,將Recovery加1后的值保存在備板的FLASH中;向對端節點發送消息時,對端節點根據所收消息中Recovery的值判斷無線數據通信系統未重啟,兩端節點正常通信。
步驟203,當無線數據通信系統重啟或復位時,將從主板FLASH中讀出的基準值作為Charge ID的高位,并將當前累加值重新歸0作為Charge ID的低位,形成Charge ID;從主板FLASH中讀出Recovery值,此時基準值和Recovery值都發生了變化,將基準值備份到備板,將基準值加2后保存在備信令板的FLASH中,同時將Recovery的值備份到備板,將Recovery加1后的值保存在備板的FLASH中,在向對端節點發送消息時,對端節點根據所收消息中Recovery的值判斷無線數據通信系統已重啟或復位,則去活所有與Recovery未改變前相關的GGSN上下文。
由此可知,主備信令板進行倒換時,Charge ID的高n位,即基準值發生變化,但是系統重啟值保持不變,只有當系統重啟時,系統的重啟值才會發生變化。
在無線通信系統中,一般采用32位二進制數組成的Charge ID,其中高4位二進制數為基準值,低28位二進制數為累加值,且基準值與累加值不同時為0。
采用該方法,如果無線數據通信系統倒換時,GGSN發給對端節點消息中的在無線數據通信系統重啟計數值將保留不變,對端節點就不會去活GGSN的上下文;如果備份倒換完畢后,無線數據通信系統再重啟,GGSN的Charge ID分配也不會重復。
上述方法的Charge ID倒換前的分配可以通過編程語言實現,比如設置變量ulChargeId表示當前分配的Charge ID,ulChargeId值為0時不用;g_ucChargeIdUpper4為全局變量,即基準值保存ChargeId高四位的值;g_ulChargeIdCount為全局變量,即累加值保存單板正常運行期間累計分配的Charge ID計數,復位、倒換后從0開始累加計數;那么,其具體的描述為g_ulChargeIdCount++;ulChargeId=(g_ucChargeIdUpper4<<28)|(gulChargeIdCount & 0x0fffffff);if(ulChargeId==0){ulChargeId++;g_ulChargeIdCount++;}分配Charge ID時,把g_ucChargeIdUpper4做為本次分配的Charge ID高4位,每次分配后累加的g_ulChargeIdCount做為低28位,這樣就組成了新分配的Charge ID,其中g_ucChargeIdUpper4和g_ulChargeIdCount不同時為0。
綜上所述,采用該方法有效防止了Charge ID分配重復的問題,解決了當Charge ID重復使用時計費信息出錯的問題,而且解決了倒換后系統基準值變化導致的GGSN中上下文去活的問題,取得了很好的效果。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所做的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種利用計費標識進行通信計費的方法,適用于無線數據通信系統中,其特征在于該方法包括A、分別設置基準值、累加值和重啟計數值(Recovery),其中,基準值和重啟計數值存儲于主板的閃存(FLASH)上;B、將步驟A設置的基準值備份到備板,并將步驟A設置的基準值加2后保存在備板的FLASH中;同時,將步驟A設置的Recovery值備份到備板,并將步驟A設置的Recovery值加1后保存在備板的FLASH中;C、在通用分組無線業務網關支持節點(GGSN)向對端節點發送消息時,先獲取當前基準值作為高位,當前累加值作為低位,生成當前計費標識(ChargeID),并獲取當前的Recovery值;然后GGSN向對端節點發送攜帶有當前ChargeID和當前Recovery值的消息,對端節點收到該消息后,根據消息中的Recovery值確定當前無線數據通信系統是重啟還是主備倒換,并根據消息中的Charge ID進行通信計費。
2.如權利要求1所述的方法,其特征在于,無線數據通信系統進行主備倒換時,所述步驟C包括C11.將倒換后主板備份的基準值加1作為當前基準值,該當前基準值作為Charge ID的高位,當前累加值作為Charge ID的低位,生成當前Charge ID;C12.讀出倒換后主板備份的Recovery值作為當前Recovery值,將當前基準值備份到備板,當前基準值加2后保存在備板FLASH中;同時,將當前Recovery值備份到備板,Recovery值加1后保存在備板FLASH中;C13.向對端節點發送帶有當前Charge ID和當前Recovery值的消息,對端節點根據所收消息中Recovery的值判斷無線數據通信系統未重啟,兩端節點根據消息中的Charge ID進行正常通信計費。
3.如權利要求1所述的方法,其特征在于,當無線數據通信系統重啟或信令板復位時,所述步驟C包括C21.從主板FLASH中讀出基準值作為當前基準值,該當前基準值作為Charge ID的高位,將當前累加值重新歸0作為Charge ID的低位,生成當前Charge ID;C22.從主板FLASH中讀出Recovery值作為當前Recovery值,將當前基準值備份到備板,將當前基準值加2后保存在備板FLASH中;同時,將當前Recovery值備份到備板,當前Recovery值加1后保存在備板FLASH中;C23.GGSN向對端節點發送帶有當前Charge ID和當前Recovery值的消息,對端節點根據所收消息中Recovery的值判斷無線數據通信系統已重啟或復位,則去活所有與Recovery值未改變前相關的GGSN上下文。
4.如權利要求1所述的方法,其特征在于,所述累加值是無線數據通信系統在正常運行時由無線數據通信系統分配的。
5.如權利要求1或2所述的方法,其特征在于,所述基準值和累加值不同時為0。
6.如權利要求1所述的方法,其特征在于,所述Charge ID和Recovery值分別由32位二進制數和8位二進制數組成。
7.如權利要求7所述的方法,其特征在于,所述基準值和累加值分別由4位二進制數和28位二進制數組成。
全文摘要
本發明公開了一種利用計費標識進行通信計費的方法,包括A)在無線數據通信系統中分別設置基準值、累加值和重啟計數值(Recovery),該基準值和Recovery值存儲于主板的閃存(FLASH)上;B)將步驟A設置的基準值備份到備板,將該基準值加2保存在備板FLASH中;同時將步驟A設置的Recovery值備份到備板,將該Recovery值加1保存在備板FLASH中;C)通用分組無線業務網關支持節點(GGSN)向對端節點發消息時,先獲取當前基準值作為高位,當前累加值作為低位,生成當前計費標識(Charge ID),并獲取當前Recovery值;然后GGSN向對端節點發送帶有當前Charge ID和當前Recovery值的消息,對端節點根據所收消息中的Recovery值判斷無線數據通信系統是否重啟。該方法解決了由Charge ID重復使用引起的計費信息出錯問題。
文檔編號H04L12/14GK1531249SQ0311954
公開日2004年9月22日 申請日期2003年3月10日 優先權日2003年3月10日
發明者楊文 , 楊 文 申請人:華為技術有限公司