mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-11-03 04:17:17 -05:00
277 lines
12 KiB
HTML
277 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
<link rel="shortcut icon" href="../img/favicon.ico">
|
|
<title>Listing in a YellowPage Directory - Icecast Docs</title>
|
|
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
|
|
|
|
<link rel="stylesheet" href="../css/theme.css" type="text/css" />
|
|
<link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
|
|
<link rel="stylesheet" href="../css/highlight.css">
|
|
|
|
<script>
|
|
// Current page data
|
|
var mkdocs_page_name = "Listing in a YellowPage Directory";
|
|
var mkdocs_page_input_path = "yp.md";
|
|
var mkdocs_page_url = "/yp/";
|
|
</script>
|
|
|
|
<script src="../js/jquery-2.1.1.min.js"></script>
|
|
<script src="../js/modernizr-2.8.3.min.js"></script>
|
|
<script type="text/javascript" src="../js/highlight.pack.js"></script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
|
<div class="wy-side-nav-search">
|
|
<a href=".." class="icon icon-home"> Icecast Docs</a>
|
|
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
<ul class="current">
|
|
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="..">Introduction</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../basic_setup/">Basic Setup</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../config_file/">Configuration File</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../server_stats/">Server Statistics</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../auth/">Authentication</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../relaying/">Relaying</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1 current">
|
|
|
|
<a class="current" href="./">Listing in a YellowPage Directory</a>
|
|
<ul class="subnav">
|
|
|
|
<li class="toctree-l2"><a href="#overview">Overview</a></li>
|
|
|
|
|
|
<li class="toctree-l2"><a href="#configuring-icecast-for-directory-support">Configuring Icecast for Directory Support</a></li>
|
|
|
|
<ul>
|
|
|
|
<li><a class="toctree-l3" href="#further-options-that-play-a-significant-role-in-directory-listings">Further options that play a significant role in directory listings</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
<li class="toctree-l2"><a href="#configuring-your-source-client-for-directory-listings">Configuring Your Source Client for Directory Listings</a></li>
|
|
|
|
|
|
<li class="toctree-l2"><a href="#troubleshooting">Troubleshooting</a></li>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../admin_interface/">Admin Interface</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../win32/">Windows Specific</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="..">Icecast Docs</a>
|
|
</nav>
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="..">Docs</a> »</li>
|
|
|
|
|
|
|
|
<li>Listing in a YellowPage Directory</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main">
|
|
<div class="section">
|
|
|
|
<h1 id="overview">Overview</h1>
|
|
<p>A YP directory is a listing of broadcast streams. The Icecast project has it own directory located at
|
|
<a href="http://dir.xiph.org">http://dir.xiph.org</a>.</p>
|
|
<p>The Icecast configuration file contains entries for all the currently enabled directory servers. Listing your stream in a directory is
|
|
a combination of settings in the Icecast configuration file and also in your source client. It is of great importance
|
|
to configure Icecast correctly, as even one wrong setting can prevent listings to be accepted by a directory.</p>
|
|
<h1 id="configuring-icecast-for-directory-support">Configuring Icecast for Directory Support</h1>
|
|
<p>First of all, Icecast must have been built with directory support. This is automatically done if you have libcurl installed.
|
|
If libcurl is not detected when icecast is compiled, then directory support is disabled and listing attempts will fail.
|
|
If Icecast has been built with directory support, then the following configuration options control the directory settings:</p>
|
|
<pre><code class="xml"><directory>
|
|
<yp-url-timeout>15</yp-url-timeout>
|
|
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
|
|
</directory>
|
|
</code></pre>
|
|
|
|
<p>Multiple directory XML chunks can be specified in order to be listed in multiple directories.</p>
|
|
<p>In the default configuration the directory settings are commented out by being enclosed in <code><!--</code> and <code>--></code>.
|
|
By removing these comment markers and restarting/reloading Icecast the entry becomes active.</p>
|
|
<h2 id="further-options-that-play-a-significant-role-in-directory-listings">Further options that play a significant role in directory listings</h2>
|
|
<dl>
|
|
<dt>hostname</dt>
|
|
<dd>The hostname option <strong>MUST</strong> be set to a name that resolves to the machine this Icecast server runs on
|
|
(IP address is also permissible, but proper domain name is preferred).</dd>
|
|
<dt>listener-socket port</dt>
|
|
<dd>The <strong>first</strong> <code>listener-socket</code>+<code>port</code> entry in the configuration is used to build the URL advertized to the directory server.</dd>
|
|
<dt>listener-socket bind-address</dt>
|
|
<dd>If you don't specify an explicit <code>bind-address</code>, including <code>::</code> and <code>0.0.0.0</code>, then the default
|
|
bind behaviour of your operating system will apply, this may have unexpected consequences for dual-stack
|
|
(IPv6 and IPv4) setups. Icecast may end up only listening on IPv4.</dd>
|
|
</dl>
|
|
<p>If your hostname resolves to both an AAAA and an A record (IPv6 and IPv4), then you <strong>MUST</strong> verify,
|
|
that Icecast listens to both. If in doubt create two listener-socket entries and use <code>::</code> and <code>0.0.0.0</code>
|
|
as the respective <code>bind-address</code>.</p>
|
|
<dl>
|
|
<dt>admin</dt>
|
|
<dd>If you are listing on a directory, then this field <strong>MUST</strong> contain a valid email address of a technical contact
|
|
on your side. Directory admins will use this to reach you in case your server is misconfigured and causes problems
|
|
for listeners and the directory. An invalid or unreachable address is likely to get your radio/server/network banned from the directory.</dd>
|
|
</dl>
|
|
<h3 id="verifying-the-advertized-url">Verifying the advertized URL</h3>
|
|
<p>After adjusting the settings and configuring your source client, you should verify your setup:
|
|
Go to the Icecast web interface, specifically the admin part <code>/admin/</code> and look for the <code>listenurl</code> values
|
|
of your streams. These URLs <strong>MUST</strong> work from the public internet, or your listings will fail.</p>
|
|
<p>This is also one of the checks performed by a directory server. Common misconfigurations are:</p>
|
|
<ul>
|
|
<li><code><hostname></code> set to <code>localhost</code> instead of correct domain name</li>
|
|
<li><code><hostname></code> set to some address that does <strong>NOT</strong> point to the Icecast server, but e.g. a homepage</li>
|
|
<li>hostname has AAAA record but Icecast not bound to IPv6</li>
|
|
<li>multiple <code><listener-socket></code> entries, but the first one is not publicly reachable</li>
|
|
</ul>
|
|
<h1 id="configuring-your-source-client-for-directory-listings">Configuring Your Source Client for Directory Listings</h1>
|
|
<p>This is usually covered in the source client documentation. More specifically, the source client needs to provide
|
|
the HTTP header <code>Ice-Public: 1</code> on connect in order to enable directory listing of the stream.
|
|
This can however be overridden in the server side mount point settings, refer to “<a href="../config-file.html#mountsettings">Icecast Config File</a>”
|
|
for further details.<br />
|
|
If a mountpoint is being listed on a directory, then you will see some additional statistics relating to the directory such as
|
|
<code>last-touch</code>, <code>currently-playing</code>, etc.</p>
|
|
<h1 id="troubleshooting">Troubleshooting</h1>
|
|
<p>As with all Icecast problems, the error log is the goto place to start. If necessary temporary increase the log level to
|
|
<code>4</code> (debug) and reload the Icecast config. All relevant messages will contain <code>YP</code>. Especially those messages that tell
|
|
you that something <code>failed</code> will contain important hints and or messages from the directory server. If your entry submission
|
|
is directly rejected the server will tell why, if your entry gets delisted after submission, then you will see
|
|
updates/touches fail. Depending on the directory server the stream reachability check will be deferred, so you will see
|
|
a successfull initial submission, but if your stream is found to be unreachable it will be delisted and updates will fail.
|
|
Please note that directories will check both IPv6 and IPv4 availability of streams. See the list of common misconfigurations
|
|
for further hints.</p>
|
|
<p>Should you still have problems listing on <a href="../dir.xiph.org">http://dir.xiph.org</a>, then please:</p>
|
|
<ul>
|
|
<li>Set your logging to <code>4</code> (debug)</li>
|
|
<li>Reload/restart Icecast</li>
|
|
<li>Go through the common misconfigurations</li>
|
|
<li>Make sure your streams are running and marked public (either by source setting or mountpoint override)</li>
|
|
<li>Wait for <strong>one hour</strong></li>
|
|
<li>Filter the error log for messages, from the last hour, that are beginning with <code>yp/</code></li>
|
|
<li>Join the <a href="../Icecast users mailing list">http://lists.xiph.org/mailman/listinfo/icecast</a> (else the following step will fail!)</li>
|
|
<li>Send a mail to <a href="../icecast@xiph.org">mailto:icecast@xiph.org</a> containing:<ol>
|
|
<li>The public URL of your Icecast server - e.g. <code>http://icecast.example.org:8000/</code> (Even if you have removed the status pages! This does <strong>NOT</strong> mean your homepage.)</li>
|
|
<li>The <code><hostname></code>, <code><listen-socket></code> and <code><directory></code> sections of your <code>icecast.xml</code></li>
|
|
<li>Your Icecast version and operating system / distribution</li>
|
|
<li>The <em>filtered</em> error.log prepared previously (as an attachment)</li>
|
|
</ol>
|
|
</li>
|
|
<li>Wait for replies from the mailing list</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
|
|
|
<a href="../admin_interface/" class="btn btn-neutral float-right" title="Admin Interface">Next <span class="icon icon-circle-arrow-right"></span></a>
|
|
|
|
|
|
<a href="../relaying/" class="btn btn-neutral" title="Relaying"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
|
|
</div>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<!-- Copyright etc -->
|
|
|
|
</div>
|
|
|
|
Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<div class="rst-versions" role="note" style="cursor: pointer">
|
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
|
|
|
|
<span><a href="../relaying/" style="color: #fcfcfc;">« Previous</a></span>
|
|
|
|
|
|
<span style="margin-left: 15px"><a href="../admin_interface/" style="color: #fcfcfc">Next »</a></span>
|
|
|
|
</span>
|
|
</div>
|
|
<script>var base_url = '..';</script>
|
|
<script src="../js/theme.js"></script>
|
|
|
|
</body>
|
|
</html>
|