Table of Contents

 

Document Overview

This document provides a configuration guide for Sonus SBC Swe Series (Session Border Controller) when connecting to Telco Systems CM-100 platform.

This configuration guide supports features described on the Telco Systems website.

Introduction

The interoperability compliance testing focuses on verifying creation of Sonus SBC Swe on Telco Systems CM-100 platform and verifying inbound and outbound call flows, call loads and security on the Sonus SBC Swe.

Audience

This is a technical document intended for telecommunications engineers with the purpose of configuring both the Sonus SBC and the third-party product. Navigating the third-party product as well as the Sonus SBC Command Line Interface (CLI) will be required. Understanding the basic concepts of TCP/UDP, IP/Routing, and SIP/RTP are also necessary to complete the configuration and any needed troubleshooting.

This configuration guide is offered as a convenience to Sonus customers. The specifications and information regarding the product in this guide are subject to change without notice. All statements, information, and recommendations in this guide are believed to be accurate, but are presented without warranty of any kind, express or implied, and are provided "AS IS." Users must take full responsibility for the application of the specifications and information in this guide.

Requirements

The following equipment and software were used for the sample configuration provided:

Requirements

 

Equipment

Software Version

Sonus Networks

Sonus SBC Swe

V06.01.00-R001

 EMAV06.01.00-R001
 SonusDBV06.01.00-R001
 OSV03.03.00-R001

Third-party Equipment

Telco Systems CM-1004.3.1b14


Reference Configuration

The following reference configuration shows connectivity between Telco Systems CM-100 platform and Sonus SBC Swe.

Reference Configuration Topology


Support

For any questions regarding this document or the content herein, contact your maintenance and support provider.

 

Third-Party Product Features

The testing was executed with the combined test plans. The following features were tested:

  • Ramp traffic to 200 sessions with 10 CPS and ACH 60 seconds
  • 24 hour soak with 1 CPS and average of 60 active calls with ACH 60 seconds
  • West call flows
  • Generic test plan basic scenarios and traces 
  • Security tests data

Verify License

  • SBC-RTU

Initial Configuration of the CM100 vCPE Manager

Log into the Telco Systems vCPE Manager

Log into the Telco Systems vCPE Manager


The first task is to add the OpenStack Controller needed to control the CM100’s OpenStack compute node. Navigate to Controllers Management > Controllers

Controllers


Click Create Controller. Enter Name, IP addresses, Username, and Password. Click Create.

Create Controller


The next task is to add the required prerequisites in preparation of adding the CM100’s OpenStack compute node. Navigate to vCPE Management > Customers 

Customers


Click Add Customer. Enter a Name and Market. Click Add.

Add Customer


Navigate to vCPE Management > Services

Services


Click Add Services. Select a Customer, enter a Service type, and enter a Topology type. Click Add.

Add Services


Navigate to vCPE Management > Sites

Sites


Select a Customer, select a Service, enter a Name, and enter a Site type.  Click Add.

Add Site


The final task in the process is adding the CM100’s OpenStack Compute node. Navigate to vCPE Management > vCPEs

vCPEs


Click Add vCPE. Enter vCPE Serial Number, select Type, select Customers, select Service, select Site. Next, click the Config Server Settings tab. 

Add vCPE


Check the Network Update check box. Next, click the Image Server Settings tab. 

Network Update


Select Image File Source and pick Upload Image File. Click Browse and add the CM100-root-4.3.1.16.img.xz file supplied by Telco Systems. Next, click the Scripts Server Settings tab. 

Image File Source


 
Select Scripts File Source and pick Upload Image File. Click Browse and add the scripts-4.3.1.16.tar.xz file supplied by Telco Systems. Next, click the Openstack Settings tab.

Upload Image File


Uncheck Enable Local Controller. Select controller from the External Controller dropdown.  Next click the Time Server Settings tab. 

Enable Local Controller


Enter the Time Server IP address and select a Time Zone. Next click the SSH Settings tab

Time Server IP address


Check Clear SSH Keys. Next Click Add.  

Clear SSH Keys


Create Instance using NFVTime

Log into NFVTime Controller

NFVTime Controller


The first task is to upload images to the cloud. Navigate to Project > Compute > Images

Images


Click Create Image. Enter Image Name, click Browse to browse for the file on the local device or external PC, select a Format for the image. Click Create Image. 

Create Image


The final task is to create the SBC Stack. Navigate to Project > Orchestration > Stacks

