專利名稱::Stk/utk卡及其控制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及無(wú)線通信業(yè)務(wù),尤其涉及STK/UTK(SIMTOOLKIT/UIMcardToolKit)卡及其控制方法。
背景技術(shù):
:目前的STK/UTK卡可以根據(jù)需要,通過無(wú)線網(wǎng)絡(luò)的短消息信道對(duì)卡內(nèi)應(yīng)用菜單和變量菜單進(jìn)行添加、更新、刪除,不受發(fā)卡前、后限制。STK/UTK卡中的應(yīng)用菜單執(zhí)行時(shí),卡片根據(jù)應(yīng)用菜單代碼所表示的含義進(jìn)行處理,當(dāng)需要STK/UTK卡與用戶或終端進(jìn)行交互時(shí),如要求終端顯示內(nèi)容給用戶看,要求終端發(fā)送短信,撥打電話等,STK/UTK卡將組織機(jī)卡交互指令(即終端與卡片之間的交互指令)傳遞給終端,終端按照機(jī)卡交互指令的要求進(jìn)行操作。當(dāng)STK/UTK卡應(yīng)用菜單的某些內(nèi)容需要頻繁更新時(shí),可以將頻繁更新的菜單數(shù)據(jù)和相對(duì)固定的菜單代碼分離,菜單數(shù)據(jù)部分存儲(chǔ)到變量菜單中,菜單代碼部分則仍以普通應(yīng)用菜單方式實(shí)現(xiàn)。用戶使用菜單時(shí),應(yīng)用菜單的菜單代碼對(duì)變量菜單中的菜單數(shù)據(jù)進(jìn)行訪問,以呈現(xiàn)一個(gè)完整的菜單內(nèi)容。更新時(shí),使用變量菜單更新命令更新變量菜單所存儲(chǔ)的菜單數(shù)據(jù)。因?yàn)閼?yīng)用菜單調(diào)用了變量菜單,因此變量菜單的更新即可使應(yīng)用菜單呈現(xiàn)給用戶的菜單內(nèi)容有所不同。變量菜單是一類特殊的菜單,它是用來(lái)保存變量的。這類菜單在STK/UTK卡上對(duì)用戶是不可見的。菜單中的內(nèi)容只有通過應(yīng)用菜單對(duì)其的調(diào)用才能夠看到。變量菜單與應(yīng)用菜單均由3字節(jié)的菜單索引AID來(lái)唯一標(biāo)識(shí)。當(dāng)AID第2個(gè)字節(jié)的最高位為1時(shí),代表變量菜單,當(dāng)最高位為0時(shí),代表應(yīng)用菜單。作為變量菜單來(lái)說,第2個(gè)字節(jié)的剩余BIT用來(lái)作為變量菜單序號(hào)。當(dāng)變量菜單與應(yīng)用菜單使用相同的大類編號(hào)(第l個(gè)字節(jié))和業(yè)務(wù)編號(hào)(第3個(gè)字節(jié))時(shí),我們稱這個(gè)變量菜單和應(yīng)用菜單是相關(guān)聯(lián)的。一個(gè)應(yīng)用菜單可以關(guān)聯(lián)多個(gè)變量菜單,如應(yīng)用菜單014001就和變量菜單018001相關(guān)聯(lián),應(yīng)用菜單014001和變量菜單019001也是關(guān)聯(lián)的。個(gè)變量菜單的編碼格式如下:<table>tableseeoriginaldocumentpage5</column></row><table>每個(gè)變量預(yù)留空間的長(zhǎng)度完全相同,由變量預(yù)留長(zhǎng)度的值決定。每個(gè)變量均為L(zhǎng)V格式,LV格式長(zhǎng)度應(yīng)等于變量預(yù)留長(zhǎng)度的數(shù)值。L表示該變量在預(yù)留空間內(nèi)有效數(shù)據(jù)的長(zhǎng)度。V表示變量的具體內(nèi)容,內(nèi)容各字節(jié)的含義由應(yīng)用定義。變量菜單中的變量由變量索弓I來(lái)唯一標(biāo)識(shí)。變量索弓1從0x0000至0xFFFF,上表中變量1的變量索引即為0x0000。對(duì)變量菜單的操作有如下四種1、變量菜單下載當(dāng)卡內(nèi)沒有此變量菜單時(shí),通過變量菜單下載指令將變量菜單存儲(chǔ)到卡內(nèi)。2、變量菜單更新使用變量菜單更新命令更新變量菜單的部分或全部變量的數(shù)據(jù)。3、變量菜單刪除變量菜單的刪除沒有單獨(dú)的命令,只有當(dāng)其相關(guān)聯(lián)的應(yīng)用菜單被刪除時(shí),變量菜單才會(huì)被刪除。4、變量菜單訪問原有應(yīng)用菜單是一個(gè)獨(dú)立的整體,不需要對(duì)外部代碼進(jìn)行訪問。引入變量菜單概念后,將原有應(yīng)用菜單拆分成新應(yīng)用菜單和變量菜單兩部分單獨(dú)代碼,新應(yīng)用菜單代碼必須對(duì)變量菜單中的變量進(jìn)行訪問,才能實(shí)現(xiàn)原有應(yīng)用菜單的功能。應(yīng)用菜單對(duì)變量菜單中變量的訪問,是通過GET一VAR和SET一VAR命令來(lái)實(shí)現(xiàn)的。GET—VAR命令是應(yīng)用菜單對(duì)變量菜單中變量進(jìn)行讀取訪問的命令。應(yīng)用菜單代碼通過GET—VAR命令,指定需要讀取的變量菜單的變量索引,讀取后即可在應(yīng)用菜單代碼中進(jìn)行使用。SET—VAR命令是應(yīng)用菜單對(duì)變量菜單中變量進(jìn)行寫入和更新的命令。應(yīng)用菜單代碼通過SET—VAR命令,指定需要寫入或更新的變量菜單的變量索引,對(duì)變量的內(nèi)容進(jìn)行修改。引入變量菜單概念以后,原有應(yīng)用菜單的功能可以使用應(yīng)用菜單代碼+變量菜單代碼的形式來(lái)完成,也仍然可以按照原有應(yīng)用菜單的方式編寫完整獨(dú)立的代碼。當(dāng)采用的是應(yīng)用菜單代碼+變量菜單代碼時(shí),由于應(yīng)用菜單代碼調(diào)用了變量菜單,所以只要更新了變量菜單中的變量,用戶就可以體驗(yàn)到不同的應(yīng)用菜單。當(dāng)采用的是傳統(tǒng)的獨(dú)立應(yīng)用菜單代碼時(shí),仍然按照原有的菜單更新命令對(duì)應(yīng)用菜單代碼進(jìn)行更新,才能使用戶體驗(yàn)的應(yīng)用菜單有所不同。對(duì)變量菜單中的變量進(jìn)行更新,除了可以在應(yīng)用菜單中使用SET—VAR命令外,還可以通過獨(dú)立的變量菜單更新命令來(lái)實(shí)現(xiàn)更新。使用SET—VAR命令必須要用戶使用應(yīng)用菜單才可以,而變量菜單更新命令則可以在用戶不知情的情況下更新變量菜單的變量?jī)?nèi)容。在上表中可以看到,變量菜單的編碼結(jié)構(gòu)中包含更新會(huì)話密鑰字段。當(dāng)變量菜單被下載到卡片上時(shí),這個(gè)更新會(huì)話密鑰字段的內(nèi)容就已經(jīng)確定。若要改變這個(gè)更新會(huì)話密鑰字段的內(nèi)容,必須重新下載這個(gè)變量菜單。變量菜單更新命令數(shù)據(jù)格式中包含校驗(yàn)碼字段,這個(gè)字段是用來(lái)校驗(yàn)此變量菜單更新命令是否具有合法性的。根據(jù)變量菜單中更新會(huì)話密鑰字段第1個(gè)字節(jié)的不同取值,卡片在接收到變量菜單更新命令后完成不同的操作。下面列出變量菜單更新命令的數(shù)據(jù)格式。變量菜單更新命令的數(shù)據(jù)格式為:<table>tableseeoriginaldocumentpage7</column></row><table>每次更新變量菜單后,用戶都必須點(diǎn)擊STK/UTK菜單入口才能使用應(yīng)用菜單,卡片(即STK/UTK卡)的應(yīng)用菜單只能被動(dòng)執(zhí)行,等待用戶點(diǎn)擊?,F(xiàn)有技術(shù)可以實(shí)現(xiàn)變量菜單更新后,用戶即可使用一個(gè)不同內(nèi)容的應(yīng)用菜單。但無(wú)論最終的應(yīng)用菜單代碼是采用應(yīng)用菜單代碼+變量菜單代碼方式還是原有的獨(dú)立應(yīng)用菜單代碼方式,對(duì)代碼進(jìn)行更新以后,應(yīng)用菜單的使用,都必須依賴用戶的主動(dòng)性,需要用戶每次都點(diǎn)擊操作手機(jī)界面,進(jìn)入STK/UTK菜單入口來(lái)調(diào)用應(yīng)用菜單,這是一個(gè)繁瑣的過程?,F(xiàn)有技術(shù)無(wú)法做到菜單數(shù)據(jù)(包括應(yīng)用菜單和變量菜單)更新后自動(dòng)調(diào)用應(yīng)用菜單。
發(fā)明內(nèi)容為了解決上述的技術(shù)問題,本發(fā)明提供了STK/UTK卡及其控制方法,其目的在于,變量菜單更新后,應(yīng)用菜單能夠主動(dòng)執(zhí)行。本發(fā)明提供了STK/UTK卡的控制方法,包括步驟l,變量菜單更新成功后,判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi),如果是,執(zhí)行步驟2,否則按照現(xiàn)有流程執(zhí)行;步驟2,依據(jù)更新會(huì)話密鑰選擇指定的應(yīng)用菜單;步驟3,啟動(dòng)應(yīng)用菜單。預(yù)設(shè)值的范圍是。步驟2中,依據(jù)更新會(huì)話密鑰的最后兩個(gè)字節(jié)選擇指定的應(yīng)用菜單。步驟3中,還調(diào)用相應(yīng)的變量菜單;和/或還包括歩驟4,通知終端按照交互指令代碼進(jìn)行操作。本發(fā)明提供了STK/UTK卡,其特征在于,包括變量菜單更新成功指示模塊,用于指示變量菜單更新成功;判斷模塊,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單并啟用該應(yīng)用菜單。預(yù)設(shè)值的范圍是。判斷模塊依據(jù)更新會(huì)話密鑰的最后兩個(gè)字節(jié)選擇指定的應(yīng)用菜單。還包括變量菜單調(diào)用模塊,用于供所述指定的應(yīng)用菜單調(diào)用相應(yīng)的變量菜單;和域通知模塊,用于通知終端按交互指令代碼要求進(jìn)行操作。本發(fā)明提供了應(yīng)用菜單執(zhí)行系統(tǒng),包括終端和STK/UTK卡,STK/UTK卡包括變量菜單更新成功指示模塊,判斷模塊和應(yīng)用菜單選擇模塊;變量菜單更新成功指示模塊,用于指示變量菜單更新成功;判斷模塊,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單,并啟用該應(yīng)用菜單。還包括變量菜單調(diào)用模塊和/或通知模塊;變量菜單調(diào)用模塊,用于供所述指定的應(yīng)用菜單調(diào)用相應(yīng)的變量菜單;通知模塊,用于通知終端按照交互指令代碼進(jìn)行操作。本發(fā)明使應(yīng)用菜單的執(zhí)行變被動(dòng)為主動(dòng),用戶不再需要通過繁瑣的點(diǎn)擊STK/UTK菜單入口才能調(diào)用應(yīng)用菜單,只需等待應(yīng)用菜單自動(dòng)執(zhí)行。圖1為本發(fā)明中提供的第一個(gè)STK/UTK卡控制流程圖;圖2為本發(fā)明中提供的第一個(gè)STK/UTK卡結(jié)構(gòu)示意圖;圖3為本發(fā)明中提供的第二個(gè)STK/UTK卡控制流程圖;圖4為本發(fā)明中提供的第二個(gè)STK/UTK卡控制流程圖。具體實(shí)施例方式本發(fā)明提出的解決上述問題的方法是擴(kuò)展變量菜單更新命令,將變量菜單更新命令的功能與激活一個(gè)應(yīng)用菜單并執(zhí)行的功能合二為一。通過對(duì)變量菜單中變量的更新來(lái)觸發(fā)應(yīng)用菜單主動(dòng)執(zhí)行,用戶被動(dòng)接受菜單執(zhí)行。如果應(yīng)用菜單代碼中使用了變量菜單的變量,則每次更新變量菜單變量后,用戶所看到的應(yīng)用菜單均不相同。具體來(lái)講,通過分析變量菜單,發(fā)現(xiàn)更新會(huì)話密鑰第一個(gè)字節(jié)在0xl0-0xlF之間的變量菜單需要向用戶展示應(yīng)用菜單,于是本發(fā)明就在變量菜單更新成功后,利用更新會(huì)話密鑰分離出應(yīng)用菜單索引,STK/UTK卡啟動(dòng)指定的應(yīng)用菜單(應(yīng)用菜單被啟動(dòng)后可調(diào)用或不調(diào)用變量菜單),并把應(yīng)用菜單被激活執(zhí)行后的首個(gè)機(jī)卡交互指令代碼拼裝起來(lái)傳遞給終端,通知終端按交互指令代碼要求進(jìn)行操作,如屏幕顯示、發(fā)短信、打電話等。一般來(lái)說,應(yīng)用菜單索引AID共有三個(gè)字節(jié),但是中間的一個(gè)字節(jié)全都置O,因此更新會(huì)話密鑰字段只使用了應(yīng)用菜單索引AID的第一個(gè)和第三個(gè)字節(jié)來(lái)唯一標(biāo)識(shí)應(yīng)用菜單。STK/UTK卡需要在更新會(huì)話密鑰最后兩個(gè)字節(jié)中間增加一個(gè)全為0的字節(jié),擴(kuò)展為應(yīng)用菜單的AID。變量菜單根據(jù)其編碼數(shù)據(jù)中更新會(huì)話密鑰的不同取值分為兩大類,一類是此變量菜單更新后不需要執(zhí)行應(yīng)用菜單,另一類是在更新之后需要調(diào)用指定應(yīng)用菜單執(zhí)行。當(dāng)變量菜單更新會(huì)話密鑰的第一個(gè)字節(jié)非0xl0-0xlF時(shí),執(zhí)行變量菜單更新命令后,不執(zhí)行應(yīng)用菜單。當(dāng)變量菜單更新會(huì)話密鑰的第一個(gè)字節(jié)為0xl0-0xlF時(shí),在成功更新變量菜單后,執(zhí)行一個(gè)指定的應(yīng)用菜單,所執(zhí)行的應(yīng)用菜單由更新會(huì)話密鑰的最后兩個(gè)字節(jié)表示。更新會(huì)話密鑰倒數(shù)第二個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的大類編號(hào),倒數(shù)第一個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的業(yè)務(wù)編號(hào)。接收到變量菜單更新命令后,STK/UTK卡根據(jù)相應(yīng)變量菜單的編碼數(shù)據(jù)中更新會(huì)話密鑰的不同取值進(jìn)行的具體操作如下更新會(huì)話密鑰第一個(gè)字節(jié)的值為0x00-0x07(低半字節(jié)的最高比特位為0)時(shí),要求STK/UTK卡驗(yàn)證變量菜單更新命令數(shù)據(jù)中的源地址字段和校驗(yàn)碼字段是否與更新會(huì)話密鑰中的源地址字段和校驗(yàn)碼字段相符。具體方法為更新會(huì)話密鑰第一字節(jié)的低三個(gè)比特表示保存源地址號(hào)碼的有效字節(jié)數(shù)(n),從更新會(huì)話密鑰第二字節(jié)至第n+l個(gè)字節(jié)為源地址號(hào)碼后2n或2n-l(此時(shí)需要用F填充更新會(huì)話密鑰第n+l個(gè)字節(jié)的高半字節(jié))位,編碼方式同電話號(hào)碼本文件EFadn(注沒有數(shù)字類型TON和號(hào)碼鑒別NPI)。校驗(yàn)碼為更新會(huì)話密鑰的后四個(gè)字節(jié)。卡片收到變量菜單更新命令后,先驗(yàn)證命令發(fā)送的源地址是否與更新會(huì)話密鑰中保存的源地址號(hào)碼相符;然后比較命令中的校驗(yàn)碼是否與更新會(huì)話密鑰中保存的校驗(yàn)碼相符。若均相符,則對(duì)變量菜單中的變量進(jìn)行更新。否則,不執(zhí)行更新。例如1:更新會(huì)話密鑰為"0512612312F35678"(F為填充位),表示收到變量菜單更新命令時(shí),要比較該命令中的源地址號(hào)碼的后9個(gè)數(shù)字是否為"211632213",同時(shí),還要比較變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼是否為"12F35678",兩個(gè)條件同時(shí)滿足則對(duì)變量菜單中的變量進(jìn)行更新,否則不執(zhí)行更新。例如2:若更新會(huì)話密鑰為"00106123123F5678",當(dāng)收到變量菜單更新命令時(shí),由于第一字節(jié)的低三個(gè)比特為O,因此忽略源地址號(hào)碼的比較,但驗(yàn)證變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼是否為"123F5678"。更新會(huì)話密鑰第一個(gè)字節(jié)的值為0x08-0x0F(低半字節(jié)的最高比特位為1)時(shí),要求STK/UTK卡驗(yàn)證變量菜單更新命令數(shù)據(jù)中的源地址字段是否與更新會(huì)話密鑰中的源地址字段相符,同時(shí)還要通過更新會(huì)話密鑰字段和變量菜單更新命令中的命令參數(shù)字段計(jì)算MAC(MessageAuthenticationCode,消息認(rèn)證代碼),截取所得結(jié)果的前四字節(jié)與變量菜單更新命令中的校驗(yàn)碼字段比較,驗(yàn)證是否相符。具體方法為更新會(huì)話密鑰第一字節(jié)的低三個(gè)比特表示保存源地址號(hào)碼的有效字節(jié)數(shù)(n),從更新會(huì)話密鑰第二字節(jié)至第n+l個(gè)字節(jié)為源地址號(hào)碼后2n或2n-l位,編碼方式同EFadn(注沒有TON和NPI)??ㄆ盏阶兞坎藛胃旅詈?,先驗(yàn)證命令發(fā)送的源地址是否與更新會(huì)話密鑰中保存的源地址號(hào)碼相符;然后使用變量菜單中的更新會(huì)話密鑰和變量菜單更新命令中的命令參數(shù)字段計(jì)算MAC,截取MAC值的前四字節(jié),與命令中的校驗(yàn)碼比較是否相符。若均相符,則對(duì)變量菜單中的變量進(jìn)行更新。否則,不執(zhí)行更新。例如l:更新會(huì)話密鑰為"0D12612312F35678",表示收到變量菜單更新命令時(shí),要比較該命令中的源地址號(hào)碼的后9個(gè)數(shù)字是否為"211632213",同時(shí),還要使用此更新會(huì)話密鑰和變量菜單命令中的命令參數(shù)字段計(jì)算MAC,并比較變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼與所得MAC值的前四字節(jié)是否一致,兩個(gè)條件同時(shí)滿足則對(duì)變量菜單中的變量進(jìn)行更新,否則不執(zhí)行更新。例如2:若更新會(huì)話密鑰為"08106123123F5678",則忽略源地址號(hào)碼的比較,但仍需要使用此更新會(huì)話密鑰和變量菜單命令中的命令參數(shù)字段計(jì)算MAC,并驗(yàn)證變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼與所得MAC值的前四字節(jié)是否一致。更新會(huì)話密鑰第一個(gè)字節(jié)的值為0x10-0x17(低半字節(jié)的最高比特位為0)時(shí),要求STK/UTK卡驗(yàn)證變量菜單更新命令數(shù)據(jù)中的源地址字段和校驗(yàn)碼字段是否與更新會(huì)話密鑰中的源地址字段和校驗(yàn)碼字段相符。若驗(yàn)證成功,且變量菜單的變量成功更新,則執(zhí)行指定的應(yīng)用菜單。具體方法為更新會(huì)話密鑰第一字節(jié)的低三個(gè)比特表示保存源地址號(hào)碼的有效字節(jié)數(shù)(n),從更新會(huì)話密鑰第二字節(jié)至第n+l個(gè)字節(jié)為源地址號(hào)碼后2n或2n-l位,編碼方式同電話號(hào)碼本文件EFadn(注沒有TON和NPI)。校驗(yàn)碼為更新會(huì)話密鑰的后四個(gè)字節(jié)。更新會(huì)話密鑰倒數(shù)第二個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的大類編號(hào),倒數(shù)第一個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的業(yè)務(wù)編號(hào)。卡片收到變量菜單更新命令后,先驗(yàn)證命令發(fā)送的源地址是否與更新會(huì)話密鑰中保存的源地址號(hào)碼相符;然后比較命令中的校驗(yàn)碼是否與更新會(huì)話密鑰中保存的校驗(yàn)碼相符。若均相符,則對(duì)變量菜單中的變量進(jìn)行更新。否則,不執(zhí)行更新。若變量菜單更新命令執(zhí)行成功,卡片主動(dòng)調(diào)用指定的應(yīng)用菜單。若應(yīng)用不存在,卡片返回9000。例如1:更新會(huì)話密鑰為"1512612312F35678",表示收到變量菜單更新命令時(shí),要比較該命令中的源地址號(hào)碼的后9個(gè)數(shù)字是否為"211632213",同時(shí),還要比較變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼是否為"12F35678",兩個(gè)條件同時(shí)滿足,則對(duì)變量菜單中的變量進(jìn)行更新,否則不執(zhí)行更新。若變量菜單的變量更新成功,則執(zhí)行56大類下編號(hào)為78的應(yīng)用。若此應(yīng)用不存在,卡片返回9000。若變量菜單的變量更新不成功,則不再執(zhí)行指定應(yīng)用菜單。例如2:若更新會(huì)話密鑰為"10106123123F5678",表示忽略源地址號(hào)碼的比較,但驗(yàn)證變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼是否為"123F5678"。若驗(yàn)證失敗,則不執(zhí)行更新。若驗(yàn)證成功,則對(duì)變量菜單中的變量進(jìn)行更新。若變量菜單的變量更新成功,則執(zhí)行56大類下編號(hào)為78的應(yīng)用。若此應(yīng)用不存在,卡片返回9000。若變量菜單的變量更新不成功,則不再執(zhí)行應(yīng)用菜單。更新會(huì)話密鑰第一個(gè)字節(jié)的值為0xl8-0xlF(低半字節(jié)的最高比特位為1)時(shí),要求STK/UTK卡驗(yàn)證變量菜單更新命令數(shù)據(jù)中的源地址字段是否與更新會(huì)話密鑰中的源地址字段相符,同時(shí)還要通過更新會(huì)話密鑰字段和變量菜單更新命令中的命令參數(shù)字段計(jì)算MAC,截取所得結(jié)果的前四字節(jié)與變量菜單更新命令中的校驗(yàn)碼字段比較,驗(yàn)證是否相符。若驗(yàn)證成功,且變量菜單的變量成功更新,則執(zhí)行指定的應(yīng)用菜單。具體方法為更新會(huì)話密鑰第一字節(jié)的低三個(gè)比特表示保存源地址號(hào)碼的有效字節(jié)數(shù)(n),從更新會(huì)話密鑰第二字節(jié)至第n+l個(gè)字節(jié)為源地址號(hào)碼后2n或2n-l位,編碼方式同EFadn(注沒有TON和NPI)。更新會(huì)話密鑰倒數(shù)第二個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的大類編號(hào),倒數(shù)第一個(gè)字節(jié)表示所需執(zhí)行應(yīng)用菜單的業(yè)務(wù)編號(hào)??ㄆ盏阶兞坎藛胃旅詈?,先驗(yàn)證命令發(fā)送的源地址是否與更新會(huì)話密鑰中保存的源地址號(hào)碼相符;使用變量菜單中的更新會(huì)話密鑰和變量菜單更新命令中的命令參數(shù)字段計(jì)算MAC,截取MAC值的前四字節(jié),與命令中的校驗(yàn)碼比較是否相符。若均相符,則對(duì)變量菜單中的變量進(jìn)行更新。否則,不執(zhí)行更新。若變量菜單更新命令執(zhí)行成功,卡片主動(dòng)調(diào)用指定的應(yīng)用菜單。若應(yīng)用不存在,卡片返回9000。例如l:更新會(huì)話密鑰為"1D12612312F35678",表示收到變量菜單更新命令時(shí),要比較該命令中的源地址號(hào)碼的后9個(gè)數(shù)字是否為"211632213",同時(shí),還要使用此更新會(huì)話密鑰和變量菜單命令中的命令參數(shù)字段計(jì)算MAC,并比較變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼與所得MAC值的前四字節(jié)是否一致,兩個(gè)條件同時(shí)滿足則對(duì)變量菜單中的變量進(jìn)行更新,否則不執(zhí)行更新。若變量菜單的變量更新成功,則執(zhí)行56大類下編號(hào)為78的應(yīng)用。若此應(yīng)用不存在,卡片返回9000。若變量菜單的變量更新不成功,則不再執(zhí)行指定應(yīng)用菜單。例如2:若更新會(huì)話密鑰為"18106123123F5678",表示忽略源地址號(hào)碼的比較,但仍需要使用此更新會(huì)話密鑰和變量菜單命令中的命令參數(shù)字段計(jì)算MAC,并驗(yàn)證變量菜單更新命令數(shù)據(jù)中的校驗(yàn)碼與所得MAC值的前四字節(jié)是否一致。若驗(yàn)證失敗,則不執(zhí)行更新。若驗(yàn)證成功,則對(duì)變量菜單中的變量進(jìn)行更新。若變量菜單的變量更新成功,則執(zhí)行56大類下編號(hào)為78的應(yīng)用。若此應(yīng)用不存在,卡片返回9000。若變量菜單的變量更新不成功,則不再執(zhí)行應(yīng)用代碼。更新會(huì)話密鑰第一個(gè)字節(jié)的值為其它值時(shí),按照現(xiàn)有流程進(jìn)行處理即STK/UTK卡收到變量菜單更新命令后,不需要校驗(yàn)任何信息,直接對(duì)變量菜單中的變量進(jìn)行更新。下面就一個(gè)天氣預(yù)報(bào)的業(yè)務(wù)舉例說明如何實(shí)現(xiàn)在更新變量菜單變量數(shù)據(jù)的同時(shí)主動(dòng)執(zhí)行應(yīng)用菜單業(yè)務(wù)需求要求每天能將用戶所在地區(qū)的最新天氣預(yù)報(bào)自動(dòng)顯示給用戶看。需求分析天氣預(yù)報(bào)內(nèi)容每天都在改變,需要每天更新。要求自動(dòng)顯示給用戶看,就不能讓用戶自己點(diǎn)擊STK/UTK的入口,應(yīng)能自動(dòng)執(zhí)行應(yīng)用菜單。解決方案使用變量菜單來(lái)存儲(chǔ)天氣預(yù)報(bào)信息,通過變量菜單更新命令來(lái)更新天氣預(yù)報(bào),同時(shí)執(zhí)行一個(gè)顯示天氣預(yù)報(bào)的應(yīng)用菜單,自動(dòng)提示用戶。因?yàn)橹皇峭瓿娠@示的功能,因此所設(shè)計(jì)的菜單結(jié)構(gòu)應(yīng)為:<table>tableseeoriginaldocumentpage14</column></row><table>最終代碼包括應(yīng)用菜單數(shù)據(jù)代碼和變量菜單數(shù)據(jù)代碼。應(yīng)用菜單數(shù)據(jù)代碼150001:AID002F:所需空間098059296C14988462A5:菜單名稱(天氣預(yù)報(bào))FD0000:應(yīng)用變量FA0000:變量00000016:CARDFF0806:DO(SAVE一TO—TEMPVAR)01:操作類型(O:把緩沖區(qū)中TerminalResponse數(shù)據(jù)存入?yún)?shù)1;l:把參數(shù)2中數(shù)據(jù)存入?yún)?shù)1,若參數(shù)2不存在,則參數(shù)l內(nèi)容置為空)00:參數(shù)1—TEMPVAR索弓l1580020000:參數(shù)2—數(shù)據(jù)FF04IB:DO(GET—VAR:把變量菜單中索引變量的內(nèi)容復(fù)制到目的索引變量)01:參數(shù)1(HEX數(shù)據(jù)。參數(shù)個(gè)數(shù)(^l))01:參數(shù)2(目的變量起始索引。TEMPVAR索引或OTA變量索引)00:參數(shù)3(源變量起始索引。TEMPVAR索引、應(yīng)用變量索引或OTA變量索引)2104:DISPLAYTEXT81:編碼限定符(最高比特為1表示用戶確認(rèn),否則自動(dòng)清除;最低比特為1表示高優(yōu)先級(jí),否則為普通)0D:文本標(biāo)識(shí)01:變量個(gè)數(shù)01:變量1變量菜單數(shù)據(jù)代碼158002:AID002F:所需空間1011111111111501:更新會(huì)話密鑰0020:預(yù)留變量長(zhǎng)度0:變量0000(今天白天晴,最高氣溫19)從變量菜單數(shù)據(jù)的更新會(huì)話密鑰可以看出,更新會(huì)話密鑰第一個(gè)字節(jié)是0x10,表示在執(zhí)行變量菜單更新命令時(shí),應(yīng)在更新完菜單數(shù)據(jù)后,執(zhí)行指定應(yīng)用菜單。所執(zhí)行的應(yīng)用菜單為15大類下編號(hào)01的應(yīng)用,即AID為150001的天氣預(yù)報(bào)應(yīng)用。這樣,將應(yīng)用按照上述方案設(shè)計(jì)完成后,能夠保證每次對(duì)變量菜單中的天氣預(yù)報(bào)信息更新后,都可以直接顯示給用戶看,滿足業(yè)務(wù)需求。本發(fā)明提供的STK/UTK卡的控制流程如圖1所示,包括步驟IOI,變量菜單更新成功;步驟102,判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否大于或等于0x10,并且小于或等于0xlF,如果是,執(zhí)行歩驟104,否則執(zhí)行步驟103;步驟103,按照現(xiàn)有流程執(zhí)行;步驟104,根據(jù)更新會(huì)話密鑰選擇指定的應(yīng)用菜單;步驟105,啟動(dòng)指定的應(yīng)用菜單,并調(diào)用相應(yīng)的變量菜單;步驟106,通知終端按交互指令代碼要求進(jìn)行操作,如屏幕顯示、發(fā)短信、打電話等。本發(fā)明提供的STK/UTK卡如圖2所示,包括變量菜單更新成功指示模塊201,用于指示變量菜單更新成功;判斷模塊202,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊203,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單并啟用該應(yīng)用菜單;變量菜單調(diào)用模塊204,用于供所述指定的應(yīng)用菜單調(diào)用相應(yīng)的變量菜單;通知模塊205,用于通知終端按照機(jī)卡交互指令進(jìn)行操作。當(dāng)應(yīng)用菜單仍然以獨(dú)立完整的代碼方式存儲(chǔ)在STK/UTK卡片中時(shí),雖然其不對(duì)其他變量菜單進(jìn)行訪問,但本發(fā)明仍然可以主動(dòng)調(diào)用該應(yīng)用菜單。具體的實(shí)現(xiàn)方式為定義一個(gè)變量菜單,其更新會(huì)話密鑰的第一個(gè)字節(jié)在0xl0-0xlF之間,最后兩個(gè)字節(jié)分別指明需要被調(diào)用的應(yīng)用菜單的大類編號(hào)和業(yè)務(wù)編號(hào),雖然這個(gè)應(yīng)用菜單的代碼中不對(duì)此變量菜單進(jìn)行訪問,但由于變量菜單的定義符合更新變量菜單后執(zhí)行應(yīng)用菜單的標(biāo)準(zhǔn),則只要此變量菜單接收到變量菜單更新的指令,指令成功執(zhí)行后,通過判斷確定更新會(huì)話密鑰的第一個(gè)字節(jié)在0x10-0xlF之間,卡片就會(huì)主動(dòng)調(diào)用執(zhí)行這個(gè)獨(dú)立的應(yīng)用菜單,并把應(yīng)用菜單被激活執(zhí)行后的首個(gè)機(jī)卡交互指令代碼拼裝起來(lái)傳遞給終端,通知終端按交互指令代碼要求進(jìn)行操作,如屏幕顯示、發(fā)短信、打電話等。相應(yīng)的流程如圖3所示,包括步驟IOI,變量菜單更新成功;步驟102,判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否大于或等于OxlO,并且小于或等于OxlF,如果是,執(zhí)行歩驟104,否則執(zhí)行步驟103;步驟103,按照現(xiàn)有流程執(zhí)行;步驟104,根據(jù)更新會(huì)話密鑰選擇指定的應(yīng)用菜單;步驟305,啟動(dòng)指定的應(yīng)用菜單;步驟106,通知終端按交互指令代碼要求進(jìn)行操作,如屏幕顯示、發(fā)短信、打電話等。實(shí)現(xiàn)該流程的系統(tǒng)如圖4所示,包括變量菜單更新成功指示模塊201,用于指示變量菜單更新成功;判斷模塊202,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊203,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單并啟用該應(yīng)用菜單;通知模塊205,用于通知終端按交互指令代碼要求進(jìn)行操作,如屏幕顯示、發(fā)短信、打電話等。本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條件下,還可以對(duì)以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限于以上的說明,而是由權(quán)利要求書的范圍來(lái)確定的。權(quán)利要求1、STK/UTK卡的控制方法,其特征在于,包括步驟1,變量菜單更新成功后,判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi),如果是,執(zhí)行步驟2,否則按照現(xiàn)有流程執(zhí)行;步驟2,依據(jù)更新會(huì)話密鑰選擇指定的應(yīng)用菜單;步驟3,啟動(dòng)應(yīng)用菜單。2、如權(quán)利要求1所述的控制方法,其特征在于,預(yù)設(shè)值的范圍是。3、如權(quán)利要求1或2所述的控制方法,其特征在于,步驟2中,依據(jù)更新會(huì)話密鑰的最后兩個(gè)字節(jié)選擇指定的應(yīng)用菜單。4、如權(quán)利要求3所述的控制方法,其特征在于,步驟3中,還調(diào)用相應(yīng)的變量菜單;和/或還包括步驟4,通知終端按照機(jī)卡交互指令進(jìn)行操作。5、STK/UTK卡,其特征在于,包括變量菜單更新成功指示模塊,用于指示變量菜單更新成功;判斷模塊,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單并啟用該應(yīng)用菜單。6、如權(quán)利要求5所述的STK/UTK卡,其特征在于,預(yù)設(shè)值的范圍是。7、如權(quán)利要求5或6所述的STK/UTK卡,其特征在于,判斷模塊依據(jù)更新會(huì)話密鑰的最后兩個(gè)字節(jié)選擇指定的應(yīng)用菜單。8、如權(quán)利要求7所述的STK/UTK卡,其特征在于,還包括變量菜單調(diào)用模塊,用于供所述指定的應(yīng)用菜單調(diào)用相應(yīng)的變量菜單;和/或通知模塊,用于通知終端按照機(jī)卡交互指令進(jìn)行操作。9、應(yīng)用菜單執(zhí)行系統(tǒng),包括終端和STK/UTK卡,其特征在于,STK/UTK卡包括變量菜單更新成功指示模塊,判斷模塊和應(yīng)用菜單選擇模塊;變量菜單更新成功指示模塊,用于指示變量菜單更新成功;判斷模塊,用于判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi);應(yīng)用菜單選擇模塊,用于當(dāng)更新會(huì)話密鑰第一個(gè)字節(jié)在預(yù)設(shè)值的范圍內(nèi)時(shí),選擇指定的應(yīng)用菜單,并啟用該應(yīng)用菜單。10、如權(quán)力要求9所述的應(yīng)用菜單執(zhí)行系統(tǒng),其特征在于,還包括變量菜單調(diào)用模塊和/或通知模塊;變量菜單調(diào)用模塊,用于供所述指定的應(yīng)用菜單調(diào)用相應(yīng)的變量菜單;通知模塊,用于通知終端按照機(jī)卡交互指令進(jìn)行操作。全文摘要本發(fā)明涉及STK/UTK卡及其控制方法。該控制方法包括步驟1,變量菜單更新成功后,判斷更新會(huì)話密鑰第一個(gè)字節(jié)是否在預(yù)設(shè)值的范圍內(nèi),如果是,執(zhí)行步驟2,否則按照現(xiàn)有流程執(zhí)行;步驟2,依據(jù)更新會(huì)話密鑰選擇指定的應(yīng)用菜單;步驟3,啟動(dòng)應(yīng)用菜單。本發(fā)明使應(yīng)用菜單的執(zhí)行變被動(dòng)為主動(dòng),用戶不再需要通過繁瑣的點(diǎn)擊STK/UTK菜單入口才能調(diào)用應(yīng)用菜單,只需等待應(yīng)用菜單自動(dòng)執(zhí)行。文檔編號(hào)H04M1/247GK101299855SQ200810114748公開日2008年11月5日申請(qǐng)日期2008年6月11日優(yōu)先權(quán)日2008年6月11日發(fā)明者于勝軍,騫劉,周松濤,衣莉莉,馬吉力申請(qǐng)人:中國(guó)聯(lián)合通信有限公司