Cisco Codec Guidelines
Issue Description
Chronicall supports all Cisco-supported voice codecs (G.711, G.722, G.729) except iLBC and iSAC.
However, when Cisco RTP-forking-based central recording is used, UCM and the phones might drop call recording sessions, and even calls, if transcoding is not properly configured.
Cause
- Recorder and recorded phone are on different sites; WAN link bandwidth limitation requires a low-bitrate voice codec.
- Recorder and recorded phones are in different UCM regions.
- Codec change in a consultative transfer or joining a conference.
Resolution
Recorder and Recorded Phone Are on Different Sites
-
WAN link bandwidth limitation requires a low-bitrate voice codec.
-
In this case, it is recommended to put the recorder into a different UCM region, and set the inter-region codec according to available bandwidth.
- Example: Phones at a remote branch office are using the G.722/G.711 codec for internal calls. Between the recorder and remote office, the G.729 codec would be preferred due to the office's upload bandwidth limitations.
Different UCM Regions
-
Recorder and recorded phones are in different UCM regions.
-
If the intra-region codec bitrate (codec used in the "original" calls between phones/gateways in the same region) is higher than the inter-region codec between recorder and phone, then UCM is forced to insert a transcoder at the phone region to transcode the voice sent to the recorder, in order to match the inter-region codec bitrate.
- Example: Original call bitrate is 64 kbps (G.711 or G.722); recorder-phone region relationship dictates 8 kbps G.729 (default inter-region codec in UCM).
Codec Change in a Consultative Transfer or Joining a Conference
-
If a different codec is involved in the consultation call leg, then after transfer/in a conference leg, UCM drops both the recording and original call session.
-
This is a known Cisco issue: consultation and after-consultation legs are recorded in the same session (from the transferee or conferee's point of view), so when the phone starts a recording session using a certain codec, it gets "locked" into that codec. Chronicall supports mid-call codec change, but UCM does not support this in the case of recorder calls. A transcoder can handle this situation, and UCM tries to insert it into the call to do transcoding between the new call leg's codec and the "locked" codec.
- Example: Consultative transfer — Agent A calls recorded Agent B to transfer Customer C, who is calling from PSTN. The A→B internal call leg uses the G.722 codec; after transfer, the C→B gateway call leg switches to G.711. These call legs, from B's point of view, are handled in the same recording session by UCM, and due to locking the Built-In Bridge to G.722, this causes the second call leg to drop.
Updated 8 days ago