`
teamojiao
  • 浏览: 350341 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

超长短信的处理办法

 
阅读更多

超长短信的处理办法

GSM 03.40规范(TP-06 1999-12-15 7.4.0)中规定了SME对于超长短信的合并处理。规范制定至今,已经超过6年,绝大多数正在使用的手机,都支持这一功能。

CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实不然,这两个参数的设置,应该是没有用处。

发送超长短信,需要做两件事情:设置TP_udhi的值设置为1,在消息正文中增加协议头。协议后可以两种格式,分别是长度为6和长度为7的协议头。格式如下:
6位协议头格式:05 00 03 XX MM NN
byte 1 : 05, 表示剩余协议头的长度
byte 2 : 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byte 3 : 03, 这个值表示剩下短信标识的长度
byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。
byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:05 00 03 39 02 01

7位的协议头格式:06 08 04 XX XX MM NN
byte 1 : 06, 表示剩余协议头的长度
byte 2 : 08, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。
byte 3 : 04, 这个值表示剩下短信标识的长度
byte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。
byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。
例如:06 08 04 00 39 02 01

7位协议头和6位协议头的区别是,6位协议头短信的标识字段是1个byte,而7位协议头短信的标志字段为2个byte。大多手机采用6位的协议头,也就是05 00 03 XX MM NN。

发送的短信这么处理,接受短信反过来就可以了。上述内容,在CMPP协议以及多款手机上经过测试验证。
分享到:
评论
1 楼 wenshao 2010-03-22  
这篇文章是我写的,你转载了也不注明出处。
http://www.cnblogs.com/jobs/archive/2006/11/29/445584.html

相关推荐

    电信网关API_JAVA(含超长短信拆分).rar

    在这个名为"电信网关API_JAVA(含超长短信拆分).rar"的压缩包中,包含了一套基于JAVA语言实现的电信网关API以及相关的使用说明文档,特别是对于超长短信的拆分功能进行了特别处理。 1. **短信网关API**:短信网关API...

    单片机通过短信猫收发短信的方法,包括C语言程序

    而“单片机通过短信猫发送短信的方法.pdf”很可能是详细的步骤指南或者案例分析,建议结合这两个资源进行深入学习。 总的来说,单片机通过短信猫收发短信涉及到硬件连接、AT指令控制、串口通信以及C语言编程。理解...

    手机接收的PDU串的分析(包含7-bit和UCS2解码,超长短信解释)

    本文将深入探讨手机接收的PDU串的分析,包括7-bit编码和UCS2解码以及超长短信的处理。 首先,我们来看7-bit编码。在短信中,由于早期GSM系统对每个字符的限制,短信通常使用7-bit的GSM 7-bit Default Alphabet编码...

    AT指令长短信接收PDU格式分析

    本文将重点探讨AT指令在接收超长短信时的PDU(Protocol Data Unit)格式分析,这对于实现长短信的有效接收与合并至关重要。 #### 二、基础知识回顾 在深入了解AT指令接收超长短信的具体细节之前,我们首先简要回顾...

    SMS短信猫开发收集整理的代码和文档

    2. AT指令的详细文档,列出常见的AT指令及其使用方法,以及可能的错误处理策略。 3. 超长短信的实现代码,可能包括分段函数和接收端的重组逻辑。 4. 相关的API文档,解释如何在应用程序中集成短信猫的功能。 5. 可能...

    短信平台建设方案

    1. **丰富的基本功能:**支持批量短信群发、超长短信发送等功能。 2. **强大的稳定性与可靠性:**作为电信级标准产品,确保系统的稳定运行。 3. **业务生成器:**提供零编程的业务生成工具,用户可根据需要快速生成...

    Android短信发送功能实现技巧分享

    ArrayList<String> parts = smsManager.divideMessage("超长短信内容"); PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent(ACTION_SMS_SENT), 0); PendingIntent deliveryPI = ...

    java短信接口的使用

    在发送短信过程中可能会遇到网络问题、认证失败、短信内容超长等错误,需要进行适当的异常处理,并返回错误信息。 11. **sjp.jar** 这个文件可能是一个已经封装好的Java短信SDK,包含了对短信接口的调用。使用时...

    sendMessage手机短信

    - 如果需要发送多部分消息(如包含特殊字符或超长文本),则需使用`sendMultipartTextMessage()`方法。 在Java标准版中,发送短信通常涉及以下步骤: 1. 选择合适的短信网关服务提供商,这些服务通常提供HTTP或...

    Java利用smslib发送短信.源码.

    值得注意的是,实际使用中还需要考虑错误处理和异常捕获,因为短信发送可能会遇到各种问题,如网络中断、网关繁忙或短信内容超长等。此外,考虑到不同短信服务提供商的API和费用结构,可能还需要对代码进行调整以...

    中国移动通信CMPP3.0短消息网关开发接口

    运行稳定。经过五年在线运行,目前在全国有超过100家SP采用CMPP2API接口库。 效率高,资源占用率低。...支持自动重连,活动检测,超长短信的功能。参数定制性强,可以同时连接多个网关进行消息收发。

    SmsDemo_NET

    4. **错误处理**:发送短信可能会遇到各种问题,如网络故障、短信内容超长、手机号码格式错误等。因此,我们需要对HTTP响应进行检查,根据返回的状态码和错误信息进行相应的异常处理。 5. **异步编程**:在.NET中,...

    Python基于Twilio及腾讯云实现国际国内短信接口

    模板同样需要审核,长度限制在70字以内,超长会被拆分为多条短信。 - **安装SDK**: 使用`pip3 install qcloudsms_py`安装腾讯云短信的Python SDK。 - **发送脚本**:创建`SmsSingleSender`对象,传入`appid`和`...

    长短信拆分技术规范书.pdf

    总结来说,长短信拆分技术是一种用于处理超长短信的方法,它遵循CMPP协议,通过在每个子消息中添加特定头部信息,确保接收端可以正确拼接和理解这些短消息,从而恢复出原始的长文本内容。这项技术在现代移动通信中起...

    实例讲解手机软件测试用例设计.doc

    具体用例包括检查新消息是否正确生成为MMS或SMS,输入法是否正常,字符限制是否符合要求,空短信的发送,存储位置的切换,超长短信(EMS)的处理,群发短信等。 - **交互测试用例**:测试不同功能之间的交互。比如...

    网络安全知识测试.pdf

    15、为了防御网络监听,最常用的方法是 ()[单选题] * A、采用物理传输(非网络) B、信息加密(正确答案) C、无线网 D、使用专线传输 16. 16、向有限的空间输入超长的字符串是哪一种攻击手段?()[单选题] * A、缓冲...

    gps定位器的常见故障排除借鉴.pdf

    然而,使用过程中可能会遇到各种故障,以下是一些常见的问题及其解决办法: 1. **接收不良**:当GPS定位器在高楼附近或地下室使用时,由于无线电波受到阻挡,可能导致接收不良。解决方案是将设备移至开阔、信号良好...

Global site tag (gtag.js) - Google Analytics