Configuration

General layout

<?xml version="1.0"?>
<freecast>
  <node>
    PeerProvider
    Sender
    Receiver

    <players>
      Player
      ...
    </players>

    ConnectionAssistant
  </node>

  GUI Configuration
</freecast>

Peer Provider

<peerprovider>
  <trackeraddress>
        <host>freecast.acme-radio.org</host>
    <port>1665</port>
  </trackeraddress>
</peerprovider>
trackeraddress

the TCP address where the tracker listens to node requests. This configuration must match the tracker configuration. See the section called “Target TCP address”.

Sender

<sender>
  <class>udp</class>
  <listenaddress>
    <host>0.0.0.0</host>
    <port>30000~31000</port>
  </listenaddress>

  Reference
</sender>
listenaddress

the UDP address where the node listens to requests of other nodes. See the section called “Listen TCP address”.

Reference

Stun Reference
<reference>
  <class>stun</class>
  <host>stun.xten.net</host>
  <port>3478</port>
</reference>
Inet Reference
<reference>
  <class>inet</class>
  <host>0.0.0.0</host>
  <port>1664</port>
</reference>
Multiple Reference
<reference>
  <class>multiple</class>
  InetReference
  InetReference
  ...
</reference>

Receiver

Peer Receiver

<receiver>
  <class>peer</class>
  Checksummer
</receiver>

ShoutClient Receiver

<receiver>
  <class>shoutclient</class>
  <url>http://stream.acme-radio.org/relay.ogg</url>
  Validator
</receiver>

ShoutServer Receiver

<receiver>
  <class>shoutserver</class>
  <listenaddress>
    <host>0.0.0.0</host>
    <port>8001</port>
  </listenaddress>
  Validator
</receiver>
listenaddress

the TCP address where the shoutcast server listens to requests. The listen address will be used into the configuration of the source client. See the section called “Listen TCP address”.

Encoder-Playlist Receiver

<receiver>
  <class>encoder-playlist</class>
  <url>file:///etc/freecast/playlist.m3u</url>
  <channels>2</channels>
  <quality>0</quality>
  <samplerate>44100</samplerate>
  Validator
</receiver>
url

the URL where the playlist can be found. This playlist will be loaded and each specified file will be played. If you use relative file names into the playlist, the base url of the playlist will be used as a prefix. Files specified via HTTP URLs will be cached locally.

quality

the wanted quality of the encoded Ogg Vorbis stream. Read the dedicated Vorbis FAQ quality section. Notice that only quality between 0 and 10 are supported.

channels

the channel count of the encoded stream. Set 1 for a mono stream, 2 for a stereo stream.

samplerate

specifies the sample rate of the encoded stream. Set 44100 for higher quality, 22050 for medium quality.

Playlist Receiver

<receiver>
  <class>playlist</class>
  <url>file:///etc/freecast/playlist.m3u</url>
  <bandwidth>35</bandwidth>
  Validator
</receiver>
url

the URL where the playlist can be found. This playlist will be loaded and each specified file will be played. If you use relative file names into the playlist, the base url of the playlist will be used as a prefix. Files specified via HTTP URLs will be cached locally.

bandwidth

due to a limitation of the playlist receiver, you need to specify the bitrate of read files. You should take care to use files with a static bitrate.

Checksummer

Digest Checksummer
<checksummer>
  <class>digest</class>
</checksummer>
Signature Checksummer
<checksummer>
  <class>signature</class>
  <privatekey>file:///etc/freecast/private.key</privatekey>
</checksummer>
privatekey

the URL where the private key can be found.

Validator

Digest Validator
<validator>
  <class>digest</class>
</validator>
Signature Validator
<validator>
  <class>signature</class>
  <publickey>http://stream.acme-radio.org/public.key</publickey>
</validator>
publickey

the URL where the public key can be found.

Connection Assistant

<connection-assistant>
  <host>cas.freecast.org</host>
  <port>1666</port>
</connection-assistant>
host and port

the host and port of the connection assistant service to be used by the node.

GUI Configuration

<gui>
  <background>#ffffff</background>
  <logo>http://stream.acme-radio.org/freecast/logo.png</logo>
  <tray>http://stream.acme-radio.org/freecast/icon-24.png</tray>

  <player>
    <started>http://stream.acme-radio.org/freecast/player-started.png</started>
    <stopped>http://stream.acme-radio.org/freecast/player-stopped.png</stopped>
  </player>
</gui>
background

the background color used in the window

logo

the logo displayed in the window

tray

the tray icon

player

the two icons used when the player is playing or stopped

Player

Audio Player

<player>
  <class>audio</class>
</player>

Video Player

<player>
  <class>video</class>
  <audio>true</audio>
  <framerate>30</framerate>
</player>
audio

must be set to false if the Ogg Theora stream doesn't contain an audio part

framerate

specifies a video frame rate of the Ogg Theora stream

Http Player

<player>
  <class>http</class>
  <listenaddress>
    <host>0.0.0.0</host>
    <port>8000</port>
  </listenaddress>
</player>
listenaddress

the TCP address where external players can connect to retrieve the stream. See the section called “Listen TCP address”.