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

Compare with Current View Page History

« Previous Version 2 Next »

Contents:

 

 

 

Feature Overview

The Sonus Distributed SBC (D-SBC) solution distributes the core SBC components signaling, media and transcoding into discrete functional elements that allows SWe instance to instantiate and scale independently in their own respective clusters. This is ideal for greenfield deployments where all the three clusters are deployed; however, in an existing network, Sonus D-SBC uses the services of an external transcoder for audio transcoding.

In Sonus microservices architecture, the virtualized Sonus Signaling SBC (S-SBC) and Sonus Media SBC (M-SBC) instances supports signaling and media relay functionalities. Media Resource Function (MRF) supports any media inter-working requirement that includes transcoding/transrating. Sonus S-SBC invokes the MRF using a 3PCC call model as per RFC-4117.

Media Resource Function – Resource Manager (MRF-RM) runs on SBC and interacts with external third-party transcoder (MRF Server) to provide transcoding services. S-SBC manages the transcoding resources on MRF server remotely using SIP interface based on RFC-4117. Any third-party transcoder that supports SIP interface based on RFC-4117 can be used as MRF server with the SBC to provide Audio transcoding services.

Key features:

  • Supports all audio features
  • Supports mid-call modification to insert or remove the transcoder
  • MRF related information is logged in CDR:
    • Signaling IP/Port information

    • Local/Remote End Point information for both Ingress and Egress private leg towards MRF

  • Sonus PSX Packet Service Profile (PSP) control is used to invoke transcoding 

Prerequisites to invoke MRF

All existing controls that causes SBC to include DSP applies:

Additional Configuration

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

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 info on path check, refer Service Profiles - Path Check Profile
  • For more info on creating IP Peer, refer System Provisioning - Ip Peer for GUI or zone ipPeer - CLI for CLI.

    In case of 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.

    In case of FQDN, create IP Peer with FQDN and attach the patch check profile.

ARS Profile

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 info, refer Service Profiles - Sip Ars Profile.

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 cluster profile, you can configure routing type as FQDN or list of IP addresses. In case of FQDN, the FQDN resolves into 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 & MRF.
  • M-SBC: Provides media services. Public interface is used to communicate with peers & 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

CLI Changes

Configure MRF profile in S-SBC

The following CLI commands are required to configure the MRF cluster profile in S-SBC.

The MRF servers are configured as FQDN or IP Address is decided by Routing Type configured in the MRF Profile.

% set system dsbc cluster type mrf mrfRoutingType <Routing Type>
Possible completions:       IpAddress  fqdn

To configure the Domain Name of MRF Server, select FQDN:

When FQDN routing is enabled, configure DnsGroup on zone in which mrfTgName is present.

% set system dsbc cluster type mrf mrfRoutingType fqdn mrffqdn <Domain Name>

To configure an IP-Address for the MRF Server, select IpAddress.

When Routing Type is selected as IP Address, minimum of one IP must be configured. In case of multiple IP addresses, each IP address is separated by a Comma (,).

Sonus supports maximum of four IP address configuration.

Minimum: 1

Maximum: 4

% set system dsbc cluster type mrf mrfRoutingType IpAddress mrfIpAddress <MRF IP-Address>

To configure a dedicated TG on MRF servers, execute below command:

% set system dsbc cluster type mrf mrfTgName <MRF TG Name>

To configure transport type for MRF server, execute below command:

Default value is UDP.

% set system dsbc cluster type mrf mrfTransportType  
Possible completions:       TCP  TLS  UDP 

To configure request URI sent in the invite towards the MRF server, execute below command:

% set system dsbc cluster type mrf mrfRequestUri <MRF Request URI>

To configure Port of the MRF server in MRF Profile, execute below command:

When the mrfRoutingType is selected as IpAddress, mrfPort default value is 5060.

When the mrfRoutingType is selected as fqdn, mrfPort default value is 0. When the value for the port is 0, user must configure desired port in DNS server for SRV record.

% set system dsbc cluster type mrf mrfPort <MRF Port>

To configure the state of the MRF server, execute below command:

% set system dsbc cluster type mrf state <Enabled | Disabled> 

Command Parameters

Command Parameters

 

Parameter Name

Length/Range

Default Value

Parameter Description

Mandatory / Optional
mrfTgName1-24undefinedSpecifies Trunk Group Name used for MRF signaling.M
mrfRoutingTypeNAFqdn

Specifies Routing type used to send invite towards MRF server.

Options:

  • FQDN
  • IP Address
O
mrfFqdn1-63undefinedSpecifies Domain Name of the MRF Server.M
mrfIpAddressNAundefinedSpecifies IP Addresses of the MRF Server.M
mrfRequestUri1-63undefinedSpecifies Request URI to be sent in Invite towards MRF Server.M
mrfPort1-65535

For Fqdn - 0

For IPAddress - 5060

Specifies port of the MRF Server.

O
mrfTransportTypeNAUDP

Specifies transport to be used in communication with MRF Server.

Options:

  • TCP
  • TLS
  • UDP
O
stateNAundefined

The admin state of the mrf cluster.

Options:

  • Enabled
  • Disabled
M

Command Syntax

% set system dsbc cluster type mrf
	mrfRoutingType <IpAddress | fqdn>
    mrfPort <5060 | 0> 
    mrfTgName <trunking group name>
    mrfTransportType <TCP| TLS| UDP>
    mrfRequestUri <Request URI>
    state <disabled | enabled> 

Configuration Example

% set system dsbc cluster type mrf mrfRequestUri <transcoding@sonusnet.com>
% set system dsbc cluster type mrf mrfRoutingType <fqdn mrffqdn sonusnet.com>
% set system dsbc cluster type mrf mrfRoutingType IpAddress mrfIpAddress <10.54.80.7 fdda:5cc1:23:4::1f fdda:5cc1:23:4::1e 10.54.80.8>
% set system dsbc cluster type mrf mrfTgName <MRF_TG>
% set system dsbc cluster type mrf mrfTransportType <UDP>
% set system dsbc cluster type mrf mrfPort <5060>
% set system dsbc cluster type mrf state <enabled> 

Configure Private LIF Groups in M-SBC

To configure Private IP Interface Group that communicates towards MRF, execute below command:

set system loadBalancingService

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

 

To view the configured Private IP Interface Group Name, execute below command in M-SBC:

show system loadBalancingService

groupName                   njmsbclbs.njmrfdsbc.com;
privateIpInterfaceGroupName SLIG2;

 

Debug Stat Commands

The following CLI can be used to get the media stats 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;
}

To View the Call Remote Media Status on EMA

1. Log on to EMA as admin user.

2. Click ALL.

3. On the navigation pane, click Global > CAC > Call Remote Media Status.

 

The following CLI can be used to get the call stats for an MRF call.

show status global callDetailStatus

The callDetailStatus command contains the following new fields:

    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";
} 

To View the Call Detail Status on EMA

1. Log on to EMA as admin user.

2. Click ALL.

3. On the navigation pane, click Global > CAC > Call Detail Status.

 

The following CLI can be used to get the call resource stats for an MRF call.

show status global callResourceDetailStatus

Value dresMrf indicates MRF is used for transcoding the call.

Parameter: resType
Value: dresMrf

show status global callResourceDetailStatus 
    callResourceDetailStatus 67108888 0 {
    resId             116;
    resType           xresUser;
    callId            67108888;
    legId             0;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
}
callResourceDetailStatus 67108888 1 {
    resId             117;
    resType           xresUser;
    callId            67108888;
    legId             0;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
}
callResourceDetailStatus 67108888 2 {
    resId             24;
    resType           dresMrf;
    callId            67108888;
    legId             1;
    nodeGcidAndIpAddr 67108888(fd00:10:6b50:4d30::7f);
}
callResourceDetailStatus 67108888 3 {
    resId             119;
    resType           xresUser;
    callId            67108888;
    legId             1;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
}
callResourceDetailStatus 67108888 4 {
    resId             118;
    resType           xresUser;
    callId            67108888;
    legId             1;
    nodeGcidAndIpAddr 67108894(fd00:10:6b50:4d50::3);
}

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)

 

The following CLI can be used to get the call media leg information for an MRF call.

show status global callMediaStatus

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;
}

To View the Call Media Status on EMA

1. Log on to EMA as admin user.

2. Click ALL.

3. On the navigation pane, click Global > CAC > Call Media Status.

 

EMA Changes

Creating MRF Cluster Type

