Commit 3ebebcf4 authored by Ed "oddsock" Zaleski's avatar Ed "oddsock" Zaleski

icecast2 documentation. need I say more ?

svn path=/trunk/icecast/; revision=5569
parent 47f87756
No preview for this file type
......@@ -9,21 +9,49 @@
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Icecast2 - Win32 Specific">
<param name="Local" value="index_win32.html">
<param name="Name" value="Icecast2 - Table of Contents">
<param name="Local" value="icecast2_TOC.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Server Status Tab">
<param name="Local" value="win32_section1.html">
<param name="Name" value="Introduction">
<param name="Local" value="icecast2_introduction.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Editing A Config File">
<param name="Local" value="win32_section2.html">
<param name="Name" value="Basic Setup">
<param name="Local" value="icecast2_basicsetup.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Stats Tab">
<param name="Local" value="win32_section3.html">
<param name="Name" value="Icecast Config File">
<param name="Local" value="icecast2_config_file.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Admin Interface">
<param name="Local" value="icecast2_admin.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Server Statistics">
<param name="Local" value="icecast2_stats.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Relaying">
<param name="Local" value="icecast2_relay.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Listing in a YP Directory">
<param name="Local" value="icecast2_yp.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Win32 specific documentation">
<param name="Local" value="icecast2_win32.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Glossary">
<param name="Local" value="icecast2_glossary.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="FAQ">
<param name="Local" value="icecast2_faq.html">
</OBJECT>
</UL>
</UL>
......
......@@ -4,7 +4,7 @@ Compatibility=1.1 or later
Compiled file=icecast2.chm
Contents file=icecast2.hhc
Default Font=,8,0
Default topic=index_win32.html
Default topic=icecast2_TOC.html
Display compile progress=No
Full-text search=Yes
Index file=Index.hhk
......@@ -13,7 +13,7 @@ Title=Icecast 2
[FILES]
index_win32.html
icecast2_TOC.html
[INFOTYPES]
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<div class=boxtest>
<body bgcolor="#efefef" text="#323232" link="#0000ff" vlink="#800080" alink="#ff0000">
<h1>Icecast 2 Documentation Table of Contents</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<li><a href="icecast2_introduction.html">Introduction</a>
<li><a href="icecast2_basicsetup.html">Basic Setup</a>
<li><a href="icecast2_config_file.html">Icecast Config File</a>
<li><a href="icecast2_admin.html">Admin Interface</a>
<li><a href="icecast2_stats.html">Server Statistics</a>
<li><a href="icecast2_relay.html">Relaying</a>
<li><a href="icecast2_yp.html">Listing in a YP directory</a>
<li><a href="icecast2_win32.html">Win32 specific documentation</a>
<li><a href="icecast2_glossary.html">Glossary</a>
<li><a href="icecast2_faq.html">FAQ</a>
<LINK REL=STYLESHEET TYPE= "text/css" HREF= "style.css">
<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>
<h2>Overview</h2>
<p>This section contains information about the admin interface of icecast. Through this interface the user can manupulate many of the aspects of the server. From it you can do things such as gather statistics, move 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>
<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>
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.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/metadata?mount=/mystream.ogg&action=updinfo&song=ACDC+Back+In+Black
</pre>
<br>
<br>
<h3>Fallback Update</h3>
<h4>description</h4>
<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>
<h3>List Clients</h3>
<h4>description</h4>
<div class=indentedbox>
This function will list 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>
<h3>Move Clients (Listeners)</h3>
<h4>description</h4>
<div class=indentedbox>
This function will provide 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>
<h3>Kill Client (Listener)</h3>
<h4>description</h4>
<div class=indentedbox>
This function will provide 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>
<h3>Kill Source</h3>
<h4>description</h4>
<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>
<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>
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 depricated.
</div>
<h4>example</h4>
<pre>
http://192.168.1.10:8000/admin/stats
</pre>
<br>
<br>
<h3>List Mounts</h3>
<h4>description</h4>
<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>
<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>
<p>The main URL for the Web-Based Admin Interface is</p>
<pre>
http://192.168.1.10:8000/admin/stats.xsl
</pre>
<p>From this URL all of the other admin functions can be exercised.</p>
</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">
<h1>Icecast 2 Basic Setup</h1>
<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>
<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%>
<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>
<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
&lt;listen-socket&gt; (both port and bind-address)
&lt;logdir&gt; - directory where log files will be placed
&lt;webroot&gt; - any static content can be placed here (file serving root)
&lt;adminroot&gt; - directory containing admin xslt files
</pre>
<p>Once the configuration file is modified, you should be able to start the server with the following command</p>
<pre>
icecast -c /path/to/icecast.xml
</pre>
<p>If no error messages are generated, then check the error.log file for the following message :</p>
<pre>
[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>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) although there are 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 a 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>
</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">
<h1>Icecast 2 Config File</h1>
<table width=100%><tr><td bgcolor="#007B79" height="10" align="center"></td></tr></table>
<h3>Overview</h3>
<p>
This section will describe each section of the config file and is grouped into the following sections :
</p>
<li><a href="#limits">Limits</a>
<li><a href="#authentication">Authentication</a>
<li><a href="#yp">YP Directory Settings</a>
<li><a href="#misc">Misc Server settings</a>
<li><a href="#relay">Relay settings</a>
<li><a href="#mount">Mount Specific settings</a>
<li><a href="#path">File path settings</a>
<li><a href="#log">Logging</a>
<li><a href="#security">Security</a>
<br>
<br>
<br>
<a name="limits"></a>
<h2>Limits</h2>
<pre>
&lt;limits&gt;
&lt;clients&gt;100&lt;clients&gt;
&lt;sources&gt;2&lt;sources&gt;
&lt;threadpool&gt;5&lt;threadpool&gt;
&lt;queue-size&gt;102400&lt;queue-size&gt;
&lt;client-timeout&gt;30&lt;client-timeout&gt;
&lt;header-timeout&gt;15&lt;header-timeout&gt;
&lt;source-timeout&gt;10&lt;source-timeout&gt;
&lt;limits&gt;
</pre>
<p>This section contains server level settings that, in general do not need to be changed. Only modify this section if you are know what you are doing.
</p>
<h4>clients</h4>
<div class=indentedbox>
Total number of concurrent clients supported by the server. Listeners are considered clients, but so are accesses to any static content (i.e. fileserved content) and also any requests to gather stats. These are max *concurrent* connections for the entire server (not per mountpoint)
</div>
<h4>sources</h4>
<div class=indentedbox>
Max number of connected sources supported by the server.
</div>
<h4>threadpool</h4>
<div class=indentedbox>
This is the number of threads that are started to handle client connections. You may need to increase this value if you are running a high traffic stream. This recommended value is for a small to medium traffic server.
</div>
<h4>queue-size</h4>
<div class=indentedbox>
This is the maximum size (in bytes) of a client (listener) queue. A listener may temporarily lag behind due to network congestion and in this case an internal queue is maintained for each listener. If the queue grows larger than this config value, then the listener will be removed from the stream.
</div>
<h4>client-timeout</h4>
<div class=indentedbox>
This does not seem to be used.
</div>
<h4>header-timeout</h4>
<div class=indentedbox>
the maximum time (in seconds) to wait for a request to come in once the client has made a connection to the server. In general this value should not need to be tweaked.
</div>
<h4>source-timeout</h4>
<div class=indentedbox>
If a connected source does not send any data within this timeout period (in seconds), then the source connection will be removed from the server.
</div>
<br>
<br>
<br>
<a name="authentication"></a>
<h2>Authentication</h2>
<pre>
&lt;authentication&gt;
&lt;source-password&gt;hackme&lt;source-password&gt;
&lt;relay-password&gt;hackme&lt;relay-password&gt;
&lt;admin-user&gt;admin&lt;admin-user&gt;
&lt;admin-password&gt;hackme&lt;admin-password&gt;
&lt;authentication&gt;
</pre>
<p>This section contains all the users and passwords used for administration purposes or to connect sources and relays.
</p>
<h4>source-password</h4>
<div class=indentedbox>
The unencrypted password used by sources to connect to icecast2. Currently, the username for all source connections must be 'source'. This is likely to change in the future.
</div>
<h4>relay-password</h4>
<div class=indentedbox>
Currently not used.
</div>
<h4>admin-user</h4>
<h4>admin-password</h4>
<div class=indentedbox>
The username/password used for all administration functions. This includes retrieving statistics, accessing the web-based administration screens, etc. A list of these functions can be found in the "Administration" section of the manual.
</div>
<br>
<br>
<br>
<a name="yp"></a>
<h2>YP Directory Settings</h2>
<pre>
&lt;directory&gt;
&lt;yp-url-timeout&gt;15&lt;yp-url-timeout&gt;
&lt;yp-url&gt;http://dir.xiph.org/cgi-bin/yp-cgi&lt;yp-url&gt;
&lt;directory&gt;
</pre>
<p>This section contains all the settings for listing a stream on any of the Icecast2 YP Directory servers. Multiple occurances of this section can be specified in order to be listed on multiple directory servers.
</p>
<h4>yp-url-timeout</h4>
<div class=indentedbox>
This value is the maximum time icecast2 will wait for a response from a particular directory server. The recommended value should be sufficient for most directory servers.
</div>
<h4>yp-url</h4>
<div class=indentedbox>
The URL which icecast2 uses to communicate with the Directory server. The value for this setting is provided by the owner of the Directory server.
</div>
<br>
<br>
<br>
<a name="misc"></a>
<h2>Misc Server Settings</h2>
<pre>
&lt;hostname&gt;localhost&lt;hostname&gt;
&lt;-- You can use these two if you only want a single listener --&gt;
&lt;-- &lt;port&gt;8000&lt;port&gt; --&gt;
&lt;-- &lt;bind-address&gt;127.0.0.1&lt;bind-address&gt; --&gt;
&lt;-- You may have multiple &lt;listener&gt; elements --&gt;
&lt;listen-socket&gt;
&lt;port&gt;8000&lt;port&gt;
&lt;bind-address&gt;127.0.0.1&lt;bind-address&gt;
&lt;listen-socket&gt;
&lt;fileserve&gt;1&lt;fileserve&gt;
</pre>
<p>This section contains miscellaneous server settings. Note that multiple listen-socket sections may be configured in order to have icecast2 listen on multiple network interfaces. If a bind-address is not specified for a particular listen-socket, then the hostname parameter will be used to specify the address that will be bound.
</p>
<h4>port</h4>
<div class=indentedbox>
The TCP port that will be used to accept client connections.
</div>
<h4>bind-address</h4>
<div class=indentedbox>
And option IP address that can be used to bind to a specific network card. If not supplied, then &lt;hostname&gt; will be used.
</div>
<h4>fileserve</h4>
<div class=indentedbox>
This flag turns on the icecast2 fileserver from which static files can be served. All files are served relative to the path specified in the &lt;paths&gt;&lt;webroot&gt; configuration setting.
</div>
<br>
<br>
<br>
<a name="relay"></a>
<h2>Relay Settings</h2>
<pre>
&lt;master-server&gt;127.0.0.1&lt;master-server&gt;
&lt;master-server-port&gt;8001&lt;master-server-port&gt;
&lt;master-update-interval&gt;120&lt;master-update-interval&gt;
&lt;master-password&gt;hackme&lt;master-password&gt;
&lt;relay&gt;
&lt;server&gt;127.0.0.1&lt;server&gt;
&lt;port&gt;8001&lt;port&gt;
&lt;mount&gt;example.ogg&lt;mount&gt;
&lt;local-mount&gt;different.ogg&lt;local-mount&gt;
&lt;relay-shoutcast-metadata&gt;0&lt;relay-shoutcast-metadata&gt;
&lt;relay&gt;
</pre>
<p>This section contains the server's relay settings. There are two types of relays, a "Master server relay" or a "Specific Mountpoint relay". A Master server relay is only supported between icecast2 servers and is used to relays all mountpoints on a remote icecast2 server.
<h3>Master Relay</h3>
The following diagram shows the basics of doing a Master relay. Note that Server 1 is configured with the &lt;master-server&gt;, &lt;master-server-port&gt;, etc settings and server 2 is the server from which Server 1 will pull all attached mountpoints and relay them. Using a Master Server relay, ALL mountpoints on Server 2 will be relayed. If only specific mountpoints need to be relayed, then you must configure Server 1 as a "Specific Mountpoint Relay". Both Master server relays and Specific Mountpoint relays begin their "relaying" when the Server is started.
<pre>
|-----| |-----|
| | all mountpoints | | /mount1
| | &lt;------------------- | | /mount2.ogg
|-----| |-----| /mount3
Icecast 2 Icecast 2
Server 1 Server 2
(RELAY SERVER) (MASTER SERVER)
configured with
&lt;master-server&gt;
settings
</pre>
A server is configured as a Master Server relay by specifying the &lt;master-server&gt;, &lt;master-server-port&gt;,&lt;master-update-interval&gt;,&lt;master-password&gt; values in the config file. The server that is being relayed does not need any special configuration.
</p>
<h4>master-server</h4>
<div class=indentedbox>
This is the IP for the server which contains the mountpoints to be relayed (Master Server).
</div>
<h4>master-server-port</h4>
<div class=indentedbox>
This is the TCP Port for the server which contains the mountpoints to be relayed (Master Server).
</div>
<h4>master-update-interval</h4>
<div class=indentedbox>
The interval (in seconds) that the Relay Server will poll the Master Server for any new mountpoints to relay
</div>
<h4>master-password</h4>
<div class=indentedbox>
This is the admin password on the Master server. It is used to query the server for a list of mountpoints to relay.
</div>
<br>
<h3>Specific Mountpoint Relay</h3>
The following diagram shows the basics of doing a Specific Mountpoint relay. Note that Server 1 is configured with the &lt;relay&gt; settings and server 2 is the server from which Server 1 will pull the specified mountpoint(s) and relay them. Using a Specific Mountpoint Relay, only those mountpoints specified on Server 1 will be relayed from Server 2.
<pre>
|-----| |-----|
| | /mount3 | | /mount1
| | &lt;------------------- | | /mount2.ogg
|-----| |-----| /mount3
Icecast 2 Icecast 2/Shoutcast/Icecast
Server 1 Server 2
(RELAY SERVER) (REMOTE SERVER)
configured with
&lt;relay&gt;
settings
</pre>
Specific Mountpoint Relays can be configured to relay from an Icecast 2 server, as well as Icecast 1.x and Shoutcast.
A server is configured as a Specific Mountpoint Server relay by specifying a &lt;relay&gt; XML chunk in the config file for each mountpoint to be relayed. The server that is being relayed does not need any special configuration.
&lt;server&gt;127.0.0.1&lt;server&gt;
&lt;port&gt;8001&lt;port&gt;
&lt;mount&gt;example.ogg&lt;mount&gt;
&lt;local-mount&gt;different.ogg&lt;local-mount&gt;
&lt;relay-shoutcast-metadata&gt;0&lt;relay-shoutcast-metadata&gt;
</p>
<h4>server</h4>
<div class=indentedbox>
This is the IP for the server which contains the mountpoint to be relayed.
</div>
<h4>port</h4>
<div class=indentedbox>
This is the TCP Port for the server which contains the mountpoint to be relayed.
</div>
<h4>mount</h4>
<div class=indentedbox>
The mountpoint located on the remote server. If you are relaying a shoutcast stream, this must be '/'
</div>
<h4>local-mount</h4>
<div class=indentedbox>
The name to use for the local mountpoint. This is what the mount will be named on the RELAY SERVER.
</div>
<h4>relay-shoutcast-metadata</h4>
<div class=indentedbox>
If you are relaying a Shoutcast stream, you need to specify this indicator to also relay the metadata (song titles) that is part of the Shoutcast stream. (1=enabled, 0=disabled)
</div>
<br>
<br>
<br>
<a name="mount"></a>
<h2>Mount Specific Settings</h2>
<pre>
&lt;mount&gt;
&lt;mount-name&gt;/example-complex.ogg&lt;mount-name&gt;
&lt;username&gt;othersource&lt;username&gt;
&lt;password&gt;hackmemore&lt;password&gt;
&lt;max-listeners&gt;1&lt;max-listeners&gt;
&lt;dump-file&gt;/tmp/dump-example1.ogg&lt;dump-file&gt;
&lt;fallback-mount&gt;example2.ogg&lt;fallback-mount&gt;
&lt;mount&gt;
</pre>
<p>This section contains settings which apply only to a specific mountpoint. Within this section you can reserve a specific mountpoint and set a source username/password for that mountpoint (Not yet implemented) as well as specify individual settings which will apply only to the supplied mountpoint.
</p>
<h4>mount-name</h4>
<div class=indentedbox>
The name of the mount point for which these settings apply.
</div>
<h4>username</h4>
<div class=indentedbox>
An optional value which will set the username that a source must use to connect using this mountpoint.
</div>
<h4>password</h4>
<div class=indentedbox>
An optional value which will set the password that a source must use to connect using this mountpoint.
</div>
<h4>max-listeners</h4>
<div class=indentedbox>
An optional value which will set the maximum number of listeners that can be attached to this mountpoint.
</div>
<h4>dump-file</h4>
<div class=indentedbox>
An optional value which will set the filename which will be a dump of the stream coming through on this mountpoint.
</div>
<h4>fallback-mount</h4>
<div class=indentedbox>
This specifies a mountpoint that is used in the case of a source disconnect. If listeners are connected to the mount specified by the &lt;mount-name&gt; config value, then if the source is disconnected, all currently connected clients will be moved to the fallback-mount.
</div>
<br>
<br>
<br>
<a name="path"></a>
<h2>Path Settings</h2>
<pre>
&lt;paths&gt;
&lt;basedir&gt;./&lt;basedir&gt;
&lt;logdir&gt;./logs&lt;logdir&gt;
&lt;webroot&gt;./web&lt;webroot&gt;
&lt;adminroot&gt;./admin&lt;adminroot&gt;
&lt;alias source="/foo" dest="/bar"/&gt;
&lt;paths&gt;
</pre>
<p>This section contains paths which are used for various things within icecast. All paths should not end in a '/'.
</p>
<h4>basedir</h4>
<div class=indentedbox>
This path is used in conjunction with the chroot settings, and specified the base directory that is chrooted to when the server is started. This feature is not supported on win32.
</div>
<h4>logdir</h4>
<div class=indentedbox>
This path specifies the base directory used for logging. Both the error.log and access.log will be created relative to this directory.
</div>
<h4>webroot</h4>
<div class=indentedbox>
This path specifies the base directory used for all static file requests. This directory can contain all standard file types (including mp3s and ogg vorbis files). For example, if webroot is set to /var/share/icecast2, and a request for http://server:port/mp3/stuff.mp3 comes in, then the file /var/share/icecast2/mp3/stuff.mp3 will be served.
</div>
<h4>adminroot</h4>
<div class=indentedbox>
This path specifies the base directory used for all admin requests. More specifically, this is used to hold the XSLT scripts used for the web-based admin interface. The admin directory contained within the icecast distribution contains these files.
</div>
<h4>alias source="/foo" dest="/bar"</h4>
<div class=indentedbox>
Aliases are used to provide a way to create multiple mountpoints that refer to the same mountpoint.
</div>
<br>
<br>
<br>
<a name="log"></a>
<h2>Logging Settings</h2>
<pre>
&lt;logging&gt;
&lt;accesslog&gt;access.log&lt;/accesslog&gt;
&lt;errorlog&gt;error.log&lt;/errorlog&gt;
&lt;loglevel&gt;4&lt;/loglevel&gt; &lt;-- 4 Debug, 3 Info, 2 Warn, 1 Error --&gt;
&lt;/logging&gt;