Icecast Streaming Media Server Forum Index Icecast Streaming Media Server
Icecast is a Xiph Foundation Project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Relay dropping on cascading fallback setup.

 
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server
View previous topic :: View next topic  
Author Message
Anonymous
Guest





PostPosted: Sat Sep 08, 2007 6:14 pm    Post subject: Relay dropping on cascading fallback setup. Reply with quote

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
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Sat Sep 08, 2007 6:39 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Anonymous
Guest





PostPosted: Sat Sep 08, 2007 6:48 pm    Post subject: Reply with quote

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
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Sat Sep 08, 2007 10:42 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server All times are GMT
Page 1 of 1

 
Jump to:  
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