Hi ... I've installed and configured icecast following the readme and manual but can't connect from my windows client, I get this message in the logs: [05/Mar/2002:09:28:50] [5:Connection Handler] Kicking unknown 1 [172.16.141.52] [No encoder], connected for 1 seconds To test it, I've placed demo.mp3 in /usr/local/icecast/static/ and try 172.16.150.253:8000/demo.mp3 with winamp Anyone knows where the problem comes from? Here are my conf files: icecast.conf: # This be a comment, I like comments. # To use this file, copy it to etc/icecast.conf in the icecast base directory ################################################################################ # I suggest you read this file carefully, and don't do anything silly # cause the configuration file parser is pretty lame. # If not stated otherwize, you can change these while the server is # running (through the admin console). Or by changing this file # and using the rehash command (or (if supported) sending SIGHUP) # Please use the admin console though, cause that's what its there for :) ################################################################################ ############### Server Location and Resposible Person ########################## # Server meta info, please fill out these. # They get displayed when listing directories, streams, and # if the client supports it, among the other stream headers. # You can put anything here, it's just for show. ############### location Higgins rp_email the.dude@softhome.net server_url 172.16.150.253 ########################### Server Limits ###################################### # These describe the maximum number of simultaneous connections allowed. # When reached, the server will refuse access. # There is a builtin bandwidth measuring tool inside the icecast server, # and when icecast thinks that it is using more than "throttle" MB/s, then # no clients or sources will be allowed until the bandwidth usage goes back # down below the limit. Use this with caution, since the bandwidth measurement # is in no way an exact science. ########################### max_clients 2 max_clients_per_source 2 max_sources 2 max_admins 2 throttle 10.0 ########################## Stream Meta Data #################################### # This is a experimental feature, at best. # When it does not work, it will put the whole stream out of synk on the client # side, and you will get a big mess. # use_meta_data controls whether this icecast server will use title streaming at # all. It's turned off by default, cause it creates chirps in the # stream if you're not careful. # streamtitletemplate is a the template for creating the title that gets sent to # the client and the directory server. %s will be # substituted for the actual filename. # streamurl is the default url for each stream. # nametemplate is a template for the name of each stream. # desctemplate is a template for the description of each stream. ########################## use_meta_data 0 streamurllock 0 streamtitletemplate %s streamurl yp.icecast.org nametemplate %s desctemplate %s <p>######################## Mountpoint fallback ################################### # By default, if a user requests a stream that is not found, this user will be # given the default stream instead. The default stream is per default the oldest # stream on the server, but this can be changed with the priority value in the # 'modify' command. # If you don't want the user to get the default mount, but instead a # HTTP 404 Stream Not Found, then set this to 0 ######################## mount_fallback 1 ######################### Server passwords ##################################### # Unless you've compiled icecast with crypt support, # i.e with --with-crypt as an argument to the configure script, # then these are in cleartext. If you _do_ have crypt support, then # you have to create a crypted version of the password. You can do this # with the included mkpasswd.c program. Just compile it with # "gcc -o mkpasswd mkpasswd.c", perhaps with the -lcrypt option. ######################### encoder_password hackme admin_password hackme oper_password hackme ######################## Directory servers ##################################### # A directory server is a "meta-server" where you, for free, can list # your own icecast server. This is a great way of getting more listeners. # The touch_freq is how often to "update" the directory server with information # from your server. (e.g number of listeners, stream info, etc..) ######################## #icydir yp.shoutcast.com #icydir yp.breakfree.com #icydir yp.musicseek.net #icydir yp.van-pelt.com #icydir yp.radiostation.de #directory yp.icecast.org #directory yp.mp3.de touch_freq 5 ############# Server IP/port configuration (IMPORTANT) ######################### # If no hostname is specified, icecast will listen on all available interfaces, # i.e INADDR_ANY. This is probably what you want. # If you want icecast to _only_ listen on a specified ip, then change the # "hostname" parameter. The "port" parameter is rather self-explanatory. # As of icecast 1.3, all connections use port 8000. Admins, encoders, clients, # the whole thing. So no more messing with 3 different ports in the firewall # rules. # The server_name can currently ONLY be specified here, and ONLY when you start # the server. Changing it later on will not have the desired effect. # The server_name specifies the hostname of the server, don't set it to an ip, # and don't even THINK about setting it to a hostname not pointing to your ip. # - WARNING - WARNING - WARNING - (important, get it?) # It is VERY important that this server_name does actually resolv to the ip you # are running your server at. If not, BAD THINGS<tm> will happen. # E.g localhost is definately probably not what you want :) # Using your ip will probably work.. but it will look nicer with your hostname. # The problem is that if you specify something that doesn't resolve to yourself, # then virtual host support will get fscked up, and default server action # might not work either. # Also, changing the port here will not affect the server when doing a 'rehash' # since binding to a port is done only once, when the server is started. # server is started. # Users on dialup connections with dynamic ip:s are in trouble here, I know. # You will just have to live without the virtual hosts support, cause there is # no portable way of getting all the ip:s the process is binding to. Either # edit this file before starting icecast and fill in the current ip, or just # live with it. Setting the value to "dynamic", will tell the icecast server # that there is no reliable hostname for this machine. # # you can now use multiple ports. the default port is the first one defined. # define PORT, and PORT+1 for shoutcast compatibility. ############# hostname 172.16.150.253 port 8000 port 8001 erver_name 172.16.150.253 ####################### Directory server options ############################## # You can now force the directory server to use the server_name value instead # of the originating ip. For most people this is unnecessary, since it is the # same. But for people behind proxies, this should be very useful. # Set it to 1 if you want to force use of the server_name variable. ####################### force_servername 0 ######################## Main Server Logfile ################################## # This is the file where icecast prints all the information about # connections, warnings, errors, etc... # You cannot change this in the admin console, but changing it here # and then rehashing the server will work. # logfiledebuglevel is the debugging level for all output to the main logfile. # consoledebuglevel is the debugging level to the icecast console. # accessfile is the file where all connects/disconnects goes # usagefile is a file for periodic bandwidth and usage information goes ######################## logfile icecast.log accessfile access.log usagefile usage.log logfiledebuglevel 0 consoledebuglevel 0 ########################## Reverse Lookups #################################### # Set this to 1 if you want ip:s to be looked up (using reverse lookup) # or 0 if you just want the ip:s (which is slightly faster) ########################## reverse_lookups 1 ############################ Console mode ##################################### # Use 0 if you want stdin to become a local admin console with log tailing # Use 1 if you want stdin to become a local admin console # Use 2 if you just want the console to become a log window # Use 3 if you want the icecast server to be launched in the background (not available for Win32) ############################ console_mode 0 ########################### Client Timeout #################################### # (How to deal with clients when no encoder is connected) # A negative value means keep them forever # 0 (zero) means kick them out instantly # X > 0 means keep them X seconds ########################### client_timeout 30 ######################### Kicking clients ##################################### # If set to 1, then clients whose source has disconnected will # be kicked. If set to 0, they will simply be moved to another # stream. This only has an effect if client_timeout is <= 0. ######################### kick_clients 0 ###################### Static file directory ################################## # This enables the http-server file streaming support in icecast. # If you don't want to go through the trouble of setting up apache # or roxen or whatever, then you can just specify a directory here, # and then your_server:port/file/file.mp3 will be equivalent # to /staticdir/file.mp3 # The http server support is of course very limited, don't try to # do anything fancy. Also, only .mp3 files will be displayed. ###################### #staticdir c:\windows\desktop staticdir /usr/local/icecast/static ############################# Templates ###################################### # the icecast server uses templtes to format output for list.cgi and # various errors. you can specify the directory that these are read from # please use absolute paths if possible ############################# templatedir /usr/local/icecast/templates ############################# Statistics ###################################### # The icecast server dumps statistics to a file on a regular basis. # You can specify how often (stats_time), and to what file (stats_log) # StatsTime (how often to dump stats, in seconds) # 0 (zero) means to not dump stats # X > 0 means dump stats every X seconds to the file specified by stats_log ############################# logdir /usr/local/icecast/logs stats_log stats.log statshtml_log stats.html stats_time 60 ############# Aliases (including virtual host support) ######################## # In icecast servers prior to the 1.3 release, you could run a icecast # server as a relay for another icecast server, simply acting as a # client on the other server and serving the local clients. This was # of course a neat way of increasing the number of possible listeners # for your broadcast. You could build a tree-like structure of relays # and broadcast to 1000 listeners without problem with the originating # stream on a cable modem or whatever. # In icecast 1.3.0 and above, we make this procedure much simpler. # If you want to relay a stream from another server, simply add an # alias for that server. Say you want to relay the broadcast originating # from my machine (laika.linux.tm:8000/laika), on your machine, do this: # alias laika laika.linux.tm:8000/laika # What happens is that when a listeners connects to your server and # requests the /laika stream, then your icecast server will connect # as a client to my machine, and then feed my stream to the listener. # All subsequent requests for /laika will use the same feed (i.e only # one connect will be made to my machine). Icecast will automagically # shut the link from my machine down when no one is listening. I.e # no bandwidth will be wasted. # The old functionality (i.e adding a more or less static relay) is still # there, but you have to do it from the admin console. Just do # relay pull laika.linux.tm:8000, and that will be accessible as # your_machine:port/laika.linux.tm:8000 (you can change this with # the -m option to relay pull. # There is also a possibity to do it the other way around, starting at # the originating server. Just do "relay push <source_id> host:port", and # your stream will be relayed to the remote server. # In theory, this should enable virtual host support, cause you can # specify an alias like so: # alias virtual.host.com:port/whatever /something # This will make all requests to virtual.host.com:port/whatever use the # stream /something. This is not really thorougly tested, but it should # work if your server_name is correctly set, and the client is sending # the valid Host: <host:port> http header. ############# alias radiofri 195.7.65.207:6903 ############################ Kick Relays ###################################### # How long to keep aliased sources when no clients are left listening to it. ############################ kick_relays 10 ############################ Transparent proxy ################################ # This is somewhat equivalent to making _all_ request to aliased sources. So # instead of adding an alias for all streams in the world, turn on the # transparent proxy support. Using this on a server that has streams of it's # own can be quite tricky, and then, as usual it is _very_ important that # the server_name is correct. # Most mp3 playing clients have support for a http proxy # (afaik x11amp and winamp do, anyway). If listeners set your machine as this # proxy, and you turn on transparent_proxy, then when a client requests # whatever.com:port/whatever, then your icecast server will connect # to whatever.com and feed the whatever-stream to the client. All subsequent # request for this stream will use the same feed, just as if it was an alias. # When running icecast with your own broadcasts, then you should turn this off, # or anyone can bring your network down with a lot of relaying connects. # Don't turn this on if you don't have a server_name set ############################ transparent_proxy 0 <p>######################## Access Control Lists ################################## # Perhaps you don't care who connects to your server, but I guess most people # do. Icecast has 2 different ways of keeping people out. The first is using # libwrap (tcpd, tcp wrappers, whatever you want to call it). It is a separate # library written by Wietse Venema that over the years has become more or less # a security standard in Unix. It should compile on every sane and unsane unix # platform, and perhaps other platforms as well, I don't know. # libwrap uses the files hosts.deny and hosts.allow, usually found in /etc # or /usr/local/etc. You probably have to be root to edit these files. # Try the man pages for tcpd and hosts_access for more information. # There are 4 different icecast control thingies to use in hosts.deny/allow. # First just "icecast", which controls _all_ connections, and kick in before # anything is written or read on the socket. If a connection is denied here # then it's bye bye. If it is allowed then depending on the type of the # connection (admin/client/source), the controls "icecast_client", # "icecast_admin", "icecast_source" describe who gets in. # So to deny all clients except those matching *.se, add # "icecast_client: ALL EXCEPT *.se" to hosts.deny. There are millions of # variations on how to build a complete defence, and it's quite simple too. # libwrap is a very powerful tool, consult the manpages for more information. #### # The second way (which is always available) is using icecast's internal # acl lists. The functionality is the same, but it is not as powerful when it # comes to configuration and flexibilty as libwrap. # You can specify acl rules either here in icecast.conf, or using the # admin console. The syntax in icecast.conf is: # allow <all|client|source|admin> <hostmask> # deny <all|client|source|admin> <hostmask> # So, using the same rule as above (allowing only clients from *.se) # deny <client> * # allow <client> *.se # When using the internal acl rules, you need to specify a policy. # This rule kick in when no allow or deny rule affects a connection. # If you set acl_policy to 0, then connections who are not allowed by any # allow rule will be denied, and the other way around if you set it to 1. ######################### acl_policy 1 #deny all * #allow all *.ryd.student.liu.se ################################################################################ users.aut: # This is the user authentication file. # To use this file, copy it to etc/users.aut in the icecast base directory # The syntax is simple, one user and password per line. # Separate the user from the password with a colon. # The password should be in cleartext unless you've compiled # icecast with crypt support. # Example: # eel:mypassword # you:yourpassword greg:QONJH4LT7xRZE groups.aut: # This is the group authentication file. # Copy this file to etc/groups.aut in the icecast directory # Here you list all groups and their members. # The syntax is simple, one group with all its members on one line. # Separate the group name from the users with a colon, and the users # with commas. # Example: # all:him,her,it,me,you,they,and,we # enterprise:spock,kirk,mccoy,uhura,scott,chekov all:greg mounts.aut: # This is the mount authentication file. # To use this file, copy it to etc/mounts.aut in the icecast base directory # You specify which group(s) have access to which mountpoints # Groups are specified in the groups.aut file. # Note that you CANNOT specify users, only groups # Separate the mountpoint from the groups with a colon, and the # groups with commas # Example: # /monkey:enterprise,bandcamp # There are two special keywords, "all" and "rest", if you specify # "all" as the mountpoint (without slash), all other mountpoint # authorization lines are ignored and only the groups specified # on the "all" line are used. # The mountpoints /admin and /oper specify which users and groups can # use the WWW admin interface command, and operator commands. Don't # remove these, or anyone will have full access to the server. # The groups specified on the "rest" line are used to authorize # the mountpoint for which there are no lines. # Note that you DO NOT have to specifiy "rest" or "all". In fact # I suspect most people will not want this feature. # Example: # /reggae:reggaegroup,bandcamp # rest:enterprise /admin:greg /oper:greg all:greg <p><p>--- >8 ---- List archives: xiph.org/archives icecast project homepage: icecast.org To unsubscribe from this list, send a message to 'icecast-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.