The Remote Reboot definition

The remote reboot is used to assure that all IP-STBs in a network are running the intended software version.

Several remote reboot objects targeting different sets of boxes may be specified.

All boot images can use the basic remote reboot feature but an application/portal must be included in order to use the Question Dialogue.

The application/portal shall subscribe ToiInformationService::ON_OBJECTS_CHANGED event of "cmd.rebootquery.message" object via Information Service to show the Question Dialogue. The value of "cmd.rebootquery.message" object is a piece of xml of "Notification" element in remote reboot config file as described in below section. The application/portal must parse the "Notification" element to retrieve the notification message. The application/portal also shall set the value of "cmd.rebootquery.response" object to "Yes" or "No" via Information Service according to the user's action. e.g. choosing "Accept" or "Postpone".

Remote Reboot DTD

<!ELEMENT RemoteRebootRequests (RemoteRebootRequest+)>
<!ELEMENT RemoteRebootRequest (
            ((SoftwareDate, SoftwareTime) | (SoftwareVersion)),
             (SerialIntervalStart, SerialIntervalEnd)?, Model?,
              Severity, Timeout?, DelayedReboot?, Notification?)>
<!ELEMENT SoftwareDate (#PCDATA)>
<!ELEMENT SoftwareTime (#PCDATA)>
<!ELEMENT SoftwareVersion (#PCDATA)>
<!ELEMENT SerialIntervalStart (#PCDATA)>
<!ELEMENT SerialIntervalEnd (#PCDATA)>
<!ELEMENT Model (#PCDATA)>
<!ELEMENT Severity (#PCDATA)>
<!ELEMENT Timeout (#PCDATA)>
<!ELEMENT DelayedReboot (#PCDATA)>
<!ELEMENT Notification (Text, Button, Button)>
<!ELEMENT Button (Text, Action)>
<!ELEMENT Text (#PCDATA)>
<!ELEMENT Action (#PCDATA)>

Remote Reboot example

This file is not included in the evaluation configuration.

<?xml version="1.0"?>
<!DOCTYPE RemoteRebootRequests SYSTEM "remotereboot.dtd">
<RemoteRebootRequests>
  <RemoteRebootRequest>
    <SoftwareDate>20030211</SoftwareDate>
    <SoftwareTime>161110</SoftwareTime>
    <SerialIntervalStart>1210004282</SerialIntervalStart>
    <SerialIntervalEnd>1210004282</SerialIntervalEnd>
    <Severity>Question Dialogue</Severity>
    <Timeout>30</Timeout>
    <Notification>
      <Text>System maintenance reboot requested. Accept this reboot or postpone it?</Text>
      <Button>
        <Text>Accept</Text>
        <Action>Yes</Action>
      </Button>
      <Button>
        <Text>Postpone</Text>
        <Action>No</Action>
      </Button>
    </Notification> 
  </RemoteRebootRequest>
</RemoteRebootRequests>

Remote reboot XML description

Remote Reboot configuration items
Object Comment Values
SoftwareDate Used together with the SoftwareTime to determine whether the build date of the current software on the IP-STB is the desired one. The IP-STB will reboot until both values correspond to those of the software.

Either Date + Time or Version must be specified.

This value is set automatically when building the boot image.

Note! This may make the IP-STBs reboot forever.

Type:
Numerical string

Value set:
A date on the format YYYYMMDD

SoftwareTime Used together with the SoftwareDate to determine whether the build date of the current software on the IP-STB is the desired one. The IP-STB will reboot until both values correspond to those of the software.

Either Date + Time or Version must be specified.

This value is set automatically when building the boot image.

Note! This may make the IP-STBs reboot forever.

Type:
Numerical string

Value set:
A time on the format hhmmss

SoftwareVersion Used to determine whether the version of the current software on the IP-STB is the desired one. The IP-STB will reboot until the value corresponds to that of the software.

Either Date + Time or Version must be specified.

This value is set automatically when building the boot image.

Note! This may make the IP-STBs reboot forever.

Type:
String

Value set:
A version

Example value:
3.0.1

SerialIntervalStart No IP-STBs with serial number less than SerialIntervalStart will be rebooted.

Note! Read this information on how serial numbers are specified.

SerialIntervalEnd No IP-STBs with serial number larger than SerialIntervalEnd will be rebooted.

Note! Read this information on how serial numbers are specified.

Model Only IP-STBs of the specified type will be rebooted. The string specified here is compared to the value of the object "config.productname".

Note! The string is compared using prefix matching so the string VIP192 will match VIP1920TDB but not VIP1910.

Type:
String

Value set:
A model name (or beginning of)

Example value:
VIP1920

Severity Determines when the IP-STB is to reboot.
Forced Reboot = Immediately
Automatic = At standby
Question Dialogue = Show a Notification to interact with the user. This requires that the Remote Reboot application is installed and started.

Note! Automatic will cause the IP-STB to reboot immediately if it is already in standby.

Type:
String

Value set:
Forced Reboot |
Automatic |
Question Dialogue

Timeout Time to wait for user response in case of Question Dialogue before rebooting anyway.

Note! This time is calculated from that the object is received. The Question Dialogue is actually presented a shorter time.

Type:
Numerical

Value set:
Time in seconds
(0 means wait indefinitely)

Default value:
120

DelayedReboot Delays the actual reboot a random time. From 0 seconds up to the value set.
This is useful when rebooting a large number of IP-STBs at the same time, to reduce the load on surrounding systems.
Type:
Numerical

Value set:
Time in seconds

Default value:
0

Notification Definition of the user dialogue. Only used in case of Question Dialogue, may be left out otherwise. Type:
Empty

Value set:
N/A

Text
(Notification)
The informational text displayed in the user dialogue. Type:
String

Value set:
Any string that can be displayed properly.

Button A possible user choice. You must specify two buttons, one with Action Yes and one with No. Type:
Empty

Value set:
N/A

Text
(Button)
Button description. Type:
String

Value set:
Any string that can be displayed properly.

Action Button result:
Yes = Immediate reboot
No = Reboot at next standby
Type:
String

Value set:
Yes | No