CN109361709B - 自动适配cmpp协议的短信网关平台的构建方法及平台 - Google Patents

自动适配cmpp协议的短信网关平台的构建方法及平台 Download PDF

Info

Publication number
CN109361709B
CN109361709B CN201811533575.4A CN201811533575A CN109361709B CN 109361709 B CN109361709 B CN 109361709B CN 201811533575 A CN201811533575 A CN 201811533575A CN 109361709 B CN109361709 B CN 109361709B
Authority
CN
China
Prior art keywords
protocol
cmpp
short message
new
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811533575.4A
Other languages
English (en)
Other versions
CN109361709A (zh
Inventor
张凯
荆楠
邓沛沛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Fiberhome Integration Technologies Co ltd
Original Assignee
Wuhan Fiberhome Integration Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Fiberhome Integration Technologies Co ltd filed Critical Wuhan Fiberhome Integration Technologies Co ltd
Priority to CN201811533575.4A priority Critical patent/CN109361709B/zh
Publication of CN109361709A publication Critical patent/CN109361709A/zh
Application granted granted Critical
Publication of CN109361709B publication Critical patent/CN109361709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/085Upper layer protocols involving different upper layer protocol versions, e.g. LCS - SUPL or WSN-SOA-WSDP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/184Messaging devices, e.g. message centre

Abstract

本发明公开了一种自动适配CMPP协议的短信网关平台的构建方法,涉及移动通信技术领域。本发明在CMPP协议栈中CMPP层的上层增加协议控制层,其用于识别CMPP协议内容,生成与该协议自动适配的代码,并封装成库;收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用对应的CMPP协议与短信中心通讯。只需要将协议上传至协议控制中心一次,协议控制中心就会根据协议内容自动生成一套与之适配的CMPP协议代码,并封装成库,生成新的CMPP协议。以后每次需要该新的协议版本时,都可以通过新生成的CMPP协议与短信中心通讯,节省代码开发成本及人工成本。本发明还提供一种自动适配CMPP协议的短信网关平台。

Description

自动适配CMPP协议的短信网关平台的构建方法及平台
技术领域
本发明涉及移动通信技术领域,具体是涉及一种自动适配CMPP协议的短信网关平台的构建方法及网关平台。
背景技术
参见图1所示,在短信告警时,需根据CMPP协议来实现短信的告警,而该种协议类型为中国移动短信网关接口指定,然后需根据该协议版本,完成协议接口开发;有时需要满足多种CMPP协议类型,指定某版本协议,完成短信下发功能。
基于此场景,传统的做法是根据新的协议类型编码实现新的一套协议代码来完成功能。随着软件版本的更新迭代,每次有新的协议形成都需要编码一整套代码来适配该种协议,代码开发成本及人工成本高。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种自动适配CMPP协议的短信网关平台的构建方法及网关平台,能根据协议内容自动生成一套与之适配的协议代码,节省代码开发成本。
本发明提供一种自动适配CMPP协议的短信网关平台的构建方法,包括以下步骤:
在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
在上述方案的基础上,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
在上述方案的基础上,所述协议状态包括:请求建立连接、应答、提交短信的请求和接收响应包。
在上述方案的基础上,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
在上述方案的基础上,所述协议内容包括通信的过程描述及数据格式。
本发明还提供一种自动适配CMPP协议的短信网关平台,所述平台包括协议控制中心,所述协议控制中心用于:
在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
在上述方案的基础上,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
在上述方案的基础上,所述协议状态包括:请求建立连接、应答、提交短信的请求和接收响应包。
在上述方案的基础上,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
在上述方案的基础上,所述平台还包括CMPP协议库,其用于存储协议控制层生成的新的CMPP协议。
与现有技术相比,本发明的优点如下:
本发明在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于识别CMPP协议内容,生成与该协议自动适配的代码,并封装成库;收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用对应的CMPP协议与短信中心通讯。因此,只需要将协议本身上传至协议控制中心一次,协议控制中心就会根据协议内容本身自动生成一套与之适配的CMPP协议代码,并封装成库,生成新的CMPP协议。以后每次需要该新的协议版本时,都可以通过新生成的CMPP协议与短信中心通讯,节省代码开发成本及人工成本。
附图说明
图1是背景技术中的互联网短信网关逻辑结构的示意图;
图2是一般的CMPP协议栈的结构示意图;
图3是本发明实施例的自动适配CMPP协议的短信网关平台的构建方法的CMPP协议栈的结构示意图;
图4是本发明实施例的自动适配CMPP协议的短信网关平台的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种自动适配CMPP协议的短信网关平台的构建方法,包括以下步骤:
一般的CMPP协议栈结构如图2所示,包括CMPP层、TCP层、IP层和底层承载。
参见图3所示,本发明实施例在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
作为优选的实施方式,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
作为优选的实施方式,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
本发明实施例的协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
步骤一:CMPP协议会具体描述整个通信的过程及数据格式,例如以下场景是其中一部分,举例说明:
如:在提交短信时,需要将短信内容发送出去,有以下几个参数是必须的:如接收号码、发送内容等;在发送一个消息时,其实就是发送一个特定协议的数据报文,有一定的格式,即消息结构为Header+Body;前12个Bytes(即前48个bit,一个字节Byte是8个Bit,一个英文字母占一个字节,后面统一用字节说明)是Header,前4个字节是这个消息体的总长度;第5~8个字节是命令类型,即功能;后4个字节是Sequence_Id,即消息流水号,顺序累加,步长为1,循环使用。接下来就是Body;前面的32个字节是接收号码,数据类型是OctetString数据格式;再之后的数据是短信内容,数据类型是Octet String。
数据类型如下:
Unsigned Integer:无符号整数;
Integer:整数,可为正整数、负整数或零
Octer String:定长字符串,位数不足时,如果左补ASCII表示的零以填充,如果右补0则补二进制的零以表示字符串的结束符。
步骤二:使用json进行描述,并上传至协议中心:
Figure BDA0001906313170000061
Figure BDA0001906313170000071
步骤三:根据上传上来的json协议描述,解析成代码,如以下根据上述json描述解析成python代码:
#指明协议类型
cmpp_version=0x30
#通过python struct模块,将字符串转化成二进制流,!I指明4个字节,总长度=header12个字节+body的长度
__total_length=struct.pack('!I',12+messagebodylength)
#同理,如下表明1个字节
__command_id=struct.pack('!I',command_id)
#同理,如下表明1个字节
__sequence_id=struct.pack('!I',seq)
#将二进制流,即各个bit拼接header的流
Message_header=__total_length+__command_id+__sequence_id
#具体的手机号码,如,139xxxx,1个数字占一个字节,总共11个字节
Dest_terminal=""
#转化成Octet String类型数据,并编码;因为总字节数为32个字节,除去手机号码占用的11个字符,剩下21个字符补零
__Dest_terminal=(Dest_terminal+(21-len(Dest_terminal))*'\x00').encode('utf-8')
#短信内容的实际长度,并进行编码
Msg_length=len(Msg_Content)
__Msg_Content=Msg_Content.encode('utf-16-be')
#消息body如下
Message_body=__Dest_terminal+__Msg_Content
#此时,可以得到message_body的长度
messagebodylength=32+Msg_length
步骤四:将解析出的代码放入框架中,并封装成库,如下:
步骤4a:对应协议中的每个状态,并将每个状态TCP包解析出来:一个新的协议通信的过程,总共可以分为以下几个步骤:
1.CMPP_CONNECT,请求建立连接,此时包会包含认证信息;
2.CMPP_CONNECT_RESP,TCP的包是一发一收,这个是应答,包含认证是否通过的消息;
3.CMPP_SUBMIT,这个是提交短信的请求,包含短信发送的信息,如上示例就是这个阶段;
4.CMPP_SUBMIT_RESP,同理,这个是响应包。一个TCP包的组成主是头的格式相同,Body不同;因此根据协议中的Body,将每个状态如步骤三一样进行对应,这样每个状态的TCP包就全部解析出来了。
步骤4b:根据框架,将每个具体状态的TCP包,放进框架中:
框架是由一种通用代码组成,会完成如下逻辑:建立连接--确认连接成功--发送信息。这几个状态中的包的收发顺序,应答后状态置换,维持心跳连接等,均在这个框架中定义完成,并将具体数据抽象出来,做为参数,如连接地址、认证密码、发送手机号码等;
步骤4c:封装入库:上述几个步骤完成后,某一种协议的通信过程代码已经生成,此时需要封装入库时,方便不同协议通信时,自动选择对应的协议版本。给该协议代码打上TAG号,设置为协议中描述的Version。
参见图4所示,本发明实施例还提供一种自动适配CMPP协议的短信网关平台,所述平台包括协议控制中心,所述协议控制中心用于:
在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
作为优选的实施方式,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
作为优选的实施方式,所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
作为优选的实施方式,所述平台还包括CMPP协议库,其用于存储协议控制层生成的新的CMPP协议。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (8)

1.一种自动适配CMPP协议的短信网关平台的构建方法,其特征在于,包括以下步骤:
在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯;
所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
2.如权利要求1所述的方法,其特征在于:所述协议状态包括:请求建立连接、应答、提交短信的请求和接收响应包。
3.如权利要求1所述的方法,其特征在于:所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
4.如权利要求1所述的方法,其特征在于:所述协议内容包括通信的过程描述及数据格式。
5.一种自动适配CMPP协议的短信网关平台,其特征在于:所述平台包括协议控制中心,所述协议控制中心用于:
在CMPP协议栈中CMPP层的上层增加协议控制层,协议控制层用于:识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议;
收到客户端发送的短信时,判断接收的协议类型,根据协议类型调用新的CMPP协议与短信中心通讯;
所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议,具体包括以下步骤:
获取CMPP协议,将协议内容转换成json格式;
将json格式的协议内容解析成python代码;
对应CMPP协议中的协议状态,将每个协议状态的TCP包解析出来;
将python代码和TCP包封装成库,生成新的CMPP协议。
6.如权利要求5所述的一种自动适配CMPP协议的短信网关平台,其特征在于:所述协议状态包括:请求建立连接、应答、提交短信的请求和接收响应包。
7.如权利要求5所述的一种自动适配CMPP协议的短信网关平台,其特征在于:所述协议控制层识别CMPP协议内容,生成与CMPP协议自动适配的代码并封装成库,生成新的CMPP协议时,给封装成库的代码打上TAG号,设置为CMPP协议中描述的Version;
收到客户端发送的短信时,接收传入的协议类型并根据TAG号判断协议类型,根据协议类型调用新的CMPP协议与短信中心通讯。
8.如权利要求5所述的一种自动适配CMPP协议的短信网关平台,其特征在于:所述平台还包括CMPP协议库,其用于存储协议控制层生成的新的CMPP协议。
CN201811533575.4A 2018-12-14 2018-12-14 自动适配cmpp协议的短信网关平台的构建方法及平台 Active CN109361709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811533575.4A CN109361709B (zh) 2018-12-14 2018-12-14 自动适配cmpp协议的短信网关平台的构建方法及平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811533575.4A CN109361709B (zh) 2018-12-14 2018-12-14 自动适配cmpp协议的短信网关平台的构建方法及平台

Publications (2)

Publication Number Publication Date
CN109361709A CN109361709A (zh) 2019-02-19
CN109361709B true CN109361709B (zh) 2021-04-27

Family

ID=65329675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811533575.4A Active CN109361709B (zh) 2018-12-14 2018-12-14 自动适配cmpp协议的短信网关平台的构建方法及平台

Country Status (1)

Country Link
CN (1) CN109361709B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1264235A (zh) * 1999-02-13 2000-08-23 三星电子株式会社 使用短消息业务的数据传输协议
CN1501672A (zh) * 2002-11-15 2004-06-02 深圳市中兴通讯股份有限公司 在固定网短消息平台上接入多种短消息协议的方法
CN102045881A (zh) * 2009-10-23 2011-05-04 中兴通讯股份有限公司 短消息协议的识别方法及网关系统
CN104754535A (zh) * 2015-02-04 2015-07-01 苏州工业园区服务外包职业学院 短信接入装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170078456A1 (en) * 2014-09-22 2017-03-16 Sightcall, Inc. Remote SIP Stack and Architecture and Methods for Video Calls Between Mobile Devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1264235A (zh) * 1999-02-13 2000-08-23 三星电子株式会社 使用短消息业务的数据传输协议
CN1501672A (zh) * 2002-11-15 2004-06-02 深圳市中兴通讯股份有限公司 在固定网短消息平台上接入多种短消息协议的方法
CN102045881A (zh) * 2009-10-23 2011-05-04 中兴通讯股份有限公司 短消息协议的识别方法及网关系统
CN104754535A (zh) * 2015-02-04 2015-07-01 苏州工业园区服务外包职业学院 短信接入装置

Also Published As

Publication number Publication date
CN109361709A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN108965484B (zh) 一种物联网数据的传输方法、系统及终端
US8718098B2 (en) Method for compressing and decompressing time stamp and equipment thereof
EP3096563B1 (en) Method and system for realizing network access via wifi
CN101977402A (zh) 鲁棒性头压缩中一种上下文重用的方法及装置
CN103647706A (zh) 一种自适配协议通信网关及通信平台
CN114362885A (zh) 物联网数据传输方法、装置、设备和介质
US11743364B2 (en) Method for interconversion between protocols
CN113867732A (zh) 一种报文信息处理方法、系统以及存储介质
CN107508828B (zh) 一种超远程数据交互系统及方法
CN107517225B (zh) 一种协议转换方法、网关设备及存储介质
EP1433299A1 (en) Method and system for communicating among heterogeneous systems
CN109361709B (zh) 自动适配cmpp协议的短信网关平台的构建方法及平台
EP2071808A1 (en) Methods and a system and devices for ipv6 datagram transmission in the ethernet
CN113704002A (zh) 一种基于私有协议的rpc组件的实现方法及rpc组件
CN113163028A (zh) 一种业务数据传输方法、装置及系统
CN105635160B (zh) 一种多变数据网络通信的设计方法
CN110557446B (zh) 通过att和数据分割重组来适配的通信方法及系统
CN108390890A (zh) 一种协议传输的粘包、拼包的方法
CN101197825B (zh) 一种传输压缩消息的方法、系统及设备
CN101047620B (zh) 快速处理报文的装置及方法
CN105162616B (zh) 一种兼容snmp协议和corba协议的综合网络管理方法
CN103346961A (zh) 一种数据打包交换的方法和系统
CN111614612B (zh) 通讯协议实现方法、装置、网管服务器和存储介质
CN109981674B (zh) 一种远程过程调用方法、装置、设备及介质
CN101827333A (zh) 手机浏览器后台服务器数据处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant