GB28181协议-注册详解

注册指的是设备或系统进入联网系统时向SIP服务器(SIP UAS)进行注册登记的工作模式,在本文中FFmpeg即为一个SIP服务器,设备向FFmpeg发送注册请求,FFmpeg在接收到设备的注册请求后返回相应的回复消息,则完成设备注册流程。GB28181协议中基于数字摘要的挑战应答式安全技术进行注册流程如下图( 基本注册流程示意图)所示:

注册流程描述如下:

  1. SIP代理向SIP服务器发送Register请求;
  2. SIP服务器向SIP代理发送响应401,并在响应的消息头WWW_Authenticate字段中给出适合SIP代理的认证体制和参数;
  3. SIP代理重新向SIP服务器发送REGISTER请求, 在请求的Authorization字段给出信任书,包含认证信息;
  4. SIP服务器对请求进行验证,如果检查出SIP代理身份合法,向SIP代理发送成功响应200OK,如果身份不合法则发送拒绝服务应答。                                                                     
    GB28181 免费测试工具: https://download.csdn.net/download/JUST_DO_1122/88366062

注册的请求消息内容范例如下:

REGISTER sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.137.11:5060;rport;branch=z9hG4bK1371463273
From: sip:34020000001320000003@3402000000;tag=2043466181
To: sip:34020000001320000003@3402000000
Call-ID: 1011047669
CSeq: 1 REGISTER
Contact: sip:34020000001320000003@192.168.137.11:5060
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

注册请求头域参数解释如下:

第1行表明这条SIP消息的方法(Method)是REGISTER,34020000002000000001是SIP服务器的国标ID,国标ID指的是由中心编码(8位) 、行业编码(2位) 、类型编码(3位)和序号(7位)四个码段共20位十进制数字字符构成,具体国标ID的编码方法可以参考GB/T 28181—2016中的附录D。3402000000指的是SIP服务器的域国标ID,SIP/2.0指的是SIP协议版本。 
第2行为Via头,Via头中包含了发送请求方的相关信息,后续需要使用这些信息进行回复。SIP/2.0/UDP表示使用的是2.0版本的SIP协议,使用的传输协议是UDP,也可以使用TCP协议。192.168.137.11:5060为请求发送方的IP地址和端口号。Via头中必须包含branch参数,具体值是一个在整个SIP通信过程中不重复的数值。branch是一个事务ID(Transaction ID),用于区分同一个UA所发起的不同Transaction,它不会对未来的request或者是response造成影响,对于遵循IETF RFC3261规范的实现,这个branch参数的值必须用”z9hG4bK”打头. 其它部分是对To, From, Call-ID头域和Request-URI按一定的算法加密后得到。rport字段表示使用rport机制路由响应,即发送的响应时,按照rport中的端口发送SIP响应,也就是说IP和端口均完全遵照从哪里来的,发回哪里去的原则,如果没有rport字段时,服务端的策略是IP使用UDP包中的地址,即从哪里来回哪里去,但是端口使用的是via中的端口,详情见IETF RFC35818。  
第3行为From头,From头中包含了请求发送方的逻辑标识,在GB28181协议中是发送请求的设备国标ID和域国标ID信息。tag参数是为了身份认证的,值为随机数字字符。  
第4行为To头,To头在SIP协议中是为了标明请求接收方的逻辑标识的,在GB28181协议中填写的是发送请求的设备国标ID和域国标ID信息。  
第5行为Call-ID头,Call-ID头是全局唯一的,在同一个session中保持一致,在不同session中不同。  
第6行为CSeq头,CSeq头又叫Command Seqence(命令队列),用于标识命令顺序,值为序号+Method,序号部分为无符号整数,最大值为2^31。序号起始值是随机的,后续在同一个session中依次递增,比如发1 REGISTER没返回--->再发2 REGISTER--->没返回--->再发3 REGISTER--->这时返回了2 REGISTER就知道是第2个请求得到了响应。对于ACK和CANCLE中的CSeq与INVITE中的Cseq保持一致。  
第7行为Contact头,Contact头包含源的URI信息,用来给响应消息直接和源建立连接用。在GB28181协议中为SIP设备编码@源IP地址端口。  
第8行为Max-Forwards头,Max-Forwards头用于设置包最大中转次数,默认是70。  
第9行为User-Agent头,User-Agent头用于设置关于UA的信息,用户可以自定义。  
第10行为Expires头,Expires头表示超时时间。  
第11行为Content-Length头,Content-Length头表示SDP消息的长度,因为REGISTER消息不需要SDP,因此为0。

