問題描述:
4G模塊在+CPBW等操作SIM電話簿時(shí),需要按照要求進(jìn)行必要的轉(zhuǎn)換。
問題分析:
SIM中的電話簿是按照BCD碼存貯的每個(gè)號碼對應(yīng)4個(gè)bits。3GPP31.102對SIM中字符的定義:
BCD Value |
Character/Meaning |
'0' |
"0" |
: |
: |
'9' |
"9" |
'A' |
"*" |
'B' |
"#" |
'C' |
DTMF Control digitseparator(seeTS22.101[24]). |
'D' |
"Wild"value.ThiswillcausetheMMItoprompttheuserforasingledigit(seeTS22.101[24]). |
'E' |
RFU. |
'F' |
Endmarke.g.in caseof anoddnumberof digits. |
但是在多種不同手機(jī)測試的結(jié)果:
BCD Value |
Meaning |
功能機(jī) |
智能機(jī) |
'C' |
電話接通后等待3秒發(fā)送'C'之后的 DTMF |
p |
,(自動(dòng)將p轉(zhuǎn)化為,) |
'D' |
撥號時(shí)等待用戶補(bǔ)全'D'位置上的一位號碼 |
w或者? |
N |
'E' |
電話接通后等待用戶確認(rèn)發(fā)送'E'之后的 DTMF |
/ |
;(自動(dòng)將w轉(zhuǎn)化為;) |
'F' |
結(jié)束標(biāo)志 |
/ |
/ |
可以看到,?w‘在功能機(jī)是"Wild";但是在智能機(jī)卻是"Wait",在使用中有可能造成歧義。
為了避免上述問題,我們統(tǒng)一按照中移OTA操作SIM電話簿的規(guī)范:
卡中 |
HOST側(cè) |
0-9 |
0-9 |
A |
* |
B |
# |
C |
C |
D |
D |
E |
E |
關(guān)于A,用戶可以輸入A\a\*,我們按照A存卡;顯示給HOST只有*。關(guān)于B,用戶可以輸入B\b\#,我們按照B存卡;顯示給HOST只有#。
關(guān)于C,D,E,用戶可以輸入c\C,d\D,e\E,我們按照對應(yīng)的BCD碼存卡;顯示給HOST的都是大寫。