admin 管理员组文章数量: 887021
2024年1月24日发(作者:activity文件)
电话本、短信及短信中心的转换
1. 电话本(6F3A文件)
电话本文件6F3A,联通的6F3A文件创建了250条记录,可以存储250个电话本,每个记录的长度是28个字节,在这28个字节中,前14个字节记录姓名,后14个字节记录对应的号码。
1.1. 更新文件的脚本格式
下面是更新电话本文件的脚本格式,其中前面3条是固定的,最后一条指令中的X和Y都是可变的,其他部分都固定。
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3A,S,,9FXX
!A0DCXX041CYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYFFFF,S,,9000
X数据区有一个字节,表示要更新的记录编号的十六进制值,如果要更新第20条记录,则X=0x14。
Y数据区有26个字节,表示电话本文件中姓名和电话号码的数据内容,其中前14个字节存储姓名,后12个字节存储电话号码。后面的章节将讲解如何拼凑Y的内容。
1.2. 姓名部分的转换规则
姓名中如果包含汉字,则在转换成数据编码时,需在前面加一个字节的UCS2编码标识“0x80”(注:“0x”是表示后续数据是16进制数),并将姓名都转成UCS2编码,又由于UCS2编码中,两个字节才表示一个字符,因此,14个字节只能最多表示6个UCS2字符。所以,姓名中,如果包含汉字,则最多6个字符,如果全是字母或数字,转换时,前面不需要加编码标识,直接将字符转成ASCII码。由于ASCII码一个字节就能表示一个字符,这样,14个字节最多可以存储14个ASCII码的字符,所以,如果姓名是字母和数字的组合,不包含汉字,最多可达14个字符。
姓名转换好后,检查转换后的字符个数有没有达到14个字节,如果没达到,需要补“0xFF”。
例如:
1. 姓名:张三 转换后:805F204E09FFFFFFFFFFFFFFFFFF
2. 姓名:张123 转换后:805F23FFFFFFFFFF
3. 姓名:zhang3 转换后:7A68616E6733FFFFFFFFFFFFFFFF
4. 姓名:Ab张cd2 转换后: 8F22FF
5. 姓名:Abcdefgh123456 转换后: 467683
6. 姓名:Ab张cd23 长度超出6,不能转换!
7. 姓名:Abcdefgh1234567 长度超出14,不能转换!
1.3. 号码部分的转换规则
号码部分的12个字节中,第一个是长度,表示后续的电话号码编码的有效数据字节数,第二个是号码类型标识,接下来的10个字节是记录号码的数字内容的。
号码类型标识为“0x81”或“0x91”。如果号码前没有“+”,标识符为“0x81”;如果号码前有“+”,标识符为“0x91”,“+”不再需要做转换。
号码数字的保存格式是高低位交换的BCD码格式。一个字节能保持2个数字,所以电话号码最长可以达到20个数字。当电话号码的数字个数是奇数时,在后面补一个“F”后再参与高低位互换。
号码标识和号码数字转换好后,算出一共有多少个字节,并将字节数补在号码标识前。
这时,检查数据长度,如果长度没到12个字节,后面需补“0xFF”.
例如:
1. 号码:156****8000 转换后:00F0FFFFFFFF
2. 号码:+86156****8000 转换后:8900F0FFFFFF
3. 号码:65171100 转换后:FFFFFFFFFFFF
4. 号码:15611789 转换后:0B8151167698
5. 号码:1561178901长度超出20,不能转换!
1.4. 姓名号码合并
姓名和号码都转换好以后,将两部分拼接,姓名放前,号码放后,拼成一个26个字节的Y数据,再将数据填入第一小节中的脚本指令中就可以了。
例如:
姓名:张三 号码:156****8000
拼接出来的Y数据如下:
805F204E09FFFFFFFFFFFFFFFFFF00F0FFFFFFFF
如果将该电话号码信息存入电话本文件的第一条,则X = 0x01
对应的脚本如下:
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3A,S,,9FXX
!A0DC01041C805F204E09FFFFFFFFFFFFFFFFFF00F0FFFFFFFFFFFF,S,,9000
1.5. 说明
在转换预置电话本时,一次如果有多条电话本需要预置(最多不可超过电话本文件的记录条数250条),脚本可生成如下格式,电话本的更新从第一条记录开始,一次递增。
例如:
姓名:张三 号码:156****8000
姓名:张三1 号码:156****8001
姓名:张三2 号码:156****8002
则脚本如下:
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3A,S,,9FXX
!A0DC01041C805F204E09FFFFFFFFFFFFFFFFFF00F0FFFFFFFFFFFF,S,,9000
!A0DC02041C805F204E090031FFFFFFFFFFFFFF00F1FFFFFFFFFFFF,S,,9000
!A0DC03041C805F204E090032FFFFFFFFFFFFFF00F2FFFFFFFFFFFF,S,,9000
2. 短信(6F3C文件)
短信文件6F3C,联通的6F3C文件创建了50条记录,每条记录的长度是176个字节。
2.1. 更新文件的脚本格式
下面是更新短信文件的脚本格式,其中前面3条是固定的,最后一条指令中的X和Y、Z、V、U都是可变的,其他部分都固定。
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3C,S,,9FXX
!A0DCXX04B003YYYYYYYYYYYYYYYYYY04ZZZZZZZZZZ00VVTT1UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU,S,,9000
X数据区有一个字节,表示要更新的记录编号的十六进制值,如果要更新第1条记录,则X=0x01。
Y数据区有9个字节,表示短信中心地址。
Z数据区字节不固定,2到12个字节,表示发送短信的源地址。
V数据区1个字节,表示短信内容编码指示。
U数据区字节数不固定,最长141个字节,表示短信内容。
T数据区1个字节,表示收到短信的年份。
其他数据都为固定值。
2.2. 短信中心地址的转换
联通的短信中心都以“+86”开头,长度固定是13个数,如:“+86130****2500”,在转换前,请先判断短信中心号码是否合法。如果合法,再按照1.3章节中所描述的电话号码转换规则转换数据。数据的长度固定为9个字节。
例如:
短信中心+86转换后的数据是2005F0
2.3. 源地址的转换
源地址数据最短2个字节,最长12个字节。
源地址的转换规则与1.3章节中的电话号码转换规则类似,第一个字节是长度,第二个字节是号码类型标识,接下来是号码的数字内容。
与1.3章节中唯一不同的地方是第一个字节长度编码,在源地址中这个字节表示的是地址号码的数字个数,而不是表示后续的电话号码编码的有效数据字节数。
号码类型和号码数字内容的转换格式与1.3章节一样。
源地址号码数字个数最长不能超过20个数字。
例如:
源地址 100101234转换后的数据是F4
2.4. 短信内容编码指示
短信内容编码指示为一个字节,表示后续短信内容的编码方式。
如果后面短信内容是以UCS2码方式编码,则V=“0x08”,
如果后面短信内容是以ASCII码方式编码,则V=“0x04”,
2.5. 短信内容的转换
短信内容长度不固定,格式是1字节的后续内容字节个数标识+短信内容(最长为140个字节)。
如果短信内容中包含汉字,则必须将短信以UCS2方式编码,并且短信最长70个字符。
如果短信内容不包含汉字,则可以以ASCII码方式编码。短信最长可达140个字符。
注意,短信内容的编码方式一定要与V数据区的编码指示一致。
例如:
短信内容:请于今天上午9点30分到第2会议室开会。
转换后的编码:288BF74E8E4ECA59294E0A5348003970B95230
7B2C00324F1A8BAE5BA45F004F1A3002
并且V必须设置成08
短信内容:Thank you very much!
转换后的编码:145468616E6B20796F752D75636821
并且V必须设置成04
2.6. 收到短信的年份的转换
年份这个字节只标识年份后两位,并且,数字的高低位需要互换。
例如:
短信中心时间的年份为:2007年 转换后的编码:70
2.7. 各项数据合并
将前面提到的短信中心(Y)、源地址(Z)、短信内容编码(V)、短信内容(U)和短信中心时间(T)替换到更新短信的脚本中,如果这段数据“03YYYYYYYYYYYYYYYYYY04ZZZZZZZZZZ00VVTT1
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU”的总长度不到176个字节,则在后面补“0xFF”。
例如:
短信中心:+86
源地址:100101234
短信内容:请于今天上午9点30分到第2会议室开会。
收到短信的年份:2009年
更新第一条短信
则更新脚本如下:
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3C,S,,9FXX
!A0DC0104B0112005F032F4000000288BF74E8E4ECA59294E0A5348003970B952307B2C00324F1A8BAE5BA45F004F1A3002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,S,,9000
2.8. 说明
和预置电话本一样,可一次预置多条短信(最多不可超过短信文件的记录条数50条),脚本可生成如下格式,更新的记录编号从第一条记录开始,一次递增。
例如:
第一条短信:
短信中心:+86
源地址:100101234
短信内容:请于今天上午9点30分到第2会议室开会。
收到短信的年份:2005
第二条短信:
短信中心:+86130****2500
源地址:100109999
短信内容:欢迎使用中国联通,服务热线10010。
收到短信的年份:2006
第三条短信:
短信中心:+86
源地址:10011
短信内容:Thank you very much!
转换后的编码:145468616E6B20796F752D75636821
收到短信的年份:2007
则更新脚本如下:
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F3C,S,,9FXX
!A0DC0104B0112005F032F4000000288BF74E8E4ECA59294E0A5348003970B952307B2C00324F1A8BAE5BA45F004F1A3002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,S,,9000
!A0DC0204B0512005F099F9000000266B228FCE4F7F75284E2D56FD8054901AFF0C670D52A170ED7EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,S,,9000
!A0DC0304B0113005FF1616E6B20796F752D75636821FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,S,,9000
3. 短信中心(6F42文件)
短信中心文件6F42,联通的6F42文件创建了5条记录,可以存储5个短信中心信息,但是预置的短信中心都存在第一条中,所以只需要修改第一条记录。
3.1. 更新文件的脚本格式
下面是更新短信中心文件的脚本格式,其中前面3条是固定的,最后一条指令中的X是可变的,其他部分都固定。
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F42,S,,9FXX
!A0DC010428FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFXXXXXXXXXXXXXXXXXXFFFFFFFFFFFF,S,,9000
X数据区有9个字节,表示短信中心地址。
其他数据都为固定值。
3.2. 短信中心地址的转换
联通的短信中心都以“+86”开头,长度固定是13个数,如:“+86130****2500”,在转换前,请先判断短信中心号码是否合法。如果合法,再按照1.3章节中所描述的电话号码转换规则转换数据。数据的长度固定为9个字节。
例如:
短信中心+86转换后的数据是2005F0
将这段转换后的数据放入脚本格式中,得到更新脚本:
!A0A40000023F00,S,,9FXX
!A0A40000027F10,S,,9FXX
!A0A40000026F42,S,,9FXX
!A0DC010428FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF2005F0FFFFFFFFFFFF,S,,9000
4. 编辑历史
版本号
V1.0
时间
2009-10-22
修改者
郭娜 初始版
1、在更新短信脚本中将收到短信的年份作为变量处理,V1.1 2009-12-15 郭娜
在2.1章节的脚本格式中将“9”的第一个字节09改为“TT”
2、增加了2.6章节
3、修改了所有更新短信的脚本用例
修改内容
版权声明:本文标题:电话本短信及短信中心的转换V1.1 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1706052320h499817.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论