Skip to content

Instantly share code, notes, and snippets.

@gigincg
Last active May 30, 2024 06:33
Show Gist options
  • Select an option

  • Save gigincg/65c7f915f73c3298f8c4ceeadce0cd03 to your computer and use it in GitHub Desktop.

Select an option

Save gigincg/65c7f915f73c3298f8c4ceeadce0cd03 to your computer and use it in GitHub Desktop.
Dahua Camera Testing Report

Dahua Camera Testing Report


Introduction

This report presents the results of extensive testing conducted on two different cameras from Dahua (. The primary objective of the testing was to evaluate the response of each camera to an ONVIF request using a Python script. The testing aimed to identify any discrepancies or issues related to authentication and profile retrieval. The detailed results, including the script used and responses received, are documented below.


Test Environment

  • Company: Dahua

  • Test Date: 30 May 2024

  • Test Conducted by: Gigin George, Jasir K

  • Test Location: Kerala, India


Testing Methodology

We utilized a Python script to send ONVIF requests to both cameras. The script was designed to retrieve the profiles from each camera. The following steps outline the testing procedure:

  1. Initialization: The cameras were set up and configured according to the specifications.

  2. Script Execution: A Python script was executed to send ONVIF requests to both cameras, with the admin credentials.

  3. Response Collection: The responses from each camera were collected and analyzed.

  4. Issue Identification: Any issues related to authentication or profile retrieval were noted.


Python Script

The following Python script was used to send ONVIF requests to the cameras:

import hashlib
import base64
import random
import string
import datetime
import requests
from requests.auth import HTTPDigestAuth

IP = "192.168.68.108"
PORT = 80
USER = "admin"
PASSWORD = "asdf1234"

# Generate nonce
nonce = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(16))

# Generate timestamp
timestamp = datetime.datetime.now().isoformat()

# Generate password digest
password_digest = base64.b64encode(hashlib.sha1((nonce + timestamp + PASSWORD).encode('utf-8')).digest()).decode('utf-8')

# Constructing the SOAP request for getting the media profiles
GET_PROFILES_REQUEST_XML = f'''<?xml version="1.0" encoding="utf-8"?>
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
    <Header>
        <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <UsernameToken>
                <Username>{USER}</Username>
                <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">{password_digest}</Password>
                <Nonce>{base64.b64encode(nonce.encode('utf-8')).decode('utf-8')}</Nonce>
                <Created>{timestamp}</Created>
            </UsernameToken>
        </Security>
    </Header>
    <Body>
        <GetProfiles xmlns="http://www.onvif.org/ver10/media/wsdl"/>
    </Body>
</Envelope>'''
print("Auth" + str(HTTPDigestAuth(USER, PASSWORD)))

# Send the SOAP request to get the media profiles
response = requests.post(f"http://{IP}:{PORT}/onvif/media_service",
                         headers={"Content-Type": "application/soap+xml; charset=utf-8"},
                         data=GET_PROFILES_REQUEST_XML,
                         auth=HTTPDigestAuth(USER, PASSWORD))

print(response.content)

Camera Responses

Camera 1: DH-SD3A205-GNP-PV

