SIP DB33标准笔记 监控图像获取
实时监控图像的获取:
a) 实时监控图像的获取过程应包括获取实时流、释放实时流。应使用 RFC 3261 中定义的方法INVITE 获取一个摄像机的实时监控视频流。 取消没有完成的连接应采用 CANCEL 方法。 使用 RFC 3261
中定义的方法 BYE 停止接收一个摄像机的实时视频流,并释放相关资源。
b) 实时监控图像的获取过程的主要流程如下:
1) 源联网单元向目的联网单元发送INVITE请求。INVITE请求的消息体应指明是实时监控图像获取(RealMedia)。同时应包含请求用户的权限功能码(Privilege) , 源联网单元支持的码流格式 (Format) 、 视频编码类型 (Video) 、 音频编码类型 (Audio) 、 最高码率 (MaxBitrate) 、接收视频的用户或视频转发代理的IP地址/传输协议/端口号( ReceiveSocket) ;
2) 目的联网单元收到INVITE请求后,在回送成功或失败的应答消息前如需一定的处理时间,可发送临时响应消息100 Tring;
3) 目的联网单元应将同意或拒绝的消息返回给该源联网单元;在同意的确认响应消息的消息体中应包含确定的码流格式 (Format) 、 视频编码类型 (Video) 、 音频编码类型 (Audio) 、
传输码率 (MaxBitrate) 。 码流格式 (Format) 、 视频编码类型 (Video) 和音频编码类型 (Audio)根据INVITE请求消息体相应列表中目的联网单元能支持的排在最前的类型来确定;
4) 源联网单元发送ACK消息前如欲取消本操作,可向目的联网单元发送CANCEL请求消息;
5) 源联网单元收到目的联网单元同意确认消息200 OK,应向目的联网单元发送ACK消息;
6) 目的联网单元收到源联网单元发送ACK消息后,可向源联网单元发送实时监控视频流;
7) 源联网单元欲释放实时流时,向目的联网单元发送BYE请求消息;
8) 目的联网单元收到BYE请求消息后,回送200 OK同意释放消息。
消息示例: F1:INVITE sip:摄像机地址编码@目的联网单元域名或IP地址 SIP/2.0 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip: 用户地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 摄像机地址编码@目的联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Action> <Variable>RealMedia</Variable> <Privilege>权限功能码</Privilege> <Format>4CIF CIF QCIF</Format> <Video>H.264 MPEG4</Video> <Audio>G.722</Audio> <MaxBitrate>800</MaxBitrate> <ReceiveSocket> 210.98.45.234 UDP 2350</ ReceiveSocket > </Action> F2:100 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip: 摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE F3:200 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip: 摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Response> <Variable>RealMedia</Variable> <Format>CIF</Format> <Video>H.264</Video> <Audio>G.722</Audio> <Bitrate>300</Bitrate> </Response> 或者:400 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip: 摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE F4:ACK sip: 摄像机的地址编码@目的联网单元域名或IP地址 SIP/2.0 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip:用户地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 摄像机地址编码@目的联网单元域名或IP地址> CallID: 17250 CSeq:1 ACK F5:BYE 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 BYE ContentLength: 0 F6:200 Via: SIP/2.0/TCP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 BYE ContentLength: 0
历史图像的获取:
a) 历史图像的传输过程包括枚举文件列表、文件名点播、时间段点播、点播释放、点播控制等。通过网络浏览历史图像和通过网络备份历史图像使用相同的报文。
1) 枚举文件列表
应使用方法DO枚举一个指定地址摄像机的历史图像文件列表。
2) 点播历史流
应使用RFC 3261中定义的方法INVITE点播一个指定地址摄像机的一个历史图像文件,可按照文件名或者时间段的方式进行。取消没有完成的点播连接应采用CANCEL方法。
3) 点播释放
应使用RFC 3261中定义的方法BYE停止点播一个指定地址摄像机的历史图像,并释放相关资源。点播释放请求的Call-ID应和点播获取请求的Call-ID相同。
4) 点播控制
应使用RTSP协议对正在播放的一个指定地址摄像机的历史图像进行控制,控制内容包括正常速度播放、暂停、继续、快放、慢放、改变进度、停止等。
b) 历史图像的获取回放过程的主要流程如下:
1) 当源联网单元欲以文件名方式获取历史图像时,应先获取指定地址摄像机的历史图像文件列表。源联网单元可向目的联网单元发送DO消息,在DO消息的消息体中应含权限
功能码 (Privilege) 、 文件类型 (FileType) 、 最多支持接收的文件的个数 (MaxFileNum) 、开始时间(BeginTime)、结束时间(EndTime)等;
2) 目的联网单元收到DO消息后应回送是否同意发送文件列表的响应消息。在同意发送文件列表的200 OK响应消息中应包含枚举后获取的文件个数(RealFileNum)、文件信息
列表(FileInfolist),每项文件信息列表应包含文件的显示名(Name)、文件的创建时间(Creationtim)、文件的最后访问时间(Lastaccesstime)、文件的最后修改时间
(Lastwritetime)、文件长度(Filesize);
3) 源联网单元向目的联网单元发送INVITE请求,可以文件名或者时间段方式获取历史图像。在INVITE请求的消息体中应包含权限功能码(Privilege)、文件类型(FileType)、
开始时间(BeginTime)和结束时间(EndTime)或文件名(FileName)、允许占用的最大带宽(MaxBitrate)等;
4) 目的联网单元收到INVITE请求后,在回送成功或失败的应答消息前如需一定的处理时间,可发送临时响应消息100 Tring;
5) 目的联网单元应将同意或拒绝的消息返回给该源联网单元;
6) 源联网单元在发送ACK消息之前如欲取消本操作, 可向目的联网单元发送CANCEL请求消息;
7) 源联网单元收到目的联网单元的同意确认消息200 OK,应向目的联网单元发送ACK消息;
8) 目的联网单元收到源联网单元发送的ACK消息后,可向源联网单元发送实时监控视频流;
9) 源联网单元向目的联网单元发送符合RFC2326的RTSP控制命令, 对历史图像的回放过程进行控制;
9) 源联网单元欲释放实时流时,向目的联网单元发送BYE请求消息;
10) 目的联网单元收到BYE请求消息后,回送200 OK同意释放消息。
消息示例:
F1:DO 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 DO Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Action> <Query> <Variable>FileList</Variable> <Privilege>权限功能码</Privilege> < FileType >1</ FileType > <MaxFileNum>100</MaxFileNum> <BeginTime>20051110T13:20:50</BeginTime> <EndTime>20051110T13:30:50</EndTime> </Query> </Action> F2:200 Via: SIP/2.0/TCP 源联网单元域名或IP地址 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 DO Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Response> <QueryResponse> <Variable>FileList</Variable> <Result>0</Result> <RealFileNum>50</RealFileNum> <SendFileNum>50</SendFileNum> <FileInfolist> <item> <name>xiaoshan_20051101001.mp4</name> <creationtime>20051110T13:20:50</creationtime> <lastaccesstime>20051110T13:20:50</lastaccesstime> <lastwritetime>20051110T13:20:50</lastwritetime> <filesize>500000</filesize> </item> <item> <name>xiaoshan_20051101002.mp4</name> <creationtime>20051110T13:20:50</creationtime> <lastaccesstime>20051110T13:20:50</lastaccesstime> <lastwritetime>20051110T13:20:50</lastwritetime> <filesize>500000</filesize> </item> …… </FileInfolist> </QueryResponse> </Response > 或:400 Via: SIP/2.0/TCP 源联网单元域名或IP地址 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 DO F3:INVITE sip:摄像机的地址编码@目的联网单元域名或IP地址 SIP/2.0 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip:用户地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 摄像机的地址编码@目的联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Action> <Variable>VODByRTSP</Variable> <Privilege>权限功能码</Privilege> <FileType>2</FileType> <BeginTime>20051110T13:20:50</BeginTime> <EndTime>20051110T13:30:50</EndTime> <MaxBitrate>100</MaxBitrate> </Action> F4:200 Via: SIP/2.0/UDP 源联网单元域名或IP地址 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE Contenttype: Application/DDCP ContentLength: 消息实体的字节长度 <?xml version="1.0"?> <Response> <Variable>VODByRTSP</Variable> <Result>0</Result> <Bitrate>100</Bitrate> </Response > 或:400 Via: SIP/2.0/UDP 源联网单元域名或IP地址 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 INVITE F5:ACK sip: 摄像机的地址编码@目的联网单元域名或IP地址 SIP/2.0 Via: SIP/2.0/UDP 源联网单元域名或IP地址 MaxForwards: 70 From: 显示名<sip:用户地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip: 摄像机的地址编码@目的联网单元域名或IP地址> CallID: 17250 CSeq:1 ACK F6:符合RFC2326的RTSP控制命令 F7:BYE 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 BYE Contenttype: Application/DDCP ContentLength: 0 F8:200 Via: SIP/2.0/TCP 源联网单元域名或IP地址 From: 显示名<sip:摄像机地址编码@目的联网单元域名或IP地址> ;tag=BK32B1U8DKDrB To: 显示名<sip:用户地址编码@源联网单元域名或IP地址> CallID: 17250 CSeq:1 BYE Contenttype: Application/DDCP ContentLength: 0