搜索
bottom↓
回复: 9

SIM900A超长短信发送方法

[复制链接]

出0入0汤圆

发表于 2013-4-3 16:13:50 | 显示全部楼层 |阅读模式
SIM900A,短信运行很稳定,但由于项目要求发送指令表,一条短信不能全部写下,不知道SIM900发送超长短信的数据格式是什么。希望有人指教。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入54汤圆

发表于 2013-4-3 16:17:05 | 显示全部楼层
不是直接分几条发?

出0入0汤圆

 楼主| 发表于 2013-4-7 09:39:14 | 显示全部楼层
lusson 发表于 2013-4-3 16:17
不是直接分几条发?

就是当做一条短信发送,显示时在手机上就看成是一条短信,当然计费还是按照几条短信计费的。。。这个我记得是可以的但暂时没找到资料

出0入0汤圆

发表于 2013-4-7 11:33:23 | 显示全部楼层
使用PDU模式,包含UDH头信息分割短信,用户数据头UDH=00表示长短信拆分。




贴一个转来的PDU学习笔记,网上收藏的






关于PDU其实并不难,至于PDU是什么,不管它,爱是什么是什么,我们只要知道怎么用就可以了。

在网上看了很多关于PDU的帖子or文档,但是说的都不是很详细。所以结合其他高人的文档,总结了这篇文档,希望通过这篇文档让不熟悉PDU的人,熟悉PDU,让了解PDU的人,再有提高。

言归正传:

========================

我研究的是从短信出发研究PDU,至于其他领域,还真不知道有没有。所以现在我们开始简单的讲解一下一条PDU短信。

PDU字符串为:

   08 91 683108701305F0 11 00 0D 91 3176378290F9 00 00 00 02 C834




08--短信息中心地址长度:这个长度怎么获得的呢?其实就是91 683108701305F0的字符串长度除以2。不难理解。




91--短信息中心号码类型:91是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还有其它数值,但91最常用。但是它是怎么出来的呢?咱们细看一下:

    91--1001 0001

    91是通过两个二进制码获得的。也就是说这两个二进制码有特殊的含义

    解析1001: 第一位的1:具体代表什么意思,我也没搞明白,有高人知道可以指出。

    剩下的001:数值类型(Type of Number):000--未知,001--国际,010--国内,111--留作扩展;

    解析0001: 号码鉴别(Numbering plan identification):0000--未知,0001--ISDN/电话号码(E.164/E.163),1111--留作扩展;




683108701305F0--短信息中心号码。由于位置上略有处理,实际号码应为:8613800 731500(字母F是指长度减1)。这需要根据运营商作相应的修改。  (前面这三段标志位就代表了一个短信中心,不过有时我们看到这三段直接用“00”代替,它的意义就是直接用SIM卡的短信中心,如果关于这点还有疑问的话。那就需要普及一下手机常识了。手机本身有固定的短信中心,这是出厂时由手机厂商设定的,不过当插上SIM卡时,手机都有自适应的过程,这是基本都会用SIM卡的短信中心代替手机的短信中心。所以我们可将SIM卡插进所有手机后,就能发短信。如果不能,那说明手机没有自适应。那就手动设置一下短信中心就可以收/发短信了。)




11--文件头字节:这个数值的获得也是通过二进制数获得的

    11--0001 0001 其实二进制中的每一位都有自己的意义,我们来具体看看(左边为第一位):

    第一位:应答路径--TP-RP(TP-Reply-Path):0--不设置;1--设置

    第二位:用户数据头标识--TP-UDHI(TP-User-Data-Header-Indicator):0--不含任何头信息;1--含头信息(本短信是没有头信息的,下文中会有包含头信息的短信,到时再具体解析头信息UDH)

    第三位:状态报告要求--TP-SPR(TP-Status-Report-Request):0--需要报告;1--不需要报告

    第四、五位:有效期格式--TP-VPF(TP-Validity-Period-Format):00--不提供(Not present);10--整型(标准);01--预留;11--提供8位字节的一半(Semi-Octet Represented)

    第六位:拒绝复制--TP-RD(TP-Reject-Duplicates):0--接受复制;1--拒绝复制

    第七、八位:信息类型提示--TP-MTI(TP-Message-Type-Indicator):00--接收(Deliver);01--发送(Submit)




00--信息类型(TP-Message-Reference):这个标志基本没啥变化,所以本人也没过多的研究,如果有高人知道,可以指明一下。




0B--被叫号码长度




91--被叫号码类型




3176378290F9--被叫号码,经过了位移处理,实际号码为“13677328099” 这三个字段通称目的地址(TP-Destination-Address)。




00--协议标识TP-PID(TP-Protocol-Identifier):这段基本也是千年不变的,不过可以列举出各个位的含义:

    00--0000 0000

    第1、2位:

        00--如下面定义的分配,我们可以理解为默认形式。其实就是说后边六位 的定义就是本身的协议规范。

        01--参见GSM03.40协议标识完全定义

        10--预留

        11--为服务中心(SC)特殊用途分配后六位。

    第3位:0--不使用远程网络,只是短消息设备之间的协议;1--使用远程网络。

    第4-8位:00000--隐含;00001--电传;00010--group 3 telefax;00100--语音;00101--欧洲无线信息系统(ERMES);00110--国内系统;10001--任何基于X.400的公用信息处理 系统;10010--Email。