Response:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?><s:Envelope xmlns:sc="http://www.w3.org/2003/05/soap-encoding" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:trt="http://www.onvif.org/ver10/media/wsdl"><s:Header/><s:Body><trt:GetProfilesResponse><trt:Profiles token="MediaProfile00000" fixed="true"><tt:Name>MediaProfile_Channel1_MainStream</tt:Name><tt:VideoSourceConfiguration token="00000"><tt:Name>VideoSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken><tt:Bounds x="0" y="0" width="2048" height="1536"/><tt:Extension><tt:Rotate><tt:Mode>OFF</tt:Mode></tt:Rotate></tt:Extension></tt:VideoSourceConfiguration><tt:AudioSourceConfiguration token="00000"><tt:Name>AudioSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken></tt:AudioSourceConfiguration><tt:VideoEncoderConfiguration token="00000"><tt:Name>VideoEncoderConfig_Channel1_MainStream</tt:Name><tt:UseCount>1</tt:UseCount></tt:VideoEncoderConfiguration><tt:AudioEncoderConfiguration token="00000"><tt:Name>AudioEncoderConfig_Channel1_MainStream</tt:Name><tt:UseCount>1</tt:UseCount><tt:Encoding>G711</tt:Encoding><tt:Bitrate>32</tt:Bitrate><tt:SampleRate>8</tt:SampleRate><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.1.0.0</tt:IPv4Address></tt:Address><tt:Port>40002</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:AudioEncoderConfiguration><tt:VideoAnalyticsConfiguration token="00000"><tt:Name>AnalyticsConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:AnalyticsEngineConfiguration><tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine"><tt:Parameters><tt:SimpleItem Name="Sensitivity" Value="70"/><tt:ElementItem Name="Layout"><tt:CellLayout Columns="22" Rows="18"><tt:Transformation><tt:Translate x="-1" y="-1"/><tt:Scale x="0.00625" y="0.00834"/></tt:Transformation></tt:CellLayout></tt:ElementItem></tt:Parameters></tt:AnalyticsModule></tt:AnalyticsEngineConfiguration><tt:RuleEngineConfiguration><tt:Rule Name="Region1" Type="tt:CellMotionDetector"><tt:Parameters><tt:SimpleItem Name="MinCount" Value="20"/><tt:SimpleItem Name="AlarmOnDelay" Value="1000"/><tt:SimpleItem Name="AlarmOffDelay" Value="1000"/><tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/></tt:Parameters></tt:Rule></tt:RuleEngineConfiguration></tt:VideoAnalyticsConfiguration><tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0"><tt:Name>PTZConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:NodeToken>00000</tt:NodeToken><tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace><tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace><tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace><tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace><tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace><tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace><tt:DefaultPTZSpeed><tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/><tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/></tt:DefaultPTZSpeed><tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout><tt:PanTiltLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange><tt:YRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:YRange></tt:Range></tt:PanTiltLimits><tt:ZoomLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>0.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange></tt:Range></tt:ZoomLimits></tt:PTZConfiguration><tt:MetadataConfiguration token="00000" CompressionType=""><tt:Name>MetadataConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:PTZStatus><tt:Status>false</tt:Status><tt:Position>false</tt:Position></tt:PTZStatus><tt:Events><tt:Filter><wsnt:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression></tt:Filter></tt:Events><tt:Analytics>true</tt:Analytics><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.2.0.0</tt:IPv4Address></tt:Address><tt:Port>40020</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:MetadataConfiguration><tt:Extension><tt:AudioOutputConfiguration token="00000"><tt:Name>AudioOutputConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:OutputToken>00000</tt:OutputToken><tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy><tt:OutputLevel>50</tt:OutputLevel></tt:AudioOutputConfiguration><tt:AudioDecoderConfiguration token="00000"><tt:Name>AudioDecoderConfig_Channel1_MainStream</tt:Name><tt:UseCount>1</tt:UseCount></tt:AudioDecoderConfiguration></tt:Extension></trt:Profiles><trt:Profiles token="MediaProfile00001" fixed="true"><tt:Name>MediaProfile_Channel1_SubStream1</tt:Name><tt:VideoSourceConfiguration token="00000"><tt:Name>VideoSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken><tt:Bounds x="0" y="0" width="2048" height="1536"/><tt:Extension><tt:Rotate><tt:Mode>OFF</tt:Mode></tt:Rotate></tt:Extension></tt:VideoSourceConfiguration><tt:AudioSourceConfiguration token="00000"><tt:Name>AudioSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken></tt:AudioSourceConfiguration><tt:VideoEncoderConfiguration token="00001"><tt:Name>VideoEncoderConfig_Channel1_SubStream1</tt:Name><tt:UseCount>1</tt:UseCount><tt:Encoding>H264</tt:Encoding><tt:Resolution><tt:Width>704</tt:Width><tt:Height>576</tt:Height></tt:Resolution><tt:Quality>4.000000</tt:Quality><tt:RateControl><tt:FrameRateLimit>25</tt:FrameRateLimit><tt:EncodingInterval>1</tt:EncodingInterval><tt:BitrateLimit>1024</tt:BitrateLimit></tt:RateControl><tt:H264><tt:GovLength>50</tt:GovLength><tt:H264Profile>Main</tt:H264Profile></tt:H264><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.1.0.1</tt:IPv4Address></tt:Address><tt:Port>40008</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:VideoEncoderConfiguration><tt:AudioEncoderConfiguration token="00001"><tt:Name>AudioEncoderConfig_Channel1_SubStream1</tt:Name><tt:UseCount>1</tt:UseCount><tt:Encoding>G711</tt:Encoding><tt:Bitrate>32</tt:Bitrate><tt:SampleRate>8</tt:SampleRate><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.1.0.1</tt:IPv4Address></tt:Address><tt:Port>40010</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:AudioEncoderConfiguration><tt:VideoAnalyticsConfiguration token="00000"><tt:Name>AnalyticsConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:AnalyticsEngineConfiguration><tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine"><tt:Parameters><tt:SimpleItem Name="Sensitivity" Value="70"/><tt:ElementItem Name="Layout"><tt:CellLayout Columns="22" Rows="18"><tt:Transformation><tt:Translate x="-1" y="-1"/><tt:Scale x="0.00625" y="0.00834"/></tt:Transformation></tt:CellLayout></tt:ElementItem></tt:Parameters></tt:AnalyticsModule></tt:AnalyticsEngineConfiguration><tt:RuleEngineConfiguration><tt:Rule Name="Region1" Type="tt:CellMotionDetector"><tt:Parameters><tt:SimpleItem Name="MinCount" Value="20"/><tt:SimpleItem Name="AlarmOnDelay" Value="1000"/><tt:SimpleItem Name="AlarmOffDelay" Value="1000"/><tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/></tt:Parameters></tt:Rule></tt:RuleEngineConfiguration></tt:VideoAnalyticsConfiguration><tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0"><tt:Name>PTZConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:NodeToken>00000</tt:NodeToken><tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace><tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace><tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace><tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace><tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace><tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace><tt:DefaultPTZSpeed><tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/><tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/></tt:DefaultPTZSpeed><tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout><tt:PanTiltLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange><tt:YRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:YRange></tt:Range></tt:PanTiltLimits><tt:ZoomLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>0.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange></tt:Range></tt:ZoomLimits></tt:PTZConfiguration><tt:MetadataConfiguration token="00000" CompressionType=""><tt:Name>MetadataConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:PTZStatus><tt:Status>false</tt:Status><tt:Position>false</tt:Position></tt:PTZStatus><tt:Events><tt:Filter><wsnt:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression></tt:Filter></tt:Events><tt:Analytics>true</tt:Analytics><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.2.0.0</tt:IPv4Address></tt:Address><tt:Port>40020</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:MetadataConfiguration><tt:Extension><tt:AudioOutputConfiguration token="00000"><tt:Name>AudioOutputConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:OutputToken>00000</tt:OutputToken><tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy><tt:OutputLevel>50</tt:OutputLevel></tt:AudioOutputConfiguration><tt:AudioDecoderConfiguration token="00001"><tt:Name>AudioDecoderConfig_Channel1_SubStream1</tt:Name><tt:UseCount>1</tt:UseCount></tt:AudioDecoderConfiguration></tt:Extension></trt:Profiles><trt:Profiles token="MediaProfile00002" fixed="true"><tt:Name>MediaProfile_Channel1_SubStream2</tt:Name><tt:VideoSourceConfiguration token="00000"><tt:Name>VideoSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken><tt:Bounds x="0" y="0" width="2048" height="1536"/><tt:Extension><tt:Rotate><tt:Mode>OFF</tt:Mode></tt:Rotate></tt:Extension></tt:VideoSourceConfiguration><tt:AudioSourceConfiguration token="00000"><tt:Name>AudioSourceConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:SourceToken>00000</tt:SourceToken></tt:AudioSourceConfiguration><tt:VideoEncoderConfiguration token="00002"><tt:Name>VideoEncoderConfig_Channel1_SubStream2</tt:Name><tt:UseCount>1</tt:UseCount><tt:Encoding>H264</tt:Encoding><tt:Resolution><tt:Width>1280</tt:Width><tt:Height>720</tt:Height></tt:Resolution><tt:Quality>4.000000</tt:Quality><tt:RateControl><tt:FrameRateLimit>25</tt:FrameRateLimit><tt:EncodingInterval>1</tt:EncodingInterval><tt:BitrateLimit>2048</tt:BitrateLimit></tt:RateControl><tt:H264><tt:GovLength>50</tt:GovLength><tt:H264Profile>High</tt:H264Profile></tt:H264><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.1.0.2</tt:IPv4Address></tt:Address><tt:Port>40016</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:VideoEncoderConfiguration><tt:AudioEncoderConfiguration token="00002"><tt:Name>AudioEncoderConfig_Channel1_SubStream2</tt:Name><tt:UseCount>1</tt:UseCount><tt:Encoding>G711</tt:Encoding><tt:Bitrate>32</tt:Bitrate><tt:SampleRate>8</tt:SampleRate><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.1.0.2</tt:IPv4Address></tt:Address><tt:Port>40018</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:AudioEncoderConfiguration><tt:VideoAnalyticsConfiguration token="00000"><tt:Name>AnalyticsConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:AnalyticsEngineConfiguration><tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine"><tt:Parameters><tt:SimpleItem Name="Sensitivity" Value="70"/><tt:ElementItem Name="Layout"><tt:CellLayout Columns="22" Rows="18"><tt:Transformation><tt:Translate x="-1" y="-1"/><tt:Scale x="0.00625" y="0.00834"/></tt:Transformation></tt:CellLayout></tt:ElementItem></tt:Parameters></tt:AnalyticsModule></tt:AnalyticsEngineConfiguration><tt:RuleEngineConfiguration><tt:Rule Name="Region1" Type="tt:CellMotionDetector"><tt:Parameters><tt:SimpleItem Name="MinCount" Value="20"/><tt:SimpleItem Name="AlarmOnDelay" Value="1000"/><tt:SimpleItem Name="AlarmOffDelay" Value="1000"/><tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/></tt:Parameters></tt:Rule></tt:RuleEngineConfiguration></tt:VideoAnalyticsConfiguration><tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0"><tt:Name>PTZConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:NodeToken>00000</tt:NodeToken><tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace><tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace><tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace><tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace><tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace><tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace><tt:DefaultPTZSpeed><tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/><tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/></tt:DefaultPTZSpeed><tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout><tt:PanTiltLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange><tt:YRange><tt:Min>-1.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:YRange></tt:Range></tt:PanTiltLimits><tt:ZoomLimits><tt:Range><tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI><tt:XRange><tt:Min>0.000000</tt:Min><tt:Max>1.000000</tt:Max></tt:XRange></tt:Range></tt:ZoomLimits></tt:PTZConfiguration><tt:MetadataConfiguration token="00000" CompressionType=""><tt:Name>MetadataConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:PTZStatus><tt:Status>false</tt:Status><tt:Position>false</tt:Position></tt:PTZStatus><tt:Events><tt:Filter><wsnt:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression></tt:Filter></tt:Events><tt:Analytics>true</tt:Analytics><tt:Multicast><tt:Address><tt:Type>IPv4</tt:Type><tt:IPv4Address>224.2.0.0</tt:IPv4Address></tt:Address><tt:Port>40020</tt:Port><tt:TTL>64</tt:TTL><tt:AutoStart>false</tt:AutoStart></tt:Multicast><tt:SessionTimeout>PT60S</tt:SessionTimeout></tt:MetadataConfiguration><tt:Extension><tt:AudioOutputConfiguration token="00000"><tt:Name>AudioOutputConfig_Channel1</tt:Name><tt:UseCount>3</tt:UseCount><tt:OutputToken>00000</tt:OutputToken><tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy><tt:OutputLevel>50</tt:OutputLevel></tt:AudioOutputConfiguration><tt:AudioDecoderConfiguration token="00002"><tt:Name>AudioDecoderConfig_Channel1_SubStream2</tt:Name><tt:UseCount>1</tt:UseCount></tt:AudioDecoderConfiguration></tt:Extension></trt:Profiles></trt:GetProfilesResponse></s:Body></s:Envelope>