Stacks


Click Launch Stack. Browse for the Ribbon provided Heat Template. Browse for the user created Environment File. Click Next. 

Launch Stack


Enter a Stack Name, enter the user’s password, and verify environment variables. Click Launch. 

Stack Name

 

SWe VNF Heat Template

VNF Heat template
heat_template_version: 2015-04-30
description: Template to setup and deploy a Standalone vSBC compute instances
#######################################################################
# Sample Environment content to be sourced
#
#parameters:
#
#  # System Settings
#  image:           myImage
#  flavor:          cloudSBC.lite
#  security_group:  vSBC_security_group
#
#  # External Network Settings
#  mgt0_ext_network: ext_net
#  pkt0_ext_network: ext_net
#  pkt1_ext_network: ext_net
#
#  # Private Network Settings
#  private_network_mgt0: mgt0
#  private_network_ha:   ha0
#  private_network_pkt0: pkt0
#  private_network_pkt1: pkt1
#
#  # Private Subnet Settings
#  private_subnet_mgt0: mgt0_subnet
#  private_subnet_ha:   ha0_subnet
#  private_subnet_pkt0: pkt0_subnet
#  private_subnet_pkt1: pkt1_subnet
#
###########################################################################
# Parameters required from user or upstream application/orchestration to setup and launch Standalone vSBC compute instances
 
parameter_groups:
- label: System Settings
  description: System Level Settings
  parameters:
  - image
  - flavor
  - security_group
  - sbc_system_name
  - personality
 
- label: External Network Settings
  description: External Network Settings
  parameters:
  - mgt0_ext_network
  - pkt0_ext_network
  - pkt1_ext_network
  - floating_ip_count_mgt0
  - floating_ip_count_pkt0
  - floating_ip_count_pkt1
 
- label: Enable Reverse NAT
  description: Enable reverse nat for ports
  parameters:
  - reverse_nat_pkt0
  - reverse_nat_pkt1
 
- label: Private Network Settings
  description: External Network Settings
  parameters:
  - private_network_mgt0
  - private_network_ha
  - private_network_pkt0
  - private_network_pkt1
 
- label: mgt0 DHCP Settings
  description: DHCP Settings for Management Port
  parameters:
  - isDhcpEnabledOnMgt0
  - mgt0IPAddress
  - mgt0SubnetPrefix
  - mgt0Gateway
 
- label: ha0 DHCP Settings
  description: DHCP Settings for High Availability Port
  parameters:
  - isDhcpEnabledOnHa0
  - ha0IPAddress
  - ha0SubnetPrefix
  - ha0Gateway
 
- label: pkt0 DHCP Settings
  description: DHCP Settings for Packet Port 0
  parameters:
  - isDhcpEnabledOnPkt0
  - pkt0IPAddress
  - pkt0SubnetPrefix
  - pkt0Gateway
  - vlanIdPkt0
 
- label: pkt1 DHCP Settings
  description: DHCP Settings for Packet Port 1
  parameters:
  - isDhcpEnabledOnPkt1
  - pkt1IPAddress
  - pkt1SubnetPrefix
  - pkt1Gateway
  - vlanIdPkt1
 
- label: Instance Specific Settings
  description: Instance Specific Settings
  parameters:
  - sbc_ceName
  - sbc_ceRole
  - sbc_rgIp
 
- label: EMS Settings
  description: EMS Settings
  parameters:
  - ems_user_name
  - ems_password
  - ems_ip_1
  - ems_ip_2
  - cluster_id
  - download_config
  - download_config_name
 
parameters:
 
############################
# System Level Settings
############################
 
  image:
    type: string
    label: Image Name 
    description: Image to be used for launching the instance(s)
    constraints:
      - custom_constraint: 'glance.image'
 
  flavor:
    type: string
    label: Flavor
    description: Flavor to be used for instance(s)
    constraints:
      - custom_constraint: 'nova.flavor'
 
  security_group:
    type: string
    label: Security Group
    description: Security group of instance(s)
 
  sbc_system_name:
    type: string
    label: SBC System Name
    description: SBC system name
    constraints:
      - length: { min: 0, max: 26 }
        description: "Enter valid system name. Length of this string should be less than 26"
      - allowed_pattern: "^[A-Za-z]{1}[-A-Za-z0-9]*[A-Za-z0-9]{1}$"
        description: "Enter valid system name. Regex: ^[A-Za-z]{1}[-A-Za-z0-9]*[A-Za-z0-9]{1}$ "
 
  personality:
    type: string
    label: SBC Personality Type
    description: Configures SBC instance to be Signaling,Media or Integrated node.
    default: isbc
    constraints:
      - allowed_values: [ssbc,msbc,isbc]
 
