World Wide Conferencing Network

WWCN is a system that provides multimedia conferencing services on a world-wide scale. It has been optimized for realtime data delivery: music, voice, video, pictures, text, software updates, and so on. To cope with today's bandwidth scarcity, it implements a reliable "multicasting" technology (one to many data communication) over standard TCP (internet) connections.

Contents

HOME

WHAT IS WWCN?
   Introduction
   White papers

HOWTO...
   connect
   tune in
   build a network?

SOFTWARE
   multimedia players
   multimedia producers
   chat clients
   server software

MANUALS
   xmit
   recv
   fifo123



xmit manual

xmit is a program spefically written to transmit any kind of (realtime) data to the WWCN network. It can send data at a fixed rate, or it can send it just as fast as it is arriving. Its basic format is:
xmit host channel [options]
where [options] can be zero or more of the following:
  • -f filename to transmit data from a file. By default, xmit transmits data from stdin.
  • -i id to use a specific stream ID. Default is 32, and it is only relevant if one sender is transmitting several stream simultaneously.
  • -n nickname to use a specific nickname. It does not need to be unique.
  • -p port identifies the port to use when connecting to the WWCN server. The default is 7777.
  • -r rate to specify the rate at which to send the data.
  • -t datatype to specify the type of data you are transmitting. Can be one of: 'unknown', 'text', 'mp3', 'realaudio', 'ogg', 'gif', or 'jpg'.
Below, some aspects that need more attention are discussed.

Stream ID's

Future versions of xmit, or other WWCN clients and transmission tools, will support sending several stream simultaneously. For example, a radio DJ could broadcast an mp3 stream, and simultaneously chat with listeners on the same channel. The streams should then use different stream IDs. But as xmit currently does not support sending several stream simultaneously, you can safely ignore this option.

Send rate

A WWCN server only accepts data to be sent up to a certain rate. If a client sends more data, then it will be 'XOFFed'. If you get the message "received XOFF, idling for a while" then you are sending data at a too high rate. If you need more bandwidth to the server, then you should contact the server administrator.
If the -r rate option is omitted, xmit will send data as fast as it can read the data so if you are transmitting a file, then xmit will send data very fast. So be sure not to forget it.
Note that although it is possible to send an mp3 file using xmit and the -r rate option, this does not work very well. A 160 kbit stream does not precisely produce 160 kilobits (20480 bytes) per second. In the long run, this could cause network buffers to slowly fill and eventually overflow. The network connection will then be terminated. You are advised to use 'fifo123', see the page on producer software for more details.

Data type

For future compatibility, you are advised to use the -t datatype option to tell xmit (and all listening receivers) what kind of data you are transmitting. This helps future clients to start the proper helper application to play, view, or otherwise handle the data. Or if you write a patch to make xmit more intelligent to figure out what data it is transmitting, well, send it to me please ;)

A note on channel names

WWCN uses hierarchical channel names, which means that the "top directory" names are fixed. These include names as "tv", "radio", "chat", and so on. Your channel name should begin with one of these. If you log onto WWCN using an IRC client then you can explore the channel tree with the "/list" command, eg. type "/list radio" to see all the radio channels. This list can again contain subdirectories, such as "radio.classic" that would contain only classical radio stations.
If your channel name somehow is not accepted by the WWCN server, then you will not see much of an error notice. Transmission just will not commence, and xmit will not say "joined channel, starting transmission". Future versions will include proper error reporting.

Examples

This example will send an mp3 file at a fixed rate of 16 kbyte/sec to a channel called 'radio.test.myradio'.
# cat file.mp3 | xmit wwcn.server.com radio.test.myradio -r 16384
Note that this is not advised for a proper realtime playback. Instead, it is better to use fifo123 in the following manner:
# fifo123 -x /tmp/my.fifo file.mp3 &
# xmit wwcn.server.com radio.test.myradio /tmp/my.fifo
To transmit an analogue audio source in realtime in mp3 format, you could use something like this:
# sox -r 48000 -w -t ossdsp /dev/audio -t wav - | bladeenc -64  \
  STDIN STDOUT | ./xmit wwcn.server.com radio.test.myradio 
To retransmit a realaudio stream in realtime as mp3 file, use something like (note that this is often not legal to do):
# vsound -s -d realplay http://no.copy.ri/ghts.ram | sox -t au \
  - -r 44100  -t wav -  | bladeenc -32 STDIN STDOUT | xmit \
  wwcn.server.com radio.groovy