Prettified Response:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<s:Envelope xmlns:sc="http://www.w3.org/2003/05/soap-encoding" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
  <s:Header/>
  <s:Body>
    <trt:GetProfilesResponse>
      <trt:Profiles token="MediaProfile00000" fixed="true">
        <tt:Name>MediaProfile_Channel1_MainStream</tt:Name>
        <tt:VideoSourceConfiguration token="00000">
          <tt:Name>VideoSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
          <tt:Bounds x="0" y="0" width="2048" height="1536"/>
          <tt:Extension>
            <tt:Rotate>
              <tt:Mode>OFF</tt:Mode>
            </tt:Rotate>
          </tt:Extension>
        </tt:VideoSourceConfiguration>
        <tt:AudioSourceConfiguration token="00000">
          <tt:Name>AudioSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
        </tt:AudioSourceConfiguration>
        <tt:VideoEncoderConfiguration token="00000">
          <tt:Name>VideoEncoderConfig_Channel1_MainStream</tt:Name>
          <tt:UseCount>1</tt:UseCount>
        </tt:VideoEncoderConfiguration>
        <tt:AudioEncoderConfiguration token="00000">
          <tt:Name>AudioEncoderConfig_Channel1_MainStream</tt:Name>
          <tt:UseCount>1</tt:UseCount>
          <tt:Encoding>G711</tt:Encoding>
          <tt:Bitrate>32</tt:Bitrate>
          <tt:SampleRate>8</tt:SampleRate>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.1.0.0</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40002</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:AudioEncoderConfiguration>
        <tt:VideoAnalyticsConfiguration token="00000">
          <tt:Name>AnalyticsConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:AnalyticsEngineConfiguration>
            <tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine">
              <tt:Parameters>
                <tt:SimpleItem Name="Sensitivity" Value="70"/>
                <tt:ElementItem Name="Layout">
                  <tt:CellLayout Columns="22" Rows="18">
                    <tt:Transformation>
                      <tt:Translate x="-1" y="-1"/>
                      <tt:Scale x="0.00625" y="0.00834"/>
                    </tt:Transformation>
                  </tt:CellLayout>
                </tt:ElementItem>
              </tt:Parameters>
            </tt:AnalyticsModule>
          </tt:AnalyticsEngineConfiguration>
          <tt:RuleEngineConfiguration>
            <tt:Rule Name="Region1" Type="tt:CellMotionDetector">
              <tt:Parameters>
                <tt:SimpleItem Name="MinCount" Value="20"/>
                <tt:SimpleItem Name="AlarmOnDelay" Value="1000"/>
                <tt:SimpleItem Name="AlarmOffDelay" Value="1000"/>
                <tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/>
              </tt:Parameters>
            </tt:Rule>
          </tt:RuleEngineConfiguration>
        </tt:VideoAnalyticsConfiguration>
        <tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0">
          <tt:Name>PTZConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:NodeToken>00000</tt:NodeToken>
          <tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace>
          <tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace>
          <tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace>
          <tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace>
          <tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>
          <tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>
          <tt:DefaultPTZSpeed>
            <tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/>
            <tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/>
          </tt:DefaultPTZSpeed>
          <tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout>
          <tt:PanTiltLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
              <tt:YRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:YRange>
            </tt:Range>
          </tt:PanTiltLimits>
          <tt:ZoomLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>0.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
            </tt:Range>
          </tt:ZoomLimits>
        </tt:PTZConfiguration>
        <tt:MetadataConfiguration token="00000" CompressionType="">
          <tt:Name>MetadataConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:PTZStatus>
            <tt:Status>false</tt:Status>
            <tt:Position>false</tt:Position>
          </tt:PTZStatus>
          <tt:Events>
            <tt:Filter>
              <wsnt:TopicExpression xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics" Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression>
            </tt:Filter>
          </tt:Events>
          <tt:Analytics>true</tt:Analytics>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.2.0.0</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40020</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:MetadataConfiguration>
        <tt:Extension>
          <tt:AudioOutputConfiguration token="00000">
            <tt:Name>AudioOutputConfig_Channel1</tt:Name>
            <tt:UseCount>3</tt:UseCount>
            <tt:OutputToken>00000</tt:OutputToken>
            <tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy>
            <tt:OutputLevel>50</tt:OutputLevel>
          </tt:AudioOutputConfiguration>
          <tt:AudioDecoderConfiguration token="00000">
            <tt:Name>AudioDecoderConfig_Channel1_MainStream</tt:Name>
            <tt:UseCount>1</tt:UseCount>
          </tt:AudioDecoderConfiguration>
        </tt:Extension>
      </trt:Profiles>
      <trt:Profiles token="MediaProfile00001" fixed="true">
        <tt:Name>MediaProfile_Channel1_SubStream1</tt:Name>
        <tt:VideoSourceConfiguration token="00000">
          <tt:Name>VideoSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
          <tt:Bounds x="0" y="0" width="2048" height="1536"/>
          <tt:Extension>
            <tt:Rotate>
              <tt:Mode>OFF</tt:Mode>
            </tt:Rotate>
          </tt:Extension>
        </tt:VideoSourceConfiguration>
        <tt:AudioSourceConfiguration token="00000">
          <tt:Name>AudioSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
        </tt:AudioSourceConfiguration>
        <tt:VideoEncoderConfiguration token="00001">
          <tt:Name>VideoEncoderConfig_Channel1_SubStream1</tt:Name>
          <tt:UseCount>1</tt:UseCount>
          <tt:Encoding>H264</tt:Encoding>
          <tt:Resolution>
            <tt:Width>704</tt:Width>
            <tt:Height>576</tt:Height>
          </tt:Resolution>
          <tt:Quality>4.000000</tt:Quality>
          <tt:RateControl>
            <tt:FrameRateLimit>25</tt:FrameRateLimit>
            <tt:EncodingInterval>1</tt:EncodingInterval>
            <tt:BitrateLimit>1024</tt:BitrateLimit>
          </tt:RateControl>
          <tt:H264>
            <tt:GovLength>50</tt:GovLength>
            <tt:H264Profile>Main</tt:H264Profile>
          </tt:H264>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.1.0.1</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40008</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:VideoEncoderConfiguration>
        <tt:AudioEncoderConfiguration token="00001">
          <tt:Name>AudioEncoderConfig_Channel1_SubStream1</tt:Name>
          <tt:UseCount>1</tt:UseCount>
          <tt:Encoding>G711</tt:Encoding>
          <tt:Bitrate>32</tt:Bitrate>
          <tt:SampleRate>8</tt:SampleRate>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.1.0.1</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40010</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:AudioEncoderConfiguration>
        <tt:VideoAnalyticsConfiguration token="00000">
          <tt:Name>AnalyticsConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:AnalyticsEngineConfiguration>
            <tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine">
              <tt:Parameters>
                <tt:SimpleItem Name="Sensitivity" Value="70"/>
                <tt:ElementItem Name="Layout">
                  <tt:CellLayout Columns="22" Rows="18">
                    <tt:Transformation>
                      <tt:Translate x="-1" y="-1"/>
                      <tt:Scale x="0.00625" y="0.00834"/>
                    </tt:Transformation>
                  </tt:CellLayout>
                </tt:ElementItem>
              </tt:Parameters>
            </tt:AnalyticsModule>
          </tt:AnalyticsEngineConfiguration>
          <tt:RuleEngineConfiguration>
            <tt:Rule Name="Region1" Type="tt:CellMotionDetector">
              <tt:Parameters>
                <tt:SimpleItem Name="MinCount" Value="20"/>
                <tt:SimpleItem Name="AlarmOnDelay" Value="1000"/>
                <tt:SimpleItem Name="AlarmOffDelay" Value="1000"/>
                <tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/>
              </tt:Parameters>
            </tt:Rule>
          </tt:RuleEngineConfiguration>
        </tt:VideoAnalyticsConfiguration>
        <tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0">
          <tt:Name>PTZConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:NodeToken>00000</tt:NodeToken>
          <tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace>
          <tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace>
          <tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace>
          <tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace>
          <tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>
          <tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>
          <tt:DefaultPTZSpeed>
            <tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/>
            <tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/>
          </tt:DefaultPTZSpeed>
          <tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout>
          <tt:PanTiltLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
              <tt:YRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:YRange>
            </tt:Range>
          </tt:PanTiltLimits>
          <tt:ZoomLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>0.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
            </tt:Range>
          </tt:ZoomLimits>
        </tt:PTZConfiguration>
        <tt:MetadataConfiguration token="00000" CompressionType="">
          <tt:Name>MetadataConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:PTZStatus>
            <tt:Status>false</tt:Status>
            <tt:Position>false</tt:Position>
          </tt:PTZStatus>
          <tt:Events>
            <tt:Filter>
              <wsnt:TopicExpression xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics" Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression>
            </tt:Filter>
          </tt:Events>
          <tt:Analytics>true</tt:Analytics>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.2.0.0</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40020</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:MetadataConfiguration>
        <tt:Extension>
          <tt:AudioOutputConfiguration token="00000">
            <tt:Name>AudioOutputConfig_Channel1</tt:Name>
            <tt:UseCount>3</tt:UseCount>
            <tt:OutputToken>00000</tt:OutputToken>
            <tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy>
            <tt:OutputLevel>50</tt:OutputLevel>
          </tt:AudioOutputConfiguration>
          <tt:AudioDecoderConfiguration token="00001">
            <tt:Name>AudioDecoderConfig_Channel1_SubStream1</tt:Name>
            <tt:UseCount>1</tt:UseCount>
          </tt:AudioDecoderConfiguration>
        </tt:Extension>
      </trt:Profiles>
      <trt:Profiles token="MediaProfile00002" fixed="true">
        <tt:Name>MediaProfile_Channel1_SubStream2</tt:Name>
        <tt:VideoSourceConfiguration token="00000">
          <tt:Name>VideoSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
          <tt:Bounds x="0" y="0" width="2048" height="1536"/>
          <tt:Extension>
            <tt:Rotate>
              <tt:Mode>OFF</tt:Mode>
            </tt:Rotate>
          </tt:Extension>
        </tt:VideoSourceConfiguration>
        <tt:AudioSourceConfiguration token="00000">
          <tt:Name>AudioSourceConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:SourceToken>00000</tt:SourceToken>
        </tt:AudioSourceConfiguration>
        <tt:VideoEncoderConfiguration token="00002">
          <tt:Name>VideoEncoderConfig_Channel1_SubStream2</tt:Name>
          <tt:UseCount>1</tt:UseCount>
          <tt:Encoding>H264</tt:Encoding>
          <tt:Resolution>
            <tt:Width>1280</tt:Width>
            <tt:Height>720</tt:Height>
          </tt:Resolution>
          <tt:Quality>4.000000</tt:Quality>
          <tt:RateControl>
            <tt:FrameRateLimit>25</tt:FrameRateLimit>
            <tt:EncodingInterval>1</tt:EncodingInterval>
            <tt:BitrateLimit>2048</tt:BitrateLimit>
          </tt:RateControl>
          <tt:H264>
            <tt:GovLength>50</tt:GovLength>
            <tt:H264Profile>High</tt:H264Profile>
          </tt:H264>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.1.0.2</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40016</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:VideoEncoderConfiguration>
        <tt:AudioEncoderConfiguration token="00002">
          <tt:Name>AudioEncoderConfig_Channel1_SubStream2</tt:Name>
          <tt:UseCount>1</tt:UseCount>
          <tt:Encoding>G711</tt:Encoding>
          <tt:Bitrate>32</tt:Bitrate>
          <tt:SampleRate>8</tt:SampleRate>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.1.0.2</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40018</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:AudioEncoderConfiguration>
        <tt:VideoAnalyticsConfiguration token="00000">
          <tt:Name>AnalyticsConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:AnalyticsEngineConfiguration>
            <tt:AnalyticsModule Name="MyCellMotion" Type="tt:CellMotionEngine">
              <tt:Parameters>
                <tt:SimpleItem Name="Sensitivity" Value="70"/>
                <tt:ElementItem Name="Layout">
                  <tt:CellLayout Columns="22" Rows="18">
                    <tt:Transformation>
                      <tt:Translate x="-1" y="-1"/>
                      <tt:Scale x="0.00625" y="0.00834"/>
                    </tt:Transformation>
                  </tt:CellLayout>
                </tt:ElementItem>
              </tt:Parameters>
            </tt:AnalyticsModule>
          </tt:AnalyticsEngineConfiguration>
          <tt:RuleEngineConfiguration>
            <tt:Rule Name="Region1" Type="tt:CellMotionDetector">
              <tt:Parameters>
                <tt:SimpleItem Name="MinCount" Value="20"/>
                <tt:SimpleItem Name="AlarmOnDelay" Value="1000"/>
                <tt:SimpleItem Name="AlarmOffDelay" Value="1000"/>
                <tt:SimpleItem Name="ActiveCells" Value="0P8A8A=="/>
              </tt:Parameters>
            </tt:Rule>
          </tt:RuleEngineConfiguration>
        </tt:VideoAnalyticsConfiguration>
        <tt:PTZConfiguration token="00000" MoveRamp="0" PresetRamp="0" PresetTourRamp="0">
          <tt:Name>PTZConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:NodeToken>00000</tt:NodeToken>
          <tt:DefaultAbsolutePantTiltPositionSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace>
          <tt:DefaultAbsoluteZoomPositionSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace>
          <tt:DefaultRelativePanTiltTranslationSpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace>
          <tt:DefaultRelativeZoomTranslationSpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace>
          <tt:DefaultContinuousPanTiltVelocitySpace>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace>
          <tt:DefaultContinuousZoomVelocitySpace>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace>
          <tt:DefaultPTZSpeed>
            <tt:PanTilt space="http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace" x="0.80000001192092896" y="0.80000001192092896"/>
            <tt:Zoom space="http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace" x="0.80000001192092896"/>
          </tt:DefaultPTZSpeed>
          <tt:DefaultPTZTimeout>PT10S</tt:DefaultPTZTimeout>
          <tt:PanTiltLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
              <tt:YRange>
                <tt:Min>-1.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:YRange>
            </tt:Range>
          </tt:PanTiltLimits>
          <tt:ZoomLimits>
            <tt:Range>
              <tt:URI>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:URI>
              <tt:XRange>
                <tt:Min>0.000000</tt:Min>
                <tt:Max>1.000000</tt:Max>
              </tt:XRange>
            </tt:Range>
          </tt:ZoomLimits>
        </tt:PTZConfiguration>
        <tt:MetadataConfiguration token="00000" CompressionType="">
          <tt:Name>MetadataConfig_Channel1</tt:Name>
          <tt:UseCount>3</tt:UseCount>
          <tt:PTZStatus>
            <tt:Status>false</tt:Status>
            <tt:Position>false</tt:Position>
          </tt:PTZStatus>
          <tt:Events>
            <tt:Filter>
              <wsnt:TopicExpression xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tns1="http://www.onvif.org/ver10/topics" Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">tns1:RuleEngine/CellMotionDetector/Motion</wsnt:TopicExpression>
            </tt:Filter>
          </tt:Events>
          <tt:Analytics>true</tt:Analytics>
          <tt:Multicast>
            <tt:Address>
              <tt:Type>IPv4</tt:Type>
              <tt:IPv4Address>224.2.0.0</tt:IPv4Address>
            </tt:Address>
            <tt:Port>40020</tt:Port>
            <tt:TTL>64</tt:TTL>
            <tt:AutoStart>false</tt:AutoStart>
          </tt:Multicast>
          <tt:SessionTimeout>PT60S</tt:SessionTimeout>
        </tt:MetadataConfiguration>
        <tt:Extension>
          <tt:AudioOutputConfiguration token="00000">
            <tt:Name>AudioOutputConfig_Channel1</tt:Name>
            <tt:UseCount>3</tt:UseCount>
            <tt:OutputToken>00000</tt:OutputToken>
            <tt:SendPrimacy>www.onvif.org/ver20/HalfDuplex/Auto</tt:SendPrimacy>
            <tt:OutputLevel>50</tt:OutputLevel>
          </tt:AudioOutputConfiguration>
          <tt:AudioDecoderConfiguration token="00002">
            <tt:Name>AudioDecoderConfig_Channel1_SubStream2</tt:Name>
            <tt:UseCount>1</tt:UseCount>
          </tt:AudioDecoderConfiguration>
        </tt:Extension>
      </trt:Profiles>
    </trt:GetProfilesResponse>
  </s:Body>
