Tuesday, April 19, 2011

Psychology in Unified Communications - Part I

When moving circuit based communications to digital packet based networks a large concern is bandwidth. There never seem to be enough bandwidth, so the engineers designing voice (over IP) codecs have developed techniques to limit the need for bandwidth. The media sent over the network is basically a bunch of 1's and 0's, where a 1 indicates a value, activity or sound on the line, and 0's, or rather a bunch of 0’s indicates silence. So, if there are constant silence we could send a quadrillion zeros from one device to the other, but this would not be very efficient bandwidth-wise. Add to this the dynamics of telephone call - you are talking and I am listening, or I am talking and you are listening; we realize that a lot of bandwidth could be wasted here.

The solution to this problem is called Silence Suppression. With this technique a telephone system will only send digits (1's or 0's) when someone speaks or when there is voice activity detected.

So, absolute Silence Suppression would create an absolute silence at the receiving end of a call. However, this is not a good idea since the receiving human would then think the line is down. Since we all have got used to hear some background noise or some crackling static noise when using the telephone the last 100 or so years, we will miss this cosy feeling of being connected. We would actually miss it so bad so that we would complain if we did not get this crackling noise in our calls. I once tried a PBX system in development that had complete silence suppression and it was scary I must say. We both had to ask "Are you there?" several times during a short conversation. So in the time and age of digital Dolby hi-fi surround sound, we still want our phone calls to sound a little rough, crappy or noisy.

The solution to this problem is called Comfort Noise. With this technique a telephone system will generate artificial noise on the receiving end. Hence no need of sending a bunch of 0’s all the time to indicate silence. The crackling noise you hear then when calling with your shiny new VoIP system is not due to bad quality and it is not even coming from the calling party or the line. That crackling noise is added because you want it, and someone even wrote some code to add it artificially, isn't that strange? Well, to a technician it might be strange but it deals with concepts called human nature or psychology.

How can we verify comfort noise in Lync?
The easiest way is to listen; make a call between two Lync clients and on one client yank up the sound level in the computer and on the USB headset as much as you can. You should now hear some nice crackling comfort noise in the headset.

Another funny thing I noticed - on the called client mute the microphone and the noise will silence, now un-mute, but be quiet, and the noise will not reappear until you say something in the called client.

We can also check comfort noise in Lync via logs. In the Lync Server 2010 Logging tool start logging on SIP Stack, and make a call between two Lync clients. When you view this log you will find a SIP INVITE message containing the following two lines in the SDP body…

a=rtpmap:13 CN/8000
a=rtpmap:118 CN/16000

…and this indicates that Lync is indeed offering comfort noise when inviting someone to a call.

If you have connected your Lync system to a PSTN Gateway, such as a PBX, SBC or other type of equipment you can often see the "LS Mediation Server" component logging this warning in the event log of the mediation server:

The Mediation Server service has received a call that does not support comfort noise. This event is throttled after 5 calls from a single Gateway peer.
The Mediation Server service has received a call that does not support comfort noise from the Gateway peer,
Cause: The Gateway peer does not support comfort noise.
Resolution: Please ensure the comfort noise option on the Gateway has been enabled.

This does not mean that calls will fail, but you might not hear the nice artificial noise on the remote end of the call. However, if your remote device is on a mobile network or connected by copper lines there will plenty of noise anyway, so no need to add it artificially.

That’s a little something about how technology must adapt and are adapting to human nature and not the other way around. Good for us! Enjoy your noisy calls!

No comments:

Post a Comment