I've written something like that... but in MS Visual C. Takes any input via the recording functions, and uses an MP3 encoder (anything compatible to the BladeEnc DLL will do) to encode the "raw data".
Bad thing: Encoding does add some delay. Basically, the lower the bitrate, the longer the delay due to buffer issues. You _can_ force the encoding buffer to be lower, but I noticed that this really hurts the sound quality.
BTW, I haven't looked it up, but you could probably use the WMP module of bass to _encode_ as well as _decode_... if you just do your own socket communication, you might get closer to what you want to achieve. Especially since buffers are _your_ problem then