Skip to content

Conversation

@sujithhanwha
Copy link
Contributor

Provides a device‑side method for listing available firmware, serving as an alternative to the cloud‑based getAvailableFWImages in the CloudIntegration specification.
Please review.

@ocampana-videotec
Copy link
Collaborator

@sujithhanwha what do you mean with official? Do you want to support release candidates or similar versions?

@sujithhanwha
Copy link
Contributor Author

sujithhanwha commented Jan 24, 2026

@sujithhanwha what do you mean with official? Do you want to support release candidates or similar versions?
We could also list non official firmware some thing like customized FW or Beta FW with some fix etc., that was the intention.

@HansBusch
Copy link
Member

Like the approach.

Only suggested change is to default the API to released versions which the customer can use with guaranteed functionality.

Not sure whether we want to promote distribution of unofficial aka beta software as for some companies betas may only be provided after signing some special agreement. Due to this I suggest to change the option to IncludeBeta and write in the text that beta versions may not be available for devices via this channel. Similarly I suggest to invert the property Official to Beta as by default firmware should be released.

@sujithhanwha
Copy link
Contributor Author

Like the approach.

Only suggested change is to default the API to released versions which the customer can use with guaranteed functionality.

Not sure whether we want to promote distribution of unofficial aka beta software as for some companies betas may only be provided after signing some special agreement. Due to this I suggest to change the option to IncludeBeta and write in the text that beta versions may not be available for devices via this channel. Similarly I suggest to invert the property Official to Beta as by default firmware should be released.

Agree with your suggestion and have updated the flag accordingly. Please review.

</xs:element>
<xs:complexType name="FirmwareInfo">
<xs:sequence>
<xs:element name="FirmwareName" type="xs:string">
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this intended to be the version or more a friendly name? Maybe Version is more appropriate name.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is this intended to be the version or more a friendly name? Maybe Version is more appropriate name.

@cpiette-gen , Agree, version is more appropriate will update it to version.

doc/Core.xml Outdated
<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 name, description, and optional information about the release date, whether it is a beta version, and whether it is a bridge firmware essential for upgrade or downgrade. The firmware names returned can be used with the <emphasis role="bold">UpgradeFirmware</emphasis> operation.</para>
Copy link
Contributor

Choose a reason for hiding this comment

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

Reading this and the UpgradeFirmware call, it is unclear to me how the device (or client?) has to handle Bridge Firmwares. I've seen devices where bridge firmwares are partial firmwares, where the device is essentially not functional, and simply expects a further upgrade to a "real" firmware. In those scenarios, I would expect that UpgradeFirmware handles those seemlessly for the user.

Scenario 1

I am on firmware 1.23
There is version 2.00 available, but it requires a bridge firmware 1.99

GetAvailableFirmwares list 2.00 as available. And UpgradeFirmware to 2.00 will automatically fetch 1.99, install it, then install 2.00 as the user requested. This step by step process would be implemented by the device itself (and any necessary supporting services from the manufacturer) without intervention from the User.

Is that scenario correct? Am I expecting too much from the device? What are the other options?

Scenario 2

I am on firmware 1.23
There is a version 2.00 available, but it requires a bridge firmware 1.99

GetAvailableFirmwares list 1.99 available only, flagged as bridge firmware. 2.00 is not available (the device can't jump to it directly)

The user will UpgradeFirmware to 1.99, and since the bridge firmware was enabled, it will be expected to immediately query GetAvailableFirmwares again, find 2.00 and then upgrade to it immediately, as the bridge firmware is not expected to be fully features (but will at the very least need to connect to the uplink for example?)


I'm curious about which scenario is the expected one, we don't seem to require one of them (but I feel we probably should). We're partial to scenario 1, as it is much more straightforward. But I'm wondering what the manufacturers think about it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jmelancondev , my original idea was more aligned with the Scenario 2 (though its not explicitly mentioned in the description and that was the intention behind providing is latest flag also). Scenario 1 is also not bad, we can discuss this in next telco.

<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
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?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants