Search This Blog

Friday, January 14, 2011

VoIP Recording

Versadial has provided recording solutions for traditional telecommunications media, including analog extensions and trunks, T1/E1 trunks, and digital PBX extensions, for many years. Within the last year, we began offering a software-only solution for recording VoIP extensions. This is attractive because there is no hardware to buy and no wiring (other than one CAT5 patch cord) required. However, there are several potential obstacles on the road to realizing a cost-effective solution.

The first is getting the audio packets to the recorder via that one patch cord. This is most often achieved by setting up one of the IP-PBX ports as a SPAN (Switch Port ANalyzer), which replicates all the phone traffic that should be recorded. The details of how to do that depend on the switch and it's capabilities. Some small switches cannot do it at all or may have limits on how many ports can be SPANned or mirrored. For example, one popular 24 port switch can only mirror 5 ports. Don't be tempted to take shortcuts in setting this up, for example SPANning all ports because it's easier and faster to do so. The result is recordings that playback at half speed because there are two copies of every audio packet, one from the phone port, the other from the PBX.

A network analyzer of some sort is indispensible in getting set up for VoIP recording. There are several free software analyzers available. We highly recommend Wireshark. The time spent learning to use it will pay dividends when installation day arrives. Set it up to capture the traffic on the recording computer NIC. (Be aware that if you wish to access the recording computer over the network while it is recording, two NICs are required.) Make test calls to or from each recorded device (physical phone or softphone) and verify that the traffic arrives at the recorder.

How will you know? VoIP audio is carried by UDP or RTP packets. There should be a steady stream of them while conversations are in progress. Here is an example:
If you know that your system actually uses RTP but all you see is UDP, select a UDP packet, right-mouse-click and choose Decode as ... and type in RTP. This will reveal whether or not you must overcome the next most common obstacle: what type of CODEC is in use. Our software solution at present records only the "plain vanilla" VoIP: G.711. Other CODECs have advantages but cannot be recorded. G.729, for example, uses bandwidth more efficiently but requires a license. G.723 is a wideband implementation that produces remarkable clarity on the phone but silent recordings.

Now that you know there is recordable phone traffic, see if each device is represented. Type a filter string in the Wireshark Filter edit box. If the devices have static IP addresses, this can be something like "ip.addr==192.168.0.100". If the IP addresses are dynamic, look for MAC addresses instead: "eth.addr==00:FA:11:27:CC:05" and click Apply. The captured data is re-analyzed as RTP. Once again, verify that the CODEC is recognized as G.711.

The next potential obstacle is the audio port range. The Wireshark trace shows the source and destination ports for each packet. When it comes time to setup the Versadial software-only solution, make sure that the range is wide enough to include them all.

Finally, use Wireshark to check for common VoIP problems: excessive skew, jitter, latency, and dropped packets. These can occur on the SPAN port even when the actual phone traffic is fine. If that data is not clean, the recordings won't be either.

No comments:

Post a Comment