############################
# External Network Settings
############################
 
  mgt0_ext_network:
    type: string
    label: Management Port Public Network Name or ID
    description: Public network with floating IP addresses for mgt0 (used only if "Floating IP Count" is non-zero for mgt0).
    constraints:
      - custom_constraint: 'neutron.network'
 
  pkt0_ext_network:
    type: string
    label: Packet Port 0 Public Network Name or ID
    description: Public network with floating IP addresses for pkt0  (used only if "Floating IP Count" is non-zero for pkt0).
    constraints:
      - custom_constraint: 'neutron.network'
 
  pkt1_ext_network:
    type: string
    label: Packet Port 1 Public Network Name or ID
    description: Public network with floating IP addresses for pkt1 (used only if "Floating IP Count" is non-zero for pkt1).
    constraints:
      - custom_constraint: 'neutron.network'
 
#############################
# Setting up the count values
#############################
 
  floating_ip_count_mgt0:
    type: number 
    label: Number of Floating IPs on mgt0
    description: Number of public IPs on mgt0.
    default: 0 
    constraints:
      - range: { min: 0, max: 1 }
 
  floating_ip_count_pkt0:
    type: number
    label: Number of Floating IPs on pkt0
    description: Number of public IPs on pkt0.
    default: 0
    constraints:
      - range: { min: 0, max: 1 }
 
  floating_ip_count_pkt1:
    type: number
    label: Number of Floating IPs on pkt1
    description: Number of public IPs on pkt1.
    default: 0
    constraints:
      - range: { min: 0, max: 1 }
 
#################################################
# Enable/Disable Reverse NAT feature on the ports
#################################################
 
  reverse_nat_pkt0:
    type: string
    label: Reverse NAT on pkt0
    description: Enable/Disable reverse NAT on pkt0.
    default: True
    constraints:
      - allowed_values: [True,False]
 
  reverse_nat_pkt1:
    type: string
    label: Reverse NAT on pkt1
    description: Enable/Disable reverse NAT on pkt1.
    default: True 
    constraints:
      - allowed_values: [True,False]
 
############################
# Private Network Settings
############################
 
  private_network_mgt0:
    type: string
    label: Management Port Private Network Name or ID
    description: Name/ID of private network for mgt0.
    constraints:
      - custom_constraint: 'neutron.network'
 
  private_network_ha:
    type: string
    label: HA Port Private Network Name or ID
    description: Name/ID of private network for ha0.
    constraints:
      - custom_constraint: 'neutron.network'
 
  private_network_pkt0:
    type: string
    label: Packet Port 0 Private Network Name or ID
    description: Name/ID of private network for pkt0.
    constraints:
      - custom_constraint: 'neutron.network'
 
  private_network_pkt1:
    type: string
    label: Packet Port 1 Private Network Name or ID
    description: Name/ID of private network for pkt1.
    constraints:
      - custom_constraint: 'neutron.network'
 
############################
# Private Subnet Settings
############################
 
  # private_subnet_mgt0:
    # type: string
    # label: Management Port Private Subnet Name or ID
    # description: Name/ID of private subnet for mgt0.
 
  # private_subnet_ha:
    # type: string
    # label: HA Port Private Subnet Name or ID
    # description: Name/ID of private subnet for ha0.
 
  # private_subnet_pkt0:
    # type: string
    # label: Packet Port 0 Private Subnet Name or ID
    # description: Name/ID of private subnet for pkt0.
 
  # private_subnet_pkt1:
    # type: string
    # label: Packet Port 1 Private Subnet Name or ID
    # description: Name/ID of private subnet for pkt1.
 
##################################
# IP address of the Non-DHCP ports
##################################
  mgt0IPAddress:
    type: string
    label: Management Port IP Address
    description: IP address for mgt0 port
    default : 10.10.218.140
 
  ha0IPAddress:
    type: string
    label: High Availability Port IP Address
    description: IP address for ha0 port
    default : 10.10.219.40
 
  pkt0IPAddress:
    type: string
    label: Packet Port 0 IP Address
    description: IP address for pkt0 port
    default : 10.10.219.140
 
  pkt1IPAddress:
    type: string
    label: Packet Port 1 IP Address
    description: IP address for pkt1 port
    default : 10.10.220.40
 
