本发明属于融合网关技术领域,具体涉及一种融合网关部分和机顶盒部分相互通讯的方法。
背景技术:
为了满足酒店,商铺和政府公共服务机构等场所用户高速上网,移动终端接入和视频点播的需求,经常会要求部署多个接入终端,由此会带来布线困难,故障点多,成本高的问题。融合网关准确定位于酒店类需要接入多个终端用户,将网关和机顶盒融合,实现了维护架构上实行管道和业务隔离维护的机制,上层设备无需变动,平滑部署。通过零配置、预部署,安装环节自动化,提升装机效率,避免二次上门,实现维护智能化、诊断远程化和一站式开通。一定程度上降低运维复杂度和难度,以及设备成本。
然而,在现今的技术条件和实现方面,还难以做到真正的融合。目前市面上的融合网关芯片供应商,基本没有将几个功能集成到一个soc。所以,推出融合网关设备时,往往是将网关模块和机顶盒通信系统通过硬件接口相连接,而每个模块依然是各自独立的软件系统。这样,机顶盒不能设置查看网关运行状况,也不能对网关进行设置,网关对于机顶盒也同样如此。但是,在进行装机开通以及日常使用时,我们往往希望他们是一个“整体”,不必采用复杂的方式对他们进行查看与设置。另外,从机顶盒管理平台及网关管理平台管理融合设备也希望能够整体管理。
因此,现阶段需要提供一种融合网关部分和机顶盒部分相互通讯的方法。
技术实现要素:
本发明目的在于提供一种融合网关部分和机顶盒部分相互通讯的方法,用于解决现有技术中存在的技术问题,比如:在现今的技术条件和实现方面,还难以做到真正的融合。目前市面上的融合网关芯片供应商,基本没有将几个功能集成到一个soc。所以,推出融合网关设备时,往往是将网关模块和机顶盒通信系统通过硬件接口相连接,而每个模块依然是各自独立的软件系统。这样,机顶盒不能设置查看网关运行状况,也不能对网关进行设置,网关对于机顶盒也同样如此。但是,在进行装机开通以及日常使用时,我们往往希望他们是一个“整体”,不必采用复杂的方式对他们进行查看与设置。另外,从机顶盒管理平台及网关管理平台管理融合设备也希望能够整体管理。
为实现上述目的,本发明所采用的技术方案是:
一种融合网关部分和机顶盒部分相互通讯的方法,包括以下步骤:
s1:提供一融合网关通信系统,所述融合网关通信系统可对接收的信息进行解密操作,且所述融合网关通信系统可对发送的信息进行加密操作;提供一机顶盒通信系统,所述机顶盒通信系统可对接收的信息进行解密操作,且所述机顶盒通信系统可对发送的信息进行加密操作;
s2:在步骤s1的基础上,提供一供所述融合网关通信系统和所述机顶盒通信系统进行信息交互的通信规范;
s3:在步骤s2的基础上,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的经过加密操作的信息时,所述融合网关通信系统可通过所述通信规范对该加密信息进行解密操作,待所述融合网关通信系统完成对该加密信息的读取后,所述融合网关通信系统生成一加密反馈信息并将该加密反馈信息发送至所述机顶盒通信系统,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的加密反馈信息时,所述机顶盒通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取;同理,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的经过加密操作的信息时,所述机顶盒通信系统可通过所述通信规范对该加密信息进行解密操作,待所述机顶盒通信系统完成对该加密信息的读取后,所述机顶盒通信系统生成一加密反馈信息并将该加密反馈信息发送至所述融合网关通信系统,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的加密反馈信息时,所述融合网关通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取。
优选的,在步骤s3中,当所述机顶盒通信系统向所述融合网关通信系统主动发送信息时,所述通信规范的具体方式为:
融合网关通信系统主动发起协议类型为0x9212;
voidgetiptvversion():
获取机顶盒通信系统版本信息:操作系统版本、系统软件版本、各应用软件版本;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"iptvversion"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"iptvversion","status":"0","osversion":"xxxx","softwareversion":"xxxx","appinfo":[{"name":"xxxx","version":"xxxx"},{"name":"xxxx","version":"xxxx"}]}}
status:调用成功/失败,0成功,1失败;osversion:操作系统版本;softwareversion:系统软件版本;appinfo:应用软件信息,name为应用软件名称,version为其对应版本;
voidgetnetinfo():
获取网络信息:机顶盒通信系统的mac、ip、子网掩码、默认网关、dns服务器;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"netinfo"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"netinfo","status":"0","devmac":"xxxx","a4inetaddr":"xxxx","a4mask":"xxxx","a4defgateway":"xxxx","a4dns":"xxxx","a4altdns":"xxxx","a6inetaddr":"xxxx","a6mask":"xxxx","a6defgateway":"xxxx","a6dns":"xxxx","a6altdns":"xxxx",b4inetaddr":"xxxx","b4mask":"xxxx","b4defgateway":"xxxx","b4dns":"xxxx","b4altdns":"xxxx","b6inetaddr":"xxxx","b6mask":"xxxx","b6defgateway":"xxxx","b6dns":"xxxx","b6altdns":"xxxx"}}
status:调用成功/失败,0成功,1失败;devmac:机顶盒通信系统mac;inetaddr:机顶盒通信系统ip;mask:机顶盒通信系统子网掩码;defgateway:机顶盒通信系统默认网关;dns:机顶盒通信系统dns服务器;altdns:机顶盒通信系统备用dns服务器;
a4表示a平面ipv4,a6表示a平面ipv6,如a4inetaddr表示机顶盒a平面ipv4地址,a6inetaddr表示机顶盒a平面ipv6地址;
b4表示b平面ipv4,b6表示b平面ipv6,如b4inetaddr表示机顶盒b平面ipv4地址,b6inetaddr表示机顶盒b平面ipv6地址;
voidgetserverinfo():
获取机顶盒服务器信息:可查看机顶盒终端管理平台地址、ntp地址等;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"serverinfo"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"serverinfo","status":"0","platformaddr":"xxxx","ntpaddr":"xxxx"}}
status:调用成功/失败,0成功,1失败;platformaddr:机顶盒终端管理平台地址;ntpaddr;ntp地址;
voidhibernatestate(intstate):
网关主动发送休眠状态,当网关模块休眠时,向机顶盒通信系统发送网关休眠消息,机顶盒接收到后也应进入休眠状态;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"hibernatestate","state":"1"}}
state:表示休眠状态,1休眠,2未休眠;
应答格式:
{"id":"","return_parameter":{"cmdtype":"hibernatestate","status":"0"}}
status:0机顶盒休眠成功,1机顶盒休眠失败;
voidclearaccount():
网关首次注册成功后,通过本地界面等方式修改宽带识别码且新的宽带识别码在olt或itms+上注册成功,发送此消息,机顶盒通信系统收到消息清空接入账号和业务账号;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"clearaccount"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"clearaccount","status":"0"}}
status:0清空成功,1清空失败;
voidrepalarminfo():
□告警状态:包括cpu负载告警、cpu温度告警等;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"alarminfo","info":"syscputempalarm(x)"}}
syscputempalarm(x):cpu温度告警,当前温度为x,收到此消息表示连续5分钟cpu温度高于阀值;
syscpuloadalarm(x):cpu负载告警,当前占用率为x(如80表示占用率%80),收到此消息表示连续5分钟cpu负载高于阀值;
voidrepwanlinkstate():
网关为lan上行设备时,当上行口状态发生改变时,主动发送上行口连接状态;格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"wanlinkstate","state":"1"}}
state:1:up,连接上;0:down,断开;
voidrepbootinfo():
网关上电启动完成,交互进程启动后,主动发送启动完成消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"bootcomplete"}}
voidotherwanupinfo():
otherwanconnect时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"otherwanup"}}
voidinternetwanupinfo()
internetwanconnect时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"internetwanup"}}
voidoltlinksuccessinfo():
olt认证成功时时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"oltlinksuccess"}}
voiddevrepwaninfo():
主动上报是否建立otherwan和internetwan;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"waninfo","otherflag":"1","internetflag":"1"}}
otherflag:是否建立otherwan,0:未建立1:已建立;
internetflag:是否建立otherwan,0:未建立1:已建立;
voidlinkstatus():
光纤连接状态变更时,主动上报连接状态;格式
{"rpcmethod":"get","parameter":{"cmdtype":"ponstate","linkdown":"true"}}
linkdown:连接断开:true连接成功:false;
voiddevrrebootinfo():
网关重启时,主动上报重启消息;格式
{id:"","rpcmethod":"get","parameter":{"cmdtype":"devreboot"}}。
优选的,在步骤s3中,当所述融合网关通信系统向所述机顶盒通信系统主动发送信息时,所述通信规范的具体方式为:
机顶盒通信系统主动发起协议类型为0x9211;
voidhibernatestate(intstate):
机顶盒主动发送休眠状态,当机顶盒模块休眠和从休眠状态恢复时,向网关模块发送网关休眠消息,网关在机顶盒唤醒时应该唤醒;请求格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"hibernatestate","state":"1"}}
state:表示休眠状态,1休眠,2未休眠;
应答格式:
{"id":"","return_parameter":{"cmdtype":"hibernatestate","status":"0"}}
status:0操作成功,1操作失败;
voidgetnetconstatus():
网络连接状态:光纤(如:连通、断开、光信号低等)、olt认证状态、iptvwan连接状态(如:未配置、断开、正常等);请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"netconstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"netconstatus","status":"0","ponstatus":"0","loidstatus":"0","iptvregstatusipv4":"0","iptvregstatusipv6":"0"}}
status:0操作成功,1操作失败;
ponstatus:光纤连接状态,0:未连接;1:已连接;2:光信号弱
loidstatus:olt认证状态,0:初始状态;1:认证成功;2:loid无效;3:密码错误;4:loid冲突;5:光纤未连接;6:认证失败;7:loid未认证;8:未知状态
iptvregstatusipv4:ipv4iptvwan连接状态;iptvregstatusipv6:ipv4iptvwan连接状态
iptvwan状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetservicestatus():
□业务状态:上网业务状态(如:未配置、断开、正常等)、语音业务状态(如:未配置、注册失败、正常等);请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"servicestatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"servicestatus","status":"0","ipv4info":[{"servicetype":"internet","regstatus":"xxxx"},{"servicetype":"voip","regstatus":"xxxx"}],"ipv6info":[{"servicetype":"internet","regstatus":"xxxx"},{"servicetype":"voip","regstatus":"xxxx"}]}}
status:0操作成功,1操作失败;
ipv4info:ipv4信息;ipv6info:ipv6信息;
servicetype:连接类型;internet:上网连接;voip:语音连接;
regstatus状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetplatformstatus():
平台连接状态:包括itms连接状态、智能网关平台连接状态等;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"platformstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"platformstatus","status":"0","itmsregstatus":"0","smartgwstatus":[{"platformname":"bss_platform","server":"xxxx","status":"xxxx"},{"platformname":"main_platform","server":"xxxx","status":"xxxx"},{"platformname":"dist_platform","server":"xxxx","status":"xxx"}]}}
status:0操作成功,1操作失败;
itmsregstatus:0:注册成功;1:注册失败;2:未注册;
smartgwstatus:智能网关平台连接状态;platformname:平台名字,bss_platform:bss平台;main_platform:主能力平台;dist_platform:分发平台;server:平台地址;status:连接状态;
status:与平台连接状态;返回为gb2132编码中文字符;
voidsetloidregisterinfo():
设置逻辑id账号和密码;请求格式:
{"id":"","rpcmethod":"set","parameter":{"cmdtype":"register","username":"xxxx","pwd":"xxxx"}}
username:逻辑id,当为空或者只设置密码时,username值为字符串”null”;不能缺少该字段;
pwd:密码,当为空或者只设置逻辑id时,pwd值为字符串”null”;不能缺少该字段;
应答格式:
{"id":"","return_parameter":{"cmdtype":"register","status":"0"}
status:0操作成功,1操作失败;
voidgetregisterstat():
按照速影规范;获取注册认证过程和业务开通过程;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"registerinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"registerinfo","status":"0","registerstat":"xxxxx"}}
status:0操作成功,1操作失败;
registerstat:注册开通进度;其取值如下:
register_default:初始设备未注册状态;
register_registed:设备为已注册状态;
register_timeout:注册超时失败;
register_nomatch_nolimitedstate=%s:逻辑id与密码不匹配,剩余尝试次数:%s;
register_nomatch_limited:逻辑id与密码不匹配,注册失败;
register_noaccount_nolimitedstate=%s:密码不存在,剩余尝试次数:%s;
register_nouser_limited:逻辑id不存在,注册失败;
register_oltprogress=%s:正在注册olt(%s表示百分比,可取20表示正在注册olt30表示在olt授权成功,40表示tr069的wan连接获得ip地址;
register_olt_fail:在olt上注册失败;
register_ok_down_businessprogress=%s和register_ok_down_businessprogress=%sbussname=%s:注册成功,正在下发业务(进度为%s),%s可取60,99;%s如果为50,表示注册itms平台成功,等待下发业务,%s如果为60,表示平台开使下发业务下发的业务名称为(bussname=%s),可以取”internet”,”voip”,”iptv””other”的组合;
register_okservicename=%s:注册成功,下发业务成功,共下发了xx业务(下发几个业务就提示几个业务);
register_ok_now_reboot:注册成功,下发业务成功,网关需要重启,请等待;
register_pok:注册成功,下发业务失败;
register_fail:注册失败;
voidgetcpuinfo():
获取cpu温度和负载信息,请求格式
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getcpuinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getcpuinfo","status":"0","cputemp":"on(x)","cpuload":"on(x)"}}
status:0操作成功,1操作失败;
cputemp:cpu温度信息,on表示温度过高,off表示关闭报警,x为温度;
cpuload:cpu负载信息,on表示负载过高,off表示关闭报警,x为负载情况,若80,占用率%80
voidgetbootinfo():
获取网关是否已经开机,请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getbootinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getbootinfo","state":"bootcomplete"}}
回复此消息表示已经开机;
voidgetwanlinkstate():
网关为lan上行设备时,获取上行口是否连接;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getwanlinkstate"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getwanlinkstate","status":"0","state":"up"}}
status:0操作成功,1操作失败;
state:上行口连接状态,up为已连接,其余未连接;
voidgetuploaddataip():
机顶盒需要对网关进行升级时,通过此接口获取网关给定机顶盒ip:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getuploaddataip"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getuploaddataip","status":"0","ip":"xxxxxx","gatewayip":"xxxxxx"}}
status:0操作成功,1操作失败;
ip:网关返回可用升级ip;
gatewayip:网关地址;
voidgetwanreginfo():
机顶盒查询网关other和internetwan连接状态;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getwanreginfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getwanreginfo","status":"0","iptvregstatusipv4":"0","iptvregstatusipv6":"0","intregstatusipv4":"0","intregstatusipv6":"0"}}
status:0操作成功,1操作失败;
iptvregstatusipv4:ipv4iptvwan连接状态;iptvregstatusipv6:ipv4iptvwan连接状态
intregstatusipv4:ipv4internetwan连接状态;intregstatusipv6:ipv4internetwan连接状态
wan状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetdevbasicinfo():
机顶盒主动查询型号序列号等信息;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getdevbasicinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getdevbasicinfo","status":"0","productclass":"xxxx","serialnumber":"xxxx","manufactureroui":"xxxxx"}}
status:0操作成功,1操作失败;
voidquerywlaninfo():
机顶盒主动查询pppoe上网络连接信息:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"query_wan_info"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"query_wan_info","status":"0","addresstype":"xxxx","connectiontype":"xxxx","connectionstatus":"xxxxx","pppoe_usr_name":"xxxxx","pppoe_password":"xxxxx"}}
status:0操作成功,1操作失败;
addresstype:下层设备网络连接方式dhcp/pppoe/static;
connectiontype:连接类型,取值ip_routed:路由ip_bridged:桥;当值为ip_routed时,pppoe账号密码有效;
pppoe_usr_name:pppoe账号
pppoe_password:pppoe密码
connectionstatus:连接状态;取值如下
unconfigured:未配置
connecting:连接中
authenticating:认证中
connected:已连接
pendingdisconnect:正在等待断开
disconnecting:正在断开
disconnected:连接已断开
voidsetmixtype():
机顶盒主动设置切换公客政企版;请求格式:
{"id":"","rpcmethod":"set","parameter":{"cmdtype":"setmixtype","type":"xxxx"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"setmixtype","status":"0"}}
status:0操作成功,1操作失败;
type:gne:政企版pub:公客版
voidgetitmsregsiterstatus():
机顶盒主动查询itms注册信息;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"itmsregisterstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"itmsregisterstatus","status":"0","itmsregstatus":"0"}}
status:0:成功1:失败;
itmsregstatus:0:注册成功;1:注册失败;2:未注册。
优选的,所述通信协议包括一个类型为raw的socket,所述socket绑定在融合网关通信系统和机顶盒通信系统之间的网口上,用来收发自定义的二层数据包;当从rawsocket上接收到二层数据包时,按二层协议的报文格式消息格式解析消息内容,然后传送到本通信系统上对应的软件功能模块;当本通信系统有向对方系统发送管理消息需求时,由该通信系统上的监控进程按二层协议的报文格式组装消息包,并通过rawsocket发送出去。
优选的,所述二层协议的报文格式遵循ethernetii。
优选的,所述二层协议的报文格式遵循以下报文处理方法:a网关和机顶盒能接收type=9211和type=9212的二层广播或单播报文,不得对收到的报文进行转发;不得对wan侧报文进行响应,没有学习到对侧mac时发送广播报文。
b.所述步骤a中,若收到的是广播报文,将报文sa作为响应报文da,将融合网关通信系统自身lan侧mac地址作为响应报文sa,从收到报文的lan侧端口单播原路发送响应;
c.所述步骤a中,若收到的是单播报文,则将报文sa作为响应报文da,将融合网关通信系统自身lan侧mac地址作为响应报文sa,数据长度和数据(数据需加密)修改为相应的操作结果长度和结果从收到报文的lan侧端口单播原路发送响应。
本发明的有益技术效果是:(1)网关模块和机顶盒模块通过软件通信协议进行数据交互,每个模块不再是各自独立的软件系统;这样,机顶盒能设置查看网关运行状况,也能对网关进行设置,网关对于机顶盒也同样如此;并且在进行装机开通以及日常使用时,网关和机顶盒是一个“整体”,不必采用复杂的方式对他们进行查看与设置;另外,从机顶盒管理平台及网关管理平台在管理融合网关和机顶盒时也能够整体管理。
(2)通过自定义的二层管理协议和报文处理方式,为融合网关开发提供技术规范,在不改变现有软件架构的条件下,使后期的功能扩展开发更加方便容易,提高了设计开发的灵活性。
附图说明
图1显示为本发明的实施例的步骤流程示意图。
图2显示为本发明的实施例的报文格式示意图。
图3显示为本发明的实施例的网关主动发送信息时的流程示意图。
具体实施方式
下面结合本发明的附图1-3,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
如图1所示,一种融合网关部分和机顶盒部分相互通讯的方法,包括以下步骤:
s1:提供一融合网关通信系统,所述融合网关通信系统可对接收的信息进行解密操作,且所述融合网关通信系统可对发送的信息进行加密操作;提供一机顶盒通信系统,所述机顶盒通信系统可对接收的信息进行解密操作,且所述机顶盒通信系统可对发送的信息进行加密操作;
s2:在步骤s1的基础上,提供一供所述融合网关通信系统和所述机顶盒通信系统进行信息交互的通信规范;
s3:在步骤s2的基础上,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的经过加密操作的信息时,所述融合网关通信系统可通过所述通信规范对该加密信息进行解密操作,待所述融合网关通信系统完成对该加密信息的读取后,所述融合网关通信系统生成一加密反馈信息并将该加密反馈信息发送至所述机顶盒通信系统,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的加密反馈信息时,所述机顶盒通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取;同理,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的经过加密操作的信息时,所述机顶盒通信系统可通过所述通信规范对该加密信息进行解密操作,待所述机顶盒通信系统完成对该加密信息的读取后,所述机顶盒通信系统生成一加密反馈信息并将该加密反馈信息发送至所述融合网关通信系统,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的加密反馈信息时,所述融合网关通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取。
通过上述方案,网关模块和机顶盒模块通过软件通信协议进行数据交互,每个模块不再是各自独立的软件系统;这样,机顶盒能设置查看网关运行状况,也能对网关进行设置,网关对于机顶盒也同样如此;并且在进行装机开通以及日常使用时,网关和机顶盒是一个“整体”,不必采用复杂的方式对他们进行查看与设置;另外,从机顶盒管理平台及网关管理平台在管理融合网关和机顶盒时也能够整体管理。
优选的,在步骤s3中,当所述机顶盒通信系统向所述融合网关通信系统主动发送信息时,所述通信规范的具体方式为:
融合网关通信系统主动发起协议类型为0x9212;
voidgetiptvversion():
获取机顶盒通信系统版本信息:操作系统版本、系统软件版本、各应用软件版本;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"iptvversion"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"iptvversion","status":"0","osversion":"xxxx","softwareversion":"xxxx","appinfo":[{"name":"xxxx","version":"xxxx"},{"name":"xxxx","version":"xxxx"}]}}
status:调用成功/失败,0成功,1失败;osversion:操作系统版本;softwareversion:系统软件版本;appinfo:应用软件信息,name为应用软件名称,version为其对应版本;
voidgetnetinfo():
获取网络信息:机顶盒通信系统的mac、ip、子网掩码、默认网关、dns服务器;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"netinfo"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"netinfo","status":"0","devmac":"xxxx","a4inetaddr":"xxxx","a4mask":"xxxx","a4defgateway":"xxxx","a4dns":"xxxx","a4altdns":"xxxx","a6inetaddr":"xxxx","a6mask":"xxxx","a6defgateway":"xxxx","a6dns":"xxxx","a6altdns":"xxxx",b4inetaddr":"xxxx","b4mask":"xxxx","b4defgateway":"xxxx","b4dns":"xxxx","b4altdns":"xxxx","b6inetaddr":"xxxx","b6mask":"xxxx","b6defgateway":"xxxx","b6dns":"xxxx","b6altdns":"xxxx"}}
status:调用成功/失败,0成功,1失败;devmac:机顶盒通信系统mac;inetaddr:机顶盒通信系统ip;mask:机顶盒通信系统子网掩码;defgateway:机顶盒通信系统默认网关;dns:机顶盒通信系统dns服务器;altdns:机顶盒通信系统备用dns服务器;
a4表示a平面ipv4,a6表示a平面ipv6,如a4inetaddr表示机顶盒a平面ipv4地址,a6inetaddr表示机顶盒a平面ipv6地址;
b4表示b平面ipv4,b6表示b平面ipv6,如b4inetaddr表示机顶盒b平面ipv4地址,b6inetaddr表示机顶盒b平面ipv6地址;
voidgetserverinfo():
获取机顶盒服务器信息:可查看机顶盒终端管理平台地址、ntp地址等;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"serverinfo"}}
回复格式:
{"id":"","return_parameter":{"cmdtype":"serverinfo","status":"0","platformaddr":"xxxx","ntpaddr":"xxxx"}}
status:调用成功/失败,0成功,1失败;platformaddr:机顶盒终端管理平台地址;ntpaddr;ntp地址;
voidhibernatestate(intstate):
网关主动发送休眠状态,当网关模块休眠时,向机顶盒通信系统发送网关休眠消息,机顶盒接收到后也应进入休眠状态;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"hibernatestate","state":"1"}}
state:表示休眠状态,1休眠,2未休眠;
应答格式:
{"id":"","return_parameter":{"cmdtype":"hibernatestate","status":"0"}}
status:0机顶盒休眠成功,1机顶盒休眠失败;
voidclearaccount():
网关首次注册成功后,通过本地界面等方式修改宽带识别码且新的宽带识别码在olt或itms+上注册成功,发送此消息,机顶盒通信系统收到消息清空接入账号和业务账号;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"clearaccount"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"clearaccount","status":"0"}}
status:0清空成功,1清空失败;
voidrepalarminfo():
□告警状态:包括cpu负载告警、cpu温度告警等;请求格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"alarminfo","info":"syscputempalarm(x)"}}
syscputempalarm(x):cpu温度告警,当前温度为x,收到此消息表示连续5分钟cpu温度高于阀值;
syscpuloadalarm(x):cpu负载告警,当前占用率为x(如80表示占用率%80),收到此消息表示连续5分钟cpu负载高于阀值;
voidrepwanlinkstate():
网关为lan上行设备时,当上行口状态发生改变时,主动发送上行口连接状态;格式:
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"wanlinkstate","state":"1"}}
state:1:up,连接上;0:down,断开;
voidrepbootinfo():
网关上电启动完成,交互进程启动后,主动发送启动完成消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"bootcomplete"}}
voidotherwanupinfo():
otherwanconnect时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"otherwanup"}}
voidinternetwanupinfo()
internetwanconnect时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"internetwanup"}}
voidoltlinksuccessinfo():
olt认证成功时时发送此消息;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"oltlinksuccess"}}
voiddevrepwaninfo():
主动上报是否建立otherwan和internetwan;格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"waninfo","otherflag":"1","internetflag":"1"}}
otherflag:是否建立otherwan,0:未建立1:已建立;
internetflag:是否建立otherwan,0:未建立1:已建立;
voidlinkstatus():
光纤连接状态变更时,主动上报连接状态;格式
{"rpcmethod":"get","parameter":{"cmdtype":"ponstate","linkdown":"true"}}
linkdown:连接断开:true连接成功:false;
voiddevrrebootinfo():
网关重启时,主动上报重启消息;格式
{id:"","rpcmethod":"get","parameter":{"cmdtype":"devreboot"}}。
优选的,在步骤s3中,当所述融合网关通信系统向所述机顶盒通信系统主动发送信息时,所述通信规范的具体方式为:
机顶盒通信系统主动发起协议类型为0x9211;
voidhibernatestate(intstate):
机顶盒主动发送休眠状态,当机顶盒模块休眠和从休眠状态恢复时,向网关模块发送网关休眠消息,网关在机顶盒唤醒时应该唤醒;请求格式
{"id":"","rpcmethod":"rep","parameter":{"cmdtype":"hibernatestate","state":"1"}}
state:表示休眠状态,1休眠,2未休眠;
应答格式:
{"id":"","return_parameter":{"cmdtype":"hibernatestate","status":"0"}}
status:0操作成功,1操作失败;
voidgetnetconstatus():
网络连接状态:光纤(如:连通、断开、光信号低等)、olt认证状态、iptvwan连接状态(如:未配置、断开、正常等);请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"netconstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"netconstatus","status":"0","ponstatus":"0","loidstatus":"0","iptvregstatusipv4":"0","iptvregstatusipv6":"0"}}
status:0操作成功,1操作失败;
ponstatus:光纤连接状态,0:未连接;1:已连接;2:光信号弱
loidstatus:olt认证状态,0:初始状态;1:认证成功;2:loid无效;3:密码错误;4:loid冲突;5:光纤未连接;6:认证失败;7:loid未认证;8:未知状态
iptvregstatusipv4:ipv4iptvwan连接状态;iptvregstatusipv6:ipv4iptvwan连接状态
iptvwan状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetservicestatus():
□业务状态:上网业务状态(如:未配置、断开、正常等)、语音业务状态(如:未配置、注册失败、正常等);请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"servicestatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"servicestatus","status":"0","ipv4info":[{"servicetype":"internet","regstatus":"xxxx"},{"servicetype":"voip","regstatus":"xxxx"}],"ipv6info":[{"servicetype":"internet","regstatus":"xxxx"},{"servicetype":"voip","regstatus":"xxxx"}]}}
status:0操作成功,1操作失败;
ipv4info:ipv4信息;ipv6info:ipv6信息;
servicetype:连接类型;internet:上网连接;voip:语音连接;
regstatus状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetplatformstatus():
平台连接状态:包括itms连接状态、智能网关平台连接状态等;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"platformstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"platformstatus","status":"0","itmsregstatus":"0","smartgwstatus":[{"platformname":"bss_platform","server":"xxxx","status":"xxxx"},{"platformname":"main_platform","server":"xxxx","status":"xxxx"},{"platformname":"dist_platform","server":"xxxx","status":"xxx"}]}}
status:0操作成功,1操作失败;
itmsregstatus:0:注册成功;1:注册失败;2:未注册;
smartgwstatus:智能网关平台连接状态;platformname:平台名字,bss_platform:bss平台;main_platform:主能力平台;dist_platform:分发平台;server:平台地址;status:连接状态;
status:与平台连接状态;返回为gb2132编码中文字符;
voidsetloidregisterinfo():
设置逻辑id账号和密码;请求格式:
{"id":"","rpcmethod":"set","parameter":{"cmdtype":"register","username":"xxxx","pwd":"xxxx"}}
username:逻辑id,当为空或者只设置密码时,username值为字符串”null”;不能缺少该字段;
pwd:密码,当为空或者只设置逻辑id时,pwd值为字符串”null”;不能缺少该字段;
应答格式:
{"id":"","return_parameter":{"cmdtype":"register","status":"0"}
status:0操作成功,1操作失败;
voidgetregisterstat():
按照速影规范;获取注册认证过程和业务开通过程;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"registerinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"registerinfo","status":"0","registerstat":"xxxxx"}}
status:0操作成功,1操作失败;
registerstat:注册开通进度;其取值如下:
register_default:初始设备未注册状态;
register_registed:设备为已注册状态;
register_timeout:注册超时失败;
register_nomatch_nolimitedstate=%s:逻辑id与密码不匹配,剩余尝试次数:%s;
register_nomatch_limited:逻辑id与密码不匹配,注册失败;
register_noaccount_nolimitedstate=%s:密码不存在,剩余尝试次数:%s;
register_nouser_limited:逻辑id不存在,注册失败;
register_oltprogress=%s:正在注册olt(%s表示百分比,可取20表示正在注册olt30表示在olt授权成功,40表示tr069的wan连接获得ip地址;
register_olt_fail:在olt上注册失败;
register_ok_down_businessprogress=%s和register_ok_down_businessprogress=%sbussname=%s:注册成功,正在下发业务(进度为%s),%s可取60,99;%s如果为50,表示注册itms平台成功,等待下发业务,%s如果为60,表示平台开使下发业务下发的业务名称为(bussname=%s),可以取”internet”,”voip”,”iptv””other”的组合;
register_okservicename=%s:注册成功,下发业务成功,共下发了xx业务(下发几个业务就提示几个业务);
register_ok_now_reboot:注册成功,下发业务成功,网关需要重启,请等待;
register_pok:注册成功,下发业务失败;
register_fail:注册失败;
voidgetcpuinfo():
获取cpu温度和负载信息,请求格式
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getcpuinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getcpuinfo","status":"0","cputemp":"on(x)","cpuload":"on(x)"}}
status:0操作成功,1操作失败;
cputemp:cpu温度信息,on表示温度过高,off表示关闭报警,x为温度;
cpuload:cpu负载信息,on表示负载过高,off表示关闭报警,x为负载情况,若80,占用率%80
voidgetbootinfo():
获取网关是否已经开机,请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getbootinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getbootinfo","state":"bootcomplete"}}
回复此消息表示已经开机;
voidgetwanlinkstate():
网关为lan上行设备时,获取上行口是否连接;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getwanlinkstate"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getwanlinkstate","status":"0","state":"up"}}
status:0操作成功,1操作失败;
state:上行口连接状态,up为已连接,其余未连接;
voidgetuploaddataip():
机顶盒需要对网关进行升级时,通过此接口获取网关给定机顶盒ip:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getuploaddataip"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getuploaddataip","status":"0","ip":"xxxxxx","gatewayip":"xxxxxx"}}
status:0操作成功,1操作失败;
ip:网关返回可用升级ip;
gatewayip:网关地址;
voidgetwanreginfo():
机顶盒查询网关other和internetwan连接状态;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getwanreginfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getwanreginfo","status":"0","iptvregstatusipv4":"0","iptvregstatusipv6":"0","intregstatusipv4":"0","intregstatusipv6":"0"}}
status:0操作成功,1操作失败;
iptvregstatusipv4:ipv4iptvwan连接状态;iptvregstatusipv6:ipv4iptvwan连接状态
intregstatusipv4:ipv4internetwan连接状态;intregstatusipv6:ipv4internetwan连接状态
wan状态值,0:未连接;1:连接中;2:已连接;3:未配置
voidgetdevbasicinfo():
机顶盒主动查询型号序列号等信息;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"getdevbasicinfo"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"getdevbasicinfo","status":"0","productclass":"xxxx","serialnumber":"xxxx","manufactureroui":"xxxxx"}}
status:0操作成功,1操作失败;
voidquerywlaninfo():
机顶盒主动查询pppoe上网络连接信息:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"query_wan_info"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"query_wan_info","status":"0","addresstype":"xxxx","connectiontype":"xxxx","connectionstatus":"xxxxx","pppoe_usr_name":"xxxxx","pppoe_password":"xxxxx"}}
status:0操作成功,1操作失败;
addresstype:下层设备网络连接方式dhcp/pppoe/static;
connectiontype:连接类型,取值ip_routed:路由ip_bridged:桥;当值为ip_routed时,pppoe账号密码有效;
pppoe_usr_name:pppoe账号
pppoe_password:pppoe密码
connectionstatus:连接状态;取值如下
unconfigured:未配置
connecting:连接中
authenticating:认证中
connected:已连接
pendingdisconnect:正在等待断开
disconnecting:正在断开
disconnected:连接已断开
voidsetmixtype():
机顶盒主动设置切换公客政企版;请求格式:
{"id":"","rpcmethod":"set","parameter":{"cmdtype":"setmixtype","type":"xxxx"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"setmixtype","status":"0"}}
status:0操作成功,1操作失败;
type:gne:政企版pub:公客版
voidgetitmsregsiterstatus():
机顶盒主动查询itms注册信息;请求格式:
{"id":"","rpcmethod":"get","parameter":{"cmdtype":"itmsregisterstatus"}}
应答格式:
{"id":"","return_parameter":{"cmdtype":"itmsregisterstatus","status":"0","itmsregstatus":"0"}}
status:0:成功1:失败;
itmsregstatus:0:注册成功;1:注册失败;2:未注册。
如图2和图3所示,通过上述方案,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的经过加密操作的信息时,所述融合网关通信系统可通过所述通信规范对该加密信息进行解密操作,待所述融合网关通信系统完成对该加密信息的读取后,所述融合网关通信系统生成一加密反馈信息并将该加密反馈信息发送至所述机顶盒通信系统,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的加密反馈信息时,所述机顶盒通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取;同理,当所述机顶盒通信系统接收到所述融合网关通信系统发送来的经过加密操作的信息时,所述机顶盒通信系统可通过所述通信规范对该加密信息进行解密操作,待所述机顶盒通信系统完成对该加密信息的读取后,所述机顶盒通信系统生成一加密反馈信息并将该加密反馈信息发送至所述融合网关通信系统,当所述融合网关通信系统接收到所述机顶盒通信系统发送来的加密反馈信息时,所述融合网关通信系统通过所述通信规范对该加密反馈信息进行解密操作,从而完成对该加密反馈信息的读取。从而实现融合网关通信系统与所述机顶盒通信系统之间的数据交互。
优选的,所述通信协议包括一个类型为raw的socket,所述socket绑定在融合网关通信系统和机顶盒通信系统之间的网口上,用来收发自定义的二层数据包;当从rawsocket上接收到二层数据包时,按二层协议的报文格式消息格式解析消息内容,然后传送到本通信系统上对应的软件功能模块;当本通信系统有向对方系统发送管理消息需求时,由该通信系统上的监控进程按二层协议的报文格式组装消息包,并通过rawsocket发送出去。
优选的,所述二层协议的报文格式遵循ethernetii。
优选的,所述二层协议的报文格式遵循以下报文处理方法:a.网关和机顶盒能接收type=9211和type=9212的二层广播或单播报文,不得对收到的报文进行转发;不得对wan侧报文进行响应,没有学习到对侧mac时发送广播报文。
b.所述步骤a中,若收到的是广播报文,将报文sa作为响应报文da,将融合网关通信系统自身lan侧mac地址作为响应报文sa,从收到报文的lan侧端口单播原路发送响应;
c.所述步骤a中,若收到的是单播报文,则将报文sa作为响应报文da,将融合网关通信系统自身lan侧mac地址作为响应报文sa,数据长度和数据(数据需加密)修改为相应的操作结果长度和结果从收到报文的lan侧端口单播原路发送响应。
通过上述方案,通过自定义的二层管理协议和报文处理方式,为融合网关开发提供技术规范,在不改变现有软件架构的条件下,使后期的功能扩展开发更加方便容易,提高了设计开发的灵活性。
在本发明的描述中,需要理解的是,术语“逆时针”、“顺时针”“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。