Skip to content
48 changes: 48 additions & 0 deletions doc/Core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3170,6 +3170,14 @@ onvif://www.onvif.org/name/ARV-453
Section <xref linkend="_Ref276040029"/>.</para>
</entry>
</row>
<row>
<entry>
<para>AvailableFirmwareListing</para>
</entry>
<entry>
<para>Indication if the device supports firmware listing as specified in Section <xref linkend="_Ref276040130" />.</para>
</entry>
</row>
<row>
<entry>
<para>SystemLogging</para>
Expand Down Expand Up @@ -4997,6 +5005,46 @@ onvif://www.onvif.org/name/ARV-453
<para xml:id="_Ref276040030">In case it is not possible to provide exact figures for
ExpectedDownTime, the device shall provide best-effort estimates.</para>
</section>
<section xml:id="_Ref276040130">
<title>GetAvailableFirmwares</title>
<para>This operation retrieves a list of available firmware versions for the device.</para>
<para>The returned list contains firmware information including version, description, and optional information about the release date and whether it is a beta version. The firmware versions returned can be used with the <emphasis role="bold">UpgradeFirmware</emphasis> operation.</para>
<para>The device shall list only firmware versions that are valid upgrade or downgrade from the current firmware version. If none of the returned firmware versions have the IsLatest flag set, the client may call this operation again after completing a firmware upgrade to obtain an updated list of available versions.</para>
<para>When requesting for old firmware using IncludePreviousVersions, listing old firmware versions is up to the device implementation; not all devices may support this.</para>
<variablelist role="op">
<varlistentry>
<term>request</term>
<listitem>
<para role="param">IncludeBeta - optional [xs:boolean]</para>
<para role="text">Optional flag to include beta firmware versions in the response. If not specified or set to false, only stable firmware versions are returned. Note that beta versions may not be available for devices via this channel.</para>
</listitem>
<listitem>
<para role="param">IncludePreviousVersions - optional [xs:boolean]</para>
<para role="text">Optional flag to include previous firmware versions in the response. If not specified or set to false, only the latest versions are returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>response</term>
<listitem>
<para role="param">FirmwareInfo [tds:FirmwareInfo] optional unbounded</para>
<para role="text">List of available firmware versions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>faults</term>
<listitem>
<para role="param" />
<para role="text">No command-specific faults.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>access class</term>
<listitem>
<para role="access">READ_SYSTEM</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="_Ref482093370">
<title>GetSystemLog</title>
<para>This operation gets a system log from a device. The device should support system log information retrieval through the GetSystemLog command. The exact format of the system logs is <emphasis>outside the scope </emphasis>of this standard.</para>
Expand Down
90 changes: 90 additions & 0 deletions wsdl/ver10/device/wsdl/devicemgmt.wsdl
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,11 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
<xs:documentation>Indicates support for firmware upgrade through the cloud.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AvailableFirmwareListing" type="xs:boolean">
<xs:annotation>
<xs:documentation>Specifies support for retrieving the list of available firmware through GetAvailableFirmwares.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HttpFirmwareUpgrade" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates support for firmware upgrade through HTTP.</xs:documentation>
Expand Down Expand Up @@ -2494,6 +2499,69 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
</xs:complexType>
</xs:element>
<!--===============================-->
<xs:element name="GetAvailableFirmwares">
<xs:complexType>
<xs:sequence>
<xs:element name="IncludeBeta" type="xs:boolean" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Optional flag to include beta firmware versions in the response. If not passed, only stable firmware versions would be listed. Note that beta versions may not be available for devices via this channel.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IncludePreviousVersions" type="xs:boolean" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation> Optional flag to include previous firmware versions in the response (for downgrade or rollback). If not passed, only newer firmware versions would be listed. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <!-- first Vendor then ONVIF -->
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:element name="GetAvailableFirmwaresResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="FirmwareInfo" type="tds:FirmwareInfo" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of available firmware versions.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <!-- first Vendor then ONVIF -->
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:complexType name="FirmwareInfo">
<xs:sequence>
<xs:element name="FirmwareVersion" type="xs:string">
<xs:annotation>
<xs:documentation>Version identifier of the firmware.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FirmwareDescription" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Description of the firmware version.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReleaseDate" type="xs:dateTime" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The release date of the firmware version.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <!-- first Vendor then ONVIF -->
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is the ##any to be added at the end i.e after IsLatest attribute?

</xs:sequence>
<xs:attribute name="Beta" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>Indicates whether the firmware version is a beta release.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IsLatest" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>Indicates whether the firmware version is the latest official release.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
<!--===============================-->
<!--===============================-->
</xs:schema>
</wsdl:types>
Expand Down Expand Up @@ -3116,6 +3184,12 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
<wsdl:message name="SetHashingAlgorithmResponse">
<wsdl:part name="parameters" element="tds:SetHashingAlgorithmResponse"/>
</wsdl:message>
<wsdl:message name="GetAvailableFirmwaresRequest">
<wsdl:part name="parameters" element="tds:GetAvailableFirmwares"/>
</wsdl:message>
<wsdl:message name="GetAvailableFirmwaresResponse">
<wsdl:part name="parameters" element="tds:GetAvailableFirmwaresResponse"/>
</wsdl:message>

<wsdl:portType name="Device">
<wsdl:operation name="GetServices">
Expand Down Expand Up @@ -3771,6 +3845,13 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
<wsdl:input message="tds:SetHashingAlgorithmRequest"/>
<wsdl:output message="tds:SetHashingAlgorithmResponse"/>
</wsdl:operation>
<wsdl:operation name="GetAvailableFirmwares">
<wsdl:documentation>
This operation returns the list of firmware versions available for the device. The retrieved firmware name can then be used with the UpgradeFirmware operation.
</wsdl:documentation>
<wsdl:input message="tds:GetAvailableFirmwaresRequest"/>
<wsdl:output message="tds:GetAvailableFirmwaresResponse"/>
</wsdl:operation>

<!--===============================-->
<!--The definition and interfaces for the Security have been deprecated with release 16.12
Expand Down Expand Up @@ -4783,6 +4864,15 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAvailableFirmwares">
<soap:operation soapAction="http://www.onvif.org/ver10/device/wsdl/GetAvailableFirmwares"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>


</wsdl:binding>
Expand Down