####################################
# Netmask for each Non-DHCP networks
####################################
  mgt0SubnetPrefix:
    type: string
    label: Management Port Subnet Prefix
    description: Subnet Prefix for mgt0 port
    default : 25
 
  ha0SubnetPrefix:
    type: string
    label: High Availability Port Subnet Prefix
    description: Subnet Prefix for ha0 port
    default : 25
 
  pkt0SubnetPrefix:
    type: string
    label: Packet Port 0 Subnet Prefix
    description: Subnet Prefix for pkt0 port
    default : 25
 
  pkt1SubnetPrefix:
    type: string
    label: Packet Port 1 Subnet Prefix
    description: Subnet Prefix for pkt1 port
    default : 25
 
###############################
# Non DHCP Network's gateway IP
###############################
 
  mgt0Gateway:
    type: string
    label: Management Port Gateway IP
    description: Gateway IP Address for mgt0 port
    default : 10.10.218.129
 
  ha0Gateway:
    type: string
    label: High Availability Port Gateway IP
    description: Gateway IP Address for ha0 port
    default : 10.10.219.1
 
  pkt0Gateway:
    type: string
    label: Packet Port 0 Gateway IP
    description: Gateway IP Address for pkt0 port
    default : 10.10.219.129
 
  pkt1Gateway:
    type: string
    label: Packet Port 1 Gateway IP
    description: Gateway IP Address for pkt1 port 
    default : 10.10.220.1
 
  vlanIdPkt0:
    type: string
    label: Packet Port 0 VLAN ID
    description: Packet Port 0 VLAN ID
    default : 903
 
  vlanIdPkt1:
    type: string
    label: Packet Port 1 VLAN ID
    description: Packet Port 1 VLAN ID
    default : 904
 
############################
# Instance Specific Settings
############################
  sbc_ceName:
    type: string
    label: SBC Instance Name
    description: SBC Instance name.
    default: "vsbc1"
    constraints:
      - length: { min: 0, max: 63 }
        description: "Enter valid active instance name. Length of this string should be less than 63"
      - allowed_pattern: "^[A-Za-z]{1}[-A-Za-z0-9.]*[A-Za-z0-9]{1}$"
        description: "Enter valid active instance name. Regex: ^[A-Za-z]{1}[-A-Za-z0-9.]*[A-Za-z0-9]{1}$ "
   
  sbc_ceRole:
    type: string
    label: SBC Configured CE Role 
    description: SBC Configured CE Role.
    default: "ACTIVE"
    constraints:
      - length: { min: 0, max: 8 }
        description: "Enter valid instance role. Role can be ACTIVE or STANDBY"
      - allowed_pattern: "^[A-Za-z]{1}[-A-Za-z0-9.]*[A-Za-z0-9]{1}$"
        description: "Enter valid instance role. Regex: ^[A-Za-z]{1}[-A-Za-z0-9.]*[A-Za-z0-9]{1}$ "
      - allowed_values: [ACTIVE,STANDBY]
 
  sbc_rgIp:
    type: string
    label: HA port IP address of one of the members of SBC Redundancy Group(RG). (Note - Provide 169.254.88.1 for the first node of RG)
    description: SBC RG is formed by communicating over the provided IP. When adding 3rd or subsequent instance to RG, can provide HA IP of any of the instances that are up and running.
    default: "169.254.88.1"
    constraints:
      - length: { min: 0, max: 63 }
        description: "Enter valid IP."
      - allowed_pattern: "^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"
        description: "Enter valid cluster IP. Regex: ^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$"
 
################
# EMS Settings
################
  ems_user_name:
    type: string
    label: EMS User Name
    description: User name for registering with EMS
    default: "None"
 
  ems_password:
    type: string
    label: EMS Password
    description: EMS registration password
    hidden: true
    default: "None"
 
  ems_ip_1:
    type: string
    label: EMS IP 1
    description: EMS IP Address 1 - e.g. 10.52.13.40 (No quotes required)
    default: ""
 
  ems_ip_2:
    type: string
    label: EMS IP 2
    description: EMS IP Address 2 - e.g. 51.12.30.24 (No quotes required)
    default: ""
 
  cluster_id:
    type: string
    label: Cluster ID
    description: Cluster/VNF ID value from EMS Cluster Mgmt.
    default: ""
 
  download_config:
    type: string
    label: Download Configuration from EMS
    description: Download Configuration from EMS
    default: True
    constraints:
      - allowed_values: [True,False]
 
  download_config_name:
    type: string
    label: Download Configuration file name
    description: Download Configuration file name
    default: "None"
 
