• SIP DB33标准笔记 注册/目录发送/心跳


    SIP协议扩展中:

      在 RFC 3261 基础上定义了一个新方法 DO。方法 DO 的功能包括:控制对方动作、更新对方信息、查询对方状态、历史监控资料查询和回放等。发送方法 DO 的请求报文时,不会创建一个新
    的 SIP 会话, 也不需要存在一个 SIP 会话作为前提。 方法 DO 与 SIP 会话无关, 可在 SIP 会话内存在,也可在 SIP 会话之外存在,当 DO 是在一个 SIP 会话内发送时,方法 DO 中包含的 Call-ID 应与 SIP
    会话的 Call-ID 一致。

      当DO请求得到成功执行时,一般应回送一个“200 OK”响应消息,消息体中可包含结果信息,如当前设备状态等。  当DO请求失败时,  可回送请求失败  (Request Failure,4xx) 、  服务器失败  (Server
    failure,5xx)和全局失败(Global Failure,6xx)响应消息。对于监控中的部分控制请求,DO请求可无响应消息。

      采用 RFC 3261、RFC 3265 和方法 DO 实现视频监控系统跨区域联网时,方法的消息体 MIME类型应采用本规范定义的设备描述和控制协议(DDCP 协议) ,Content­Type 字段应设为“application/DDCP”  。 

      SIP 地址编码格式应采用 RFC 3261 中规定的 SIP:user@host 形式。其中 user 部分应符合本规范定义的对象编码规则,host 按 RFC 3261 规定执行。

    设备注册与发现:

    注册登记流程如下:
      1) 源联网单元向目的联网单元发送REGISTER消息。 如果联网单元要求从目的联网单元中注销,把Expires设置为0。如果联网单元修改了IP地址和监听端口,应先注销,再重新进行注册登记;
      2) 目的联网单元收到注册登记消息后应对注册登记信息进行验证、核准,对符合接入条件的联网单元进行注册登记;
      3) 目的联网单元应将注册成功或失败的消息返回给该源联网单元。

     

    消息示例:

    F1:REGISTER sip:目的联网单元域名或IP地址 SIP/2.0
      Via: SIP/2.0/UDP 源联网单元IP地址
      Max­Forwards: 70
    
      From: 显示名<sip:源联网单元地址编码@源联网单元域名或IP地址>; tag=BK32B1U8DKDrB
      To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
      Call­ID: 17250
      CSeq: 1 REGISTER
      Contact: <sip:源联网单元IP地址:5060>
      Expires: 3600
    F2:200
      Via: SIP/2.0/UDP 源联网单元IP地址
      From: 显示名<sip:源联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
      To:显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
      Call­ID: 17250
      CSeq: 1 REGISTER
    或:401
      Via: SIP/2.0/UDP 源联网单元IP地址
      From: 显示名<sip:源联网单元地址编码@源联网单元域名或IP地址>;tag=BK32B1U8DKDrB
      To:显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
      Call­ID: 17250
      CSeq: 1 REGISTER
    
     

    目录发送:

      a)  在以下两种情况下应向所有与之联网的联网单元发送目录信息:
        1) 联网单元注册成功后,应发送整个允许共享的设备目录信息;
        2) 联网单元的目录信息发生变化后,应发送变化部分目录信息。
        应使用RFC 3265中定义的方法NOTIFY发送目录信息。
      b)  目录发送流程如下:
        1) 需发送共享设备目录信息的源联网单元向所有与之联网的目的联网单元发送NOTIFY信息。NOTIFY消息的消息体包含整个允许共享的设备目录信息,每个设备对应的目录信息应包含以下内容:显示名(Name)、地址编码(Address)、权限功能码(Privilege)、父节点地址编码  (Parent)  、  活动状态  (Status) 、  经度  (Longitude) 、  纬度  (Latitude) 、  子节点个数  (Subnum) 、子节点列表(Sublist)等。
        2) 目的联网单元收到正确目录消息后更新本地目录数据库;
        3) 目的联网单元应将目录接收成功或失败的消息返回给该源联网单元。

     

    消息示例:

    F1:NOTIFY sip:目的联网单元地址编码@目的联网单元域名或IP地址 SIP/2.0
      Via: SIP/2.0/TCP 源联网单元IP地址
      Max­Forwards: 70
    
      From: 显示名<sip:联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
      To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
      Call­ID: 17250
      CSeq:1 NOTIFY
      Content­type: Application/DDCP
      Content­Length: 消息实体的字节长度
      <?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地址>
      Call­ID: 17250
    
      CSeq:1 NOTIFY
      Content­type: Application/DDCP
      Content­Length: 消息实体的字节长度
      <?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地址>
      Call­ID: 17250  
      CSeq:1 NOTIFY

    心跳信息传递:

      联网单元应定时向所有与之联网的联网单元发送心跳报文消息。应使用方法DO传递心跳信息,心跳消息的消息体包含保持活动信息(Keepalive)。心跳报文不要求应答确认报文。

      

    消息示例:

    F1:DO sip:目的联网单元地址编码@目的联网单元域名或IP地址 SIP/2.0
      Via: SIP/2.0/TCP 源联网单元IP地址
      Max­Forwards: 70
      From: 显示名<sip:源联网单元地址编码@源联网单元域名或IP地址> ;tag=BK32B1U8DKDrB
      To: 显示名<sip:目的联网单元地址编码@目的联网单元域名或IP地址>
      Call­ID: 17250
      CSeq:1 DO
      Content­type: Application/DDCP
      Content­Length: 消息实体的字节长度
      <?xml version="1.0"?>
      <Action>
      <Notify>
          <Variable>Keepalive</Variable>
      </Notify> 
      </Action>
  • 相关阅读:
    【一】、Cypress下载及安装介绍
    利用Selenium多用户同时开启多线程登录博客园
    实用的jsonpath模块
    Linux常用命令
    Python读取CSV文件
    python算法集锦【四】
    基础类封装-浏览器文件上载类库封装
    基础类封装-查找页面元素类库封装
    基础类封装-键盘类操作库封装
    自动化测试框架Python+selenium+unittest系列 之 配置文件读取(Python)
  • 原文地址:https://www.cnblogs.com/dpf-10/p/5709906.html
Copyright © 2020-2023  润新知