CMPP,SGIP,SMGP 长短信 消息头

移动CMPP3:

  1. Msg_Fmt = 8 ;
    Tp_Udhi = 1;
  2. 可采用6字节协议头,也可采用7字节协议头,实测都通过。
    • 6字节协议头:
      • MsgContent的前三个字节为:0x05, 0x00, 0x03(0x05表示后面还有5字节,0x03表示后面还有3字节)
      • 第四个字节为批号,合成同条长短信的小短信填一样的值即可。(同时给同个号码发多条长短信的要分不同长短信填写);
      • 第五个字节为Pk_total的值,即这批短信的总条数。
      • 第六个字节为Pk_number的值,即这条短信在长短信中的序号,从1开始。。
    • 7字节协议头:
      • MsgContent的前三个字节为:0x06, 0x08, 0x04(0x06表示后面还有6字节,0x04表示后面还有4字节)
      • 第四、五个字节为批号,合成同条长短信的小短信填一样的值即可。(同时给同个号码发多条长短信的要分不同长短信填写);
      • 第六个字节为Pk_total的值
      • 第七个字节为Pk_number的值
  3. MsgContent 在第6或7字节后加上要发送的短信内容,记得要UCS2编码的哦。

联通SGIP1.2

只测试了6字节协议头的,方法与以上移动使用的6字节协议头一样。
MessageCoding= 8 ;
Tp_Udhi = 1;
MessageContent前三个字节为:0x05, 0x00, 0x03
第四个字节为批号;
第五个字节为这批短信的总条数;
第六个字节这条短信在长短信中的序号,从1开始。
3、MessageContent在第6字节后加上要发送的短信内容的UCS2编码

电信SMGP3:

  1. 设置tlv字段TP_udhi为0x01,表示消息内容里面包含消息头(也就是说含长短信头)
  2. 内容前面需要增加6个字段

    • 字节一:包头长度,固定填写0x05;
    • 字节二:包头类型标识,固定填写0x00,表示长短信;
    • 字节三:子包长度,固定填写0x03,表示后面三个字节的长度;
    • 字节四到字节六:包内容:
    • 字节四:长消息参考号,每个SP给每个用户发送的每条参考号都应该不同,可以从0开始,每次加1,最大255,便于同一个终端对同一个SP的消息的不同的长短信进行识别;
    • 字节五:本条长消息的的总消息数,从1到255,一般取值应该大于2;
    • 字节六:本条消息在长消息中的位置或序号,从1到255,第一条为1,第二条为2,最后一条等于第四字节的值。
  3. 例子:
    05 00 03 00 02 01
    05 00 03 00 02 02

  4. 你还需要设置PkTotal和PkNumber
    这个字段如果不设置并不影响用户手机对短信的拼装,但是会影响ismp的健权和计费,一组pktotal pknumber里面的数据ismp是当一条短信健权和计费。

你可能感兴趣的:(protocol,cmpp,sgip,smgp,长短信消息头,短信消息头)