###############################
# DHCP flags
###############################
 
  isDhcpEnabledOnMgt0:
    type: string
    label: Is DHCP enabled on Mgt0 Subnet?
    description: Is DHCP enabled on Mgt0 Subnet?
    default : True
    constraints:
      - allowed_values: [True,False]
 
  isDhcpEnabledOnHa0:
    type: string
    label: Is DHCP enabled on Ha0 Subnet?
    description: Is DHCP enabled on Ha0 Subnet?
    default : True
    constraints:
      - allowed_values: [True,False]
 
  isDhcpEnabledOnPkt0:
    type: string
    label: Is DHCP enabled on Pkt0 Subnet?
    description: Is DHCP enabled on Pkt0 Subnet?
    default : True
    constraints:
      - allowed_values: [True,False]
 
  isDhcpEnabledOnPkt1:
    type: string
    label: Is DHCP enabled on Pkt1 Subnet?
    description: Is DHCP enabled on Pkt1 Subnet?
    default : True
    constraints:
      - allowed_values: [True,False]
 
# Resource definitions for all openstack objects to be configured during 
# template execution
resources:
 
  # Create active vSBC instance
  vSBC_ACTIVE:
    type: OS::Nova::Server
    properties:
      name: { get_param: "OS::stack_name" }
      image: { get_param: image }
      flavor: { get_param: flavor }
      config_drive: True
 
      # Attach previously created network ports to the instance
      networks:
        - port: { get_resource: mgt0_port1 }
        - port: { get_resource: ha0_port1 }
        - port: { get_resource: pkt0_port1 }
        - port: { get_resource: pkt1_port1 }
 
      # Publish the assigned floating IP addresses with appended subnet mask to the openstack metadata service.
      # Subnet prefix for floating ips not used - hard coded to 32 for consistencey.
      metadata:
        IF0: {
               "Port" : "Mgt0",
               "DHCP" : { get_param: isDhcpEnabledOnMgt0},
               "GWV4":  { get_param: mgt0Gateway },
               "IPV4":  { list_join: ['/', [ { get_attr: [mgt0_port1, fixed_ips, 0, ip_address] }, { get_param: mgt0SubnetPrefix}]] },
               "FIPV4": { get_attr: [mgt0_floating_ip1, floating_ip_address] } 
             }
        IF1: {
               "Port" : "Ha0",
               "GWV4": { get_param: ha0Gateway },
               "IPV4": { list_join: ['/', [ { get_attr: [ha0_port1, fixed_ips, 0, ip_address] }, { get_param: ha0SubnetPrefix}]] },
               "DHCP" : { get_param: isDhcpEnabledOnHa0}
             }
        IF2: {
               "Port" : "Pkt0",
               "DHCP" : { get_param: isDhcpEnabledOnPkt0},
               "GWV4": { get_param: pkt0Gateway },
               "VlanId": { get_param: vlanIdPkt0 },
               "IPV4": { list_join: ['/', [ { get_attr: [pkt0_port1, fixed_ips, 0, ip_address] }, { get_param: pkt0SubnetPrefix}]] },
               "FIPV4": { get_attr: [pkt0_floating_ip, floating_ip_address] }, 
               "RNat" : { get_param: reverse_nat_pkt0 }
             }
        IF3: {
               "Port" : "Pkt1", 
               "DHCP" : { get_param: isDhcpEnabledOnPkt1},
               "GWV4": { get_param: pkt1Gateway },
               "VlanId": { get_param: vlanIdPkt1 },
               "IPV4": { list_join: ['/', [ { get_attr: [pkt1_port1, fixed_ips, 0, ip_address] }, { get_param: pkt1SubnetPrefix}]] },
               "FIPV4": { get_attr: [pkt1_floating_ip, floating_ip_address] }, 
               "RNat" : { get_param: reverse_nat_pkt1 }
             }
 
        ClusterIp: { get_param: sbc_rgIp}
 
      # Set the format to RAW to pass data directly as userdata set the floating and virtual IP counts
      user_data_format: RAW
      user_data:
        str_replace:
          template: |
                #cloud-config
                write_files:
                -   content: |
                        {
                          "CEName"                   : "$ce_name",
                          "CERole"                   : "$ce_role",
                          "SystemName"               : "$system_name",
                          "SbcPersonalityType"       : "$personality",
                          "EmsUsername"              : "$ems_user_name",
                          "EmsPassword"              : "$ems_password",
                          "EmsIP"                    : [ "$ems_ip_1", "$ems_ip_2" ],
                          "EmsDownloadConfig"        : "$downloadConfig",
                          "ConfigDownloadName"       : "$configName",
                          "TemplateName"             : "heatStandaloneTemplate.yaml",
                          "TemplateVersion"          : "V06.01.00R001",
                          "EmsPrivateNodeParameters" : { "cluster_id": "$cluster_id","vnfc_id":"$vnfc_id"}
                        }
                    path: /opt/sonus/userData.json
 
          params:
              $ce_name:        { get_param: sbc_ceName  }
              $ce_role:        { get_param: sbc_ceRole }
              $system_name:    { get_param: sbc_system_name }
              $personality:    { get_param: personality }
              $ems_user_name:  { get_param: ems_user_name }
              $ems_password:   { get_param: ems_password }
              $ems_ip_1:       { get_param: ems_ip_1 }
              $ems_ip_2:       { get_param: ems_ip_2 }
              $cluster_id:     { get_param: cluster_id }
              $downloadConfig: { get_param: download_config }
              $configName:     { get_param: download_config_name }
              $vnfc_id:        { list_join: ['-', [ { get_param: "OS::stack_name" }, { get_param: cluster_id }, '1']] }
 
 
  # Create the four required virtual nics (ports) to attach to virtual SBC instance 1
 
 
  mgt0_port1:
    type: OS::Neutron::Port
    properties:
      network: { get_param : private_network_mgt0 }
      fixed_ips:
        - ip_address: { get_param: mgt0IPAddress}
      security_groups:
        - { get_param: security_group }
 
  ha0_port1:
    type: OS::Neutron::Port
    properties:
      network: { get_param : private_network_ha }
      fixed_ips:
        - ip_address: { get_param: ha0IPAddress}
 
  pkt0_port1:
    type: OS::Neutron::Port
    properties:
      network: { get_param : private_network_pkt0 }
      fixed_ips:
        - ip_address: { get_param: pkt0IPAddress}
      #binding:vnic_type: direct
      security_groups:
        - { get_param: security_group }
 
 
  pkt1_port1:
    type: OS::Neutron::Port
    properties:
      network: { get_param : private_network_pkt1 }
      fixed_ips:
        - ip_address: { get_param: pkt1IPAddress}
      #binding:vnic_type: direct
      security_groups:
        - { get_param: security_group }
 
 
  # Create and associate three floating IP addresses to the mgt0, pkt0 and pkt1 ports of instance 1
 
  mgt0_floating_ip1:
    type: "OS::Heat::ResourceGroup"
    depends_on: mgt0_port1
    properties:
      count: { get_param: floating_ip_count_mgt0 }
      resource_def:
        type: OS::Neutron::FloatingIP
        properties:
          floating_network: { get_param: mgt0_ext_network }
          port_id: { get_resource: mgt0_port1 }
 
  pkt0_floating_ip:
    type: "OS::Heat::ResourceGroup"
    depends_on: pkt0_port1
    properties:
      count: { get_param: floating_ip_count_pkt0 }
      resource_def:
        type: OS::Neutron::FloatingIP
        properties:
          floating_network: { get_param: pkt0_ext_network }
          port_id: { get_resource: pkt0_port1}
 
 
  pkt1_floating_ip:
    type: "OS::Heat::ResourceGroup"
    depends_on: pkt1_port1
    properties:
      count: { get_param: floating_ip_count_pkt1 }
      resource_def:
        type: OS::Neutron::FloatingIP
        properties:
          floating_network: { get_param: pkt1_ext_network }
          port_id: { get_resource: pkt1_port1}
 
 
# output some stuff for debug
outputs:
  instance_name:
    description: Name of the instance
    value: { get_attr: [vSBC_ACTIVE, name] }
 
  mgt0_Public_ip:
    description: mgt0 floating IP address for the instance
    value: { get_attr: [mgt0_floating_ip1, floating_ip_address] }
 
  pkt0_Public_ip:
    description: Public IP address used for the pkt0 interfaces
    value: { get_attr: [pkt0_floating_ip, floating_ip_address] }
 
  pkt1_Public_ip:
    description: Public IP address used for the pkt1 interfaces
    value: { get_attr: [pkt1_floating_ip, floating_ip_address] }

Sonus SBC 5xx0 Series Configuration

Complete Configuration
configure
set addressContext default ipInterfaceGroup LIG1 ipInterface LIF1 ceName vsbcSystem portName pkt0 ipVarV4 IF2.IPV4 ipPublicVarV4 IF2.IPV4 prefixVarV4 IF2.PrefixV4
commit
set addressContext default ipInterfaceGroup LIG1 ipInterface LIF1 state enabled mode inService
commit
set addressContext default ipInterfaceGroup LIG2 ipInterface LIF2 ceName vsbcSystem portName pkt1 ipVarV4 IF3.IPV4 ipPublicVarV4 IF3.IPV4 prefixVarV4 IF3.PrefixV4
commit
set addressContext default ipInterfaceGroup LIG2 ipInterface LIF2 state enabled mode inService
commit
set addressContext default staticRoute 0.0.0.0 0 10.10.203.1 LIG1 LIF1 preference 100
set addressContext default staticRoute 0.0.0.0 0 10.10.203.129 LIG2 LIF2 preference 100
commit
set profiles signaling ipSignalingProfile DEFAULT_SIP ipProtocolType sipOnly egressIpAttributes flags disable2806Compliance enable
set profiles signaling ipSignalingProfile DEFAULT_SIP commonIpAttributes flags disableMediaLockDown enable
commit
set profiles signaling numberGlobalizationProfile DEFAULT_IP entry calledNumber globalize disable
commit
set profiles media packetServiceProfile COMMON_PSP packetToPacketControl codecsAllowedForTranscoding thisLeg g729,g711u,g711a,amr,g7222
commit
set profiles media packetServiceProfile COMMON_PSP packetToPacketControl codecsAllowedForTranscoding otherLeg g729,g711u,g711a,amr,g7222
commit
set profiles media codecEntry G711u20 codec g711 packetSize 20 law Ulaw
set profiles media codecEntry G729A20 codec g729a packetSize 20
set profiles media codecEntry AMR-20 codec amrOctetAligned packetSize 20
set profiles media codecEntry AMRWB-20 codec amrwbOctetAligned packetSize 20
commit
set profiles media packetServiceProfile COMMON_PSP packetToPacketControl transcode transcoderFreeTransparency
set profiles media packetServiceProfile COMMON_PSP codec codecEntry1 G711-DEFAULT codecEntry2 G729A-DEFAULT codecEntry3 AMR-20 codecEntry4 AMRWB-20
commit
set profiles signaling ipSignalingProfile COMMON_IPSP commonIpAttributes relayFlags info enable
set profiles signaling ipSignalingProfile COMMON_IPSP commonIpAttributes relayFlags notify enable
set profiles signaling ipSignalingProfile COMMON_IPSP commonIpAttributes relayFlags refer enable
commit
set addressContext default zone z1 id 1001
set addressContext default zone z1 sipSigPort 1 portNumber 5060 transportProtocolsAllowed sip-udp ipInterfaceGroupName LIG1 ipVarV4 IF2.IPV4
set addressContext default zone z1 sipSigPort 1 mode inService state enabled
commit
set addressContext default zone z2 id 1002
set addressContext default zone z2 sipSigPort 2 portNumber 5060 transportProtocolsAllowed sip-udp ipInterfaceGroupName LIG2 ipVarV4 IF3.IPV4
set addressContext default zone z2 sipSigPort 2 mode inService state enabled
commit
set addressContext default zone z1 sipTrunkGroup TG_INGRESS media mediaIpInterfaceGroupName LIG1
set addressContext default zone z1 sipTrunkGroup TG_INGRESS ingressIpPrefix 0.0.0.0 0
set addressContext default zone z1 sipTrunkGroup TG_INGRESS policy media packetServiceProfile COMMON_PSP
set addressContext default zone z1 sipTrunkGroup TG_INGRESS policy signaling ipSignalingProfile COMMON_IPSP
set addressContext default zone z1 sipTrunkGroup TG_INGRESS state enabled mode inService
commit
set addressContext default zone z2 sipTrunkGroup TG_EGRESS media mediaIpInterfaceGroupName LIG2
set addressContext default zone z2 sipTrunkGroup TG_EGRESS ingressIpPrefix 0.0.0.0 0
set addressContext default zone z2 sipTrunkGroup TG_EGRESS policy media packetServiceProfile COMMON_PSP
set addressContext default zone z2 sipTrunkGroup TG_EGRESS policy signaling ipSignalingProfile COMMON_IPSP
set addressContext default zone z2 sipTrunkGroup TG_EGRESS state enabled mode inService
commit
set addressContext default zone z1 ipPeer LYNC_IPP1 ipAddress 10.35.145.107 ipPort 5060
set addressContext default zone z2 ipPeer SP_IPP1 ipAddress 10.35.145.108 ipPort 5060
commit
set global callRouting routingLabel CALLING_TO_CALLED1 routingLabelRoute 0 trunkGroup TG_EGRESS ipPeer SP_IPP1
set global callRouting route trunkGroup TG_INGRESS VSBCSYSTEM standard Sonus_NULL 1 all all ALL none Sonus_NULL routingLabel CALLING_TO_CALLED1
commit
set system licenseMode mode legacy
set system licenseServer EMS-1 serverAddress 10.10.218.145 priority 1
set system licenseRequired SWE-INSTANCE
set system licenseRequired SBC-RTU minCount 3072 maxCount 5000
set system licenseRequired VDSP-RTU minCount 3072 maxCount 5000
commit
exit
exit

 

