Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 55 additions & 5 deletions doc/Core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1310,10 +1310,11 @@
stage process; first the client sends the StartFirmwareUpgrade command to instruct the
device to prepare for upgrade, then it sends the firmware image using HTTP POST.</para>
<para>The HTTP method is designed for resource-limited devices that may not be capable of receiving a new firmware image in its normal operating state.</para>
<para>The second method applies to cloud connected devices and involves an interaction
between the Operational Cloud Service (OCS), the Manufacturer Cloud Service (MCS) and the
device, in order to trigger the firmware upgrade. For the complete description of the
roles of the cloud clients, please refer to the Cloud Integration Specification.</para>
<para>The second method applies to cloud connected devices. A simple interface allows
upgrading firmware by providing a requested version. The device interacts via propriatary
means with its manufacturer cloud to perform the requested update. Available options can
be retrieved via the method GetAvailableFirmwares or the Manufacturer Cloud Service
(MCS).</para>
</section>
<section>
<title>System Restore</title>
Expand Down Expand Up @@ -3170,6 +3171,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 @@ -4945,7 +4954,8 @@ onvif://www.onvif.org/name/ARV-453
<para>Cloud firmware upgrade may be achieved using the following steps:</para>
<orderedlist>
<listitem>
<para>Client retrieves the list of available firmware versions from the MCS.</para>
<para>Client retrieves the list of available firmware versions via GetAvailableFirmwares
or from the MCS.</para>
</listitem>
<listitem>
<para>Client calls StartCloudFirmwareUpgrade, selecting the desired FW version.</para>
Expand Down Expand Up @@ -4997,6 +5007,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 the firmware version string, description, and optional information about the release date, release information URI, and whether it is a beta version. The firmware version strings returned shall be valid values for the Version parameter of the <emphasis role="bold">UpgradeFirmware</emphasis> operation.</para>
<para>The device shall list only firmware versions that are valid upgrade or downgrade targets from the current firmware version. If no such firmware version exists, the response shall contain an empty list. 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 newer firmware 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
91 changes: 91 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,70 @@ 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:sequence>
</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. If no valid upgrade or downgrade target exists, the list shall be empty.</xs:documentation>
</xs:annotation>
</xs:element>
Comment thread
sujithhanwha marked this conversation as resolved.
</xs:sequence>
</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:element name="ReleaseInfoUri" type="xs:anyURI" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>URI of release information for the firmware version, such as a release letter or release notes.</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?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

xs:any is fine here, as it must be part of the sequence.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggest to add an optional item for link to release information like release letter.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

added this optional ReleaseInfoUri param.

</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 +3185,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 +3846,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 returned firmware version strings shall be valid values for the Version parameter of 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 +4865,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