摘要:根据gb28181协议文档,第一步就是需要实现设备的注册,和onvif不同,gb是反过来的,设备端主动连接服务端,而onvif是服务端主动发出搜索,设备被动应答,包括后续的交互几乎都是被动应答,除了警情上报。gb这样定义协议有个巨大好处,就是跨网,服务器上的软
根据gb28181协议文档,第一步就是需要实现设备的注册,和onvif不同,gb是反过来的,设备端主动连接服务端,而onvif是服务端主动发出搜索,设备被动应答,包括后续的交互几乎都是被动应答,除了警情上报。gb这样定义协议有个巨大好处,就是跨网,服务器上的软件可以在公网上,然后设备这边主动去连接,后续的交互都是建立在这个连接上面的,通过心跳消息保持连接。在udp模式下,如果没有心跳保活,在外网环境中,设备端的端口可能会变,意味着服务端无法主动发消息给设备端。
根据协议文档,无论是注册还是注销,都需要密码认证,服务端这边有个密码,设备端那边也会传一个密码运算后的数据,然后根据指定的规则一般是MD5加密,服务端收到这一串数据后,用密码运算后的字符和设备端传过来的字符比较是否一致,一致则说明密码正确。这里有个小技巧,不一定非要认证,有些厂家的设备可能没有做认证,所以服务端这边可以约定设置认证密码为空则表示跳过认证。
//注册请求:设备端-》服务端REGISTER sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK1945388331From: ;tag=33226951To: Call-ID: 1455222403CSeq: 1 REGISTERContact: Max-Forwards: 70User-Agent: IP CameraExpires: 3600Content-Length: 0//注册应答:服务端-》设备端SIP/2.0 401 UnauthorizedVia: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK1945388331From: ;tag=33226951To: Call-ID: 1455222403CSeq: 1 REGISTERUser-Agent: wx_feiyangqingyunDate: 2025-04-22T10:48:38.014Content-Length: 0WWW-Authenticate: Digest realm="3402000000", algorithm=md5, nonce="9485904448344456af5449b51759016e"//鉴权注册:设备端-》服务端REGISTER sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK1494593151From: ;tag=33226951To: Call-ID: 1455222403CSeq: 2 REGISTERContact: Authorization: Digest username="34020000001320000088", realm="3402000000", nonce="9485904448344456af5449b51759016e", uri="sip:34020000002000000001@3402000000", response="b1cfb3f036fbcf7d13b8ee3bbff89906", algorithm=MD5Max-Forwards: 70User-Agent: IP CameraExpires: 3600Content-Length: 0//注册成功:服务端-》设备端SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK1494593151From: ;tag=33226951To: Call-ID: 1455222403CSeq: 2 REGISTERUser-Agent: wx_feiyangqingyunDate: 2025-04-22T10:48:38.234Content-Length: 0 //注销请求:设备端-》服务端REGISTER sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK473598701From: ;tag=1501355611To: Call-ID: 1128656905CSeq: 3 REGISTERContact: Max-Forwards: 70User-Agent: IP CameraExpires: 0Content-Length: 0//注销应答:服务端-》设备端SIP/2.0 401 UnauthorizedVia: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK473598701From: ;tag=1501355611To: Call-ID: 1128656905CSeq: 3 REGISTERUser-Agent: wx_feiyangqingyunDate: 2025-04-22T10:44:41.661Content-Length: 0WWW-Authenticate: Digest realm="3402000000", algorithm=md5, nonce="6ebe0922efda4939ba77fb41ef50e005"//鉴权注销:设备端-》服务端REGISTER sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK2110923860From: ;tag=1501355611To: Call-ID: 1128656905CSeq: 4 REGISTERContact: Authorization: Digest username="34020000001320000088", realm="3402000000", nonce="6ebe0922efda4939ba77fb41ef50e005", uri="sip:34020000002000000001@3402000000", response="fed25d2e352370cc22bab577ac6e0d93", algorithm=MD5Max-Forwards: 70User-Agent: IP CameraExpires: 0Content-Length: 0//注销成功:服务端-》设备端SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK2110923860From: ;tag=1501355611To: Call-ID: 1128656905CSeq: 4 REGISTERUser-Agent: wx_feiyangqingyunDate: 2025-04-22T10:44:41.768Content-Length: 0 //发送心跳:设备端-》服务端MESSAGE sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK927308490From: ;tag=287801969To: Call-ID: 594186441CSeq: 20 MESSAGEContent-Type: Application/MANSCDP+xmlMax-Forwards: 70User-Agent: IP CameraContent-Length: 176Keepalive934020000001320000002OK//心跳应答:服务端-》设备端SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.0.64:5060;rport;branch=z9hG4bK2112299769From: ;tag=1273238268To: Call-ID: 2060526849CSeq: 20 MESSAGEUser-Agent: wx_feiyangqingyunDate: 2025-04-22T10:46:37.265Content-Length: 0来源:Qt自定义控件
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!