国网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

相关文章

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.