CN102761543A - 一种实现sip协议通用编解码的方法和装置 - Google Patents

一种实现sip协议通用编解码的方法和装置 Download PDF

Info

Publication number
CN102761543A
CN102761543A CN2012102176485A CN201210217648A CN102761543A CN 102761543 A CN102761543 A CN 102761543A CN 2012102176485 A CN2012102176485 A CN 2012102176485A CN 201210217648 A CN201210217648 A CN 201210217648A CN 102761543 A CN102761543 A CN 102761543A
Authority
CN
China
Prior art keywords
decoding
message
protocol
module
encoding
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.)
Granted
Application number
CN2012102176485A
Other languages
English (en)
Other versions
CN102761543B (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.)
Beijing Zhongchuang Telecom Test Co Ltd
Original Assignee
Beijing Zhongchuang Telecom Test 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 Beijing Zhongchuang Telecom Test Co Ltd filed Critical Beijing Zhongchuang Telecom Test Co Ltd
Priority to CN201210217648.5A priority Critical patent/CN102761543B/zh
Publication of CN102761543A publication Critical patent/CN102761543A/zh
Application granted granted Critical
Publication of CN102761543B publication Critical patent/CN102761543B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种实现SIP协议通用编解码的方法,其中该方法包括:一种实现SIP协议通用编解码的方法,该方法包括采用正则表达式来描述单个协议规则;将所述协议规则编写成配置文件;通过读取所述配置文件中的信息,获取编解码规则,当协议扩展的时候,仅修改所述配置文件;在消息的编码和解码过程中,通过所述配置文件来描述当前应用中需要编解码的字段信息,而不是对整个消息进行编解码。此外,本发明还公开了一种实现SIP协议通用编解码的装置。通过本发明提出的方法和装置,能够在不修改程序的基础上,通过扩展协议配置文件,实现对协议的支持,从而提高了编解码的效率。

Description