注册的回复消息内容范例如下,各头信息含义见上面:

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.137.11:5060;rport;branch=z9hG4bK1371463273
From: sip:34020000001320000003@3402000000
To: sip:34020000001320000003@3402000000
CSeq: 1 REGISTER
Call-ID: 1011047669
Contact: sip:34020000001320000003@192.168.137.11:5060
User-Agent: FFmpeg GB28181 v1.0
Expires: 3600
Content-Length: 0

 国标28181:保活

当UA发现工作异常时, 应立即向本SIP监控域的SIP服务器发送状态信息; 无异常时,应定时向本SIP监控域的SIP服务器发送状态信息。状态信息报送采用IETF RFC3427中定义的方法MESSAGE实现。通过周期性的状态信息报送,实现注册服务器与源设备之间的状态检测即心跳机制。

心跳发送方、接收方需统一配置“心跳间隔”参数,按照“心跳间隔”定时发送心跳消息,默认心跳间隔60s。心跳发送方、接收方需统一配置“心跳超时次数”参数,心跳消息连续超时达到“心跳超时次数”则认为对方下线,默认心跳超时次数3次。心跳接收方在心跳发送方上线状态下检测到心跳消息连续超时达到商定次数则认为心跳发送方离线; 心跳发送方在心跳接收方上线状态下检测到心跳消息响应消息连续超时达到商定次数则认为心跳接收方离线。具体命令流程如下图(保活命令流程图):

命令流程描述如下:

(a) 源设备向SIP服务器发送设备状态信息报送命令。设备状态信息报送命令采用MESSAGE方法携带;

(b) SIP服务器收到命令后返回200 OK。

保活消息内容范例如下:

MESSAGE sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.137.11:5060;rport;branch=z9hG4bK1066375804
From: sip:34020000001320000003@3402000000;tag=1925919231
To: sip:34020000002000000001@3402000000
Call-ID: 1185236415
CSeq: 20 MESSAGE
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: IP Camera
Content-Length: 175

<?xml version="1.0" encoding="UTF-8"?>
<Notify>
<CmdType>Keepalive
<SN>1
<DeviceID>34020000001320000003
<Status>OK
<Info>
</Info>
</Notify>

MESSAGE消息头Content-type头为Content-type: Application/MANSCDP+xml。状态信息报送命令采用MANSCDP(监控报警联网系统控制描述协议,Monitoringand Alarming Network System Control Description Protocol)协议格式定义, 详细描述见【GB/T 28181—2016中A.2.5状态信息报送】。状态信息报送命令应包括命令类型(CmdType)、设备/系统编码(DeviceID)、是否正常工作(Status)等, 采用MESSAGE方法的消息体携带。Message消息的成功和错误应答均无消息体,Message回复消息内容范例如下:

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.137.11:5060;rport;branch=z9hG4bK1066375804
From: sip:34020000001320000003@3402000000
To: sip:34020000002000000001@3402000000
CSeq: 20 MESSAGE
Call-ID: 1185236415
User-Agent: FFmpeg GB28181 v1.0
Content-Length: 0

GB28181 免费测试工具: https://download.csdn.net/download/JUST_DO_1122/88366062

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GB28181是中国国家标准《安全监控数字视频联网系统技术要求》,是国内监控领域的视频监控设备和平台之间的通信协议标准。该协议主要用于建立基于IP网络的安全监控视频联网系统,实现视频设备之间的互联互通。 GB28181协议详解如下: 1. 省去设备厂商间的兼容性问题:该协议规定了设备的基本功能、性能以及接口规范,确保不同厂商的设备可以互相兼容,降低了整个系统的搭建和运维成本。 2. 支持设备实时通信:协议采用了实时流传输协议RTSP(Real Time Streaming Protocol),能够实现视频设备之间的实时通信,支持视频监控数据的传输、接收和回放等功能。 3. 提供安全加密机制:GB28181协议采用了基于SIP(Session Initiation Protocol)的视频设备管理和视频流传输机制,支持设备之间的身份认证、安全加密和防篡改等功能,确保视频数据的安全性。 4. 支持分布式视频监控系统:协议支持设备的分布式部署,能够实现多个区域、不同网段的视频设备之间的联网互通,实现统一的视频监控管理和控制。 5. 提供设备管理和控制功能:协议定义了设备的配置、状态监测和控制等命令,可以远程对视频设备进行参数设置、状态查询和控制操作,方便管理人员进行远程监控和管理。 6. 支持视频数据服务的互联互通:协议规定了视频数据格式的标准,确保不同品牌、不同型号的视频设备之间可以实现视频数据的互通,提高了整个系统的灵活性和互操作性。 总结起来,GB28181协议是中国国家标准的视频监控设备通信协议,通过定义设备的功能、接口以及管理和控制命令,实现了视频设备之间的互联互通,提供了安全、可靠、实时的视频监控系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值