To establish connection between SBC and MRF, create an MRF Cluster Type.

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

    Cluster Type

     



  4. Click +New Type. By default, Create New Type window for Policer is displayed. To create MRF Type, select the Name as MRF.

    Create New Type - Policer

     

     

    1. To create MRF with Routing Type as FQDN:
      1. In Name drop-down menu, choose MRF.
      2. Select the State.
      3. Select the MRF Routing Type as FQDN.

         

        Create New Type - MRF with Routing Type as FQDN

         



      4. In MRF TG Name drop-down menu, choose MRF_TG.
      5. Type MRF Request URI.
      6. Type MRF Port.
      7. In MRF Transport Type drop-down menu, choose the appropriate transport type.
      8. Type MRFFQDN.

    2. To create MRF with Routing Type as IP Address V4 or V6:
      1. In Name drop-down menu, choose MRF.
      2. Type MRF IP Address.
      3. Select the State.
      4. Select the MRF Routing Type as IP Address V4 or V6.

        Create New Type - MRF with Routing Type as IP Address V4 or V6

         



      5. In MRF TG Name drop-down menu, choose MRF_TG.
      6. Type MRF Request URI.
      7. Type MRF Port.
      8. In MRF Transport Type drop-down menu, choose the appropriate transport type.
  5. Click Save.

Modify MRF Cluster Type

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

    Type List

     



  4.  Select the radio button adjacent to the MRF name. The Edit Selected Type window is displayed.

    Edit Selected Type - IP Address

     

    Edit Selected Type - FQDN

     

  5. To modify the Type, you must first select the State as Disabled, and click Save.

  6. Select the radio button adjacent to the MRF name.

  7. Make the relevant modifications, and select State as Enabled.

  8. Click Save.

Deleting MRF Cluster Type

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

  4. To delete the Type, you must first select the MRF cluster profile State as Disabled, and click Save.

  5. Once the Type is listed, click Delete this element button adjacent to MRFFQDN column.

    Type List

     

Creating Policer Cluster Type

To establish connection between SBC and MRF, create an Policer Cluster Type.

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

    Type List

     
     



  4. Click +New Type. By default, Create New Type window for Policer is displayed.

    Create New Type - Policer

     

     

    1. In Name drop-down menu, choose Policer.
    2. Select the State.
    3. Type FQDN.
    4. In DNS Group drop-down menu, choose the DNS Group.
    5. Click Save.

Modifying Policer Cluster Type

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

    Type List

     



  4. Select the radio button adjacent to the Policer name. The Edit Selected Type window is displayed.

    Edit Selected Type

     

     

  5. To modify the Type, you must first select the State as Disabled, and click Save.

  6. Select the radio button adjacent to the Policer name.

  7. Make the relevant modifications, and select State as Enabled.

  8. Click Save.

Deleting Policer Cluster Type

  1. Log on to the EMA Configurator as admin.
  2. Click All tab.
  3. On the navigation pane, click System > DSBC > Cluster > Type.

  4. Once the Type is listed, click Delete this element button adjacent to MRFFQDN column.

    Type List

     
     

CAM Changes

Four new fields indicating the Ingress and the Egress Leg media connection details towards MRF is added as sub-fields to existing CDR field, Media Stream Data (field#230) 

CDR Fields and Descriptions

 

CDR FieldsLength/RangeDescriptionsSample Value
Ingress Private Leg Local EP157Contains the Ingress Leg local media IP and port offered by DSBC in the INVITE message to MRF.10.54.4.101:1116
Ingress Private Leg Remote EP157Contains the Ingress Leg remote media IP and port present in the answer SDP received from MRF.10.54.4.171:1094
Egress Private Leg Local EP157Contains the Egress Leg local media IP and port offered by DSBC in the INVITE message to MRF.10.54.4.101:1118
Egress Private Leg Remote EP157Contains the Egress Leg remote media IP and port present in the answer SDP received from MRF.10.54.6.171:1090
Transcode Resource Type4Indicates the type of transcoder used for the call.TSBC/MRF
MRF INFORMATION39

Stores MRF related information.

Options:

  • Signaling IP
  • Signaling PORT

IP: 10.54.6.178

Port: 1099

New Standards

Sonus S-SBC invokes the MRF using a 3PCC call model as per RFC-4117.

SBC Platforms Supporting this Feature

Supported Platform

 

Virtualization/Cloud Platforms

For Cloud:

  • SWe on OpenStack (D-SBC)
  • No labels