一种实现SIP协议通用编解码的方法和装置
技术领域
本发明属于通信领域,特别涉及电信网络中有着广泛的应用的SIP协议。
背景技术
SIP协议即会话发起协议,是NGN网络和3G网络及Lte网络中的核心协议,目前在电信网络中有着广泛的应用。SIP协议的编解码器是任何一个SIP系统不可或缺的组件。
SIP协议具有很强的包容性,它既可以用于建立(如音频、视频、多方通话等)各种会话,也可以被用来传送即时消息和文件,这得益于它对HTTP等协议的吸收借鉴。这使运营商能够通过统一的业务平台提供综合的业务,实现网络融合。
SIP消息以文本方式编码,编解码过程本质上就是对字符串的操作。现有的编解码方案,首先会对SIP消息定义为结构体,例如:
在编解码的过程中,对整个消息中信息进行解析,对结构体中定义的字段逐个填充。以下面的消息为例,说明现有的编解码方案。
Figure BDA00001817717300021
消息解码方法,逐行的读入消息内容,将消息内容逐个解析,填入结构体对应的字段中。解析流程首先读取第一行内容,按照协议规范确定消息类型,将解码后的结果存入MSGTYPE中。MSGTYPE也是一个结构体,定义如下:
Figure BDA00001817717300022
将“INVITE sip:160192.168.5.26:52164;rinstance=1a20786d0e090015SIP/2.0”消息中的“INVITE”赋值给m_strMethod字段,m_uChoice自定义字段与m_strMethod字段含义相同,类型为short便于程序操作,CSIP_SIP_URI也是一个结构体,存放“sip:160192.168.5.26:52164;rinstance=1a20786d0e090015”中的信息,m_fSip_Version存放“SIP/2.0”信息,结构体“SIP_MSG”中其它字段的赋值方式和这个字段相似,就不作过多说明。
消息编码方案,需要将结构体中的字段信息逐个赋值,赋值完成之后,程序会按照协议规范将这些消息输出成SIP消息。
现有的编解码方案,必需竟可能大地定义静态数组以满足所有可能的情况,这样整个SIP_MSG结构就非常大,再加上SIP协议基于文本的方式,使各种协议扩充工作变得十分简单,协议的扩充主要在消息上做文章,SIP消息的三个基本部分:消息类型、消息头、消息体而这三部分在协议规范中都可以被不断扩充,当消息扩展的时候,就需要去修改SIP_MSG结构,导致程序不断的修改更新。并且在实际的应用中,可能只关注SIP消息中的某几个信息,并不是对所有的信息都关注,如果对所有SIP消息中的字段全部编解码的话,增加了系统开销,同时还降低了系统编解码的效率。
发明内容
为了解决现有技术问题,一种通用的编解码方案,适应协议扩展,采用可配置编解码方案,提高编解码效率。
具体而言,本发明提出了一种实现SIP协议通用编解码的方法,该方法包括:步骤1.采用正则表达式来描述单个协议规则;步骤2.将所述协议规则编写成配置文件;步骤3.通过读取所述配置文件中的信息,获取编解码规则,当协议扩展的时候,只需要修改配置文件即可;步骤4.在消息的编码和解码过程中,通过配置文件来描述当前应用中需要编解码的字段信息,而不是对整个消息进行编解码。
此外,本发明还提出一种实现SIP协议通用编解码的装置,其中该装置包括:协议编解码模块,消息编码模块和消息解码模块,其中,协议编解码模块,用于完成对消息的编解码功能;消息编码模块,用于实现与底层和上层模块之间的通信,同时调用协议编解码模块实现对消息的编码;消息解码模块,用于实现与底层和上层模块之间的通信,同时调用协议编解码模块实现对消息的解码;其中采用正则表达式对协议规则进行描述,并通过xml配置文件描述SIP协议及协议类型。
其中,所述协议编解码模块进一步包括:协议文件描述解析单元,用于实现对所述配置文件的解析处理,将文件描述的信息,转化为程序中用到的对象,供协议编解码处理单元使用;协议编解码处理单元,用于提供对外调用的接口,供消息编码模块和消息解码模块使用,实现对消息的编解码;其中,编码返回的结果,是一个可供发送的完整消息;解码返回的结果,是解码后得到的解码信息,存放在程序自定义的结构体中。
其中,所述消息编码模块会根据编码配置文件来进行选择编码而不是对所有的信息进行编码。
其中,所述消息编码模块进一步包括:消息编码与上层通信单元,用于实现与上层模块的通信,接收上层下发的编码信息;消息编码单元,用于调用协议编解码模块实现对消息编码;消息编码与底层通信单元,用于实现将编码完成的消息,传递给底层部分实现消息发送。
其中,消息解码模块根据解码配置文件来进行选择解码而不是对所有的信息进行解码。
其中,消息解码模块进一步包括:消息解码与上层通信单元,用于与上层模块的通信,将解码后的结果交给上层处理模块;消息解码和消息解码与底层通信单元,用于从底层接收消息;消息解码单元实现对消息解码。
其中,消息解码单元会根据解码配置文件来进行,选择解码而不是对所有的信息进行解码,配置文件格式与编码模块相同。
本发明提出的技术方案主要解决了SIP协议的扩展性问题,能够在不修改程序的基础上,通过扩展协议配置文件,实现对协议的支持。同时通过编解码配置文件,实现对消息中部分信息的编解码,提高了编解码的效率。
附图说明
图1为在本发明提出的实现SIP协议通用编解码的方法的方框图;
图2为实现SIP协议通用编解码的装置的结构示意图。
具体实施方式
下面结合附图,对本发明作详细的阐述。
参见图1,其是本发明提出的实现SIP协议通用编解码的方法的方框图。其主要包括以下4个步骤:
S101.采用正则表达式来描述单个协议规则;
S102.将所述协议规则编写成配置文件;
S103.通过读取所述配置文件中的信息,获取编解码规则,当协议扩展的时候,只需要修改配置文件即可;
S104.在消息的编码和解码过程中,通过配置文件来描述当前应用中需要编解码的字段信息,而不是对整个消息进行编解码。
在实际应用中,首先实现协议编解码器,由于SIP协议是一个文本协议,所以采用正则表达式来描述单个协议规则,最后将这些规则编写成配置文件,协议编码器通过读取配置文件信息,获取编解码规则,当协议扩展的时候,只需要修改配置文件即可;其次,实现消息编码和解码模块,在这两个模块中通过配置文件来描述当前应用中需要编解码的字段信息,而不是对整个消息进行编解码,从而提高了编解码效率。
此外,本发明还可以通过一种实现SIP协议通用编解码的装置来完成,具体参见图2,其为实现SIP协议通用编解码的装置的结构示意图。在图2中,该装置用通用编解码模块表示。
由图2可以看出,通用编解码模块由三个子模块组成,分别为协议编解码模块,消息编码模块和消息解码模块。协议编解码模块,完成对消息的编解码功能;消息编码模块,实现与底层和上层模块之前的通信,同时会调用协议编解码模块实现对消息的编码;消息解码模块,实现与底层和上层模块之前的通信,同时会调用协议编解码模块实现对消息的解码。
协议编解码模块
协议编解码模块是核心部分,协议编解码模块由两部分构成协议文件描述解析单元和协议编解码处理单元。
a)协议文件描述解析单元
由于SIP协议是基于文本方式,采用正则表达式对协议信息进行描述,通过xml配置文件描述SIP协议,描述协议类型,格式如下:
Figure BDA00001817717300052
通过header部分的描述,编解码SIP消息中的类型信息,当类型信息符合“message”列表中给出的其中某项时,表示编解码成功,通过采用这种方法,可以适应SIP消息类型的扩展,当协议类型扩展以后,只需要在“message”列表中增加相应的描述即可,不需要修改程序内部逻辑。
描述消息头部分字段信息的格式如下:
Figure BDA00001817717300062
上面给出的三条规则中,都是在描述SIP消息中的“from”字段,但是每条规则中所关心的内容却是不一样的,第一条″from″关心from字段的全部信息,第二条″from-name″关心from用户的名字信息,第三条″from-addr″关心from用户的地址信息,这些规则是可以根据需求扩充的,可以根据实际场景的需求编写适合当前场景的规则,从而能够适应协议头部的扩展。
协议文件描述解析单元实现对上面文件的解析处理,将文件描述的信息,转化为程序中用到的对象,供协议编解码处理单元使用。
b)协议编解码处理单元
主要提供对外调用的接口,供消息编码模块和消息解码模块使用,实现对消息的编解码,编码返回的结果,是一个可供发送的完整消息,解码返回的结果,是解码后得到的解码信息,存放在程序自定义的结构体中,通过“fielddef”中“name”描述的信息找到对应的解码信息。
Figure BDA00001817717300071
消息编码模块
消息编码模块,由三个单元组成,消息编码与上层通信单元,消息编码单元和消息编码与底层通信单元,消息编码与上层通信单元实现与上层模块的通信,接收上层下发的编码信息;消息编码单元调用协议编解码模块实现对消息编码;消息编码与底层通信单元,实现将编码完成的消息,传递给底层部分实现消息发送。
在消息编码模块中,会根据编码配置文件来进行,选择编码而不是对所有的信息进行编码。配置文件格式如下:
Figure BDA00001817717300072
Figure BDA00001817717300081
通过上面标下划线的语句中,程序中定义了一组描述编码动作的名词,“restore-from-external”含义是通过读取外部文件中的字段信息,根据“entity”部分中描述的对应上面协议字典中编解码规则,对“message”中消息内容进行相应的编码。
Figure BDA00001817717300082
消息解码模块
消息解码模块,由三个单元组成,消息解码与上层通信单元,消息解码和消息解码与底层通信单元,消息解码与底层通信单元实现从底层接收消息;消息解码单元实现对消息解码;消息解码与上层通信单元实现与上层模块的通信,将解码后的结果交给上层处理模块。
在消息解码模块中,会根据解码配置文件来进行,选择解码而不是对所有的信息进行解码。配置文件格式与编码模块相同,只是对应描述动作的名词不同。
本发明主要解决了SIP协议的扩展性问题,能够在不修改程序的基础上,通过扩展协议配置文件,实现对协议的支持。同时通过编解码配置文件,实现对消息中部分信息的编解码,提高了编解码的效率。
综上所述,虽然本发明已以优选实施例披露如上,然而其并非用以限定本发明。本发明所属技术领域的普通技术人员,在不脱离本发明的精神和范围内,可作各种变动与修饰。因此,本发明的保护范围当视所附的权利要求所界定的范围为准。

