设备网络SDK开发使用手册


<?xml version="1.0" encoding="utf-8"?>
<!--req, 设备网络应用参数能力集描述 -->
<NetAppAbility version="2.0">
  <NTP>
    <intervalUnit>minute</intervalUnit>
    <!--req,时间间隔单位,minute,hour-->
    <serverTest>true</serverTest>
    <!--req,支持ntp服务器测试-->
  </NTP>
  <Net>
    <NetworkInterface>
      <networkInterfaceNum>2</networkInterfaceNum>
      <!--req,网卡个数-->
      <NetworkInterfaceEntry>
        <id>1</id>
        <type opt="10Mbase-T,10MBase-T-full,100MBase-TX,100M-full,10M/100M/1000M-adapt,1000M-full"/>
        <MTU min="500" max="9676"/>
        <isSupportDNS>
          <!--opt, 是否支持DNS手动设置使能配置,1-表示支持,不支持不显示-->
        </isSupportDNS>
        <EthernetPortNo min="" max=""/>
        <!--opt,ro,网口号-->
      </NetworkInterfaceEntry>
      <NetworkInterfaceEntry>
        <id>2</id>
        <hidePortCfg>true</hidePortCfg ><!--opt,隐藏端口配置-->
        <type opt="10Mbase-T,10MBase-T-full,100MBase-TX,100M-full,10M/100M/1000M-adapt,1000M-full"/>
        <MTU min="500" max="9676"/>
        <isSupportDNS>
          <!--opt, 是否支持DNS手动设置使能配置,1-表示支持,不支持不显示-->
        </isSupportDNS>
        <EthernetPortNo min="" max=""/>
        <!--opt,ro,网口号-->
      </NetworkInterfaceEntry>
    </NetworkInterface>
    <multicastIpAddr opt="IPV4,IPV6"/>
    <!--req,多播地址类型-->
    <IPv6Address>
      <IPv6List>
        <!--req,是否支持IPv6地址信息获取功能,有接口-->
        <enabled>true</enabled>
      </IPv6List>
      <IPv6Mode opt="routerAdvertisement,DHCP,manual"/>
      <!--req,IPv6分配方式, routerAdvertisement—路由公告,DHCP,manual—手动设置-->
    </IPv6Address>
    <DHCPandPPPoE>
      <!--opt,该节点表示DHCP和PPPoE是否支持同时设置-->
      <enabled>true</enabled>
      <!--req,若支持同时设置,该节点必须存在-->
    </DHCPandPPPoE>
    <IPTest>true</IPTest>
    <!--req,IP冲突测试-->
  </Net>
  <Email>
    <receiverNum>3</receiverNum>
    <!--req,收件人个数-->
    <emailTest>true</emailTest>
    <!--req,邮件测试,对应接口:NET_DVR_StartEmailTest-->
    <emailTestWithParam>true</emailTestWithParam>
    <!--req,带参数的邮件测试,对应接口:NET_DVR_StartRemoteConfig(命令:NET_DVR_EMAIL_SERVER_TEST)-->
    <enableTLS>true</enableTLS >
    <!--req,邮件支持TLS加密-->
    <enableStartTLS>true</enableStartTLS>
    <!--opt,邮件支持启用TSL-->
  </Email>
  <Bonjour>
    <enabled>true</enabled>
    <!--opt,支持Bonjour-->
  </Bonjour>
  <UPNP>
    <!--2012-08-29-->
    <NATType opt="manual,auto"/>
    <!--req,映射类型,0-手动(manual),1-自动(auto)-->
    <friendNameLen min="0" max="64"/>
    <!--req,UPNP服务名-->
    <serverPort>
      <enabled>true</enabled>
      <!--req,支持服务端口(8000)的映射设置-->
    </serverPort>
    <HTTPPort>
      <enabled>true</enabled>
      <!--req,支持HTTP(80)的映射设置-->
    </HTTPPort>
    <RTSPPort>
      <enabled>true</enabled>
      <!--req,支持RTSP端口(554)的映射设置-->
    </RTSPPort>
    <HTTPSPort>
      <enabled>true</enabled>
      <!--req,支持HTTPS端口的映射设置-->
    </HTTPSPort>
    <ManualMap>
      <enabled>true</enabled>
      <!--req,支持手动映射-->
    </ManualMap>
  </UPNP>
  <IPAddrFilter>
    <!--req,IP地址过滤能力, 2012-08-29-->
    <IPAddrType opt="IPV4,IPV6"/>
    <!--req,过滤IP地址类型-->
    <filterType opt="forbid,permit"/>
    <!--req,过滤类型,0-禁用,1-允许-->
    <IPTest>true</IPTest>
    <!--req,IP冲突测试-->
  </IPAddrFilter>
  <FTP>
    <!--2012-08-29-->
    <SecondFTP>
      <enabled>true</enabled>
      <!--req,支持备用FTP-->
    </SecondFTP>
    <Protocol>
      <type opt="FTP, SFTP"/>
      <!--req,支持的FTP协议类型-->
    </Protocol>

    <AnonyFTP>
      <enabled>true</enabled>
      <!--req,支持匿名FTP-->
    </AnonyFTP>
    <dirLevel opt="rootDir,topDir,subDir"/>
    <!--req,支持FTP目录-->
    <topDirMode opt="deviceName,deviceNO,deviceIP,monitor,time,custom,violatetype,direction,place,buildingOrUnitNum,periodNo"/>
    <!--req,一级目录类型-->
    <subDirMode opt="chanName,chanNO,time,laneNO,custom,violatetype,direction,place,buildingOrUnitNum,outDoorNo,devIndex"/>
    <!--req,二级目录类型-->
    <serverTest>true</serverTest>
    <!--req,支持FTP服务器测试-->
    <ftpPicType opt="0,1,2"/>
    <!--req,启动停车场抓拍图片命名规则, 0-保留, 1-停车场抓拍图片命名规则,2-可视对讲抓拍命名规则-->
    <supportPicNameRule opt="deviceIP,time,buildingOrUnitNum,outDoorNo,unlockType,deviceName,periodNo,devIndex"/>
    <!--req,DevIP-设备IP,Time-时间,BuildingNumber-栋号单元号,OutDoorUnitID-门口机编号,UnlockType-开锁方式,
    DeviceName-设备名称,periodNo-期号,devIndex-设备编号-->
    <picNameRuleType opt="default,prefix">
      <!-- opt, xs:string, 图片命令规则类型:default-默认, prefix-自定义前缀-->
    </picNameRuleType>
    <picNamePrefix min="0" max="32">
      <!-- dep, xs:string;依赖于picNameRuleType为prefix类型, 自定义前缀长度-->
    </picNamePrefix>
    <notSupportSymbol opt = "0,1,2,3,4,5,6,7,8,9,10">
      <!-- opt, xs:string;图片命名前缀中不支持的特殊符号;其所引分别代表 / \ : * ? ' " < > | % 该节点暂不实现-->
    </notSupportSymbol>

  </FTP>
  <SOCKS>
    <SOCKSVersion opt="SOCKS4,SOCKS5"/>
    <!--req,SOCKS版本-->
    <proxyIP opt="IPV4,IPV6,domain"/>
    <!--req,代理服务器地址支持的类型-->
    <proxyPort min="" max=""/>
    <!--req,代理服务器端口-->
    <userNameLength min="" max=""/>
    <!--req,代理服务器用户名长度-->
    <passwordLength min="" max=""/>
    <!--req,代理服务器密码长度-->
  </SOCKS>
  <QoS>
    <manageDscp min="" max=""/>
    <!--req,管理数据的DSCP值-->
    <alarmDscp min="" max=""/>
    <!--req,报警数据的DSCP值-->
    <videoDscp min="" max=""/>
    <!--req,视频数据的DSCP值-->
    <audioDscp min="" max=""/>
    <!--req,音频数据的DSCP值-->
    <flagType opt="videoAudio,videoAudioSeparate"/>
    <!--req,标签类型,videoAudio-音视频合并,videoAudioSeparate-音视频分开-->
  </QoS>
  <HTTPS>
    <HTTPSPort min="" max=""/>
    <!--req,HTTPS端口-->
    <Certificate>
      <certtype opt="CA,Certificate,privateKey"/>
      <!-- req,证书类型,0-CA,1-Certificate,2-私钥文件-->
      <fileType opt="PEM,PFX"/>
      <!-- req,证书文件类型,0-PEM,1-PFX-->
      <keyAlgorithm opt="RSA,DSA"/>
      <!-- req,加密算法类型,0-RSA  1-DSA-->
      <keyLen opt="512,1024,2048" def=""/>
      <!-- req,加密长度-->
      <SignatureAlgorithm opt="MD5,RSA,DSA"/>
      <!-- req,签名算法类型,MD5、RSA、DSA-->
      <certRequest opt="true,false"/>
      <!--req,证书请求(证书请求,由第三方数字签名,区别于之前的创建证书,默认HIK签名)-->
    </Certificate>
  </HTTPS>
  <NAS>
    <enabled>true</enabled>
    <!--opt,支持NAS搜索-->
    <serverTest>true</serverTest>
    <!--req,支持NAS服务器测试-->
  </NAS>
  <IPSAN>
    <enabled>true</enabled>
    <!--opt,支持IPSAN搜索-->
  </IPSAN>
  <NAT>
    <enabled>true</enabled>
    <!--req,支持NAT-->
  </NAT>
  <FuzzyUpgrade>
    <enabled>true</enabled>
    <!--req,支持FuzzyUpgrade模糊升级-->
  </FuzzyUpgrade>
  <AuxiliaryDevUpgrade>
    <enabled>true</enabled>
    <!--req,支持AuxiliaryDevUpgrade辅助设备升级(ENUM_UPGRADE_AUXILIARY_DEV)-->
    <devType opt="keyborad,xxx,router,zone"/>
    <!--req,升级设备类型:keyborad-键盘,xxx-机芯,router-路由器,zone-防区-->
  </AuxiliaryDevUpgrade>
  <EthernetChannel>
    <!--req,端口聚合功能,不支持不显示-->
    <ethernetPortNum>8</ethernetPortNum>
    <!--req,端口数量-->
    <ethernetLinkNum>8</ethernetLinkNum>
    <!--req,链路数量-->
  </EthernetChannel>
  <CMS>
    <cmsNo min="" max=""/>
    <!--req, 推模式设备注册平台个数-->
    <ehomeNo min="" max=""/>
    <!--req, ehome平台序号-->
    <CmsParam>
     <enable opt="open,close"/>
     <!--使能-->
      <serverIpv4>true</serverIpv4>
      <!--req,支持IPV4-->
      <serverIpv6>true</serverIpv6>
      <!--req,支持IPV6-->
      <serverPort min="" max=""/>
      <!--req,平台端口号-->
      <serverProtocolType opt="private,EHome"/>
      <!--req,平台支持的协议,私有协议,EHome协议-->
      <deviceStatus opt="offline,online"/>
      <!--req,设备注册状态-->
      <deviceIdLength min="" max=""/>
      <!--req,设备ID长度-->
      <netWork opt="auto,wiredNetWorkFirst,wiredNetWork,3GNetWork"/>
      <!--req,自动,有线网络优先,有线网络,3G网络-->
      <deviceID opt="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,
                v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"/>
      <!--req,设备ID支持的字符-->
      <addressType opt="IP/IPV6, domain"/>
      <!--req,支持的地址类型-->
      <protocolVersion opt="v2.0, v4.0"/>
      <!--opt,协议版本-->
      <isNotSupportPassword>true</isNotSupportPassword>
      <!--反向能级,不返回表示支持密码,返回值为true表示不支持密码-->
      <platformEhomeVersionLength attri="readonly" min="" max=""/>
      <!--req,设备ID长度该字段只读-->
      <mutexAbility opt="ezviz, gbt28181"/>
      <!--req,互斥能力ezviz,gbt28181接入能力-->
    </CmsParam>
  </CMS>
  <CloudStorage>
    <enable opt="disable,enable"/>
    <!--req 支持云直存方式-->
    <poolID min="" max=""/>
    <userNameLen min="" max=""/>
    <passwdLen min="" max=""/>
    <poolInfo opt="postVideoPool,illegalVideoPool,vehicleDetection"/>
    <!--req,数组0表示卡口录像池,数组1表示违章录像池, 数组2表示车辆侦测数据池(IPC/D)-->
    <V2.0>
      <enable opt="disable,enable"/>
      <!--req, 支持云存储2.0协议-->
      <isSupportAccessKey>
        <!--opt, xs:boolen, 是否支持访问密钥-->
      </isSupportAccessKey>
      <isSupportSecretKey>
        <!--opt, xs:boolen, 是否支持加密密钥-->
      </isSupportSecretKey>
      <postPoolID min="0" max="4294967295">
        <!--opt, xs:integer-->
      </postPoolID>
      <accessKeyLen min="1" max="64"/>
      <!--dep, 访问密钥长度, isSupportAccessKey为true时有效-->
      <secretKeyLen min="1" max="64"/>
      <!--dep, 加密密钥长度, isSupportAccessKey为true时有效-->
      <poolInfo opt="postVideoPool,illegalVideoPool,vehicleDetection"/>
      <!--req 数组0表示卡口录像池,数组1表示违章录像池, 数组2表示车辆侦测数据池(IPC/D)-->
    </V2.0>
    <Test>
      <serverIpv4>true</serverIpv4>
      <!--支持IPV4-->
      <serverIpv6>true</serverIpv6>
      <!--支持IPV6-->
      <serverPort min="" max=""/>
      <!--平台端口号-->
      <poolID min="" max=""/>
      <userNameLen min="" max=""/>
      <passwdLen min="" max=""/>
      <poolInfo opt="postVideoPool,illegalVideoPool,vehicleDetection"/>
      <!--数组0表示卡口录像池,数组1表示违章录像池, 数组2表示车辆侦测数据池(IPC/D)-->
      <isSupportAccessKey>
        <!--opt, xs:boolen, 是否支持访问密钥-->
      </isSupportAccessKey>
      <isSupportSecretKey>
        <!--opt, xs:boolen, 是否支持加密密钥-->
      </isSupportSecretKey>
      <accessKeyLen min="1" max="64"/>
      <!--dep, 访问密钥长度, isSupportAccessKey为true时有效-->
      <secretKeyLen min="1" max="64"/>
      <!--dep, 加密密钥长度, isSupportAccessKey为true时有效-->
    </Test>
  </CloudStorage>
  <allBitRate opt="support"/>
  <!--NET_DVR_CHANNELSTATE_V30中的dwAllBitRate字段值-->
  <NetCfg>
    <Ethernet1>
      <IPAddrType opt="IPV4,IPV6"/>
      <!--req,IP地址类型-->
      <IPAddrMaskType opt="IPV4,IPV6"/>
      <!--req,IP地址掩码-->
      <netInterface opt="10MBase-T,10MBase-T_FullDuplex,100MBase-TX,100M_FullDuplex,Adaptive,1000M_FullDuplex"/>
      <port min="" max=""/>
      <mtu min="" max=""/>
      <macAddrLen min="" max=""/>
    </Ethernet1>
    <Ethernet2>
      <IPAddrType opt="IPV4,IPV6"/>
      <!--req,IP地址类型-->
      <IPAddrMaskType opt="IPV4,IPV6"/>
      <!--req,IP地址掩码-->
      <netInterface opt="10MBase-T,10MBase-T_FullDuplex,100MBase-TX,100M_FullDuplex,Adaptive,1000M_FullDuplex"/>
      <port min="" max=""/>
      <mtu min="" max=""/>
      <macAddrLen min="" max=""/>
    </Ethernet2>
    <manageHost1IpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <manageHost2IpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <alarmHostIpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <alarmHost2IpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <manageHost1Port min="" max=""/>
    <manageHost2Port min="" max=""/>
    <alarmHostIpPort min="" max=""/>
    <alarmHost2IpPort min="" max=""/>
    <useDhcp opt="enable,disable"/>
    <IPV6Mode opt="route,manual,dhcp"/>
    <privateMulticastDiscovery opt="enable,disable"/>
    <onvifMulticastDiscovery opt="enable,disable"/>
    <dnsServer1IpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <dnsServer2IpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <IpResolverLen min="" max=""/>
    <ipResolverPort min="" max=""/>
    <httpPortNo min="" max=""/>
    <multicastIpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <gatewayIpAddrType opt="IPV4,IPV6"/>
    <!--req,IP地址类型-->
    <PPPOE>
      <pppoe opt="enable,disable"/>
      <pppoeUserNameLen min="" max=""/>
      <pppoeUserPassWordLen min="" max=""/>
      <pppoeIPAddrType opt="IPV4,IPV6"/>
      <!--req,IP地址类型-->
    </PPPOE>
    <RTMPCfg>
      <isSupportRTMPCfg opt="true,false"/>
      <!--req,是否支持RTMP-->
      <streamType opt="mainStream,subStream"/>
      <!--req,支持的码流类型-->
    </RTMPCfg>
    <enableDNS opt="enable,disable"/>
    <!--req,DNS使能-->
  </NetCfg>
  


    <BondCfg>  
      <bondNum min="" max=""/><!--opt,ro,支持绑定网卡数目-->
      <bondMode opt="balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb"/>
      <!--opt,绑定模式:轮转模式、主备模式、XOR模式、广播模式、IEEE 802.3ad 动态链路聚合、自适应传输负载均衡、自适应负载均衡(虚拟化)-->      
      <isSupportBondExtension opt="true,false"/>
      <!--opt,是否支持bond扩展-->
      <NetworkInterfaceBond>
        <!--opt -->
        <EthernetPortNo min="" max=""/>
        <!--opt,ro,网口号-->
      </NetworkInterfaceBond>
    </BondCfg>

    <SatelliteTiming>
    <enabled opt="true,false" default="true"/>
    <!--req,卫星定位时间使能控制-->
  </SatelliteTiming>
</NetAppAbility>