SMS PDU编码和解码,包括GSM-0338字符集
项目描述
SMS PDU编码和解码,包括GSM-0338字符集。
概述
此库处理SMS-DELIVER和SMS-SUBMIT格式PDU,并包括对所有数据格式、标志和头部的全面支持,以及从PDU到对象和反向的往返。
它还包括从文本或数据构建新PDU的便利API。
此库非常成熟 - 在发布1.0版本之前,它已经在生产环境中使用了多年。据我所知,它也是可用的最完整的SMS PDU编码和解码库。
T39功能已从与该库同名的前PyPI包复制,以提供一定的连续性。它尚未经过测试。
PDU接口
典型用法将涉及SMS_SUBMIT和SMS_DELIVER .fromPDU()、.toPDU()和.create()方法
>>> from smspdu import SMS_SUBMIT >>> pdu = SMS_SUBMIT.create('sender', 'recipient', 'hello, world') >>> pdu.toPDU() '010010D0F2F2380D4F97DD7400000CE8329BFD6681EE6F399B0C' >>> pdu = smspdu.SMS_SUBMIT.fromPDU(_, 'sender') >>> pdu.user_data u'hello, world'
命令行用法
要在命令行上解码PDU(使用python2.7+),请使用
% python -m smspdu 010010D0F2F2380D4F97DD7400000CE8329BFD6681EE6F399B0C 010010D0F2F2380D4F97DD7400000CE8329BFD6681EE6F399B0C tp_mti = 1 (SMS-SUBMIT) sender = unknown tp_rd = 0 tp_vpf = 0 tp_vp = None tp_rp = 0 tp_udhi = 0 tp_srr = 0 tp_mr = 0 tp_al = 16 tp_toa = d0 (Alphanumeric; Unknown) (recipient) address = 'recipient' tp_pid = 0x00 (Normal Case) tp_dcs = 0x00 (Immedate Display, GSM-0338 Default Alphabet) tp_udl = 12 tp_ud = '\xe82\x9b\xfdf\x81\xeeo9\x9b\x0c' datestamp = 11062712173200 user_data = u'hello, world' user_data_headers = []
第一行重新显示带有各种部分着色的PDU。
Python 2.6版本的用户需要运行“python -m smspdu.pdu”。
SMS文本 - 处理GSM 0338的奇妙之处
首先是最基本的部分;编码一些文本
>>> from smspdu import gsm0338 >>> c = gsm0338() >>> gsm_message = c.encode(u'test message')
解码该消息
>>> from smspdu import gsm0338 >>> c = gsm0338() >>> c.decode(gsm_message) u'test message'
该库还提供了一些使文本适合SMS的函数
- gsm0338_safe
这是一个简单的函数,它只替换Unicode输入中的任何字符。你可能应该使用 attempt_encoding,因为它会尽量使消息看起来相同。
- attempt_encoding
尝试将提供的文本编码为单条短信的传输。这将根据需要更改消息,以替换重音和印刷符号,以减少每字符七位数的数量。
- remove_accent
由 attempt_encoding 使用,用于从提供的文本中的字符中移除所有重音。
- remove_typography
由 attempt_encoding 使用,用于将印刷符号正确的标点符号替换为简化的GSM-0338字符。
- decode_ascii_safe
从字符串中删除所有非可打印和非ASCII代码。
- smpp_to_sms_data_coding
尝试将SMPP数据编码方案(SMPP v34)转换为有用的SMS PDU(GSM 03.38)数据编码方案。
版本历史(简要)
1.0 基于成熟的内部 ekit.com 代码的初始发布
此代码版权所有 2011 eKit.com Inc (http://www.ekit.com/)有关使用许可,请参阅源文件末尾。
项目详情
smspdu-1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22467948c5c429c76449855d49616f751c7ee5a71fb017f3b9e0537f820791f9 |
|
MD5 | d350d9923c9a943c8e8af6825a41f529 |
|
BLAKE2b-256 | d4eff632a98655bfe6ada9eca406c4980fe1ca23f925efd93ab33cd57cd16994 |