Claims (7)

1.一种实现SIP协议通用编解码的方法,该方法包括:
步骤1.采用正则表达式来描述单个协议规则;
步骤2.将所述协议规则编写成配置文件;
步骤3.通过读取所述配置文件中的信息,获取编解码规则,当协议扩展的时候,仅修改所述配置文件;
步骤4.在消息的编码和解码过程中,通过所述配置文件来描述当前应用中需要编解码的字段信息,而不是对整个消息进行编解码。
2.一种实现SIP协议通用编解码的装置,其中该装置包括:协议编解码模块,消息编码模块和消息解码模块,其中
协议编解码模块,用于完成对消息的编解码功能;
消息编码模块,用于实现与底层和上层模块之间的通信,同时调用协议编解码模块实现对消息的编码;
消息解码模块,用于实现与底层和上层模块之间的通信,同时调用协议编解码模块实现对消息的解码;
其中采用正则表达式对协议规则进行描述,并通过xml配置文件描述SIP协议及协议类型。
3.如权利要求2所述的装置,所述协议编解码模块进一步包括:
协议文件描述解析单元,用于实现对所述配置文件的解析处理,将文件描述的信息,转化为程序中用到的对象,供协议编解码处理单元使用;
协议编解码处理单元,用于提供对外调用的接口,供消息编码模块和消息解码模块使用,实现对消息的编解码;
其中,编码返回的结果,是一个可供发送的完整消息;解码返回的结果,是解码后得到的解码信息,存放在程序自定义的结构体中。
4.如权利要求2所述的装置,其中所述消息编码模块会根据编码配置文件来进行选择编码而不是对所有的信息进行编码。
5.如权利要求4所述的装置,其中所述消息编码模块进一步包括:
消息编码与上层通信单元,用于实现与上层模块的通信,接收上层下发的编码信息;
消息编码单元,用于调用协议编解码模块实现对消息编码;
消息编码与底层通信单元,用于实现将编码完成的消息,传递给底层部分实现消息发送。
6.如权利要求2所述的装置,其中消息解码模块根据解码配置文件来进行选择解码而不是对所有的信息进行解码。
7.如权利要求6所述的装置,其中消息解码模块进一步包括:
消息解码与上层通信单元,用于与上层模块的通信,将解码后的结果交给上层处理模块;
消息解码和消息解码与底层通信单元,用于从底层接收消息;
消息解码单元实现对消息解码;。
其中,消息解码单元会根据解码配置文件来进行,选择解码而不是对所有的信息进行解码,配置文件格式与编码模块相同。
CN201210217648.5A 2012-06-27 2012-06-27 一种实现sip协议通用编解码的方法和装置 Expired - Fee Related CN102761543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210217648.5A CN102761543B (zh) 2012-06-27 2012-06-27 一种实现sip协议通用编解码的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210217648.5A CN102761543B (zh) 2012-06-27 2012-06-27 一种实现sip协议通用编解码的方法和装置

