摘 要 CM (中国移动点对点协议)规定了移动梦网短信业务开展过程中各网元(包括ISMG、G 和 )之间的消息类型和定义,本文讲述基于CM 3.0标准的企业短信网关设计,支持CO ECT,SUBMIT,DELIVER,QUERY,CANCEL,TERMINATE消息。
关键词 短信 短信网关CM ISMG
1 引言
随着短信息业务的快速发展,短信息已经成为手机用户最经常使用的业务之一。除了大量使用的手机用户到手机用户的点对点短信业务之外,从信息平台到手机用户的短信信息服务业务也在快速发展,该业务已经成为广大用户及时方便地获取信息的一种手段。在广大服务提供商( )的支持下,用户可以采用短信点播或网站定制的方式得到大量有用信息, 也能通过提供有偿信息服务而获得收益。
然而手机用户和 的交互必须通过基于CM 的短信网关。CM (China Mobile Peer to Peer)中国移动点对点协议,目前为3.0版本,是中国移动通信集团公司发布,规定了移动梦网短信业务开展过程中各网元(包括ISMG、G 和 )之间的消息类型和定义,规定了以下三方面的内容:1)业务提供商与互联网短信网关之间的接口协议;2)互联网短信网关之间的接口协议;3)互联网短信网关与汇接网关之间的接口协议。
文章组织如下:第2节分析介绍了CM 3.0;第3节分析设计企业短信网关API;第4节给出了 的发展趋势,最后对全文进行总结。
JAVA天堂
图1 互联网短信网关组网结构
如图1所示,互联网短信网关(ISMG)是业务提供商( )与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收 发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播 业务的信息将由短信中心通过互联网短信网关发给 。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将 提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(G )查询的方式获得网关间的转发路由信息。
另外,ISMG还必须与数据业务管理平台DSMP进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。
CM 协议主要提供以下两类业务操作:
(1)短信发送(Short Me age Mobile Originate,SM MO)
(2)短信接收(Short Me age Mobile Terminated,SM MT)
2.2 CM 协议栈
CM 协议以TCP/IP作为底层通信承载,具体结构由图2所示:
< an cla ='Jip985'>
图2 CM 协议栈
2.3 通讯方式
各网元之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CM 消息的发送。
现阶段,要求ISMG之间必须采用长连接的通信方式,建议 与ISMG之间采用长连接的通信方式。
2.4 CM 涉及的端口号
端口号 应用7890 长连接( 与网关间)7900 短连接( 与网关间)7930 长连接(网关之间)9168 短连接(短信网关与汇接网关之间)
2.5交互过程中的应答方式
在 与ISMG之间、SMSC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图3所示:
图3 异步交互方式示意图
3 企业短信网关设计
企业短信网关API必须实现CM 3.0中业务提供商( )与互联网短信网关(ISMG)间的消息定义所规定的七个操作。
⑴ 请求连接到ISMG(CM _CO ECT)操作
CM _CO ECT操作的目的是 向ISMG注册作为一个合法 身份,若注册成功后即建立了应用层的连接,此后 可以通过此ISMG接收和发送短信。ISMG以CM _CO ECT_RE 消息响应 的请求。
⑵ 或ISMG请求拆除连接(CM _TERMINATE)操作
CM _TERMINATE操作的目的是 或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后 与ISMG之间的应用层连接被释放,此后 若再要与ISMG通信时应发起CM _CO ECT操作。
ISMG或 以CM _TERMINATE_RE 消息响应请求。
⑶ 向ISMG提交短信(CM _SUBMIT)操作
CM _SUBMIT操作的目的是 在与ISMG建立应用层连接后向ISMG提交短信。
ISMG以CM _SUBMIT_RE 消息响应。
⑷ 向ISMG查询发送短信状态(CM _QUERY)操作
CM _QUERY操作的目的是 向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。ISMG以CM _QUERY_RE 应答。
⑸ ISMG向 送交短信(CM _DELIVER)操作
CM _DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交 , 以CM _DELIVER_RE 消息回应。
⑹ 向ISMG发起删除短信(CM _CANCEL)操作
CM _CANCEL操作的目的是 通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CM _CANCEL_RE 回应删除操作的结果。
⑺ 链路检测(CM _ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
以下为CM API实现的java部分代码
public final cla CM API
{
…….
public CM API()
{
….. //初始化,完成 请求连接到ISMG(CM _CO ECT)操作
}
public int CM endSingle(…)
{
…..//发送短信,完成 向ISMG提交短信(CM _SUBMIT)操作
}
public int CM endBatch(…)
{
…..//群发短信
}
public int CM Query(…)
{
…..//查询短信流量,完成 向ISMG发起删除短信(CM _CANCEL)操作
}
public int CM Deliver(…)
{
…..//接受短信,完成ISMG向 送交短信(CM _DELIVER)操作
}
public int CM Cancel(..)
{
…..//取消短信,完成 向ISMG发起删除短信(CM _CANCEL)操作
}
public int CM ActiveTest(..)
{
…// 检查ISMG短信网关是否提供服务,链路检测(CM _ACTIVE_TEST)操作
}
public int CM AnalyzeStatusReport(..)
{
…..//分析状态报告内容
}
}
4 结束语
当前短信业务蓬勃发展,移动数据业务将成为运营商的重要收入来源,移动互联网用户数大幅增长。
CM 作为中国移动网关与服务提供商( )之间的交互协议,在 技术发展中具有重要的作用。本文深入分析CM 3.0协议的结构和底层通讯方式,给出实现CM 3.0的企业短信网关API,为 接入移动短信业务提供实现方法。
但本文也存在一些不足,CM 3.0是一个复杂的协议,也是互联网短信网关的接口协议,作者将继续对CM 3.0的研究,进一步深化本文的工作。 an>
2 CM 3.0
JAVA天堂
2.1网络结构
如图1所示:
图1 互联网短信网关组网结构
如图1所示,互联网短信网关(ISMG)是业务提供商( )与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收 发送给移动用户的信息和提交给短信中心。另一方面,移动用户点播 业务的信息将由短信中心通过互联网短信网关发给 。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将 提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(G )查询的方式获得网关间的转发路由信息。
另外,ISMG还必须与数据业务管理平台DSMP进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。
CM 协议主要提供以下两类业务操作:
(1)短信发送(Short Me age Mobile Originate,SM MO)
(2)短信接收(Short Me age Mobile Terminated,SM MT)
2.2 CM 协议栈
CM 协议以TCP/IP作为底层通信承载,具体结构由图2所示:
< an cla ='Jip985'>
图2 CM 协议栈
2.3 通讯方式
各网元之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CM 消息的发送。
现阶段,要求ISMG之间必须采用长连接的通信方式,建议 与ISMG之间采用长连接的通信方式。
2.4 CM 涉及的端口号
端口号 应用7890 长连接( 与网关间)7900 短连接( 与网关间)7930 长连接(网关之间)9168 短连接(短信网关与汇接网关之间)
2.5交互过程中的应答方式
在 与ISMG之间、SMSC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。举例如图3所示:
图3 异步交互方式示意图
3 企业短信网关设计
企业短信网关API必须实现CM 3.0中业务提供商( )与互联网短信网关(ISMG)间的消息定义所规定的七个操作。
⑴ 请求连接到ISMG(CM _CO ECT)操作
CM _CO ECT操作的目的是 向ISMG注册作为一个合法 身份,若注册成功后即建立了应用层的连接,此后 可以通过此ISMG接收和发送短信。ISMG以CM _CO ECT_RE 消息响应 的请求。
⑵ 或ISMG请求拆除连接(CM _TERMINATE)操作
CM _TERMINATE操作的目的是 或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后 与ISMG之间的应用层连接被释放,此后 若再要与ISMG通信时应发起CM _CO ECT操作。
ISMG或 以CM _TERMINATE_RE 消息响应请求。
⑶ 向ISMG提交短信(CM _SUBMIT)操作
CM _SUBMIT操作的目的是 在与ISMG建立应用层连接后向ISMG提交短信。
ISMG以CM _SUBMIT_RE 消息响应。
⑷ 向ISMG查询发送短信状态(CM _QUERY)操作
CM _QUERY操作的目的是 向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。ISMG以CM _QUERY_RE 应答。
⑸ ISMG向 送交短信(CM _DELIVER)操作
CM _DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交 , 以CM _DELIVER_RE 消息回应。
⑹ 向ISMG发起删除短信(CM _CANCEL)操作
CM _CANCEL操作的目的是 通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CM _CANCEL_RE 回应删除操作的结果。
⑺ 链路检测(CM _ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
以下为CM API实现的java部分代码
public final cla CM API
{
…….
public CM API()
{
….. //初始化,完成 请求连接到ISMG(CM _CO ECT)操作
}
public int CM endSingle(…)
{
…..//发送短信,完成 向ISMG提交短信(CM _SUBMIT)操作
}
public int CM endBatch(…)
{
…..//群发短信
}
public int CM Query(…)
{
…..//查询短信流量,完成 向ISMG发起删除短信(CM _CANCEL)操作
}
public int CM Deliver(…)
{
…..//接受短信,完成ISMG向 送交短信(CM _DELIVER)操作
}
public int CM Cancel(..)
{
…..//取消短信,完成 向ISMG发起删除短信(CM _CANCEL)操作
}
public int CM ActiveTest(..)
{
…// 检查ISMG短信网关是否提供服务,链路检测(CM _ACTIVE_TEST)操作
}
public int CM AnalyzeStatusReport(..)
{
…..//分析状态报告内容
}
}
4 结束语
当前短信业务蓬勃发展,移动数据业务将成为运营商的重要收入来源,移动互联网用户数大幅增长。
CM 作为中国移动网关与服务提供商( )之间的交互协议,在 技术发展中具有重要的作用。本文深入分析CM 3.0协议的结构和底层通讯方式,给出实现CM 3.0的企业短信网关API,为 接入移动短信业务提供实现方法。
但本文也存在一些不足,CM 3.0是一个复杂的协议,也是互联网短信网关的接口协议,作者将继续对CM 3.0的研究,进一步深化本文的工作。 an>


