短信息PDU编码和解码,包括GSM-0338字符集
smspdu的Python项目详细描述
短信息PDU编码和解码,包括GSM-0338字符集。
概述
这个库处理sms-deliver和sms-submit格式的pdu,包括 完全支持所有数据格式、标志和标题以及 PDU来反对然后再回来。
它还包括从文本或 数据。
这个图书馆已经很成熟了,已经投入生产使用很多年了 在1.0发布之前。据我所知,这也是 完整的短信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”。
短信-处理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'
该库还提供了一些功能,使文字短信更受欢迎:
- gsm0338安全
- 一个简单的函数,它只替换unicode中的任何字符 输入。您可能应该使用尝试编码,因为它 尝试使消息显示相同。
- 尝试编码
- 尝试在单个 信息。这将更改消息以替换重音和排版 必要时减少每个字符的间隔数。
- 删除重音
- 由尝试编码使用,以删除中字符的所有重音 提供的文本。
- 删除字体
- 由尝试编码使用以替换拼写正确的 带有简化GSM-0338字符的标点符号。
- 解码ascii安全
- 删除字符串中所有不可打印的非ascii代码。
- smpp_to_sms_数据编码
- 尝试将smpp数据编码方案(smpp v34)转换为有用的 短信息PDU(GSM 03.38)数据编码方案。