pdu

Is there any available SMS Pdu parser in Java?

随声附和 提交于 2019-12-11 01:58:31
问题 Anyone knows a available Pdu Parser in Java from byte[] array, my main concern is to get the User Data Header (UDH) complying to the GSM standard. I mean getting it properly. 回答1: smsLib is relatively mature. You could also make use of the parser built into Android. 回答2: As I was in need of an SMS-PDU parser/creator a couple of years ago I could not find one and had to write my own. Grab a copy of GSM 03.40, brush up on your bit-fiddling skills, and get going. :) 来源: https://stackoverflow.com

Looking for GSM 7bit encode/decode algorithm

帅比萌擦擦* 提交于 2019-12-10 12:15:41
问题 I need to Send Short message in pdu mode. Anybody can give me a GSM 7bit encode/decode algorithm? 回答1: See if this is of any use to you. Code taken from one of my very old projects - may be used as you wish. unit SMSCodec; interface const //:Default 7-bit alphabet. CPDU7bit = #10#13' !"#$&''()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; type {:Encoder result. @enum esEncoded Message encoded successfully. @enum esTruncated Message encoded successfully, but

短信开发的PDU格式

风流意气都作罢 提交于 2019-12-09 10:44:22
pdu 编码主要包括两个主要的部分,一是 pdu 串的整体数据格式,分别因为发送信息串和接收信息串而有区别,二是 pdu 中文本部分的编码,分别因为字符集而不同。 我们也可以这样来理解这个 pdu 编码的格式, sms 相当于一个协议栈,最简单的协议栈: 根据 gsm03.40 规范, sms 协议包括以下几层: 1、 SM-AL :应用层。这个部分就是数据部分。 2、 SM-TL :传输层。我们可以清楚的看到这里描述了主要的短信内容,包括发送号码,接收号码,信息类型,编码,数据报长度等等,这也是我们编程主要要面对的问题。 3、 SM-RL :中继层。这个指的是短信在网关之间中继需要的协议。 4、 SM-LL: 链路层。 从上述描述中我们可以清楚的看到,我们编程主要集中于传输层。 PDU 串的用户信息 (TP-UD) 段最大容量是 140 字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是 160 、 140 和 70 。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。 转自bbs.sendsms.cn 来源: oschina 链接: https://my.oschina.net/u/2350101/blog/539416

短信中VB.NET编码PDU(二)

匆匆过客 提交于 2019-12-09 10:44:11
EMS —— ConcatenatedShortMessage 部分 编码 EMS 较 SMS 复杂,但每条 EMS 的基础还是 SMS ,所以我直接继承了 SMS 类。区别主要是要处理好 TP_UD 和 IE 。对于 ConcatenatedShortMessage ,由于其 IE 和 TP_UDHL 占据了 TP_UD 的部分空间,所以每条短信英文只能容纳 133 字符,中文 66 字符。我们可以通过此信息得到短信条数。 如果 TP_DCS 为 Unicode 编码,则短信条目为: TotalMessages = (TP_UD.Length / 4) / 66 +((TP_UD.Length / 4 Mod 66) = 0)+1 如果为 7bit ,则为: TotalMessages = (tp_ud.Length / 266) -((tp_ud.Length Mod 266) = 0)+1 注意在程序中我为了简化以后的数组操作,就没有加一。 确定了短信条数以后通过一个循环就可以提取出每条短信的 TP_UD 。 Select Case tp_dcs Case ENUM_TP_DCS.UCS2 tmpTP_UD = Mid(TP_UD, i * 66 * 4 + 1, 66 *4)'When TP_UDL is odd, the max length of an Unicode

Python - Decode GSM SMS message in PDU

时间秒杀一切 提交于 2019-12-08 09:50:53
问题 I'm receiving a PDU like message, but I'm only receiving the message "C824" PDU example, 040C9119898392752300008010610014412202C834 04 - first octet 0C - phone number length 91 - phone number type 198983927523 - phone number 00 - protocol identifier 00 - data coding scheme 80106100144122 - time stamp 02 - message length C834 - message, i.e. "Hi" I need to know the format what format is this("C834") that translates to "Hi". How can I possibly translate this to human readable language? Best

Please recommend PDU SMS format code or library for .NET or C++

杀马特。学长 韩版系。学妹 提交于 2019-12-08 05:18:49
问题 I have been searching a lot for a chunk of code, or a library to format SMS messages in PDU format and had little luck. They were either huge monsters with terrific dependencies on everything way above my requirements and a very obscure interface, totally not justifying the straight-forward, although rather complex encoding. Being on the edge of creating a NIH, my question is - have encountered the same problem and how have you solved it? 回答1: GSMComm has a PDU conversion class for wroking

PDU的编码--SMS编码