</s:Envelope>
Analysis
  • Profile Retrieval: The camera successfully returned the profiles.

  • Authentication: No issues detected.


Camera 2: DH-SD3A210-GN-A-PV

Response:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:sc="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"><s:Body><s:Fault><s:Code><s:Value>s:Sender</s:Value><s:Subcode><s:Value>ter:NotAuthorized</s:Value></s:Subcode></s:Code><s:Reason><s:Text xml:lang="en">Sender not Authorized. Invalid username or password! You still have 5 attempt(s).</s:Text></s:Reason></s:Fault></s:Body></s:Envelope>

Prettified Response:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:sc="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery">
  <s:Body>
    <s:Fault>
      <s:Code>
        <s:Value>s:Sender</s:Value>
        <s:Subcode>
          <s:Value>ter:NotAuthorized</s:Value>
        </s:Subcode>
      </s:Code>
      <s:Reason>
        <s:Text xml:lang="en">Sender not Authorized. Invalid username or password! You still have 5 attempt(s).</s:Text>
      </s:Reason>
    </s:Fault>
  </s:Body>
</s:Envelope>
Analysis
  • Profile Retrieval: The camera returned an ONVIF response indicating that authentication has failed.

  • Authentication: Authentication failure detected.


Conclusion

After extensive testing, it was observed that Camera 1 (DH-SD3A205-GNP-PV) successfully responded to the ONVIF request and returned the profiles without any authentication issues. However, Camera 2 (DH-SD3A210-GN-A-PV) failed to authenticate, resulting in an ONVIF response indicating authentication failure. This discrepancy highlights the issue with the authentication mechanism of Camera 2(DH-SD3A210-GN-A-PV) causing incompatibility with ONVIF based softwares.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment