Codec Support and Restrictions

Overview

This chapter provides advanced information about the support of and restrictions for using certain codecs with CUBE. For basic information on how to configure codecs, refer to the Overview section.

Feature Information

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1. Feature Information for Codec Support

Feature Name

Releases

Feature Information

Opus Codec Transcoding

Cisco IOS XE Bengaluru 17.6.1a

Transcoding support was introduced for Opus codec.

Opus Codec Negotiation

Cisco IOS XE Amsterdam 17.3.1

Opus audio codec support on CUBE was introduced.

The following commands were introduced or modified as part of Opus codec feature:

  • codec opus [profile tag]

  • codec profile tag profile

  • codec preference value codec-type [profile profile-tag]

  • rtp payload-type opus payload-type-number

OPUS Codec

The Opus interactive speech and audio codec is designed to handle a wide range of interactive audio applications. This includes Voice over IP, video conferencing, and in-game chat. The OPUS codec also supports live, distributed music performances. It scales from low bitrate narrowband speech at 6 kbps to very high-quality stereo music at 510 kbps. Opus uses both Linear Prediction (LP) and Modified Discrete Cosine Transform (MDCT) algorithms to achieve good compression of both speech and music.


Note


Opus codec is only supported for SIP-SIP call scenarios. It is not supported for TDM-SIP or Analog-SIP flows.


Opus Codec Configuration

  • You can configure Opus codec handling with the following dial peer and voice class codec commands:

    • codec opus [profile tag ] —The CLI command under dial-peer configuration mode is enhanced:

      router(config)#dial-peer voice 3002 voip
      router(config-dial-peer)#codec opus profile 2
    • codec profile tag profile —The CLI command that is configured under global configuration mode is enhanced to configure opus as a supported codec:

      router(config)#codec profile 2 opus
      router(conf-codec-profile)#fmtp "fmtp:114 maxplaybackrate=16000; sprop-maxcapturerate=16000; maxaveragebitrate=20000; stereo=1; sprop-stereo=0; useinbandfec=0; usedtx=0; cbr=0"
      router(conf-codec-profile)#exit
      
    • codec preference value codec-type [ profile profile-tag] —The CLI command that is configured under voice class configuration mode is enhanced to configure opus as a preferred codec on the dial-peer:

      router(config)#voice class codec 80
      router(config-class)#codec preference 1 opus profile 79
      router(config-class)#exit
    • rtp payload-type [opus number] —The CLI command that is configured under dial-peer configuration mode is enhanced to configure opus as a supported payload type:

      router(config)#dial-peer voice 604 voip
      router(config-dial-peer)#rtp payload-type opus 126
      • The default payload-type for opus is set to 114.

      • The default payload-type for cisco-codec-aacld is set to 112.

    • The CLI command show call active voice [brief | compact] is modified to include details on Opus codec in the command output.

    • The CLI command show sip-ua calls is modified to include details on Opus codec in the command output.

  • Opus codec profile configuration is optional and can be used to define the initial offer in delayed offer to early offer call flows. Else, DSP-specific Opus parameters are used if the DSPFARM profile is configured with Opus codec.

  • Transcoding between Opus and other codecs is available with PVDM4 DSP cards from Cisco IOS XE Bengaluru 17.6.1a onwards. Calls that require Opus transcoding are dropped by earlier releases.

  • Opus Codec is supported for both secure and nonsecure calls (RTP-to-RTP, SRTP-to-SRTP, SRTP-to-RTP, and RTP-to-SRTP).

  • Opus supports several clock rates. Only the highest clock rate of 48000 is advertised in the SDP. The following is a sample configuration of SDP for Opus codec:

    m=audio 16000 RTP/AVP 114       a=rtpmap:114 opus/48000/2
  • Opus codec defines the optional media format (fmtp) parameters in a call. CUBE passes through the optional fmtp parameters from one side to the other if an Opus codec is configured on both sides of the call.

  • Opus codec defines the following fmtp parameters:

    • maxaveragebitrate

    • maxplaybackrate

    • stereo

    • useinbandfec

    • usedtx

    • sprop-maxcapturerate

    • sprop-stereo

    • cbr

  • Dynamic payload interworking is enabled by default on CUBE. Configure asymmetric payload [full] if CUBE is not required to handle payload interworking. In this scenario, interworking is handled at the endpoints handling the media.

  • For interworking scenarios that support Opus codec, SDP Offer-Answer by CUBE must include default fmtp parameters that are required by DSP. The Offer-Answer includes the DSP-specific default parameters only if DSPFARM is configured with Opus codec.

    Example:

    m=audio 4002 RTP/AVP 114 
    
    a=rtpmap:114 opus/48000/2
    
    a=fmtp:114  maxaveragebitrate=32000
    
    a=maxptime:20
    

Restrictions

  • The Opus codec option is not available with the Extended Media Forking (XMF) API.

  • CUBE doesn't support processing of multiple fmtp lines. If the received SDP has multiple fmtp lines, then only the first fmtp line is passed in the outbound INVITE.

  • CUBE DSP doesn't support multiframes OPUS RTP packets for transcoding.

ISAC Codec Support on CUBE

The iSAC codec is an adaptive VoIP codec specially designed to deliver wideband sound quality in both low- and high-bit rate applications. The iSAC codec automatically adjusts the bit-rate for the best quality or a fixed bit rate can be used if the network characteristics are known. This codec is designed for wideband VoIP communications. The iSAC codec offers better quality with reduced bandwidth for sideband applications.

Restrictions

Low complexity is not supported for the iSAC codec.

AAC-LD MP4A-LATM Codec Support

As part of this feature, CUBE supports the following:

  • Accept and send MP4A-LATM codec and corresponding FMTP profiles

  • Configure MP4A-LATM under dial-peer or under voice-class codec as preferred codec

  • Pass across real-time transport protocol (RTP) media for MP4A-LATM codec without any interworking

  • Offer pre-configured FMTP profile for MP4A-LATM for DO-EO (Delayed-Offer to Early-Offer) calls

  • Offer more than one FMTP profile (each with different payload type number) as mentioned by the offering endpoint, so that the answering endpoint can choose the best option.

  • Offer only one instance of MP4A-LATM if media forking is applicable. The offered instance is the first one received in the offer.

  • Calculate bandwidth for MP4A-LATM on the basis of either “b=TIAS” attribute or “bitrate” parameter in the FMTP attribute. If none of them are present in the session description protocol (SDP), the default maximum bandwidth, that is, 128 Kbps will be used for calculation.

  • The following CUBE features are supported with the MP4A-LATM codec:

    • Basic call (audio and video) flow-around and flow-through (FA and FT).

    • Voice Class Codec support in CUBE with codec filtering

    • SRTP and SRTCP passthrough for SIP-to-SIP calls

    • Supplementary services

    • RSVP

    • Dynamic payload type interworking for DTMF and codec packets for SIP-to-SIP calls

    • Media Anti-Trombone with SIP signaling control on CUBE

    • Support for SIP UPDATE message per RFC 3311

    • RTP Media Loopback

    • Media forking for IP based calls using Zephyr recording server

    • CUBE Mid-call Re-INVITE consumption

    • Signaling forking (Fastweb multile SIP Early Dialog Support, FA and FT)

    • Maximum bandwidth-based CAC

    • Media Policing

    • Box-to-Box High Availability (B2B HA)

    • Inbox High Availability (Inbox HA)

Restrictions for AAC-LD MP4A-LATM Codec Support

CUBE does not support the following:

  • Codec transcoding between MP4A-LATM and other codecs

  • Dual-tone Multifrequency (DTMF) interworking with MP4A-LATM codec

  • Non-SIP-SIP, that is, SIP to other service provider interface (SPI) interworking with MP4A-LATM codec