Test Results

Test Results

TCIDTest Case NameExpected ResultsResultComment
Inbound Calls
1.01PSTN calls SIP device, PSTN hangs up call is completed with correct SIP and SDP syntaxPass 
1.02PSTN calls SIP device, SIP hangs upcall is completed with correct SIP and SDP syntaxPass 
1.03PSTN calls SIP device, PSTN hangs up before call connects call is not completed, early media is established, 183 Session Progress or 200 OKPass 
1.04PSTN call SIP device, SIP no answercall is not completed, either be forwarded to voicemail or disconnectedPass 
Outbound Calls
2.01SIP calls PSTN, PSTN hangs upcall is completed with correct SIP and SDP syntaxPass 
2.02SIP calls PSTN, SIP hangs upcall is completed with correct SIP and SDP syntaxPass 
2.03SIP calls PSTN, SIP hangs up before call connectscall is not completed, early media is established, 183 Session Progress or 200 OKPass 
2.04SIP calls PSTN, Privacy enabledcall is completed with correct SIP and SDP syntaxPass 
2.05SIP calls PSTN, no answercall is not completed, either be forwarded to voicemail or disconnectedPass 
Call Transfers
3.01

 BLIND SIP #1 calls PSTN, SIP #1 transfers PSTN to SIP #2 -reinvite