Publications (2)

Publication Number Publication Date
CN102761543A true CN102761543A (zh) 2012-10-31
CN102761543B CN102761543B (zh) 2016-03-16

Family

ID=47055864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210217648.5A Expired - Fee Related CN102761543B (zh) 2012-06-27 2012-06-27 一种实现sip协议通用编解码的方法和装置

Country Status (1)

Country Link
CN (1) CN102761543B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077414A (zh) * 2014-07-16 2014-10-01 武汉虹信通信技术有限责任公司 一种应用于lte网络信号的解码装置及其解码方法
CN106790133A (zh) * 2016-12-28 2017-05-31 北京天融信网络安全技术有限公司 一种应用层协议解析方法及装置
CN108011687A (zh) * 2016-11-01 2018-05-08 腾讯科技(深圳)有限公司 数据处理方法及装置
CN108076094A (zh) * 2016-11-15 2018-05-25 烟台蓝洋电子科技有限责任公司 字典协议终端设备
CN110290123A (zh) * 2019-06-14 2019-09-27 吉旗(成都)科技有限公司 一种快速扩展和编解码jt/t809协议的方法
CN110557377A (zh) * 2019-08-01 2019-12-10 福建星云电子股份有限公司 动力电池配对修复设备兼容多种通信协议的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471260A (zh) * 2002-07-22 2004-01-28 华为技术有限公司 一种实现用户业务远程验证拨号协议的编码和解码方法
CN101631126A (zh) * 2009-08-06 2010-01-20 中兴通讯股份有限公司 一种自适应编码/解码方法和装置
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471260A (zh) * 2002-07-22 2004-01-28 华为技术有限公司 一种实现用户业务远程验证拨号协议的编码和解码方法
CN101631126A (zh) * 2009-08-06 2010-01-20 中兴通讯股份有限公司 一种自适应编码/解码方法和装置
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077414A (zh) * 2014-07-16 2014-10-01 武汉虹信通信技术有限责任公司 一种应用于lte网络信号的解码装置及其解码方法
CN104077414B (zh) * 2014-07-16 2017-07-25 武汉虹信通信技术有限责任公司 一种应用于lte网络信号的解码装置及其解码方法
CN108011687A (zh) * 2016-11-01 2018-05-08 腾讯科技(深圳)有限公司 数据处理方法及装置
CN108011687B (zh) * 2016-11-01 2019-11-26 腾讯科技(深圳)有限公司 数据处理方法及装置
CN108076094A (zh) * 2016-11-15 2018-05-25 烟台蓝洋电子科技有限责任公司 字典协议终端设备
CN108076094B (zh) * 2016-11-15 2020-10-09 烟台蓝洋电子科技有限责任公司 字典协议终端设备
CN106790133A (zh) * 2016-12-28 2017-05-31 北京天融信网络安全技术有限公司 一种应用层协议解析方法及装置
CN106790133B (zh) * 2016-12-28 2019-09-20 北京天融信网络安全技术有限公司 一种应用层协议解析方法及装置
CN110290123A (zh) * 2019-06-14 2019-09-27 吉旗(成都)科技有限公司 一种快速扩展和编解码jt/t809协议的方法
CN110557377A (zh) * 2019-08-01 2019-12-10 福建星云电子股份有限公司 动力电池配对修复设备兼容多种通信协议的方法及系统
CN110557377B (zh) * 2019-08-01 2021-08-27 福建星云电子股份有限公司 动力电池配对修复设备兼容多种通信协议的方法及系统

