马可波罗网站如何做产品推广,中国住房建设网官方网站,二级建造师证件查询全国联网,免费做课设的网站gb28181-sip注册流程
当客户端第一次接入时#xff0c;客户端将持续向Server端发送REGISTER消息#xff0c;直到Server端回复200 OK后结束 它的注册流程如下图#xff1a;
注册流程#xff1a;
1 . SIP代理向SIP服务器发送Register请求#xff1a; 第1行表…gb28181-sip注册流程
当客户端第一次接入时客户端将持续向Server端发送REGISTER消息直到Server端回复200 OK后结束 它的注册流程如下图
注册流程
1 . SIP代理向SIP服务器发送Register请求 第1行表明这条SIP消息的方法Method是REGISTER34020000002000000001是SIP服务器的国标ID国标ID指的是由中心编码(8位) 、行业编码(2位) 、类型编码(3位)和序号(7位)四个码段共20位十进制数字字符构成具体国标ID的编码方法可以参考GB/T 28181—2016中的附录D。3402000000指的是SIP服务器的域国标IDSIP/2.0指的是SIP协议版本。
第2行为Via头Via头中包含了发送请求方的相关信息后续需要使用这些信息进行回复。SIP/2.0/UDP表示使用的是2.0版本的SIP协议,使用的传输协议是UDP,192.168.101.180:5060为请求发送方的IP地址和端口号,Via头中必须包含branch参数具体值是一个在整个SIP通信过程中不重复的数值。branch是一个事务IDTransaction ID用于区分同一个UA所发起的不同Transaction它不会对未来的request或者是response造成影响对于遵循IETF RFC3261规范的实现这个branch参数的值必须用”z9hG4bK”打头. 其它部分是对To From, Call-ID头域和Request-URI按一定的算法加密后得到,用于唯一标识一个事务可以帮助SIP设备正确地匹配请求和响应。一个请求和它的所有响应的branch不变。rport字段表示使用rport机制路由响应即发送的响应时按照rport中的端口发送SIP响应也就是说IP和端口均完全遵照从哪里来的发回哪里去的原则如果没有rport字段时服务端的策略是IP使用UDP包中的地址即从哪里来回哪里去但是端口使用的是via中的端口详情见IETF RFC35818。
第3行为From头From头中包含了请求发送方的逻辑标识在GB28181协议中是发送请求的设备国标ID和域国标ID信息。tag用于唯一标识一个对话一个对话通常包括一个或多个事务。当摄像头发送REGISTER请求时,生成一个tag,填充在From头中,并在后续与这个注册会话相关的所有SIP消息中使用这个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。
2.当UAS接收到消息后回送一个 401 消息“Unauthorized”并在消息包头添加如下字段 其中realm指的是域名(根据自己项目的实际情况填写)Nonces是随机数
3. 第二次注册 算法验证如下 HA1MD5(username:realm:passwd) #username和realm在字段“Authorization”中可以找到passwd这个是由客户端和服务器协商得到的一般情况下UAC端存一个UAS也知道的密码就行了HA2MD5(Method:Uri) #Method一般有INVITE, ACK, OPTIONS, BYE, CANCEL, REGISTERUri可以在字段“Authorization”找到response MD5(HA1:nonce:HA2)
4 成功回200OK TcpDump 抓包流程
tcpdump udp port 8116 -i enp2s0 -s 0 -w ./target.cap我的udp端口为8116 现在用tcpdump抓取ipc和本地端口之间的sip报文保存为.cap文件使用wrieshark查看
1 404
由于之前相机注册过重启服务收到了相机的keepalive报文服务重启后报404 回给ipc
2 REGISTER 相机收到404之后重新注册 3 401 未验证
第一次注册会回给相机一个401
4 第二次注册
相机收到401之后会再次注册
5 注册成功 6 sip服务器主动发起deviceInfo和catalog请求
连续发送2个请求请求下级设备信息和下级设备的节点信息
7 ipc回复deviceInfo和catalog的响应 点播
上级往下级发送invite请求 下级先回复一个100 trying 下级接着回复一个101 下级接着回复一个200 上级回复ack 停止点播
上级发送bye给下级 下级回复200 OK