| View previous topic :: View next topic |
| Author |
Message |
Anonymous Guest
|
Posted: Sat Sep 08, 2007 6:14 pm Post subject: Relay dropping on cascading fallback setup. |
|
|
First thing is that the relay isn't there when I start icecast and then ices. I have to fire up a player and hit connect over and over until it appears. Then the relay mountpoint buffers and then drops after awhile.
Here's how it should work.
autodj = ices and is always playing
*djs = override autodj
both autodj and *djs end up on the /relay mountpoint
ices gives this error: Error during send: Libshout reported send error, disconnecting: Socket error
| Code: |
<icecast>
<limits>
<clients>1000</clients>
<sources>4</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<!-- same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won't need to
change from the default 64k. Applies to all mountpoints -->
<burst-size>65535</burst-size>
</limits>
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>MY PASSWORD</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>MY PASSWORD</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>MY PASSWORD</admin-password>
</authentication>
<!-- Uncomment this if you want directory listings -->
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
</directory>
<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>mydomain.com</hostname>
<!-- You can use these two if you only want a single listener -->
<!--<port>8000</port> -->
<!--<bind-address>127.0.0.1</bind-address>-->
<!-- You may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
</listen-socket>
<!--
<listen-socket>
<port>8005</port>
<shoutcast-compat>1</shoutcast-compat>
</listen-socket>
-->
<!--<master-server>127.0.0.1</master-server>-->
<!--<master-server-port>8001</master-server-port>-->
<!--<master-update-interval>120</master-update-interval>-->
<!--<master-password>hackme</master-password>-->
<!--<master-relay-auth>1</master-relay-auth>-->
<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!-- <relays-on-demand>0</relays-on-demand>-->
<!-- Report <hostname> and this port to master server for redirecting
clients to this slave -->
<!--<master-redirect-port>8000</master-redirect-port>-->
<!-- Relays. State connection information, and by default
request inline metadata for mp3 streams if available.
An on-demand relay will only retrieve the stream if
there are listeners connected -->
<!--
<relay>
<server>mydomain.com.com</server>
<port>8005</port>
<local-mount>/autodj</local-mount>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
-->
<relay>
<server>mydomain.com</server>
<port>8000</port>
<mount>/autodj</mount>
<local-mount>/relay</local-mount>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>
<!-- Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords -->
<mount>
<mount-name>/autodj</mount-name>
<intro>drop1.mp3</intro>
<max-listeners>100</max-listeners>
<hidden>0</hidden>
<public>1</public>
</mount>
<mount>
<mount-name>/dj1.mp3</mount-name>
<fallback-mount>/autodj</fallback-mount>
<fallback-override>1</fallback-override>
<intro>/drop1.mp3</intro>
<max-listeners>100</max-listeners>
<hidden>0</hidden>
</mount>
<mount>
<mount-name>/dj2.mp3</mount-name>
<fallback-mount>/autodj</fallback-mount>
<fallback-override>1</fallback-override>
<intro>/drop1.mp3</intro>
<max-listeners>100</max-listeners>
<hidden>0</hidden>
</mount>
<mount>
<mount-name>/dj3.mp3</mount-name>
<fallback-mount>/autodj</fallback-mount>
<fallback-override>1</fallback-override>
<intro>/drop1.mp3</intro>
<max-listeners>100</max-listeners>
<hidden>0</hidden>
</mount>
<mount>
<mount-name>/dj4.mp3</mount-name>
<fallback-mount>/autodj</fallback-mount>
<fallback-override>1</fallback-override>
<intro>/drop1.mp3</intro>
<max-listeners>100</max-listeners>
<hidden>0</hidden>
</mount>
<mount>
<mount-name>/relay</mount-name>
<hidden>0</hidden>
</mount>
<!-- other auth possibilities include running a command
to do the auth, mount, user and pass are passed via
stdin to the program
<mount>
....
<authentication type="command">
<option name="filename" value="auth_verify"/>
</authentication>
or
for url auth, the add url needs to return a "icecast-auth-user: 1" http
header for a user to authenicate. Both urls are sent params via POST,
add is sent id, mount, user, pass, ip, useragent
remove is passed id, mount, user, pass, duration
<authentication type="url">
state username/password if url requires it
<option name="username" value="admin"/>
<option name="password" value="hackme"/>
<option name="add" value="http://myauthserver.com/scripts/add_listener.php"/>
<option name="remove" value="http://myauthserver.com/scripts/del_listener.php"/>
</authentication>
</mount -->
<fileserve>1</fileserve>
<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->
<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>./</basedir>
<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<pidfile>/var/run/icecast/icecast.pid</pidfile>
<!-- Aliases: treat requests for 'source' path as being for 'dest' path
May be made specific to a port or bound address using the "port"
and "bind-address" attributes.
-->
<!--
<alias source="/foo" dest="/bar"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>1</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
|
|
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Sat Sep 08, 2007 6:39 pm Post subject: |
|
|
I'm assuming you intend to have /relay as the external point of contact for your listeners, with *dj* for the source clients.
The /relay will only kick off if a timer elapses (even if the source of the relay is local). With 2.3.1 it's every <master-update-interval> seconds but if you send a HUP signal then it will recheck again so you could plug in a handler (on-connect) to trigger when ices connects on /autodj.
Check your icecast error log to see what happens with autodj, if it's a timeout then there's probably some network issue between ices and icecast.
I suspect you also want <public>0 and <hidden>1 on the *dj* mounts.
karl. |
|
| Back to top |
|
 |
Anonymous Guest
|
Posted: Sat Sep 08, 2007 6:48 pm Post subject: |
|
|
EROR slave/start_relay_stream Error from relay request: File Not Found
On a side note, looks like I need to remove oddsock's yp info too.
Why isn't /relay there from the beginning? I think whatever the reason behind this, is the problem. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Sat Sep 08, 2007 10:42 pm Post subject: |
|
|
| Yes the oddsock YP is no more so you can remove that. The /relay is always there but it's not active as there is no /ices when it tries. That is why you get the EROR line. You need the startup of /ices to trigger a recheck of the relay list which can be done with HUP. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2002 phpBB Group subRebel style by ktauber
|