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.