CUBE Transcoding on an MGX or VXSM WAN Switch


CUBE (SBC) transcoding can be done using the DSP farm on an MGX or VXSM WAN switch as a transcoder via the H.248 protocol.

Transcoding is the process of translating one type of media stream or codec into another type of media stream or codec. For example, PCMU into G.726-32.

Transcoding is triggered by a response from the callee endpoint, indicating that none of the codecs in the initial request are acceptable. Responses that trigger transcoding are as follows:

415 - Unsupported media type (SIP)

488 - Not acceptable here (SIP)

65 - Bearer Capability not implemented disconnect cause value (H.323)

When transcoding is triggered, the SBE places a transcoder in the media path between the incoming and outgoing DBEs. The SBE then sends a new request to the callee, with a new codec type generated by the transcoder. The SBE may have to iterate through the list of codecs until it finds one that the callee accepts. Once a codec is found that is accepted by the callee, the call is connected and media transmission begins.

This example shows how to configure CUBE Transcoding on an MGX or VXSM WAN switch. Each segment of the example is explained below.

SBC SBE Configuration

Configures the SBC and SBE.

Media Gateway Configuration

Configures an MGX WAN switch as the media gateway as follows:

media-gateway - Configures the IP address of the MGX WAN switch media gateway.

codecs - Configures the codecs supported by the media gateway.

transcoder - Configures this media gateway as a transcoder.

control address h248 index - Configures the IPv4, H.248 control address of this transcoder.

transport udp - Configures UDP as the transport for the H.248 signaling.

ipv4 - Configures the IP address of the SBC.

Adjacency Configuration

Configures the Nav_A and Nav_B adjacencies.

Call Policy: Adjacency Connection

Establishes the connection between the Nav_A and Nav_B adjacencies.

CAC Table: Codec Enforcement

(Optional) Enforces which codecs each side of the call is allowed to use.

Transcoding CUBE on the MGX (in Segments)

SBC Configuration

sbc My_SBC 
  sbe
 

MGX as Media Gateway Configuration

media-gateway ipv4 10.0.181.2 
	codecs m=audio 1234 RTP/AVP 0 8,a=rtpmap:0 PCMU/8000,a=rtpmap:8 PCMA/8000 
	transcoder 
	control address h248 index 1 
	transport udp 
	ipv4 23.30.1.1 - SBC ip address 
 
   

Adjacency 1 Configuration

   adjacency sip Nav_A 
    inherit profile preset-access 
    preferred-transport udp 
    signaling-address ipv4 23.30.1.1 
    statistics method summary 
    signaling-port 5060 
    remote-address ipv4 23.31.0.0 255.255.0.0 
    signaling-peer 23.31.1.2 
    attach 
 
   

Adjacency 2 Configuration

adjacency sip Nav_B
    nat force-off
    preferred-transport udp
    signaling-address ipv4 23.30.1.1
    statistics method summary
    signaling-port 5060
    remote-address ipv4 23.32.0.0 255.255.0.0
    signaling-peer 23.32.1.2
    account Nav_B
    attach
 
   

Call Policy: Adjacency Connection

  call-policy-set 1
    first-call-routing-table ROUTE-ON-DEST-NUMB
    rtg-dst-address-table ROUTE-ON-DEST-NUMB
     entry 1
      action complete
      dst-adjacency Nav_A
      match-address 91939 digits
      prefix
     entry 2
      action complete
      dst-adjacency Nav_B
      match-address 40852 digits
      prefix
    complete
  call-policy-set default 1
  media-address ipv4 23.30.1.10
  port-range 10000 64000 any
  activate
 
   
 
   

CAC Policy: Codec Enforcement

cac-policy-set 1
    first-cac-table Transcode
    first-cac-scope dst-adjacency
    cac-table Transcode
     table-type policy-set
     entry 1
      cac-scope call
      caller-codec-list sideA
      callee-codec-list sideB
      action cac-complete
    complete
   cac-policy-set global 1
<...>
   codec list sideA
    codec PCMA
   codec list sideB
    codec G729
 
   
 
   
 
   
 
   

Transcoding CUBE on the MGX (for Copy and Paste)

sbc My_SBC 
  sbe
 
   
media-gateway ipv4 10.0.181.2 
	codecs m=audio 1234 RTP/AVP 0 8,a=rtpmap:0 PCMU/8000,a=rtpmap:8 PCMA/8000 
	transcoder
	control address h248 index 1
	transport udp
	ipv4 23.30.1.1 - SBC ip address
 
   
adjacency sip Nav_A
    inherit profile preset-access
    preferred-transport udp
    signaling-address ipv4 23.30.1.1
    statistics method summary
    signaling-port 5060
    remote-address ipv4 23.31.0.0 255.255.0.0
    signaling-peer 23.31.1.2
    attach
 
   
adjacency sip Nav_B
    nat force-off
    preferred-transport udp
    signaling-address ipv4 23.30.1.1
    statistics method summary
    signaling-port 5060
    remote-address ipv4 23.32.0.0 255.255.0.0
    signaling-peer 23.32.1.2
    account Nav_B
    attach
 
   
call-policy-set 1
	first-call-routing-table ROUTE-ON-DEST-NUMB
	rtg-dst-address-table ROUTE-ON-DEST-NUMB
	entry 1
		action complete
		dst-adjacency Nav_A
		match-address 91939 digits
		prefix
	entry 2
		action complete
		dst-adjacency Nav_B
		match-address 40852 digits
		prefix
	complete
	call-policy-set default 1
	media-address ipv4 23.30.1.10
	port-range 10000 64000 any
	activate
 
   
 
   
cac-policy-set 1
	first-cac-table Transcode
	first-cac-scope dst-adjacency
	cac-table Transcode
	table-type policy-set
	entry 1
		cac-scope call
		caller-codec-list sideA
		callee-codec-list sideB
		action cac-complete
	complete
	cac-policy-set global 1
	codec list sideA
		codec PCMA
		codec list sideB
		codec G729
 
   
 
   

Transcoding CUBE on the MGX (with CLI Prompts)

Router# config t
Router(config)# sbc My_SBC 
Router(config-sbc)# sbe
 
   
 
   
PE25_ASR-1004(config-sbc-sbe)# media-gateway ipv4 10.0.181.2
PE25_ASR-1004(config-sbc-sbe-mg)# codecs m=audio 1234 RTP/AVP 0 8,a=rtpmap:0 
PCMU/8000,a=rtpmap:8 PCMA/8000
PE25_ASR-1004(config-sbc-sbe-mg-codecs)# transcoder
PE25_ASR-1004(config-sbc-sbe-mg-codecs)# control address h248 index 1
PE25_ASR-1004(config-sbc-sbe-ctrl-h248)# transport udp
PE25_ASR-1004(config-sbc-sbe-ctrl-h248)# ipv4 23.30.1.1
PE25_ASR-1004(config-sbc-sbe-ctrl-h248)# exit 
 
   
 
   
Router(config-sbc-sbe)# adjacency sip Nav_A
Router(config-sbc-sbe-adj-sip)# inherit profile preset-access
Router(config-sbc-sbe-adj-sip)# preferred-transport udp
Router(config-sbc-sbe-adj-sip)# signaling-address ipv4 23.30.1.1
Router(config-sbc-sbe-adj-sip)# statistics method summary
Router(config-sbc-sbe-adj-sip)# signaling-port 5060
Router(config-sbc-sbe-adj-sip)# remote-address ipv4 23.31.0.0 255.255.0.0
Router(config-sbc-sbe-adj-sip)# signaling-peer 23.31.1.2
Router(config-sbc-sbe-adj-sip)# attach
Router(config-sbc-sbe-adj-sip)# exit
 
   
Router(config-sbc-sbe)# adjacency sip Nav_B
Router(config-sbc-sbe-adj-sip)# nat force-off
Router(config-sbc-sbe-adj-sip)# preferred-transport udp
Router(config-sbc-sbe-adj-sip)# signaling-address ipv4 23.30.1.1
Router(config-sbc-sbe-adj-sip)# statistics method summary
Router(config-sbc-sbe-adj-sip)# signaling-port 5060
Router(config-sbc-sbe-adj-sip)# remote-address ipv4 23.32.0.0 255.255.0.0
Router(config-sbc-sbe-adj-sip)# signaling-peer 23.32.1.2
Router(config-sbc-sbe-adj-sip)# account Nav_B
Router(config-sbc-sbe-adj-sip)# attach
Router(config-sbc-sbe-adj-sip)# exit
 
   
Router(config-sbc-sbe)# call-policy-set 1
Router(config-sbc-sbe-rtgpolicy)# first-call-routing-table ROUTE-ON-DEST-NUMB
Router(config-sbc-sbe-rtgpolicy)# rtg-dst-address-table ROUTE-ON-DEST-NUMB
Router(config-sbc-sbe-rtgpolicy)#entry 1
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# action complete
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# dst-adjacency Nav_A
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# match-address 91939 digits
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# prefix
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# entry 2
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# action complete
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# dst-adjacency Nav_B
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# match-address 40852 digits
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# prefix
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# complete
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# call-policy-set default 1
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# media-address ipv4 23.30.1.10
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# port-range 10000 64000 any
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# activate
Router(config-sbc-sbe-rtgpolicy-rtgtable-entry)# exit
 
   
 
   
Router(config-sbc-sbe)# cac-policy-set 1
Router(config-sbc-sbe-cacpolicy)# first-cac-table Transcode
Router(config-sbc-sbe-cacpolicy)# first-cac-scope dst-adjacency
Router(config-sbc-sbe-cacpolicy)# cac-table Transcode
Router(config-sbc-sbe-cacpolicy-cactable)# table-type policy-set
Router(config-sbc-sbe-cacpolicy-cactable)# entry 1
Router(config-sbc-sbe-cacpolicy-cactable-entry)# cac-scope call
Router(config-sbc-sbe-cacpolicy-cactable-entry)# caller-codec-list sideA
Router(config-sbc-sbe-cacpolicy-cactable-entry)# callee-codec-list sideB
Router(config-sbc-sbe-cacpolicy-cactable-entry)# action cac-complete
Router(config-sbc-sbe-cacpolicy-cactable-entry)# complete
Router(config-sbc-sbe-cacpolicy-cactable-entry)# cac-policy-set global 1 
Router(config-sbc-sbe)# codec list sideA
Router(config-sbc-sbe-codec-list)# codec PCMA
Router(config-sbc-sbe-codec-list)# codec list sideB
Router(config-sbc-sbe-codec-list)# codec G729
Router(config-sbc-sbe-codec-list)# exit
 
   
 
   
 
   
 
   

Verify Media Gateway Associations

Router# show sbc My_SBC sbe media-gateway-associations
 
   
SBC Service "My_SBC"
  Media gateway 10.0.181.2:2951
    Gateway Protocol   = megaco
    Transport Protocol = UDP^M
    Local Address      =23.30.1.1:2944
 
   
                Sent            Received        Failed          Retried
    Requests            55               2               0               0
    Replies              2              55      -                        0