Commit 40ba95a6 authored by j's avatar j

- convert icecast documentation to xhtml

- clean up html code
- sync index.html with README


svn path=/icecast/trunk/icecast/; revision=7786
parent afde2e50
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<h1>Icecast 2 Admin Interface</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>Overview</h2>
<p>This section contains information about the admin interface of icecast. Through this interface the user can manipulate many server features. From it you can gather statistics, mov e listeners from mountpoint to mountpoint, disconnect connected sources, disconnect connected listeners, and many other activities. Each function is enumerated here as well as an example usage of the function.</p>
<p>Each of these functions requires authentication via the &lt;admin-username&gt; and &lt;admin-password&gt; specified in the icecast config file. It is also important to note that in all the examples 192.168.1.10 is used as the example host and 8000 is used as the example port for the icecast server.</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Admin Functions (mount specific)</h2>
<p>All these admin functions are mount specific in that they only apply to a particular mountpoint (as opposed to applying to the entire server). Each of these functions requires a mountpoint to be specified as input.
<h3>Metadata Update</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function provides the ability for either a source client or any external program to update the metadata information for a particular mountpoint. Currently the only metadata supported is song title and only for MP3 streams.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/metadata?mount=/mystream&mode=updinfo&song=ACDC+Back+In+Black
</pre>
<br>
<br>
<br />
<br />
<h3>Fallback Update</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function provides the ability for either a source client or any external program to update the "fallback mountpoint" for a particular mountpoint. Fallback mounts are those that are used in the even of a source client disconnection. If a source client disconnects for some reason that all currently connected clients are sent immediately to the fallback mountpoint.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/fallbacks?mount=/mystream.ogg&fallback=/myfallback.ogg
</pre>
<br>
<br>
<br />
<br />
<h3>List Clients</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function lists all the clients currently connected to a specific mountpoint. The results are sent back in XML form.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/listclients?mount=/mystream.ogg
</pre>
<br>
<br>
<br />
<br />
<h3>Move Clients (Listeners)</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function provides the ability to migrate currently connected listeners from one mountpoint to another. This function requires 2 mountpoints to be passed in: mount (the *from* mountpoint) and destination (the *to* mountpoint). After processing this function all currently connected listeners on mount will be connected to destination. Note that the destination mountpoint must exist and have a sounce client already feeding it a stream.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/moveclients?mount=/mystream.ogg&destination=/mynewstream.ogg
</pre>
<br>
<br>
<br />
<br />
<h3>Kill Client (Listener)</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function provides the ability to disconnect a specific listener of a currently connected mountpoint. Listeners are identified by a unique id that can be retrieved by via the "List Clients" admin function. This id must be passed in to the request. After processing this request, the listener will no longer be connected to the mountpoint.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/killclient?mount=/mystream.ogg&id=21
</pre>
<br>
<br>
<br />
<br />
<h3>Kill Source</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This function will provide the ability to disconnect a specific mountpoint from the server. The mountpoint to be disconnected is specified via the variable "mount".
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/killsource?mount=/mystream.ogg
</pre>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Admin Functions (general)</h2>
<h3>Stats</h3>
<h4>description</h4>
<div class=indentedbox>
This admin function provides the ability to query the internal statistics kept by the icecast server. Almost all information about the internal workings of the server such as the mountpoints connected, how many client requests have been served, how many listeners for each mountpoint, etc, are available via this admin function.<br>
<div class="indentedbox">
This admin function provides the ability to query the internal statistics kept by the icecast server. Almost all information about the internal workings of the server such as the mountpoints connected, how many client requests have been served, how many listeners for each mountpoint, etc, are available via this admin function.<br />
Note that this admin function can also be invoked via the http://server:port/admin/stats.xml syntax, however this syntax should not be used and will eventually become deprecated.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/stats
</pre>
<br>
<br>
<br />
<br />
<h3>List Mounts</h3>
<h4>description</h4>
<div class=indentedbox>
<div class="indentedbox">
This admin function provides the ability to view all the currently connected mountpoints.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/listmounts
</pre>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Web-Based Admin Interface</h2>
<p>As an alternative to manually invoking these URLs, a web-based admin interface was developed. This interface provides the same functions that were identified and described above but presents them in a little nicer way. The Web-Based Admin Interface to icecast is shipped with icecast provided in the "admin" directory and comes ready to use. All the user needs to do is set the path to this directory in the config file via the &lt;adminroot&gt; config variable.</p>
<p>The Web-Based Admin Interface is a series of XSLT files which are used to display all the XML obtained via the URL admin interface. This can be changed and modified to suit the user's need. Knowledge of XSLT and transformations from XML to HTML are required in order to make changes to these scripts.</p>
......@@ -115,7 +122,7 @@ http://192.168.1.10:8000/admin/stats.xsl
</pre>
<p>From this URL all of the other admin functions can be exercised.</p>
<p>Modification of existing XSLT transforms in /admin is allowed, but new files cannot be created here. Creation of new XSLT transforms as well as modification of existing transforms is allowed in /web. These work using the document returned by /admin/stats.xml. To see the XML document that is applied to each admin XSLT, just change the .xsl to .xml in your request (i.e. /admin/listclients.xml). You can then code your XSLT transform accordingly.
<br>
<br />
</div>
</body>
</html>
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<h1>Icecast 2 Basic Setup</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>Basic Requirements</h2>
<p>This section will describe the essential requirements in setting up a simple Internet radio station. It is by no means a complete list but should give you enough to get started.</p>
<p>There are two major components involved: the streaming server (icecast in this case) and the source client. The icecast server will be the place where all listeners of your station will connect. The source client (in general) runs on a separate machine than icecast, but does not necessarily need to. Source clients send the content to icecast and provide the stream data (encoded audio) that is then relayed out to listeners by icecast.</p>
<p>It is important to note that not all source clients work with icecast2. You will need to check to make sure that icecast2 is supported by your chosen source client.</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>The Basics</h2>
<p>Each icecast server can house multiple broadcasts (or mountpoints) each containing a separate stream of content. A listener can only listen to a single mountpoint at a time. This means you can have a single icecast server contain either multiple broadcasts with different content, or possibly the same broadcast but with streams of different bitrates or qualities. In this case each broadcast or stream is a separate mountpoint.</p>
<p>At this point, the steps outlined here related to the Unix version or Win32 console version of icecast. Icecast is also available in a Win32 GUI version, and the steps are similar in setup, but not quite the same.</p>
<p>The first step in the process is to find and install the icecast2 server itself. How to do this is not contained within this documentation. After installation you should have and icecast binary and 3 directories</p>
<center>
<table border=1 width=75%>
<table border="1" width="75%">
<tr><td>conf</td><td>Contains the icecast configuration file (icecast.xml) which defines all the configuration parameters for the server.</td></tr>
<tr><td>admin</td><td>Contains xslt files which are used by the icecast server to provide a web-based front end to the administration capabilities of the server.</td></tr>
<tr><td>logs</td><td>This is a blank directory which (if specified in the config file) will contain all the logs (there are 2) for icecast.</td></tr>
</table>
</center>
<p>The next step is to edit the icecast.xml file and set the appropriate values. Most of the default values are fine as provided, and for a basic setup the following entries should be changed :<br><br>
<p>The next step is to edit the icecast.xml file and set the appropriate values. Most of the default values are fine as provided, and for a basic setup the following entries should be changed :<br /><br />
<pre>
&lt;source-password&gt; - will be used by the source client
&lt;admin-password&gt; - will be used to access admin features of icecast
......@@ -43,17 +50,17 @@ icecast -c /path/to/icecast.xml
[2003-10-31 13:04:49] INFO main/main.c icecast server started
</pre>
<p>You can also verify that it started by visiting the following URL : http://yourip:port/admin/stats.xml. You should be prompted for a username and password. Enter the username "admin" and the password you entered for &lt;admin-password&gt;. If all is well, you should see an small XML tree which represents icecast statistics (more about that later).</p>
<p>Now that the icecast server is started you must now configure your source client. The information you will need for the source client is the following : <br>
<br>
IP address and Port of the icecast server - both of these come from &lt;listen-socket&gt;<br>
source password - from &lt;source-password&gt;<br>
<p>Now that the icecast server is started you must now configure your source client. The information you will need for the source client is the following : <br />
<br />
IP address and Port of the icecast server - both of these come from &lt;listen-socket&gt;<br />
source password - from &lt;source-password&gt;<br />
<p>Additionally, you will need to choose a mountpoint and specify this in the source client. Icecast does not need to know about each mount point (although you can configure settings for specific mountpoint - this is covered under Advanced configuration) there are, however, some points to mention regarding mountpoints. All Ogg Vorbis streams should have mountpoints that end in .ogg (i,e. /mystream.ogg). This is due to the lazy way most media players infer the type of stream. MP3 streams usually do not contain an extension (/mystream). Mount points also should not contain any spaces or odd characters (again due to the lazy way many of the media players are coded).</p>
<p>Once you have configured your source client, you should be able to connect it to the icecast server. Verify that it is connected by hitting the stats.xml URL that was mentioned above.</p>
<p>Now that you have the source connnected, listening to the stream involves simply opening the appropriate following URL in a browser: http://yourip:port/mounpointyouspecified.m3u. So, for instance, if you attached your source client to an icecast server located at 192.168.1.10:8000 with a mountpoint of /mystream.ogg, then you would open : http://192.168.1.10:8000/mystream.ogg.m3u. Note that the .m3u extention will serve up a link that opens most media players. Also it is important to note that m3u need not contain only MP3 stream, it can contain streams of arbitrary content-type and is used by icecast to serve a playlist that represents your broadcast to listening clients. Alternatively you can open up the stream URL directly within your media player (http://192.168.1.10:8000/mystream.ogg in this case)</p>
<br>
<br>
<br>
<br />
<br />
<br />
</div>
</body>
</html>
This diff is collapsed.
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<h1>Icecast 2 FAQ</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>General Questions</h2>
<h4>What is Icecast?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
Icecast, the project, is a collection of programs and libraries for
streaming audio over the Internet. This includes:
......@@ -22,13 +29,13 @@ A source client is an external program which is responsible for sending content
</div>
<h4>What is icecast, the program?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
icecast streams audio to listeners, and is compatible with Nullsoft’s Shoutcast.
</p>
</div>
<h4>What is libshout ?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
From the README:
</p>
......@@ -41,7 +48,7 @@ icecast streams audio to listeners, and is compatible with Nullsoft
</div>
<h4>What is IceS?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
IceS is a program that sends audio data to an icecast server to broadcast to clients.
IceS can either read audio data from disk,
......@@ -50,7 +57,7 @@ icecast streams audio to listeners, and is compatible with Nullsoft
</div>
<h4>How can I view the stream status page?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
Check your icecast configuration file for an element
called &lt;webroot&gt;. This directory contains web stuff.
......@@ -73,7 +80,7 @@ icecast streams audio to listeners, and is compatible with Nullsoft
</div>
<h4>What can I use to listen to an Icecast stream?</h4>
<div class=indentedbox>
<div class="indentedbox">
<p>
We maintain a list of Icecast-compatible audio players at
http://www.icecast.org/
......
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<h1>Icecast 2 Glossary</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<a name="source client"></a>
<h4>source client</h4>
<div class=indentedbox>
<div class="indentedbox">
A source client is an external program which is responsible for sending content data to icecast. Some source clients that support icecast2 are Oddcast, ices2, ices0.3, and DarkIce.
</div>
<a name="slave server"></a>
<h4>slave server (Relay)</h4>
<div class=indentedbox>
<div class="indentedbox">
The slave server in a relay configuration is the server that is pulling the data from the master server. It acts as a listening client to the master server.
</div>
<a name="master server"></a>
<h4>master server (Relay)</h4>
<div class=indentedbox>
<div class="indentedbox">
The master server in a relay configuration is the server that has the stream that is being relayed.
</div>
<a name="mountpoint"></a>
<h4>mountpoint</h4>
<div class=indentedbox>
<div class="indentedbox">
A mountpoint is a resource on the icecast server that represents a single broadcast stream. Mountpoints are named similar to files (/mystream.ogg, /mymp3stream). When listeners connect to icecast2, they must specify the mountpoint in the request (i.e. http://192.168.1.10:8000/mystream.ogg). Additionally, source clients must specify a mountpoint when they connect as well. Statistics are kept track of by mountpoint. Mountpoints are a fundamental aspect of icecast2 and how it is organized.
</div>
<a name="fallback"></a>
<h4>fallback mountpoint</h4>
<div class=indentedbox>
<div class="indentedbox">
A fallback mountpoint is configured with a parent mountpoint. In the event of the parent mountpoint losing connection with icecast, Icecast will then move all clients currently connected to the now defunct mountpoint to it's fallback mountpoint.
</div>
......
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<h1>Icecast 2 Introduction</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>What is Icecast ?</h2>
<p>Icecast is a streaming media server which currently supports Ogg Vorbis and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for commuincation and interaction.</p>
<br>
<br />
<p>There are two major parts to most streaming media servers: the component providing the content (what we call <b>source clients</b>) and the component which is responsible for serving that content to listeners (this is the function of icecast).
</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>What platforms are supported ?</h2>
<p>Currently the following Unix platforms are supported:</p>
<li>Linux (Most flavors including Redhat and Debian)
......@@ -24,9 +30,9 @@
<li>Windows NT
<li>Windows 2000
<li>Windows XP
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Where do I go for questions?</h2>
<p>There are many ways to contact the icecast development team</p>
<h3>Best Ways</h3>
......@@ -35,9 +41,9 @@
<li>Icecast IRC chat room - irc.freenode.net : #icecast
<h3>Alternate Ways</h3>
<li>team@icecast.org
<br>
<br>
<br>
<br />
<br />
<br />
</div>
</body>
</html>
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<h1>Icecast 2 Listener Authentication</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>Listener Authentication</h2>
<p>Listener authentication is a feature of icecast which allows you to secure certain mountpoint so that in order to listen, a listener must provide a username and password. With this feature a simple pay-for-play operation can be setup. This section will show you the basics of setting up and maintaining this component.</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>HTPASSWD Listener Authentication</h2>
<h3>Config File Entries</h3>
<p>In order to use listener authentication, you MUST configure a mount specific option. This means that you have to provide a &lt;mount&gt; section in the main icecast config file. The following is an example :</p>
......@@ -27,26 +33,26 @@
<p>To support listener authentication you MUST provide at a minimum &lt;mount-name&gt; and &lt;authentication&gt;. The mount-name is the name of the mountpoint that you will use to connect your source client with and authentication configures what type of icecast2 authenticator to use. Currently, only a single type "htpasswd" is implemented. New authenticators will be added later. Each authenticator has a variable number of options that are required and these are specified as shown in the example. The htpasswd authenticator requires a few parameters. The first, filename, specifies the name of the file to use to store users and passwords. Note that this file need not exist (and probably will not exist when you first set it up). Icecast has built-in support for managing users and passwords via the web admin interface. More on this later in this section. The second option, allow_duplicate_users, if set to 0, will prevent multiple connections using the same username. Setting this value to 1 will enable mutltiple connections from the same username on a given mountpoint. Note there is no way to specify a "max connections" for a particular user.
<p>Icecast supports a mixture of streams that require listener authentication and those that do not. Only mounts that are named in the config file can be configured for listener authentication.</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h3>Configuring Users and Passwords</h3>
<p>Once the appropriate entries are made to the config file, connect your source client (using the mountpoint you named in the config file). To configure users and passwords for this stream you must use the web-based admin interface. Navigate to http://server:ip/admin/stats.xsl to begin. If you have configured everything properly, you should see a screen like the following :</p>
<img border=1 src="listener_auth1.jpg">
<img border="1" src="listener_auth1.jpg" />
<p>You will see a red key in front of all mountpoint configured for listener authentication. Also note that this page will only show CONNECTED mountpoints.</p>
<p>To manage users and passwords for this mountpoint, click on the red key or follow the "Manage Authentication" link. The following screen will be shown :</p>
<img border=1 src="listener_auth2.jpg">
<img border="1" src="listener_auth2.jpg" />
<p>This screen will show all the users configured for this mountpoint. Adding users is as simple as entering a username and password in the fields and clicking "Add New User". Note that usernames MUST be unique and there are NO restrictions on passwords. You can delete users by clicking the appropriate delete link next to each user.</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h3>Finishing it all off</h3>
<p>Ok, so you've created your users, and you have everything setup properly, how do your users login ? Well, we've provided a simple login form that you can use for this purpose. This page (http://server:port/auth.xsl) will bring up a form that users can use to enter their username and password.</p>
<img border=1 src="listener_auth3.jpg">
<img border="1" src="listener_auth3.jpg" />
<p>This page will serve a m3u with the username and password and in most cases should open the correct media player and begin playing your stream</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>A note about players and authentication</h2>
<p>We do not have an exaustive list of players that support listener authentication. We use standard HTTP basic authentication, and in general, many media players support this if they support anything at all. Winamp and Foobar2000 support HTTP basic authentication on windows, and XMMS supports it on unix platforms.</p>
</div>
......
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<h1>Icecast 2 Relaying</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>Overview</h2>
<p>Relaying is the process by which one server mirrors one or more streams from a remote server. The servers need not be of the same type (i.e. icecast can relay from Shoutcast). Relaying is used primarily for large broadcasts that need to distribute listening clients across multiple physical machines.</p>
<br>
<br>
<br />
<br />
<h2>Type of Relays</h2>
<p>There are two types of relays that icecast supports. The first type is when both master and slave servers are icecast2 servers. In this case, a "master-slave" relay can be setup such that all that needs to be done is configure the slave server with the connection information (serverip:port) of the master server and the slave will mirror all mountpoints on the master server. The slave will also periodically check the master server to see if any new mountpoints have attached and if so will relay those as well. The second type of relay is a "single-broadcast" relay. In this case, the slave server is configured with a serverip+port+mount and only the mountpoint specified is relayed. In order to relay a broadcast stream on a Shoutcast server, you must use the "single-broadcast" relay and specify a mountpoint of "/".</p>
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Setting Up A Master-Slave Relay</h2>
<p>In order to setup a relay of this type both servers (the one you wish to relay and the one doing the relaying) need to be icecast2 servers. The following configuration snippet is used as an example:</p>
<pre>
......@@ -24,9 +30,9 @@
&lt;master-password&gt;hackme&lt;/master-password&gt;
</pre>
In this example, this configuration is setup in the server which will be doing the relaying (slave server). The master server in this case need not be configured (and actually is unaware of the relaying being performed) as a relay. When the slave server is started, it will connect to the master server located at 192.168.1.11:8001 and will begin to relay all mountpoints connected to the master server. Additionally, every master-update-interval (120 seconds in this case) the slave server will poll the master server to see if any new mountpoints have connected, and if so, the slave server will relay those as well. Note that the names of the mountpoints on the slave server will be identical to those on the master server.
<br>
<br>
<br>
<br />
<br />
<br />
<h2>Setting Up A Single-Broadcast Relay</h2>
<p>In this case, the master server need not be an icecast2 server. Supported master servers for a single-broadcast relay are Shoutcast, Icecast1.x, and of course Icecast2. The following configuration snippet is used as an example:</p>
<pre>
......@@ -39,9 +45,9 @@ In this example, this configuration is setup in the server which will be doing t
&lt;/relay&gt;
</pre>
<p>In this example, this configuration is also setup in the server which will be doing the relaying (slave server). The master server in this case need not be configured (and actually is unaware of the relaying being performed) as a relay. When the slave server is started, it will connect to the master server located at 192.168.1.11:8001 and will begin to relay only the mountpoint specified (/example.ogg in this case). Using this type of relay, the user can override the local mountpoint name and make it something entirely different than the one on the master server. Additionally, if the server is a Shoutcast server, then the &lt;mount&gt; must be specified as /. And if you want the Shoutcast relay stream to have metadata contained within it (Shoutcast metadata is embedded in the stream itself) then the &lt;relay-shoutcast-metadata&gt; needs to be set to 1.</p>
<br>
<br>
<br>
<br />
<br />
<br />
</div>
</body>
</html>
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Icecast v2.0 Documentation</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="boxtest">
<h1>Icecast 2 Server Statistics</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br>
<br>
<br>
<table width="100%"><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<br />
<br />
<br />
<h2>Overview</h2>
<p>This section contains information about the server statistics available from icecast. An example stats XML tree will be shown and each element will be described. The following example stats tree will be used:</p>
<pre>
......@@ -30,54 +36,54 @@
</pre>
<h3>General Statistics</h3>
<h4>client-connections</h4>
<div class=indentedbox>
<div class="indentedbox">
Client connections are basically anything that is not a source connection. These include listeners (not concurrent, but cumulative), any admin function accesses, and any static content (file serving) accesses.
</div>
<h4>source-connections</h4>
<div class=indentedbox>
<div class="indentedbox">
Source connections are the number of times (cumulative not currently connected) a source has connected to icecast.
</div>
<h4>connections</h4>
<div class=indentedbox>
<div class="indentedbox">
The total of client + source connections.
</div>
<h4>sources</h4>
<div class=indentedbox>
<div class="indentedbox">
The total of currently connected sources (mountpoints).
</div>
<h3>Source-specific Statistics</h3>
<h4>artist</h4>
<div class=indentedbox>
<div class="indentedbox">
Artist of the current song (metadata set by source client).
</div>
<h4>title</h4>
<div class=indentedbox>
<div class="indentedbox">
Title of the current song (metadata set by source client).
</div>
<h4>audio-info</h4>
<div class=indentedbox>
<div class="indentedbox">
Information about the bitrate/samplerate/quality of the stream (set by source client). Also used for YP entries.
</div>
<h4>ice-bitrate</h4>
<h4>ice-samplerate</h4>
<h4>ice-channels</h4>
<div class=indentedbox>
<div class="indentedbox">
Information about the bitrate/samplerate/quality of the stream (set by source client).
</div>
<h4>listeners</h4>
<div class=indentedbox>
<div class="indentedbox">
The number of currently connected listeners.
</div>
<h4>public</h4>
<div class=indentedbox>
<div class="indentedbox">
Flag that indicates whether this mount is being listed on a YP (sey by source client).
</div>
<h4>type</h4>
<div class=indentedbox>
<div class="indentedbox">