call is transferred successfully Pass 
3.02

 BLIND PSTN calls SIP #1, SIP #1 transfer PSTN to SIP #2 -reinvite

call is transferred successfully Pass 
Conference Calls
4.01SIP #1 calls PSTN, SIP #1 conferences in SIP #2call is conferenced in successfully Pass 
4.02PSTN calls SIP #1, SIP #1 conferenecs in SIP #2call is conferenced in successfully Pass 
4.03PSTN, SIP #1, and SIP #2 call into conferencing bridgecall is conferenced in successfully Pass 
Call Forwarding
5.01SIP #1 sets call forwarding to SIP #2 - reinvitecall is forwarded successfully Pass 
5.02SIP #1 sets call forwarding to PSTN - reinvitecall is forwarded successfully Pass 
5.03SIP #1 set call forwarding on ring no answercall is forwarded successfully Pass.
Call Holds 
6.01SIP calls PSTN, SIP puts PSTN on hold then resumes callcall is resumed successfully Pass 
6.02SIP calls PSTN, SIP puts PSTN on hold for a long time (10min) then resumes callcall is resumed successfully Pass 
DMTF
7.01PSTN to SIP. No answer. Leave voicemailmessage left successfully Pass 
Long duration call
8.01PSTN calls SIP. Call last for at least 25 minutescall stays active until endpoint hangs up Pass 

 

Conclusion

These Application Notes describe the configuration steps required for Sonus SBC Swe to successfully interoperate with Telco Systems CM-100 platform. All feature and serviceability test cases were completed and passed with the exceptions/observations noted in Test Results.