国网B接口注册(REGISTER)接口描述和消息示例

2023-11-06 01:40

本文主要是介绍国网B接口注册(REGISTER)接口描述和消息示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

技术背景

电网视频监控系统是智能电网的一个重要组成部分,广泛应用于电网的建设、生产、运行、经营等方面。由于视频监控系统在不同的建设时期选用了不同的技术和不同厂家的产品,导致了标准不统一、技术路线不一致。目前国家电网公司智能电网建设,对视频监控系统提出了新的要求,因此实现统一监控、统一存储、分级控制、分域管理,使不同的视频监视系统能够互联互通,满足视频监控系统全局化、整体化的发展需求,已成为亟待解决的问题。

大家有没有注意到一个细节,但凡做GB28181平台的公司,基本上都会支持国网B接口,究其原因,二者在信令交互等方面,有着非常多的相似之处,我们也是在实现了GB28181设备接入模块后,开始关注35114,本文以注册接口为例,讲述下国网B接口注册注销流程,相关规范设计如下:

注册接口描述

注册属于数据接口,采用SIP标准协议,消息中URI的用户名应为下级平台的地址编码。

注册过程应进行鉴权,以防止非法行为,鉴权采用 SIP 标准所定义的 Http Digest 鉴权方式,数字摘要算法统一采用 MD5。

前端系统上线后,应即向其已配置的隶属平台发起注册过程,告知自己的设备编号和信令地址。

如注册失败,须周期性(30 s)地重新尝试注册,直至注册成功。在向平台注册过程中不应影响前端系统对内提供监控业务的能力。

向平台注册成功后,前端系统应根据平台返回的 200 OK 中注册逾时间隔(expires)超时前,周期性地刷新注册

前端系统如因某原因暂时不能对外(其他区域)提供互联服务,应向平台发送注销请求,并建议携带注销原因描述。

平台应对注册到本平台的前端系统进行注册状态的维护,如在注册逾时间隔内未收到刷新注册,可视为该前端系统出现异常,暂时不能提供服务。

不允许注册账号的重复登录行为

注册接口流程

 

主要功能流程如下:

a) F1:前端系统向平台发送注册请求。

b) F2:平台发送 401 响应,提示注册需鉴权。

c) F3:前端系统携带鉴权信息,重新发送注册请求。

d) F4:平台认证通过,发送 200 OK 响应。

e) F5:注册成功后,在注册逾时间隔之前的任意时刻,前端系统可以发送刷新注册来更新注册超时定时器;该消息具有和 F3 消息相同的 Call-ID、From、To、Authorization 等头部取值;

f) F6:平台确认刷新注册成功,发送 200 OK 响应。

g) F7:当前端系统需暂停对外服务时,需发送注销消息;该消息具有和F3消息相同的Call-ID、From、To、Authorization 等头部取值;消息中建议携带 Logout-Reason 头字段,用于描述下线原因(可为中文)。

h) F8:平台确认注销,发送 200 OK 响应。

接口参数

重要的SIP头字段

SIP响应码

消息示例

注册:

REGISTER sip:平台域名或IP地址 SIP/2.0
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>
Contact: <sip: 前端系统地址编码@前端系统IP地址>
Call-ID: c47ecb12
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
CSeq: 1 REGISTER
Expires: 3600
Content-Length: 0

鉴权响应:

SIP/2.0 401 Unauthorized
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>;tag=2c101e0
Call-ID: c47ecb12
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="主机名或域名",nnotallow="9bd055",algorithm=MD5
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
Content-Length: 0

鉴权注册:

REGISTER sip:平台域名或IP地址 SIP/2.0
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>
Contact: <sip: 前端系统地址编码@前端系统IP地址>
Call-ID: c47ecb12
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
CSeq: 2 REGISTER
Expires: 3600
Authorization: Digest username="前端系统地址编码",realm="主机名或域名",nnotallow="9bd055",uri="sip:平台
IP地址",respnotallow="5924f86c43",algorithm=MD5
Content-Length: 0

响应:

SIP/2.0 200 OK
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>;tag=2c10390
Call-ID: c47ecb12
CSeq: 2 REGISTER
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
Contact: <sip: 前端系统地址编码@前端系统IP地址>;expires=80
Content-Length: 0

刷新注册:

REGISTER sip:平台域名或IP地址 SIP/2.0
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>
Contact: <sip: 前端系统地址编码@前端系统IP地址>
Call-ID: c47ecb12
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
CSeq: 8 REGISTER
Expires: 3600
Authorization: Digest username="前端系统地址编码",realm="主机名或域名",nnotallow="9bd055",uri="sip:平台
域名或IP地址",respnotallow="5924f86c43",algorithm=MD5
Content-Length: 0

注销:

REGISTER sip:平台域名或IP地址 SIP/2.0
From: <sip: 前端系统地址编码@平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统地址编码@平台域名或IP地址>
Contact: <sip: 前端系统地址编码@前端系统IP地址>;expires=0
Call-ID: c47ecb12
Via: SIP/2.0/UDP 前端系统IP地址;branch=z9hG4bK
CSeq: 20 REGISTER
Authorization: Digest username="前端系统地址编码",realm="主机名或域名 ",nnotallow="9bd055",uri="sip:平
台域名或IP地址",respnotallow="5924f86c43",algorithm=MD5
Logout-Reason: "maintenance"
Content-Length: 0

以上是国网B接口相关技术背景和注册接口描述、流程和相关消息示例参考,感兴趣的开发者,可以好好吃透相关知识点,理想的完成35114设备侧接入。

这篇关于国网B接口注册(REGISTER)接口描述和消息示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/353762

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl