The Infocast server configuration

Infocast server configuration DTD

<!ELEMENT Infocast-server (channel+ | (channel-parameters, object+))>
<!ELEMENT channel (channel-parameters, object+)>
<!ELEMENT channel-parameters (ip-address, ip-port-number, time-to-live,
                              (bandwidth-limit | bit-rate), burst-delay?,
                              payload-size, signature-type)>
<!ELEMENT ip-address (#PCDATA)>
<!ELEMENT ip-port-number (#PCDATA)>
<!ELEMENT time-to-live (#PCDATA)>
<!ELEMENT bandwidth-limit (#PCDATA)>
<!ELEMENT bit-rate (#PCDATA)>
<!ELEMENT burst-delay (#PCDATA)>
<!ELEMENT payload-size (#PCDATA)>
<!ELEMENT signature-type (#PCDATA)>
<!ELEMENT object (name, infocast-type?, source, precoding?, delay?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT infocast-type (#PCDATA)> 
<!ELEMENT source (source-name, source-type)>
<!ELEMENT source-type (#PCDATA)>
<!ELEMENT source-name (#PCDATA)>
<!ELEMENT precoding (#PCDATA)>
<!ELEMENT delay (#PCDATA)>

Infocast server configuration XML example

The Infocast server configuration XML example below shows a configuration of a metadata channel, two boot image channels (1910 and 1510), two splash image channels (1910 and 1510) and two channels distributing IIPs for dynamic download (1910 and 1510). The metadata channel consists of boot image channel information (1910 and 1510), configuration and time.

The name of this file in the evaluation configuration is infocastconfig.xml.

<?xml version="1.0"?>
<!DOCTYPE infocast-server SYSTEM "infocastconfig.dtd">
<infocast-server>

  <!-- Metadata channel configuration -->
  <channel>
    <channel-parameters>
      <ip-address>224.2.2.2</ip-address>
      <ip-port-number>22222</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>16</bit-rate>
      <payload-size>256</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>motorola-vip1910</name>
      <infocast-type>bootcastinfo</infocast-type>
      <source>
        <source-name>bootcast_1910</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>none</precoding>
    </object>

    <object>
      <name>kreatel-ip-stb-rev-6</name>
      <infocast-type>bootcastinfo</infocast-type>
      <source>
        <source-name>bootcast_1510</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>none</precoding>
    </object>

    <object>
      <name>kreatel-ip-stb-rev-11</name>
      <infocast-type>bootcastinfo</infocast-type>
      <source>
        <source-name>bootcast_1510</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>none</precoding>
    </object>

    <object>
      <name>cfg.infocast</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>infocastclientconfig.xml</source-name>
        <source-type>xmlfile</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>

    <object>
      <name>cfg.media.channeltable</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>channeltable.txt</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>

    <object>
      <name>cfg.portal.whitelisturls</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>whitelisturls.xml</source-name>
        <source-type>xmlfile</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>

    <object>
      <name>cfg.portal.proxylist</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>proxylist.xml</source-name>
        <source-type>xmlfile</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>

    <object>
      <name>var.utctime</name>
      <infocast-type>utctime</infocast-type>
      <source>
        <source-name></source-name>
        <source-type>utctime</source-type>
      </source>
      <precoding>none</precoding>
    </object>
  </channel>

  <!-- IP-STB 1910 Boot image channel configuration -->
  <channel>
    <channel-parameters>
      <ip-address>224.2.2.1</ip-address>
      <ip-port-number>22222</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>2048</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>software</name>
      <infocast-type>bootcastfile</infocast-type>
      <source>
        <source-name>kreatv-bi_1910</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>

  <!-- IP-STB 1910 Splash image channel configuration -->
  <channel>
    <channel-parameters>
      <ip-address>224.2.2.3</ip-address>
      <ip-port-number>11111</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>512</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>splash-data</name>
      <infocast-type>bootcastfile</infocast-type>
      <source>
        <source-name>kreatv-splash_1910</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>

  <!-- IP-STB 1510 Boot image channel configuration -->
  <channel>
    <channel-parameters>
      <ip-address>224.2.2.11</ip-address>
      <ip-port-number>22222</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>2048</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>software_1510</name>
      <infocast-type>bootcastfile</infocast-type>
      <source>
        <source-name>kreatv-bi_1510</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>

  <!-- IP-STB 1510 Splash image channel configuration -->
  <channel>
    <channel-parameters>
      <ip-address>224.2.2.13</ip-address>
      <ip-port-number>11111</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>512</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>splash-data_mipsel</name>
      <infocast-type>bootcastfile</infocast-type>
      <source>
        <source-name>kreatv-splash_1510</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>

  <channel>
    <channel-parameters>
      <ip-address>224.2.2.65</ip-address>
      <ip-port-number>22222</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>4096</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>kreatv-inst-settings</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>kreatv-inst-settings_3.0.1_vip1900.iip</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>

  <channel>
    <channel-parameters>
      <ip-address>224.2.2.66</ip-address>
      <ip-port-number>22222</ip-port-number>
      <time-to-live>5</time-to-live>
      <bit-rate>4096</bit-rate>
      <payload-size>1024</payload-size>
      <signature-type></signature-type>
    </channel-parameters>

    <object>
      <name>kreatv-inst-settings</name>
      <infocast-type>generic</infocast-type>
      <source>
        <source-name>kreatv-inst-settings_3.0.1_vip1500.iip</source-name>
        <source-type>file</source-type>
      </source>
      <precoding>crc16</precoding>
    </object>
  </channel>
</infocast-server>

Infocast server XML description

The configuration file <installation home>/kreatv-server/infocast/infocastconfig.xml contains all settings for how to distribute files and information. If this file is modified, the server must be restarted:

<installation home>/kreatv-server/infocast/infocastserverd restart

The information that is distributed is referred to as an object, and the IP-address that multicasts the information is referred to as a channel. Every channel is enclosed by a <channel> tag and directly after this tag is a <channel-parameters> tag that holds the information about the channel. The following parameters can be modified:

Channel elements
Element Comment Example value
ip-address The multicast IP-address. 224.2.2.2
ip-port-number The multicast port number. 22222
time-to-live The Time to Live (TTL) of the packet. 5
bandwidth-limit | bit-rate Approximate bit rate [kbit/s].

NOTE! The bit-rate at which infocast objects are transmitted will affect the CPU load of the receiving set top boxes. Always keep this setting as low as possible.

16
burst-delay Initial length of the pauses between the Infocast bursts [ms]. This pause may be increased or decreased during run time depending on desired bit rate. 40
payload-size The maximum payload size of each packet [byte].

NOTE! The total UDP packet size will be payload-size + precoding (0-4 bytes) + UDP header size (44+ bytes).

256
signature-type Not currently used. N/A

After the channel parameters is an <object> tag that contains information about the information that is distributed. Every channel can contain any number of objects. The following parameters can be modified:

Object elements
Element Comment Values
name The name that identifies the object. This parameter is generally not configurable.

Note! An Infocast URL looks like this: infocast://<ip-address>:<ip-port-number>/<name>
Example: infocast://224.2.2.66:22222/kreatv-inst-settings
Do not use the source-name as the name of the object. This is good to know when downloading IIPs using Dynamic Download and Infocast as an IIP source.

Type:
String

Value set:
A valid object name

Example:
cfg.portal.proxylist

infocast-type The type of the object.
  • generic: A generic file.
  • bootcastfile: A file containing the operating system for the VIP units.
  • bootcastinfo: A file containing information about how to receive the operating system.
  • softwarecontrol: A file containing information about how to receive software updates.
  • software: A file containing software updates.
  • time: The current local time.
  • utctime: The current UTC time.
Type:
String

Value set:
generic | bootcastfile | bootcastinfo | softwarecontrol | software | time | utctime

Default value:
generic

source-name The name of the file that is distributed if the next parameter has the value file or xmlfile. Type:
String

Value set:
The name of an existing file.

Example:
proxylist.xml

source-type Indicates the type of source. If the source is set to xmlfile, then the XML file is validated against the DTD given in the XML file. If the validation fails, then the server will not start. Type:
String

Value set:
file | xmlfile | time | utctime

precoding Checksum method.

The time and utctime objects are always sent without checksum regardless of this setting.

Type:
String

Value set:
none | crc16

Default value:
none

delay Minimum delay from the object is sent until it is sent the next time in seconds. The objects with delay set to something greater than 0 form a separate queue. This implies that they are sent at the specified intervals as long as the bandwidth allocated to the channel is enough. The Type:
Integer

Value set:
N/A

Default value:
0

Valid infocast object name

From Infocast Server version 3.1 the name length are extended on object name. Long names are allowed for infocast-type generic where the source-type is file or xmlfile. The name length has to be less than payload-size minus 50. Thus increase the payload-size to make it possible to use very long names.

For Infocast Server version 3.0, maximum 29 characters can be used for object name.

Allowed characters Forbidden characters
printable ASCII & " > <

Below the compatibility matrix shows the need of in sync client and server to use long infocast names.

Compatibility matrix Infocast Server >= 3.1 Infocast Server < 3.1
KreaTV >= 4.x Long names supported No long names can be sent from server
KreaTV < 4.x Objects with long names discarded by client No long names can be sent from server