I’d like to present a free solution for Windows XP that reliably records incoming and outgoing SIP phone calls. I’m currently using it to record traditional conference calls for a team of software developers.
What you need
- Either Windows XP or Debian/Ubuntu (or work-alike)
- A SIP account (either public – e.g. sipgate – or private one)
- Either a soft phone or a SIP telephone and an Ethernet Hub
- Oreka: Audio streams recording and retrieval
What you’ll get
- A .wav file for each outgoing or incoming VOIP call.
- There are additional components available from OrecX (some of which are being sold and thus are not for free), e.g. for saving phone calls within a database for later retrieval. I neither used nor needed those, as my primary concern was just to record daily stand-up telephone meetings.
How to Install
- From Oreka: Download the files for your system environment
- Install the Oreka audio capture server
Fine Tuning Capture Formats
By default, Oreka will produce .WAV-files using GSM compression. GSM is widely used for mobile phones, thus files are very small (about 100kBytes/minute), but sound quality is a little bit on the dull side and older applications might fail to understand GSM encoding. If space is of lesser concern, I’d recommend the plain old uncompressed pcmwav format (about 1MByte/minute) that can be read by virtually any program, or the ulaw (best in USA + Japan) or alaw (best in Europe and for international calls) encodings (about 500kBytes/minute) that are commonly used for SIP voice data and can be read by most programs.
With Oreka, audio file storage format can be set up within Oreka’s config.xml (Caution: do not choose native):
<!– Audio file storage format: choose from: native, gsm, ulaw, alaw, pcmwav –>
Converting to MP3
When publishing recordings, I’d suggest to produce .mp3-files. Oreka can’t do this on its own (at least the free version). I’m using WavePad to do the job: Drag your .wav file to WavePad, then click Effects, Dynamic Wave Compressor…, Threshold -24dB, Ratio 5:1, Limit 4dB, OK, then Save File As…, MP3, Constant Bitrate, 16kbps, Mono. You’ll end up with tiny files whose quality is superior to the one produced by commercial conference recording systems.
Using an External Hardware SIP Phone
When using an external SIP phone (my favorite is the Thomson Speedtouch ST2030), for Oreka to successfully record your phone calls, it is required that Oreka “hears” all the data being sent from and to your SIP phone. That’s quite easy when using a soft phone on the very same PC that Oreka is running on, but will be more complicated when using an external hardware SIP phone. Current computer network equipment uses network switches to interconnect devices. Switches are smart. They know how to direct network data packets, so that reach their intended receivers – and only those. Let’s assume you’ve connected three devices to your switch (the switch itself possibly having been integrated within your DSL router):
- Your DSL router
- Your SIP phone
- Your PC (with Oreka installed and trying to eavesdrop your phone calls)
Now, when you place a phone call, your switch will forward voice data from the internet to your phone (and vice versa). Your PC however will not receive any data sent from or received by your phone, effectively deafening Oreka. Although Oreka has instructed the network card within your PC to listen for any traffic (including the traffic that’s not destined for your PC), you won’t be able to record any phone call at all.
So are we stuck yet? Depends. If you are using a VOIP-DSL router where you have plugged your analog phone(s) into, the answer is yes. Read no further. Either look for conferencing services (e.g. Basement Ventures Free Conference Call Services) or analog taps that go in between the cable from your phone and to its handset (e.g. the Radio Shack Mini Recorder Model 43-1237 or the JK Audio THAT-1). However, if you are using a VOIP phone (one that uses Ethernet and does the SIP itself), you’ll get away by replacing your switch with a hub.
Provided you are using a SIP VOIP phone, you’ll either need a switch that features port mirroring (quite expensive) or a network hub, which forwards any data received on one of its ports to all other ports. As far as I know, hubs are no longer being manufactured at all, so you’ll either have to snatch one from a museum or get a used one from eBay. I’ve successfully tested the Netgear FE 10x and DS 10x hubs, both readily available and very inexpensive.