中国移动CMPP 3.0协议详解:短信开发关键接口

4星 · 超过85%的资源 需积分: 10 51 下载量 65 浏览量 更新于2024-08-02 收藏 773KB DOC 举报
中国移动CMPP3.0协议是专为短信服务设计的一种通信协议,适用于中国移动的短信业务平台间的数据传输。该协议详细规定了SP(业务提供商)与互联网短信网关(ISMG)之间的交互流程,确保高效、安全的信息传递。 1. **范围**: CMPP3.0协议适用于中国移动内部的短信服务,旨在规范SP与ISMG之间的连接建立、消息交换、状态查询、短信发送、接收确认以及链路测试等操作。它支持两种通信方式:长连接和短连接,以便在高并发场景下保持高效性能。 2. **引用标准**: CMPP3.0遵循TCP/IP协议族,并可能参考其他行业标准如ISO/IEC 8824-1(数据元描述符语言)来定义数据格式。 3. **术语和定义**: 协议中包含了诸如"CMPP_CONNECT"、"CMPP_TERMINATE"、"CMPP_SUBMIT"、"CMPP_QUERY"、"CMPP_DELIVER"等关键操作的定义,每个操作都有明确的消息格式和响应格式。 4. **网络结构**: CMPP3.0构建在TCP/IP基础上,强调了双方角色的清晰划分,SP负责发起请求,ISMG执行并响应操作,通过端口进行通信。 5. **协议栈**: 协议包含消息头格式(MessageHeader),用于标识消息类型和其它元数据,这是整个通信的核心组成部分。 6. **通信方式**: - **长连接**:保持持续的连接状态,便于频繁的交互。 - **短连接**:一次性的连接,用于单次操作后断开,适合处理简单任务。 7. **端口号**: CMPP3.0可能使用特定的TCP端口号进行通信,确保与其他服务相隔离。 8. **消息交互**: - **CMPP_CONNECT**:SP请求与ISMG建立连接,用于初始化会话。 - **CMPP_TERMINATE**:断开连接,结束会话。 - **CMPP_SUBMIT**:SP提交短信内容给ISMG发送。 - **CMPP_QUERY**:SP查询短信发送状态。 - **CMPP_DELIVER**:ISMG将已发送成功的短信通知SP。 - **CMPP_CANCEL**:SP请求取消未发送的短信。 - **CMPP_ACTIVE_TEST**:用于链路检测,确保双方通信正常。 9. **响应处理**: 对于每个操作,都有相应的响应消息,如CMPP_CONNECT_RESP、CMPP_SUBMIT_RESP等,用于反馈操作结果。 10. **应用示例**: ISMG收到SP的CMPP_SUBMIT后,首先检查合法性,然后处理短信并发送,之后通过CMPP_DELIVER_RESP告知SP发送状态。 总结来说,中国移动CMPP3.0协议是构建在TCP/IP基础之上,专为短信服务定制的通信协议,提供了完整的SP与ISMG通信接口,涵盖了连接管理、短信发送与查询、状态确认等核心功能,是实现高效、稳定短信服务的重要工具。
2017-12-05 上传
java cmpp2.0 3.0 无jar纯源码demo(含服务端测试工具)[20171205] 找了挺多资料,CMPP的资源很多,但可以参考可用的不多, 特此开源cmpp的DEMO程序,无jar插件,纯源码实现。 语言为:java 工具为:Intellij IDEA 2017 附带第三方CMPP服务器测试工具,便于调试。 注解详细如: private long Msg_Id=0x00;//信息标识,由SP接入的短信网关本身产生,本处填空。 private byte Pk_total=0x01;//相同Msg_Id的信息总条数,从1开始 private byte Pk_number=0x01;//相同Msg_Id的信息序号,从1开始 private byte Registered_Delivery=0x01;//是否要求返回状态确认报告:0:不需要 1:需要 private byte Msg_level=0x01;//信息级别 private String Service_Id="";//业务类型,是数字、字母和符号的组合。 private byte Fee_UserType=0x00;//计费用户类型字段 0:对目的终端MSISDN计费; 1:对源终端MSISDN计费;2:对SP计费 private String Fee_terminal_Id="";//被计费用户的号码 private byte TP_pId=0x00;//GSM协议类型 private byte TP_udhi=0x00;//GSM协议类型。详细是解释请参考 private byte Msg_Fmt=0x0f;//信息格式0:ASCII串 3:短信写卡操作 4:二进制信息 8:UCS2编码 (0f)15:含GB汉字 private String Msg_src="";//信息内容来源(SP_Id) private String FeeType="01";//资费类别 01:对“计费用户号码”免费 02:对“计费用户号码”按条计信息费 03:对“计费用户号码”按包月收取信息费 04:对“计费用户号码”的信息费封顶 05:对“计费用户号码”的收费是由SP实现 private String FeeCode="000000";//资费代码(以分为单位) private String ValId_Time="";//存活有效期 private String At_Time="";//定时发送时间 private String Src_Id="";//源号码 SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码 private byte DestUsr_tl=0x01;//接收信息的用户数量(小于100个用户) private String Dest_terminal_Id="";//接收短信的MSISDN号码 private byte Msg_Length;//信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节) private byte[] Msg_Content;//信息内容 private String Reserve="";//保留
2008-09-03 上传
前 言 4 1 范围 5 2 缩略语 5 3 网络结构 6 4 CMPP功能概述 7 5 协议栈 8 6 通信方式 9 6.1 长连接 9 6.2 短连接 11 6.3 本协议中涉及的端口号 12 6.4 交互过程中的应答方式 12 7 消息定义 12 7.1 基本数据类型 12 7.2 消息结构 13 7.3 消息头格式(Message Header) 13 7.4 信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义 13 7.4.1 SP请求连接到ISMG(CMPP_CONNECT)操作 13 7.4.2 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作 14 7.4.3 SP向ISMG提交短信(CMPP_SUBMIT)操作 15 7.4.4 SP向ISMG查询发送短信状态(CMPP_QUERY)操作 17 7.4.5 ISMG向SP送交短信(CMPP_DELIVER)操作 18 7.4.6 SP向ISMG发起删除短信(CMPP_CANCEL)操作 21 7.4.7 链路检测(CMPP_ACTIVE_TEST)操作 21 7.5 互联网短信网关(ISMG)之间的消息定义 22 7.5.1 源ISMG请求连接到目的ISMG(CMPP_CONNECT)操作 22 7.5.2 源ISMG请求拆除到目的ISMG的连接(CMPP_TERMINATE)操作 22 7.5.3 链路检测(CMPP_ACTIVE_TEST)操作 22 7.5.4 源ISMG向目的ISMG转发短信(CMPP_FWD)操作 22 7.6 互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义 27 7.6.1 ISMG请求连接到GNS或GNS请求连接到ISMG(CMPP_CONNECT)操作 27 7.6.2 ISMG请求拆除到GNS的连接或GNS请求拆除到ISMG的连接(CMPP_TERMINATE)操作 27 7.6.3 ISMG向汇接网关查询MT路由(CMPP_MT_ROUTE)操作 27 7.6.4 ISMG向汇接网关查询MO路由(CMPP_MO_ROUTE)操作 28 7.6.5 ISMG向汇接网关获取MT路由(CMPP_GET_MT_ROUTE)操作 29 7.6.6 ISMG向汇接网关获取MO路由(CMPP_GET_MO_ROUTE)操作 30 7.6.7 ISMG向汇接网关更新MT路由(CMPP_MT_ROUTE_UPDATE)操作 31 7.6.8 ISMG向汇接网关更新MO路由(CMPP_MO_ROUTE_UPDATE)操作 33 7.6.9 汇接网关向ISMG更新MT路由(CMPP_PUSH_MT_ROUTE_UPDATE)操作 34 7.6.10 汇接网关向ISMG更新MO路由(CMPP_PUSH_MO_ROUTE_UPDATE)操作 35 7.7 系统定义 36 7.7.1 Command_Id定义 36 附录1 MO状态报告的产生 38 修订历史 40