1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-11-03 04:17:17 -05:00
icecast-server/doc/yp/index.html

277 lines
12 KiB
HTML
Raw Normal View History

2017-11-20 14:20:38 -05:00
<!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>
&nbsp;
</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> &raquo;</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">&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;
</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>&lt;!--</code> and <code>--&gt;</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>&lt;hostname&gt;</code> set to <code>localhost</code> instead of correct domain name</li>
<li><code>&lt;hostname&gt;</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>&lt;listener-socket&gt;</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>&lt;hostname&gt;</code>, <code>&lt;listen-socket&gt;</code> and <code>&lt;directory&gt;</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;">&laquo; Previous</a></span>
<span style="margin-left: 15px"><a href="../admin_interface/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script>var base_url = '..';</script>
<script src="../js/theme.js"></script>
</body>
</html>