孤街浪徒 提交于 2019-12-07 14:45:44
编码一个SMS一般需要如下的信息: TP_Data_Coding_SchemeTP_UD 编码方式 TP_Destination_Address 对方号码 TP_Message_Reference 参考号码 TP_Status_Report_Request 状态报告 TP_User_Data 用户信息 TP_Validity_Priod 有效期 ServiceCenterNumber 短信中心号码 所以在编码器中存在以上的属性,并在Set中加入了处理代码,将可读信息转换成对应的十六进制信息。 特 别注意的是TP_User_Data属性,它可以根据用户数据编码自动设置TP_UDL。对于纯英文编码,TP_UDL为所有的字符数;对于 Unicode编码,由于一个字符由两个字节表示,TP_UDL为所有的字符数*2。注意检查TP_User_Data的长度,对于SMS来说编码后的 TP_UD长度不能超过140字节。也就是说英文160个字符(140/7*8),中文70个字符。 对于TP_UD的编码在解码器中也有说明,在此不再赘述。 我还设计了几个枚举变量: ENUM_TP_DCS 编码方式 ENUM_TP_SRI 状态报告 ENUM_TP_VALID_PERIOD 有效期 ENUM_TP_VPF 有效期格式 这些枚举变量可以简化输入,也利于日后扩充。 当以上内容设置好以后

短信中VB.NET编码PDU(一)

删除回忆录丶 提交于 2019-12-07 14:45:30
PDU 的编码器的工作原理是解码器的逆过程。根据需要编码器只需要编码发送的 PDU 代码,工作相对简单。本文讲解编码思路,具体代码请参考 Blog 中 PDUEncoder 部分 我把 PDU 的编码分为两部分, SMS 和 EMS 。 EMS 部分我只提供了 ConcatenatedShortMessage 的编码器。这是超长短信的编码,用得最多。 SMS 编码 编码一个 SMS 一般需要如下的信息: TP_Data_Coding_Scheme TP_UD 编码方式 TP_Destination_Address 对方号码 TP_Message_Reference 参考号码 TP_Status_Report_Request 状态报告 TP_User_Data 用户信息 TP_Validity_Priod 有效期 ServiceCenterNumber 短信中心号码 所以在编码器中存在以上的属性,并在 Set 中加入了处理代码,将可读信息转换成对应的十六进制信息。 特别注意的是 TP_User_Data 属性,它可以根据用户数据编码自动设置 TP_UDL 。对于纯英文编码, TP_UDL 为所有的字符数;对于 Unicode 编码,由于一个字符由两个字节表示, TP_UDL 为所有的字符数 *2 。注意检查 TP_User_Data 的长度,对于 SMS 来说编码后的 TP_UD

Android Mms专题之:MMS支持

喜夏-厌秋 提交于 2019-12-07 10:53:22
Composing and editing MMS在 Android Mms应用里面的具体实现形式,或数据结构是SlideshowModel,它是一个每个节点为SlideModel的ArrayList,SlideModel是一个Model的List,也就是它可以接收任何Model的子类,Audio,Video,Image和Text都可以放到SlideModel上面。SlideModel主要用于管理其上面的各个媒体,比如它们的布局,它们的播放控制,而SlideshowModel主要用于管理所有的附件,比如把所有的附件转化成为Android的MMS协议的数据类型Pdu,以及从Pdu转化成为SlideshowModel。 Pdu是实现了MMS协议的标准格式,它可以直接的发送给MMSC,从MMSC取回来的也是一个Pdu格式的数据。应用层Mms不需要关心Pdu的具体实现方式,Android中有一个内部的包com.google.android.mms.*下面的类都是专门用于处理Android平台上的MMS。里面提供了工作可以把应用层的数据,比如媒体文件等,进行包装成Pdu,再把Pdu分解成为媒体文件。Pdu的数据结构包括PduBody,这个是用于存放多媒体文件的地方,其里面是PduPart的集合,每个PduPart代表一个文件。PduPersister用于操作这些数据结构,包括写入数据库

工控安全入门(二)—— S7comm协议

点点圈 提交于 2019-12-06 10:06:26
在上一次的文章中我们介绍了施耐德公司的协议modbus,这次我们把目标转向私有协议,来看看另一家巨头西门子的S7comm。首先要说明,这篇文章中的内容有笔者自己的探索,有大佬们的成果,但由于S7comm是私有协议,一些结论和看法不可能完全正确,希望各位有认为不对的地方或是更好的看法可以评论告诉我。 ps:有些专业名词可能不对,因为没找到准确的翻译或者是根本没找到官方定义(毕竟是私有协议),笔者就自己起了名…… 建议阅读本篇前首先阅读: 工控安全入门(一)—— Modbus协议 S7comm简介 西门子是德国的一家超大型企业,在能源、工业、医疗、基建等等方面都有它的身影,同时它也位列全球500强第66名。作为一个以电报起家的大型企业,它对于通信更是重视,S7comm就是西门子为了它生产的PLC之间、SCADA与PLC之间的通信而设计的专属协议。 和Modbus的应用层协议不同,S7comm的协议栈修改程度更高,在应用层组织的数据经过COTP协议、TPKT协议的进一步处理后,最终通过TCP进行传输,下面是wireshark wiki给出的S7comm的协议栈: OSI layer Protocol Application Layer S7 communication Presentation Layer S7 communication(COTP) Session Layer S7