待IPC客户端注册了服务端之后,服务端就应该查询设备
设备目录查询
设备目录查询是国标平台对国标设备接入的目录查询,目的是查询该设备带有的监控点和报警设备信息以及语音设备信息。
使用场景:
- 比如平台国标对接后,通过目录查询将下级推送的资源查询出来
- 比如上级平台需要能够随时查看某区域的摄像头信号, 首先需要获取下级平台信号的列表, 然后才能调取对应的信号
- 比如,排错(如在线状态状态不对,前端设备数量问题,设备类型不对,目录结构不对等等)
流程:
- 1)上级首先向下级发送message进行设备查询请求
- 2) 下级收到请求后,给上级回复好的,马上发送资源过来
- 3) 下级发送资源,每一条携带的资源不超过4个,且SN序列号相同,标识一次响应查询的结果
- 4)下级每发送一条消息,上级都要回复一条收到的消息,这样才算一个完整的流程
比如下面:
除了第一条message消息为命令请求外,其余的message消息都为响应消息
F1:NOTIFY sip:目的联网单元地址编码@目的联网单元域名或IP地址 SIP/2.0
Via: SIP/2.0/TCP 源联网单元IP地址
MaxForwards: 70
From: 显示名<sip:联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
CallID: 17250
CSeq:1 NOTIFY
Contenttype: Application/DDCP
ContentLength: 消息实体的字节长度
<?xml version="1.0"?>
<Action>
<Variable>Catalog</Variable>
<Name>显示名</Name>
<Address>地址编码</Address>
<Parent>地址编码</Parent>
<Status>活动状态</Status>
<Subnum>2</Subnum>
<Sublist>
<Item>
<Name>显示名</Name>
<Address>地址编码</Address>
< Privilege > 权限功能码< /Privilege >
<Parent>地址编码</Parent>
<Status>活动状态</Status>
< Longitude >经度</ Longitude >
< Latitude >纬度</ Latitude >
<Subnum>2</Subnum>
<Sublist>...</Sublist>
</Item>
<Item>
<Name>显示名</Name>
<Address>地址编码</Address>
< Privilege > 权限功能码< /Privilege >
<Parent>地址编码</Parent>
<Status>活动状态</Status>
< Longitude >经度</ Longitude >
< Latitude >纬度</ Latitude >
<Subnum>2</Subnum>
<Sublist>...</Sublist>
</Item>
</Sublist>
</Action>
F2:200
Via: SIP/2.0/TCP 源联网单元IP地址
From: 显示名<sip:源联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
CallID: 17250
CSeq:1 NOTIFY
Contenttype: Application/DDCP
ContentLength: 消息实体的字节长度
<?xml version="1.0"?>
<Response>
<Variable>Catalog</Variable>
<Result>0</Result>
</Response >
或:400
Via: SIP/2.0/TCP 源联网单元IP地址
From: 显示名<sip:联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
CallID: 17250
CSeq:1 NOTIFY
第一步:【上级平台>>下级平台】查询命令
抓包分析
第一步:【上级平台>>下级平台】抓包如下:
MESSAGE sip:34020000001110000001@192.168.0.60:51728 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.28:5060;rport;branch=z9hG4bK-42290FA-158FC3FA-Rkst2EMw
From: <sip:41010000002008000001@4101000000>;tag=1870132028
To: <sip:34020000001110000001@192.168.0.60:51728>
Call-ID: 633399589
CSeq: 20 MESSAGE
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: videosvr 1.0
Content-Length: 125
<?xml version="1.0"?>
<Query> // 查询
<CmdType>Catalog</CmdType> //命令类型
<SN>1</SN> //序列号
<DeviceID>34020000001110000001</DeviceID> //下级国标编码(向哪个下级查询目录)
</Query>
第二步:【下级平台>>上级平台】抓包如下:
‘上级平台收到请求后,马上响应 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK7e47bbc7-c29c-4299-803b-71f7367975bb_53173353_9686809251402
From: <sip:34020000002000000001@3402000000>;tag=08052615_53173353_7e47bbc7-c29c-4299-803b-71f7367975bb
To: <sip:34020000001320000001@3402000000>;tag=883575767
Call-ID: 4bef8622e9d66b2b60fae6b15f4a4f63@0.0.0.0
CSeq: 1 MESSAGE
User-Agent: eXosip/3.6.0
Content-Length: 0
第三步:【下级平台>>>上级平台】返回目录相关信息
MESSAGE sip:44010200492000000001@192.168.0.28:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:51728;branch=z9hG4bK628606ef
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.28:5060>
Call-ID: 00006784000018BE@192.168.0.60
CSeq: 1 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 558
<?xml version="1.0"?>
<Response>
<CmdType>Catalog</CmdType>
<SN>1</SN> // 与第一条SN号相同,表明同一批会话
<DeviceID>34020000001110000001</DeviceID> //下级平台的国标编码
<SumNum>1</SumNum> // 一共需要推送多少通道
<DeviceList Num="1"> //本次推送数量
<Item>
<DeviceID>34020000001310000001</DeviceID> // 11-13是131,表示是摄像机, 216表示是虚拟分组
<Name>HTIPC</Name> //设备名称
<Manufacturer>Happytimesoft</Manufacturer> //设备厂商
<Model>IPC</Model>
<Owner>Owner</Owner>
<CivilCode>CivilCode</CivilCode>
<Address>Address</Address>
<Parental>0</Parental>
<ParentID>34020000001110000001</ParentID>
<RegisterWay>1</RegisterWay>
<Secrecy>0</Secrecy>
<Status>ON</Status>
</Item>
</DeviceList>
</Response>
第四步:【上级平台>>下级平台】
上级平台收到响应后,立马返回200 OK响应,整个查询业务结束,抓包如下:
SIP/2.0 200 OK
To: <sip:34020000001320000001@192.168.10.177>;tag=26545395_53173353_019caa42-43f0-4b6c-a07f-a9c2bfa80f34
Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK3917727870;received=192.168.10.177
CSeq: 20 MESSAGE
Call-ID: 3993662053
From: <sip:192.168.10.177:5060>;tag=2228745831
Content-Length: 0
第二步:上级平台>>下级平台:订阅目录变化
如果发现注册没有超时,且目录推送正常,才开始订阅目录:
抓包分析
第一步:【上级平台>>下级平台】抓包如下:
SUBSCRIBE sip:33072700002000000001@10.45.255.10:5060 SIP/2.0
Via: SIP/2.0/UDP 10.45.255.11:5060;rport;branch=z9hG4bK-11B2FC7F-48F2E4A-MBTmEUFx
From: <sip:33072700232000002456@3307270023>;tag=1038265965
To: <sip:33072700002000000001@10.45.255.10:5060>
Call-ID: 473904932
CSeq: 20 SUBSCRIBE
Contact: <sip:33072700232000002456@10.45.255.11:5060>
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: videosvr 1.0
Expires: 3600
Event: presence
Content-Length: 125
<?xml version="1.0"?>
<Query>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>33072700002000000001</DeviceID>
</Query>
这个和上面【上级平台>>下级平台:查询命令】不同之处:
- 是上面是
MESSAGE
命令,而这里是SUBSCRIBE
命令 - 上面只是第一次注册之后发送,而这里需要定时去发送
【下级平台>>上级平台】一个OK,其抓包如下:
MSIP/2.0 200 OK
CSeq: 20 SUBSCRIBE
Call-ID: 473904932
From: <sip:33072700232000002456@3307270023>;tag=1038265965
To: <sip:33072700002000000001@10.45.255.10:5060>;tag=e20cf9c0
Via: SIP/2.0/UDP 10.45.255.11:5060;rport=5060;branch=z9hG4bK-11B2FC7F-48F2E4A-MBTmEUFx;received=10.45.255.11
Content-Type: Application/MANSCDP+xml
Contact: <sip:33072700002000000001@10.45.255.10:5060>
Expires: 3600
Content-Length: 153
<?xml version="1.0" ?>
<Response>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>33072700002000000001</DeviceID>
<Result>OK</Result>
</Response>
然后【下级平台>>上级平台】
MESSAGE sip:33072700232000002456@10.45.255.11:5060 SIP/2.0
Call-ID: c01a773454b55653626f258eed516276@0.0.0.0
CSeq: 209 MESSAGE
From: <sip:33072700002000000001@10.45.255.10:5060>;tag=158528479
To: <sip:33072700232000002456@3307270023>
Via: SIP/2.0/UDP 10.45.255.10:5060;rport;branch=158528479-c01a773454b55653626f258eed516276-0.0.0.0-209-message-10.45.255.10-5060373235
Max-Forwards: 70
Content-Type: Application/MANSCDP+xml
Content-Length: 558
<?xml version="1.0" encoding="GB2312"?>
<Response>
<CmdType>Catalog</CmdType>
<SN>1</SN>
<DeviceID>33072700002000000001</DeviceID>
<SumNum>131</SumNum> // 本设备下一共有131个通道
<DeviceList Num="1">
<Item>
<DeviceID>33072751001311082509</DeviceID>
<Name>GZ510032aQQ3ÅÍ°²¸ùϪ´å¿Ú±±²à_2015DX</Name>
<Parental>0</Parental>
<Manufacturer>hikvision</Manufacturer>
<Secrecy>0</Secrecy>
<RegisterWay>1</RegisterWay>
<Status>ON</Status>
<Model>hikvision</Model>
<Owner> hikvision</Owner>
<CivilCode>null</CivilCode>
<Address></Address>
</Item>
</DeviceList>
</Response>
【上级平台回复一个OK】
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.45.255.10:5060;rport=5060;branch=158528479-c01a773454b55653626f258eed516276-0.0.0.0-209-message-10.45.255.10-5060373235
From: <sip:33072700002000000001@10.45.255.10:5060>;tag=158528479
To: <sip:33072700232000002456@3307270023>;tag=1015732408
Call-ID: c01a773454b55653626f258eed516276@0.0.0.0
CSeq: 209 MESSAGE
User-Agent: videosvr 1.0
Content-Length: 0
【下级平台告知下一个通道】
MESSAGE sip:33072700232000002456@10.45.255.11:5060 SIP/2.0
Call-ID: 28926b3b0a41f5df9d0f26a0e006ad83@0.0.0.0
CSeq: 210 MESSAGE
From: <sip:33072700002000000001@10.45.255.10:5060>;tag=158528479
To: <sip:33072700232000002456@3307270023>
Via: SIP/2.0/UDP 10.45.255.10:5060;rport;branch=158528479-28926b3b0a41f5df9d0f26a0e006ad83-0.0.0.0-210-message-10.45.255.10-5060373235
Max-Forwards: 70
Content-Type: Application/MANSCDP+xml
Content-Length: 570
<?xml version="1.0" encoding="GB2312"?>
<Response>
<CmdType>Catalog</CmdType>
<SN>1</SN>
<DeviceID>33072700002000000001</DeviceID>
<SumNum>131</SumNum>
<DeviceList Num="1">
<Item>
<DeviceID>33072751001311083596</DeviceID>
<Name>GZ510068aQQ3ÅÍ°²ºøÌüÎ÷·ºøÌü¶þ·½»²æ·¿Ú_2015DX</Name>
<Parental>0</Parental>
<Manufacturer>hikvision</Manufacturer>
<Secrecy>0</Secrecy>
<RegisterWay>1</RegisterWay>
<Status>ON</Status>
<Model>hikvision</Model>
<Owner> hikvision</Owner>
<CivilCode>null</CivilCode>
<Address></Address>
</Item>
</DeviceList>
</Response>
【上级平台回复一个OK】…
直到所有的通道都告知了上级平台
代码实现
设备状态查询
设备状态查询和设备信息查询流程差不多,只是协议字段不同
第一步:【服务端>>客户端】抓包如下:
第二步:【客户端>>服务端】抓包如下:
抓包
设备信息查询
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备信息查询
服务端步骤
- 发送设备目录查询命令
- 等待设备目录信息
抓包分析
第一步:【服务端>>设备】发送查询信息,然后等待回应
sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000006
To: <sip:34020000001110000001@4401020049>
Content-Length: 134
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900006
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300006
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Query>
<CmdType>DeviceInfo</CmdType>
<SN>17430</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300006
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000006
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900006
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】告知自己的信息
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:54277;branch=z9hG4bK62861681
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 00003D6C00004AE1@192.168.0.60
CSeq: 2 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 308
<?xml version="1.0"?>
<Response>
<CmdType>DeviceInfo</CmdType>
<SN>17430</SN>
<DeviceID>34020000001110000001</DeviceID>
<DeviceName>HTIPC</DeviceName>
<Result>OK</Result>
<Manufacturer>Happytimesoft</Manufacturer>
<Model>HTIPC</Model>
<Firmware>V1.0</Firmware>
<Channel>1</Channel>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:54277;branch=z9hG4bK62861681
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000006
Call-ID: 00003D6C00004AE1@192.168.0.60
CSeq: 2 MESSAGE
User-Agent: General
Content-Length: 0
设备目录查询
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询
服务端步骤
- 发送设备目录查询命令
- 等待状态信息
抓包分析
第一步:【服务端>>设备】发送查询目录命令,然后等待回应
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000001
To: <sip:34020000001110000001@4401020049>
Content-Length: 127
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900001
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300001
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Query>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300001
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000001
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900001
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】告知自己的目录信息
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:49781;branch=z9hG4bK62862a76
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 00003D6C00004AE1@192.168.0.60
CSeq: 2 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 558
<?xml version="1.0"?>
<Response>
<CmdType>Catalog</CmdType>
<SN>2</SN>
<DeviceID>34020000001110000001</DeviceID>
<SumNum>1</SumNum>
<DeviceList Num="1">
<Item>
<DeviceID>34020000001310000001</DeviceID>
<Name>HTIPC</Name>
<Manufacturer>Happytimesoft</Manufacturer>
<Model>IPC</Model>
<Owner>Owner</Owner>
<CivilCode>CivilCode</CivilCode>
<Address>Address</Address>
<Parental>0</Parental>
<ParentID>34020000001110000001</ParentID>
<RegisterWay>1</RegisterWay>
<Secrecy>0</Secrecy>
<Status>ON</Status>
</Item>
</DeviceList>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:49781;branch=z9hG4bK62862a76
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000001
Call-ID: 00003D6C00004AE1@192.168.0.60
CSeq: 2 MESSAGE
User-Agent: General
Content-Length: 0
设备状态查询
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>设备状态查询
服务端步骤
- 发送状态查询
- 等待状态信息
抓包分析
第一步:【服务端>>设备】发送查询状态命令,然后等待回应
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000012
To: <sip:34020000001110000001@4401020049>
Content-Length: 134
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900012
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300012
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Query>
<CmdType>DeviceStatus</CmdType>
<SN>248</SN>
<DeviceID>34020000001110000001</DeviceID>
</Query>
第二步:【设备>>服务端】回应200
8SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300012
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000012
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900012
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】告知自己的状态信息
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:54116;branch=z9hG4bK62862cb8
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 295
<?xml version="1.0"?>
<Response>
<CmdType>DeviceStatus</CmdType>
<SN>248</SN>
<DeviceID>34020000001110000001</DeviceID>
<Result>OK</Result>
<Online>ONLINE</Online>
<Status>OK</Status>
<Encode>ON</Encode>
<Record>ON</Record>
<DeviceTime>2022-05-19T19:40:40</DeviceTime>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:54116;branch=z9hG4bK62862cb8
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000012
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
User-Agent: General
Content-Length: 0
配置查询
建议流程:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>国标配置查询>>>>>>视频参数查询
国标配置查询
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>国标配置查询
服务端流程
- 发送国标编码配置查询命令
- 等待回复的国标配置
抓包分析
第一步:【服务端>>设备】发送【 国标配置查询】,然后等待回应
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000019
To: <sip:34020000001110000001@4401020049>
Content-Length: 175
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900019
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300019
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Query>
<CmdType>ConfigDownload</CmdType>
<SN>249</SN>
<DeviceID>34020000001110000001</DeviceID>
<ConfigType>BasicParam</ConfigType>
</Query>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300019
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000019
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900019
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】告知自己的配置信息
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:64797;branch=z9hG4bK62862e73
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 321
<?xml version="1.0"?>
<Response>
<CmdType>ConfigDownload</CmdType>
<SN>249</SN>
<DeviceID>34020000001110000001</DeviceID>
<Result>OK</Result>
<BasicParam>
<Name>HTIPC</Name>
<Expiration>300</Expiration>
<HeartBeatInterval>10</HeartBeatInterval>
<HeartBeatCount>0</HeartBeatCount>
</BasicParam>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:64797;branch=z9hG4bK62862e73
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000019
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
User-Agent: General
Content-Length: 0
视频参数范围查询
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>视频参数范围查询
服务端步骤
- 发送 视频参数范围查询命令
- 等待回复的国标配置
抓包分析
第一步:【服务端>>设备】发送【视频参数范围查询】,然后等待回应
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000021
To: <sip:34020000001110000001@4401020049>
Content-Length: 180
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900021
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300021
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Query>
<CmdType>ConfigDownload</CmdType>
<SN>249</SN>
<DeviceID>34020000001310000001</DeviceID>
<ConfigType>VideoParamOpt</ConfigType>
</Query>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300021
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000021
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900021
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】告知自己的配置信息
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:63169;branch=z9hG4bK62862f6f
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 262
<?xml version="1.0"?>
<Response>
<CmdType>ConfigDownload</CmdType>
<SN>249</SN>
<DeviceID>34020000001310000001</DeviceID>
<Result>OK</Result>
<VideoParamOpt>
<DownloadSpeed>1</DownloadSpeed>
<Resolution>5/6</Resolution>
</VideoParamOpt>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:63169;branch=z9hG4bK62862f6f
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000021
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
User-Agent: General
Content-Length: 0
手动录像
流程
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>开启手动录像>>>>>>录像ing>>>>>>停止手动录像
服务端步骤
服务端需要做的:
- 开启手动录像:发送开启命令
- 等待开启成功
- 录像中…
- 停止手动录像
- 等待停止成功
抓包分析
开启手动录像
第一步:【服务端>>设备】发送命令
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000026
To: <sip:34020000001110000001@4401020049>
Content-Length: 172
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900026
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300026
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Control>
<CmdType>DeviceControl</CmdType>
<SN>17121</SN>
<DeviceID>34020000001310000001</DeviceID>
<RecordCmd>Record</RecordCmd>
</Control>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300026
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000026
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900026
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:59004;branch=z9hG4bK628631d9
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 164
<?xml version="1.0"?>
<Response>
<CmdType>DeviceControl</CmdType>
<SN>17121</SN>
<DeviceID>34020000001110000001</DeviceID>
<Result>OK</Result>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:59004;branch=z9hG4bK628631d9
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000026
Call-ID: 000072AE00002CD6@192.168.0.60
CSeq: 3 MESSAGE
User-Agent: General
Content-Length: 0
等待录像
录像中…
停止手动录像
第一步:【服务端>>设备】发送命令
MESSAGE sip:34020000001110000001@4401020049 SIP/2.0
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000031
To: <sip:34020000001110000001@4401020049>
Content-Length: 178
CSeq: 5 MESSAGE
Route: <sip:34020000001110000001>
Call-ID: 12345678900031
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300031
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
<?xml version="1.0"?>
<Control>
<CmdType>DeviceControl</CmdType>
<SN>17121</SN>
<DeviceID>34020000001310000001</DeviceID>
<RecordCmd>StopRecord</RecordCmd>
</Control>
第二步:【设备>>服务端】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;wlsscid=377aa9afcf1b36f;branch=123133532300031
From: <sip:44010200492000000001@4401020049>;tag=bccedfd000031
To: <sip:34020000001110000001@4401020049>
Call-ID: 12345678900031
CSeq: 5 MESSAGE
Server: Happytime Agent Ver 1.0
Content-Length: 0
第三步:【设备>>服务端】
MESSAGE sip:44010200492000000001@192.168.0.60:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:64141;branch=z9hG4bK62863440
From: <sip:34020000001110000001@4401020049>
To: <sip:44010200492000000001@192.168.0.60:5060>
Call-ID: 000041BB00005AF1@192.168.0.60
CSeq: 5 MESSAGE
Max-Forwards: 70
User-Agent: HTSIP UA/2.1
Content-Type: Application/MANSCDP+xml
Content-Length: 164
<?xml version="1.0"?>
<Response>
<CmdType>DeviceControl</CmdType>
<SN>17121</SN>
<DeviceID>34020000001110000001</DeviceID>
<Result>OK</Result>
</Response>
第四步:【服务端>>设备】回应200
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:64141;branch=z9hG4bK62863440
To: <sip:44010200492000000001@192.168.0.60:5060>;tag=12341241234
From: <sip:34020000001110000001@4401020049>;tag=bccedfd000031
Call-ID: 000041BB00005AF1@192.168.0.60
CSeq: 5 MESSAGE
User-Agent: General
Content-Length: 0
目录订阅
前提:注册成功>>>>>>心跳成功>>>>>>设备目录查询>>>>>>设备状态查询>>>>>目录订阅
服务端步骤
(1)目录订阅
(2)等待初始状态上报
(3)等待目录改变通知
(4)刷新订阅
(5)等待初始目录上报
(6)等待目录改变通知
(8)取消订阅
(9)普通等待
抓包
第一步:【服务端>>客户端】发送命令
通道的树形结构
国标28181规定了两种组织设备树的方式。
行政区划
- 行政区划模式下主要是以行政区划作为目录节点,比如:湖南省–>xx市—>xx区
业务分组
- 业务分组主要自定义的目录树的一种组织形式,但是对定义的目录的国标编码有一定的要求:
- 第一级别需要是业务分组类型,即国标编码中的11、12、13是215,例如:65010200002150000001;
- 业务分组下是虚拟组织,即国标编码中的11、12、13是216,例如:65010200002160000002
- 虚拟组织下不可是业务分组,虚拟组织下可以继续添加虚拟组织