此程序为中国移动CMPP协议程序接口,适合在中国移动申请了短信发送端口的公司使用。

短信群发已经成为现在软件系统、网络营销等必不可少的应用工具。可应用在短信验证、信息群发、游戏虚拟商品购买、事件提醒、送祝福等方面。

本程序功能包括:

1、支持Cmpp2.0、3.0协议;(只能选其中一种)

2、支持一般的短信发送、上行短信接收、状态报告;

3、支持长短信,包括下发长短信、上行接收长短信;

4、支持Ms Sql数据库、MySql数据库;

5、支持普通手机号和物联网卡;

6、全套源码Win服务、全套数据库源码;

开发CMPP协议需要注意的地方或一些经验:
程序适用于Cmpp3.0、Cmpp2.0协议,可用.Net任何版本编译。

1.长短信实现方法:

短消息长度超过协议规定的最大长度的时候,可以进行拆分发送。
CMPP协议规定短消息最大长度为140,(DCS非0时)
拆分的消息UDHI字段要置为1表示该消息的内容有头结构。
针对长消息拆分的头结构表示如下
05  00  03  00  04  01 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1   2   3   4   5   6  
1,表示后面的头的长度,不包括自身
3,表示头结构为拆分的连续短消息。
5,表示拆分的总条数
6,表示该条为第几条。
具体的参见规范。
后面是编码后的短消息内容。
短消息长度为包括头结构的长度。
例如一条短消息编码后如下要拆分成3条
AAAAAABBBBBBCCCCCC

DCS为8
三条分别为:
05    00  03  00  03  01  00  41  00  41  00  41  00  41  00  41  00  41  

05    00  03  00  03  02  00  42  00  42  00  42  00  42  00  42  00  42

05  00  03  00  03  03  00  43  00  43  00  43  00  43  00  43  00  43

三条消息的UDHI都为1

2.协议间的差异:

CMPP2.0写的程序,在CMPP2.1协议下也是可以用的,而且推荐企业向移动申请CMPP2.1协议的短信端口。

因为CMPP2.1比CMPP2.0有一项重大的改进:取消了CMPP_submit消息中群发短信必须设置为不接收状态报告的限制。

1、取消源ISMG”和“目的ISMG”的说法,把用户归属的ISMG简称为“归属ISMG”,把SP接入的ISMG简称为“接入ISMG”,如果“归属ISMG”和“接入ISMG”为同一个ISMG,则用“归属/接入ISMG”或者“接入/归属ISMG”来代称;但在泛称时仍可能使用“源ISMG”和“目的ISMG”;

2、明确SP与ISMG之间、ISMG与ISMG之间的连接建议为采用长连接方式;

3、明确SP与ISMG之间的连接方式:SP为客户端、ISMG为服务器端;

4、取消CMPP_SUBMIT中对短信群发必须在SP不要求状态报告时的限制;

5、状态报告中增加了MA:xxxx、MB:xxxx、CA:xxxx、CB:xxxx的状态值;

6、明确CMPP_FWD消息中的Src_Id和Dest_Id字段的填写情况,原则上不再允许状态报告中填写空值;

7、更新了GNS协议的所有消息,增加了GNS协议相关的系统定义(CommandId、错误码、Route_Id的编号规则);

8、添加了对错误码使用范围的说明;

9、删除了原“附录1 MO状态报告的产生”,因为MO状态报告在《移动梦网短信业务信令流程规范》中已经进行详细的说明;

10、因为要求ISMG对CMPP_SUBMIT中的各字段进行更详细的判断,添加了CMPP_SUBMIT_RESP中的返回码的取值范围;

11、删除了原CMPP_FWD中对状态报告的产生流程的描述,因为这些流程在《移动梦网短信业务信令流程规范》中已经进行了详细的说明;

 3.CMPP3.0支持物联网卡通讯

CMPP3.0协议对接收号码长度扩展至32位,并增加了号码类型字段。可以支持物联网卡。

用CMPP3.0协议做物联网卡通讯时需要注意的问题:请参考我的另一篇博文 

物联网通讯与普通短信通讯的区别和要注意的地方

测试小程序界面:

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡-冯金伟博客园

界面2:

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡-冯金伟博客园

Win服务版:短信Win服务程序+MsSql/MySql数据库源码,直接配置好win服务并启动,自己只需往数据库里面写入数据就可以发送短信,接收的短信保存在另一张表中,读取即可收到上行短信。

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡-冯金伟博客园

模拟网关界面:

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡-冯金伟博客园

 CMPP2.0协议文档    CMPP3.0协议文档    下载CMPP2.0客户端     下载CMPP3.0客户端

 同时有提供网关模拟器,抓包工具,长短信实现方法,以及参数如何填写的实例文档,使用该代码的测试小程序源码。

目前程序已经升级到V5.0版本,性能更加强大稳定。V5.0版演示如下:

用C#做短信CMPP2.0/3.0协议 支持扩展号支持物理网卡-冯金伟博客园

下载 :   CMPP3.0客户端V5.0版     CMPP3.0服务端V5.0版         也有2.0的,需要的请联系。 

有偿提供与移动联调服务,承诺帮忙调试通过,并免费赠送源码。如有需要请联系 小y QQ(见下方)  请注明来意。

—————————————————————–

我做的小程序们
【推荐】Web版短信管理平台源码
WinForm版短信管理平台源码
移动短信程序源码Win服务版(CMPP3.0/CMPP2.0协议)
移动物联网卡短信源码(CMPP3.0协议,支持MsSql/MySql数据库)
C#实现联通短信Sgip协议程序源码
C#实现电信短信SMGP协议程序源码
C#实现移动短信CMPP服务端程序源码
小y的QQ:28657321 (欢迎交流)