跳转到主要内容

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 (28.2 kB 查看哈希

上传时间 源代码

由以下机构支持