Tuesday, December 01, 2009

G.729/G.729a

G.729 and G.729a are compatible. The only difference is on the encode site. In RTP stream, both G.729/G.729a use the same payload type(15).


The following is from the IEEE.

This article describes the ITU-T Recommendation G.729 Annex A
(G.729A) for encoding speech signals at 8 kb/s with low complexity. G.729A
is the standard speech coding algorithm for multimedia digital simultaneous
voice and data (DSVD). G.729A is bitstream interoperable with G.729; that
is, speech coded with G.729A can be decoded with G.729, and vice versa. OF CLIP>

DSP resource

Normally we refer one DSP as PVDM2-16 which has 16 channel. So PVDM2-64 have four DSPs onboard.

Trancode can share DSP with voice channel. Conference will use dedicated/whole DSP even you just need fewer session.

1. One DSP has 240 flex credits.
2. Low complexity voice or transcoder uses 15 credits. This is for G.711.
3. Medium complexity voice or transcoder uses 30 credits. This is for G.729a.
4. High complexity voice or transcoder uses 40 credits. This is for G.729.


Here we can calculator how many transcoders one DSP can support.
1. 6 sessions for G.729
2. 8 sessions for G.729a.
3. 2 session for conference with 8 conferees each for G.729/G.729a. Total 16 conferees.
4. 8 session for conference with 8 conferees each for G.711. Total 64 conferees.
5. 16 G.711 voice channels.
6. 8 G.729a voice channels.
7. 6 G.729 voice channels.

Another thing interesting is:
1. For remote branch, PSTN comes in and send to Unity which is G.729a and use 30 credits. Then the call will be forward to local branch, but the Cisco GW still allocated 30 instead of 15 credits.

CUCM call recording

To enable call recording in CUCM,

1) Enable Built-in-bridge on the phone setting.
2) Enable Call monitoring on the DN. There are two configuration, one is "Recording Option", the other is "Recording Profile".

When you set "Recording option" to "Automatic Call Recording Enabled", when the RTP stream is estabilished, the codec will be locked which will cause some issues.

Let's look at a sample, agent A and B are on the same location. User from remote branched call agent A and this is a G729 call. Then agent A transferred the call to agent B using consultative transfer which will create a G722 RTP. Note that right now agent B is locked to G722. But based on the region setting, it should use G729 between the user and agent B. So when agent A hit transfer again, the call will be disconnected.

Here is the solution:
1. Disable G722 option for call recording DNs.
2. Setup Transcoder per branch which will have call recording enabled.