00--数据编码方案TP-DCS(TP-Data-Coding-Scheme):

    00--0000 0000:

    第1、2位:一般设置为00

    第3位:0--文本未压缩,1--文本用GSM标准压缩算法压缩

    第4位:0--表示最后两位不包含信息,1--表示最后两位包含信息类型信息

    第5、6位:00--默认的字母表,01--8bit,10--USC2(16bit),11--预留

    第7、8位:00--Class 0,01--Class 1,10--Class 2(SIM卡特定信息),11--Class 3。




00--有效期TP-VP(TP-Valid-Period):

    VP value: 相应的有效期

    00 to 8F : (VP+1)*5 分钟

    90 to A7 : 12小时+(VP-143)*30分钟

    A8 to C4 : (VP-166)*1天

    C5 to FF : (VP-192)*1 周




02--用户数据长度TP-UDL(TP-User-Data-Length):计算方法就是此字节后字符串长度除2,不做过多解释。




C834--用户数据TP-UD(TP-User-Data):“Hi”

========================




上述就是一条普通短信的PDU形式,下面说说关于有UDH的PDU短信是什么样子: 还是以刚才那个短信为基础,自己改改就能明白了:




    08 91 683108701305F0 51 00 0D 91 3176378290F9 00 00 00 09 06050442664266 C834




有变化的地方已经用蓝色标明了,其他无变化。所以直接解析蓝色字段即可:




51--文件头字节0101 0001:看了二进制形式,再结合上面讲的,就明白了这里加了一个UDHI标示,也就是说这条短信有用户头信息(UDH-User Data Header),那么真正的UDH在哪呢?其实就是在用户数据(TP-UD)中,也就是06050442664266。




09--用户数据长度TP-UDL(TP-User-Data-Length):这个长度就是UDH+UD的长度除2。很明了了。




06050442664266--用户数据头UDH:这个地方还是要细说一下的:

    06--用户数据头长度:不包含自己的。

    05--我没找到具体的中文解释,但以我个人理解就是UDH的意义(在GSM03.40规范中有明确的说明各个值的含义,列举一下,可以看看自己感兴趣的):

        00 Concatenated short messages, 8-bit reference number(长短信拆分使用)

        01 Special SMS Message Indication

        02 Reserved

        03 Value not used to avoid misinterpretation as 【LF】 character

        04 Application port addressing scheme, 8 bit address

        05 Application port addressing scheme, 16 bit address(这是我们关心的)

        06 SMSC Control Parameters

        07 UDH Source Indicator

        08 Concatenated short message, 16-bit reference number

        09 Wireless Control Message Protocol

        0A-6F Reserved for future use

        70-7F SIM Toolkit Security Headers

        80 - 9F SME to SME specific use

        A0 - BF Reserved for future use

        C0 - DF SC specific use

        E0 - FF Reserved for future use

    04--端口长度:不解释了,自己看一下吧。

    4266--目标端口号:不解释了,自己看一下吧。

    4266--源端口号:不解释了,自己看一下吧。




上边这段主要是为了告诉大家如何增加一个UDH,以及UDH应该增加到什么位置上,还有就是增加了UDH,对其他标识位的影响。




========================




顺便再提一提长短信。为什么突然转到长短信?很简单,长短信在拆分时会用到UDH。所以一块说了。

依然以最开的短信为例,改装一下大家就明白长短信的拆分规则了:

    08 91 683108701305F0 51 00 0D 91 3176378290F9 00 00 00 08 050003000201 C834

    08 91 683108701305F0 51 00 0D 91 3176378290F9 00 00 00 08 050003000202 C834




这两条短信大家可以理解为一个长短信被拆分成两条短信(不要深究短信内容啊)。下面说明一下有变更的地方:




08--用户数据长度TP-UDL(TP-User-Data-Length):不解释了。




050003000201--UDH内容

    05--UDHL用户数据头长度

    00--UDH的意义,可以看刚才列举出的各个值的意义。

    03--剩下短信标识的长度,即后面的000201

    00--拆分短信的唯一标识,也就是说,以后组合短信时,要靠这个值识别本条拆分短信是属于哪个长短信。取值范围0~255。

    02--表示长短信被拆成多少份

    01--表示这是第一个拆分短信,也就是拆分短信的序号。


出0入0汤圆

发表于 2013-4-7 22:59:05 | 显示全部楼层
楼上的方法太复杂,用GU900D可以发送超长短信(最大420个字节)。

出0入0汤圆

发表于 2013-4-9 13:58:42 | 显示全部楼层
你好 你有SIM900a 的封装库吗?我最近也在做这个,没有库,能发下给我吗?  邮箱:baobinforever@163.com

出0入13汤圆

发表于 2014-8-12 14:28:27 | 显示全部楼层
我也碰到过长短信发的问题

出0入0汤圆

发表于 2014-8-12 15:45:10 | 显示全部楼层
4楼的方法就是正解,只要组PDU包格式的时候 注意一些特殊的位置编码就可以了

出0入0汤圆

发表于 2014-10-1 16:39:53 | 显示全部楼层

出0入0汤圆

发表于 2014-10-20 11:29:21 | 显示全部楼层
学习了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 18:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表