If this isn't supported, then I apologize for the disruption, I'll just tell my customer / client / friend it's time to seriously rethink what they're trying to do. If support is possible, here's the problem: I took a running icecast.xml file from a configuration that works. It has live, backup, and listener (called /broadband) mount points. A continuously running stream connects to /backup to provide a fallback, another stream can connect to /live, and listeners listen on /broadband. This config worked on a 2.42 Linux system, so I just dropped it into place as-is on the 2.31 XP system, but it does not work. The stream can connect to /backup, but when a listener tries to connect to /broadband, they get 404 in their media player. I suspect I've bungled the relay or fallback setup and would greatly appreciate help fixing it. Here's the XML with the comment lines removed to make it shorter: <icecast> <limits> <clients>100</clients> <sources>2</sources> <threadpool>5</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> <burst-on-connect>1</burst-on-connect> <burst-size>65535</burst-size> </limits> <authentication> <source-password>oliver88</source-password> <relay-password>oliver770</relay-password> <admin-user>tyler</admin-user> <admin-password>hackme</admin-password> </authentication> <hostname>192.168.1.10</hostname> <listen-socket> <port>8000</port> </listen-socket> <mount> <mount-name>/broadband</mount-name> <username>tyler</username> <password>oliver88</password> <max-listeners>5</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <burst-size>65536</burst-size> <fallback-mount>/live</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/example_intro.ogg</intro> <hidden>1</hidden> <no-yp>1</no-yp> <authentication type="htpasswd"> <option name="filename" value="myauth"/> <option name="allow_duplicate_users" value="0"/> </authentication> <on-connect>/home/icecast/bin/broadband-connect</on-connect> <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> </mount> <mount> <mount-name>/live</mount-name> <username>othersource</username> <password>oliver88</password> <max-listeners>5</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <burst-size>65536</burst-size> <fallback-mount>/backup</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/example_intro.ogg</intro> <hidden>1</hidden> <no-yp>1</no-yp> <authentication type="htpasswd"> <option name="filename" value="myauth"/> <option name="allow_duplicate_users" value="0"/> </authentication> <on-connect>/home/icecast/bin/broadband-connect</on-connect> <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> </mount> <mount> <mount-name>/backup</mount-name> <authentication type="url"> <option name="mount_add" value="http://myauthserver.net/notify_mount.php"/> <option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/> <option name="listener_add" value="http://myauthserver.net/notify_listener.php"/> <option name="listener_remove" value="http://myauthserver.net/notify_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>/backup</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>./logs</logdir> <webroot>./web</webroot> <adminroot>./admin</adminroot> <alias source="/foo" dest="/bar"/> <alias source="/" dest="/status.xsl"/> </paths> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <!-- <playlistlog>playlist.log</playlistlog> --> <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> <logsize>10000</logsize> <!-- Max size of a logfile --> <security> <chroot>0</chroot> </security> </icecast> Thanks in advance.
Could you post the config you used with comments? Currently there is at least one closing comment tag without a opening tag as far as I can see, which is confusing. If that is the file you are using, maybe you accidentally commented it out? Despite that it should works, but all of the paths in the config need to be adjusted for Windows! On 29 Nov 2015, at 22:16, Steve Matzura wrote:> If this isn't supported, then I apologize for the disruption, I'll > just tell my customer / client / friend it's time to seriously rethink > what they're trying to do. If support is possible, here's the problem: > > I took a running icecast.xml file from a configuration that works. It > has live, backup, and listener (called /broadband) mount points. A > continuously running stream connects to /backup to provide a fallback, > another stream can connect to /live, and listeners listen on > /broadband. This config worked on a 2.42 Linux system, so I just > dropped it into place as-is on the 2.31 XP system, but it does not > work. The stream can connect to /backup, but when a listener tries to > connect to /broadband, they get 404 in their media player. I suspect > I've bungled the relay or fallback setup and would greatly appreciate > help fixing it. > > Here's the XML with the comment lines removed to make it shorter: > > <icecast> > <limits> > <clients>100</clients> > <sources>2</sources> > <threadpool>5</threadpool> > <queue-size>524288</queue-size> > <client-timeout>30</client-timeout> > <header-timeout>15</header-timeout> > <source-timeout>10</source-timeout> > <burst-on-connect>1</burst-on-connect> > <burst-size>65535</burst-size> > </limits> > > <authentication> > <source-password>oliver88</source-password> > <relay-password>oliver770</relay-password> > > <admin-user>tyler</admin-user> > <admin-password>hackme</admin-password> > </authentication> > > > <hostname>192.168.1.10</hostname> > > <listen-socket> > <port>8000</port> > </listen-socket> > > <mount> > <mount-name>/broadband</mount-name> > > <username>tyler</username> > <password>oliver88</password> > > <max-listeners>5</max-listeners> > <dump-file>/tmp/dump-example1.ogg</dump-file> > <burst-size>65536</burst-size> > <fallback-mount>/live</fallback-mount> > <fallback-override>1</fallback-override> > <fallback-when-full>1</fallback-when-full> > <intro>/example_intro.ogg</intro> > <hidden>1</hidden> > <no-yp>1</no-yp> > <authentication type="htpasswd"> > <option name="filename" value="myauth"/> > <option name="allow_duplicate_users" value="0"/> > </authentication> > <on-connect>/home/icecast/bin/broadband-connect</on-connect> > <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> > </mount> > > <mount> > <mount-name>/live</mount-name> > > <username>othersource</username> > <password>oliver88</password> > > <max-listeners>5</max-listeners> > <dump-file>/tmp/dump-example1.ogg</dump-file> > <burst-size>65536</burst-size> > <fallback-mount>/backup</fallback-mount> > <fallback-override>1</fallback-override> > <fallback-when-full>1</fallback-when-full> > <intro>/example_intro.ogg</intro> > <hidden>1</hidden> > <no-yp>1</no-yp> > <authentication type="htpasswd"> > <option name="filename" value="myauth"/> > <option name="allow_duplicate_users" value="0"/> > </authentication> > <on-connect>/home/icecast/bin/broadband-connect</on-connect> > <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> > </mount> > > <mount> > <mount-name>/backup</mount-name> > <authentication type="url"> > <option name="mount_add" > value="http://myauthserver.net/notify_mount.php"/> > <option name="mount_remove" > value="http://myauthserver.net/notify_mount.php"/> > <option name="listener_add" > value="http://myauthserver.net/notify_listener.php"/> > <option name="listener_remove" > value="http://myauthserver.net/notify_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>/backup</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>./logs</logdir> > <webroot>./web</webroot> > <adminroot>./admin</adminroot> > > <alias source="/foo" dest="/bar"/> > <alias source="/" dest="/status.xsl"/> > </paths> > > <logging> > <accesslog>access.log</accesslog> > <errorlog>error.log</errorlog> > <!-- <playlistlog>playlist.log</playlistlog> --> > <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error > --> > <logsize>10000</logsize> <!-- Max size of a logfile --> > > <security> > <chroot>0</chroot> > </security> > </icecast> > > > Thanks in advance. > _______________________________________________ > Icecast mailing list > Icecast at xiph.org > http://lists.xiph.org/mailman/listinfo/icecast
Hi, A few issues with your file: 1. It's probably not finding the intro files. If you don't want them, remove them. 2. It's almost certainly not finding the on-connect and on-disconnect scripts. You'll definitely need to remove these. There are probably other issues. IMHO, delete anything you don't need in the file. Oh and I hope those passwords were not the actual passwords. I'd change them now if they are. Geoff.
On Mon, 30 Nov 2015 10:33:01 +0100, you wrote:>Could you post the config you used with comments? >Currently there is at least one closing comment tag without a opening tag >as far as I can see, which is confusing. >If that is the file you are using, maybe you accidentally commented it out? >Despite that it should works, but all of the paths in the config need to be >adjusted for Windows!I presume you mean paths like /home/ etc., I'll fix those. Re the edited file, sorry, I thought I was doing a good thing by removing the comments and making it shorter. Here's the file as it was, totally unedited. <icecast> <limits> <clients>100</clients> <sources>2</sources> <threadpool>5</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> <!-- If enabled, this will provide a burst of data when a client first connects, thereby significantly reducing the startup time for listeners that do substantial buffering. However, it also significantly increases latency between the source client and listening client. For low-latency setups, you might want to disable this. --> <burst-on-connect>1</burst-on-connect> <!-- 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>oliver88</source-password> <!-- Relays log in username 'relay' --> <relay-password>oliver770</relay-password> <!-- Admin logs in with the username given below --> <admin-user>tyler</admin-user> <admin-password>hackme</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>192.168.1.10</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>8001</port> </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>--> <!-- 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>1</relays-on-demand>--> <!-- <relay> <server>127.0.0.1</server> <port>8001</port> <mount>/example.ogg</mount> <local-mount>/different.ogg</local-mount> <on-demand>0</on-demand> <relay-shoutcast-metadata>0</relay-shoutcast-metadata> </relay> --> <!-- Only define a <mount> section if you want to use advanced options, like alternative usernames or passwords <mount> <mount-name>/broadband</mount-name> <username>tyler</username> <password>oliver88</password> <max-listeners>5</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <burst-size>65536</burst-size> <fallback-mount>/live</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/example_intro.ogg</intro> <hidden>1</hidden> <no-yp>1</no-yp> <authentication type="htpasswd"> <option name="filename" value="myauth"/> <option name="allow_duplicate_users" value="0"/> </authentication> <on-connect>/home/icecast/bin/broadband-connect</on-connect> <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> </mount> <mount> <mount-name>/live/</mount-name> <username>othersource</username> <password>oliver88</password> <max-listeners>5</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <burst-size>65536</burst-size> <fallback-mount>/backup</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/example_intro.ogg</intro> <hidden>1</hidden> <no-yp>1</no-yp> <authentication type="htpasswd"> <option name="filename" value="myauth"/> <option name="allow_duplicate_users" value="0"/> </authentication> <on-connect>/home/icecast/bin/broadband-connect</on-connect> <on-disconnect>/home/icecast/bin/broadband-disconnect</on-disconnect> </mount> <mount> <mount-name>/backup</mount-name> <authentication type="url"> <option name="mount_add" value="http://myauthserver.net/notify_mount.php"/> <option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/> <option name="listener_add" value="http://myauthserver.net/notify_listener.php"/> <option name="listener_remove" value="http://myauthserver.net/notify_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>/backup</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>./logs</logdir> <webroot>./web</webroot> <adminroot>./admin</adminroot> <!-- <pidfile>./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>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> <logsize>10000</logsize> <!-- Max size of a logfile --> <!-- If logarchive is enabled (1), then when logsize is reached the logfile will be moved to [error|access|playlist].log.DATESTAMP, otherwise it will be moved to [error|access|playlist].log.old. Default is non-archive mode (i.e. overwrite) --> <!-- <logarchive>1</logarchive> --> </logging> <security> <chroot>0</chroot> <!-- <changeowner> <user>nobody</user> <group>nogroup</group> </changeowner> --> </security> </icecast>
The intro and script stuff can and should be removed. Re the passwords, they're all internal anyway, so it doesn't matter. This particular server is not, cannot be, seen from the outside. On Mon, 30 Nov 2015 09:40:47 +0000 (GMT), you wrote:>Hi, > >A few issues with your file: > >1. It's probably not finding the intro files. If you don't want them, >remove them. > >2. It's almost certainly not finding the on-connect and on-disconnect >scripts. You'll definitely need to remove these. > >There are probably other issues. IMHO, delete anything you don't need in >the file. > >Oh and I hope those passwords were not the actual passwords. I'd change >them now if they are. > >Geoff. > >_______________________________________________ >Icecast mailing list >Icecast at xiph.org >http://lists.xiph.org/mailman/listinfo/icecast
I got most of my Icecast problems worked out, with one exception: If I want to locate any file or directory on another drive in Windows, how is that path specified? For instance, if I change <basedir> to D:\Someplace and I set <CHRoot> to 1 to accommodate this, what's the proper syntax for the <basedir> directive? Is it: <basedir>D:/Someplace</basedir> or maybe <basedir>/d/Someplace</basedir> or can the system root not be moved off drive C?