Also Published As

Publication number Publication date
CN102761543B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN102761543A (zh) 一种实现sip协议通用编解码的方法和装置
CN102025715B (zh) 一种基于sip协议的多媒体网络通信方法
CN101313525B (zh) 启用高质量实时音频的基础结构
CN103179133B (zh) 基于实体类的客户端与服务器通信的方法
CN101317363B (zh) 终端通话过程中的媒体流替换方法及系统
CN104221315A (zh) 通用对象传递及基于模板的文件传递
CN105426709A (zh) 基于jpeg图像信息隐藏的私密信息通信方法与系统
CN101610268A (zh) 一种关键字过滤的实现方法和设备
RU2009125522A (ru) Сервер ртт, система ртт связи, способ ртт связи и программа
CN105790853A (zh) 一种声波传输字符数据的方法及装置
CN102915736B (zh) 混音处理方法和混音处理系统
CN108183771A (zh) 光网络系统中的数据处理方法、设备及系统
CN107040458B (zh) 一种实现视频会议互通的方法和系统
CN103138871A (zh) 移动通讯系统中应用程序的服务器数据处理系统和方法
CN102571541A (zh) 报文编、解码方法及装置
CN102131161B (zh) 一种短消息的编码方法、装置及系统
CN102802197A (zh) 应用数据的传输方法及装置
CN106649437A (zh) 条形码的扫码方法和系统
CN103516775B (zh) 一种实现设备间快速同步的方法及系统
CN101352015A (zh) 通过sms协议传送手写体
CN101695122B (zh) 指挥调度系统
CN116863949A (zh) 通信接收方法及其装置
CN101500028A (zh) 采用读写模式的通信终端以及实现读写模式通信的方法
CN104113394B (zh) 通信调制信号的压缩及解压方法
CN110298017B (zh) 一种编码数据处理方法、装置及计算机存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160316

Termination date: 20180627