傻瓜纯洁思想里的沙子

愿意当傻瓜的人都快乐
posts - 7, comments - 3, trackbacks - 0, articles - 11

smpp 和 cmpp 协议

Posted on 2006-07-14 17:34 哈迪尤 阅读(2184) 评论(0)  编辑  收藏 所属分类: 工作
   在温少的日志(http://jobs.cnblogs.com/)中看到他的一篇文章,平时我只接触cmpp协议,乘机补一下smpp 。
   
   

      CMPPSMPP都是短信协议中的一种,但它们不是同一类型的协议。SMPPESMESMC(短信中心)之间的协议,而CMPPSP
   
和中国移动ISMG之间的通讯协议。

   名词解释:
      SMPP :Short Message Peer to Peer 短消息点对点协议
       SMSC :Short Message Service Center 短消息中心
       ESME :External Short Message Entity 扩展短消息实体
       PLMN:Public Land Mobile Network 公共陆地移动网
       SS :     Secretary System 秘书台
       AS:      Auto System 自动台

   ESME在本规范中指的是通过本规范规定的协议与SMSC通信,请求特定的短消息服务的功能实体。

     SS指人工话务接入并受理短消息服务请求的系统。

     AS指利用交互式语音技术受理短消息服务请求的系统。

     SS(秘书台)和AS(自动台)是典型的ESME

     SMSCESME之间的传输网络可以是基于X.25, TCP/IP


   smpp和cmpp比较:

  • SMPP是一个国际标准,不同的SMC的是实现可能要增加特定参数,为了具备更好的扩展性,SMPP 3.4以上版本,增加了可选参数,在5.0中,
        可选参数叫做
    TLVTable
  • CMPP是中国移动定义的其内部ISMG之间、ISMGSP之间的通讯标准,涉及一些具体的计费信息,但没有可选参数。
  • SMPP中,消息头包括4部分:PDU长度、Command_IdCommand_StatusSequence_Id。其中Command_Status字段,只在回应消息中中使用,
        
    存在冗余。

CMPP中,消息头部包括3部分:PDU长度、Command_IdSequence_Id。个人认为,CMPP中的消息头,不包括Command_Status,似乎更好一些。
  
  


  • ESMESMSC的消息

       

    命令

    描述

    bind_receiver

    ESME要求以接收者身份连接到SMSC

    bind_transmitter

    ESME要求以发送者身份连接到SMSC

    Unbind

    ESME要求断开连接到SMSC

    submit_sm

    ESME提交短消息到SMSC,以便SMSC下发此短消息到指定的移动台。

    deliver_sm_resp

    deliver_sm的响应。

    query_sm

    ESME查询以前所提交的短消息的状态

    cancel_sm

    ESME要求取消以前所提交的某条短消息

    replace_sm

    ESME要求替换以前所提交的某条短消息

    enquire_link

    询问与SMSC的连接情况

    generic_nak

    表示消息头有错误的响应

    replace_sm_ex

    ESME要求替换以前所提交的某条短消息的扩展命令,它比replace_sm增加了数据编码格式字段

    add_sub

    增加用户

    del_sub

    删除用户

    mod_sub

    修改用户

    enquire_sub

    查询用户的信息


  •          
  •  
  • SMSCESME的消息

           命令

    描述

    bind_receiver_resp

    bind_receiver的响应,status表示连接成功与否

    bind_transmitter_resp

    bind_transmitter的响应,status表示连接成功与否

    unbind_resp

    unbind的响应,status表示断开连接成功与否

    submit_sm_resp

    submit_sm的响应,status表明提交短消息是否成功

    deliver_sm

    SMSC下发短消息到ESME

    query_sm_resp

    query_sm的响应,status表明此次询问是否成功,其它内容返回查询到的短消息信息

    cancel_sm_resp

    cancel_sm的响应。Status表明取消短消息是否成功

    replace_sm_resp

    replace_sm的响应,status表明此次替换是否成功

    enquire_link_resp

    Enquire_link的响应

    generic_nak

    表示消息头有错误的响应

    replace_sm_ex_resp

    replace_sm_ex的响应,status表明此次替换是否成功

    add_sub_resp

    add_sub的响应,status表明此次增加用户是否成功。

    del_sub_resp

    del_sub的响应,status表明此次删除用户是否成功。

    mod_sub_resp

    mod_sub的响应,status表明此次修改用户是否成功。

    enquire_sub_resp

    enquire_sub的响应,status表明此次询问是否成功。其它内容返回查询到的用户信息


      选其中比较重要的消息:

      消息头
      

字段

长度(字节)

类型

描述

Command_Length

4

integer

消息包的长度,包括此字段

Command_ID

4

integer

这个字段表明此条短消息的类型,例如ESME_SUB_SM表示此消息为ESMESMSC提交短消息。具体数值定义见附录A

Command_status

4

integer

此字段表示一个命令的成功与失败,如失败,指示引起失败的错误类型等信息它在请求中必须设为0

Sequence_No

4

integer

此字段表示消息的序列号,它由ESME产生,它是消息和它的应答之间的对应标志,它的数值在00XFFFFFFFF间必须保证严格单调的递增,当达到0XFFFFFFFF时,从0开始下一循环。

Optional Message Body

可变

混合

此字段表示短消息的消息体部分,具体定义见6.5.2




   SUBMIT_SM语法

字段

长度(字节)

类型

描述

service_type

最大6

C_OctetString

保留,必须设为0

source_address_ton

1

integer

源地址编码类型

source_address_npi

1

integer

源地址编码方案

source_address

最大21

C_DecString

源地址

dest_address_ton

1

integer

目的地址编码类型

dest_address_npi

1

integer

目的地址编码方案

destination_address

最大21

C_DecString

目的地址

esm_class

1

integer

短消息类型

protocol_ID

1

integer

GSM协议类型

priority_flag

1

integer

优先级

schedule_delivery_time

最大17

C_StringTime

计划下发短消息的时间

validity_peroid

最大17

C_StringTime

短消息的最后有效期限

registered_delivery_flag

1

integer

注册短消息标志

 

replace_if_present_flag

1

integer

替换短消息标志。

 

data_coding

1

integer

数据编码方案

sm_default_msg_id

1

integer

预定义短消息ID

sm_length

1

integer

短消息的长度

short_message_text

最大161

可变

短消息数据内容

 



   

只有注册用户登录后才能发表评论。


网站导航: