You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Audio Transcode and Video Relay

The SBC uses a third-party transcoding called Media Resource Function (MRF) to transcode audio and relay video/T140. The SBC inter-operates only with Media Resource Function (MRF) a third-party application/tool.

Only SBC SWe on OpenStack (D-SBC) supports this enhancement.

The SBC supports the following:

The SBC supports this functionality only for MRF transcoded calls on D-SBC platform.

  • Relaying both audio and video streams.
  • Relaying audio, video and T140 streams.
  • Audio transcode through MRF and video relay.
  • Audio transcode through MRF and video/T140 relay.
  • Audio transcode through MRF and T140 relay.

If the Packet Service Profile is configured as "Transcode-only", the SBC transcodes the audio and relays video/ T140.

Limitations

The limitations are:

  • The SBC does not support audio less call.
  • The SBC does not support video licenses. Only one video stream is supported.
  • The SBC supports only video and T140 streams among the non-audio streams.

For more information on CLI changes and CDR changes, refer to:

Prerequisites to invoke MRF

The following existing controls that cause the SBC to include DSP applies when invoking MRF.

Create path check profile, ARS profile, and CAC profile during the initial configuration.

Note

Ribbon recommends to not configure Path Check Profile and SIP ARS Profile on the same peer to avoid unexpected results. As a general rule, the Path Check Profile is configured on the access leg where there is less traffic, and the ARS Profile is configured on the peer leg where there is continuous traffic. 

Path Check Profile

The Path Check Profile specifies the conditions that constitute a connectivity failure, and in the event of such a failure, the conditions that constitute a connectivity recovery.

  • For more information on path check, refer Service Profiles - Path Check Profile
  • For more information on creating IP Peer, refer to System Provisioning - Ip Peer for GUI or Zone - IP Peer - CLI.

    Note

    If using an IP address, create different IP Peers for each IP addresses configured in MRF cluster profile as MRF IP address and attach the Path Check Profile.

    If using an FQDN, create the IP Peer with FQDN and attach the Path Check Profile.

ARS Profile

The Address Reachability Service (ARS) determines whether a server is reachable, able to blacklist a server IP address when unreachable, and remove the server from blacklist state. ARS profiles can be created to configure blacklisting and recovery algorithm variants. For more information, refer to Service Profiles - Sip Ars Profile (EMA) or SIP ARS Profile - CLI.

Create an ARS profile and attach to the MRF TG as configured in the cluster profile. The ARS feature controls the congestion to handle the 503 response.

CAC Profile

Invoking MRF Server

In a cluster profile, you can configure the routing type for FQDN or a list of IP addresses. If FQDN is chosen, the FQDN resolves into a list of IP addresses.

If the MRF profile is configured with a list of MRF server IP addresses and a call is routed to MRF server(s) as follows:

  • S-SBC tries to connect to the configured MRF server IP addresses in a round-robin fashion.
  • If any failure/no response is received from an MRF server for a specific IP address, the same IP address is blacklisted. When blacklisted, S-SBC continuously sends an option message to MRF server to check whether the IP is active/inactive. Once the IP is active, S-SBC removes the IP address from the blacklist state and tries to connect to the same IP when the next call is routed to MRF Server.
  • S-SBC tries for the next available MRF server IP address configured in the list alternatively.
  • This process is repeated until S-SBC either receives a SUCCESS response from any of the MRF servers or all the MRF server IP addresses in list is exhausted.

Example: The MRF profile is configured with a list of MRF server IP addresses such as IP1, IP2, IP3 and IP4, then for the 1st call, S-SBC tries to connect for MRF server IP1. Meanwhile, S-SBC received 2nd, 3rd, 4th calls and connected to the MRF servers IP2, IP3 and IP4 respectively. For the 1st call, the S-SBC has received a Failure/No response from the MRF server IP1. Hence, the S-SBC tries with IP2 and connects successfully.

Signaling and Media Flow

Signaling and Media flow for a transcoded call using S-SBC, M-SBC and MRF:

  • S-SBC: Provides signaling services and responsible for allocating/activating/managing various resources (including MRF). Configures media flow through M-SBC and MRF.
  • M-SBC: Provides media services. Public interface is used to communicate with peers and private interface is used to communicate with MRF.
  • MRF: Provides transcoding services. Configured in private network of SBC and uses RFC-4117 interface to communicate with S-SBC.

 

Signaling and Media Flow

 

Configure Private LIF Groups in M-SBC

The following CLI command is required to configure the MRF cluster profile in M-SBC.

To configure Private IP Interface Group that communicates towards MRF, execute the loadBalancingService set command:

% set system loadBalancingService privateIpInterfaceGroupName <Private IP Interface Group Name>

 

To view the configured Private IP Interface Group Name, execute the loadBalancingService show command:

groupName                   njmsbclbs.njmrfdsbc.com;
privateIpInterfaceGroupName SLIG2;

 

Debug Statistics Commands

The following CLI can be used to get the media statistics corresponding to private NIF resources for an MRF call.

> show status global callRemoteMediaStatus
 
callRemoteMediaStatus 67108888 0 {
    streamId          0;
    resId             116;
    resType           xresUser;
    legId             0;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
    localRtpPort      1082;
    remoteRtpPort     8999;
    remoteRtcpPort    9000;
    rtpPacketSent     78;
    rtpPacketRecv     656;
    rtcpPacketSent    0;
    rtcpPacketRecv    0;
    rtpPacketDiscard  0;
}
callRemoteMediaStatus 67108888 1 {
    streamId          0;
    resId             117;
    resType           xresUser;
    legId             0;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
    localRtpPort      1140;
    remoteRtpPort     1076;
    remoteRtcpPort    1077;
    rtpPacketSent     656;
    rtpPacketRecv     78;
    rtcpPacketSent    0;
    rtcpPacketRecv    0;
    rtpPacketDiscard  0;
}
callRemoteMediaStatus 67108888 2 {
    streamId          0;
    resId             118;
    resType           xresUser;
    legId             1;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
    localRtpPort      1082;
    remoteRtpPort     8955;
    remoteRtcpPort    8956;
    rtpPacketSent     417;
    rtpPacketRecv     2;
    rtcpPacketSent    0;
    rtcpPacketRecv    0;
    rtpPacketDiscard  0;
}
callRemoteMediaStatus 67108888 3 {
    streamId          0;
    resId             119;
    resType           xresUser;
    legId             1;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
    localRtpPort      1142;
    remoteRtpPort     1076;
    remoteRtcpPort    1077;
    rtpPacketSent     2;
    rtpPacketRecv     417;
    rtcpPacketSent    0;
    rtcpPacketRecv    0;
    rtpPacketDiscard  0;
}

 

Use the following CLI 'show' command to view the call statistics for an MRF call.

> show status global callDetailStatus

The callDetailStatus command contains the following new fields (with example output):

 

ingressPrivStream1LocalIpSockAddr     "fd00:10:6b50:4d51::3/ 1140 (rtcp: 1141)";
ingressPrivStream1RemoteIpSockAddr    "fd00:10:6b50:4d30::7f/ 1076 (rtcp: 1077)";
egressPrivStream1LocalIpSockAddr      "fd00:10:6b50:4d51::3/ 1142 (rtcp: 1143)";
egressPrivStream1RemoteIpSockAddr     "fd00:10:6b50:4d40::7e/ 1076 (rtcp: 1077)";
transcodeResType                       mrf;
mrfSignalingInfo                      "fd00:10:6b50:4d30::7f/ 5060";
show status global callDetailStatus
callDetailStatus 67108888 {
    mediaStreams                        audio;
    state                               Stable;
    callingNumber                       "";
    calledNumber                        7894561232;
    addressTransPerformed               none;
    origCalledNum                       "";
    scenarioType                        SIP_TO_SIP;
    callDuration                        6;
    mediaType                           transcode;
    associatedGcid1                     67108888;
    associatedGcid2                     67108888;
    associatedGcidLegId1                1;
    associatedGcidLegId2                0;
    ingressSessionBandwidthkbps         32;
    egressSessionBandwidthkbps          16;
    ingressMediaStream1LocalIpSockAddr  "fd00:10:6b50:4d50::3/ 1082 (rtcp: 1083)";
    ingressMediaStream1RemoteIpSockAddr "fd00:10:6b50:4500::78/ 8999 (rtcp: 9000)";
    egressMediaStream1LocalIpSockAddr   "10.54.227.131/ 1082 (rtcp: 1083)";
    egressMediaStream1RemoteIpSockAddr  "10.54.80.8/ 8955 (rtcp: 8956)";
    ingressMediaStream1Security         rtp-disabled,rtcp-disabled;
    egressMediaStream1Security          rtp-disabled,rtcp-disabled;
    ingressMediaStream1Bandwidth        32;
    egressMediaStream1Bandwidth         16;
    ingressMediaStream1IceState         NONE;
    egressMediaStream1IceState          NONE;
    ingressDtlsStream1                  DISABLED;
    egressDtlsStream1                   DISABLED;
    ingressPrivStream1LocalIpSockAddr   "fd00:10:6b50:4d51::3/ 1140 (rtcp: 1141)";
    ingressPrivStream1RemoteIpSockAddr  "fd00:10:6b50:4d30::7f/ 1076 (rtcp: 1077)";
    egressPrivStream1LocalIpSockAddr    "fd00:10:6b50:4d51::3/ 1142 (rtcp: 1143)";
    egressPrivStream1RemoteIpSockAddr   "fd00:10:6b50:4d40::7e/ 1076 (rtcp: 1077)";
    iceCallTypes                        ing-lcl-NONE,ing-rmt-NONE,eg-lcl-NONE,eg-rmt-NONE;
    transcodeResType                    mrf;
    mrfSignalingInfo                    "fd00:10:6b50:4d30::7f/ 5060";
} 

 

Use the following CLI 'show' command to view the call resource statistics for an MRF call.

show status global callResourceDetailStatus

Note

Value dresMrf indicates MRF is used for transcoding the call.

Parameter: resType
Value: dresMrf

          

> show table global callResourceDetailStatus
 
                           RES    RES                                LEG
GCID         INDEX  ID   RES TYPE            CALL ID   ID   NODE GCID AND IP ADDR
--------------------------------------------------------------------------------------------
67108894     0      116  xresUser            67108894  0    67108888(fd00:10:6b50:4d50::e)
67108894     1      40   bresLe2LeRtcprelay  67108894  0    67108888(fd00:10:6b50:4d50::e)
67108894     2      117  xresUser            67108894  0    67108888(fd00:10:6b50:4d50::e)
67108894     3      119  xresUser            67108894  1    67108888(fd00:10:6b50:4d50::e)
67108894     4      41   bresLe2LeRtcprelay  67108894  1    67108888(fd00:10:6b50:4d50::e)
67108894     5      118  xresUser            67108894  1    67108888(fd00:10:6b50:4d50::e)

 

Use the following CLI 'show' command to view the call media leg information for an MRF call.

> show status global callMediaStatus 
callMediaStatus 67108888 {
    mediaStreamsInCall                          audio;
    ingressMacHeader                            0-17-A4-BF-81-0;
    egressMacHeader                             0-17-A4-BF-81-0;
    ingressBearerType                           voice;
    egressBearerType                            voice;
    ingressCfgAudioType                         AMR/BWE;
    egressCfgAudioType                          G723A;
    ingressActAudioType                         amrBwEfficient;
    egressActAudioType                          g723a53;
    ingressRemPacketsLost                       0;
    ingressRFactorInbound                       93;
    ingressRFactorOutbound                      93;
    egressRemPacketsLost                        0;
    egressRFactorInbound                        74;
    egressRFactorOutbound                       74;
    mediaStream1Label                           audio;
    mediaStream1Codec                           AMR/BWE;
    ingressMediaStream1PacketsSent              57;
    ingressMediaStream1PacketsReceived          488;
    ingressMediaStream1OctetsSent               399;
    ingressMediaStream1OctetsReceived           13664;
    ingressMediaStream1RtcpPacketsSent          0;
    ingressMediaStream1RtcpPacketsReceived      0;
    ingressMediaStream1PacketsLost              0;
    ingressMediaStream1PacketsDiscarded         0;
    ingressMediaStream1PacketLatency            0;
    ingressMediaStream1InterarrivalJitter       19;
    ingressMediaStream1StunDtlsPacketsReceived  0;
    ingressMediaStream1StunDtlsPacketsDiscarded 0;
    ingressMediaStream1SrtpAuthFailure          0;
    ingressMediaStream1SrtpReplayFailure        0;
    egressMediaStream1PacketsSent               305;
    egressMediaStream1PacketsReceived           2;
    egressMediaStream1OctetsSent                1220;
    egressMediaStream1OctetsReceived            48;
    egressMediaStream1RtcpPacketsSent           0;
    egressMediaStream1RtcpPacketsReceived       0;
    egressMediaStream1PacketsLost               0;
    egressMediaStream1PacketsDiscarded          0;
    egressMediaStream1PacketLatency             0;
    egressMediaStream1InterarrivalJitter        0;
    egressMediaStream1StunDtlsPacketsReceived   0;
    egressMediaStream1StunDtlsPacketsDiscarded  0;
    egressMediaStream1SrtpAuthFailure           0;
    egressMediaStream1SrtpReplayFailure         0;
}

 

  • No labels