In this article
dropdown icon
Bring Your Own PSTN Solution
    Definitions
      dropdown icon
      Overview
        Architecture
        Meeting Join Using Call-in
        Meeting Join Using Callback (Optional)
        Solution Configuration Overview
        BYoPSTN Configuration Elements
        Phone Number Groups (PNG)
        Callback DNS SRV Groups (CDSG)
        Customer Templates
        BroadWorks Calling Cluster
      dropdown icon
      BYoPSTN Configuration Elements Example
        Ports Used by Webex
        TLS and SRTP Cipher Suites
        Audio Codecs Supported
        SIP and RTP Profile Requirements
        Webex Call Routing Domains
      dropdown icon
      CUBE Redundancy
        Duplex CUBE Deployment for BroadWorks Deployed in Single Site
        Simplex CUBE Deployment for BroadWorks Deployed in Multi-Site
      dropdown icon
      Provisioning
        Step 1: Partner Prerequisites
        Step 2: Provision Phone Number Groups (PNG) in Partner Hub
        Step 3: Provision Callback DNS SRV Groups (CDSG) in Partner Hub
        Step 4: Associate PNG and CDSG to Customer Templates in Partner Hub
        Step 5: Provision Seed Solution Organizations
        Step 6: Select the Primary Seed Solution Organization
        Step 7: Download BroadWorks Configuration (BYoPSTN)
        Step 8: Determine the Webex Edge Audio DNS SRV domain
        Step 9: Provision Partner BroadWorks Configuration
        Step 10 Provision Partner CUBE
        Step 11 BYoPSTN Certification
      Apply Updates to an In-Service Phone Number Group/Callback DNS SRV Group
        G722 Media Interoperability when Using Your Own SBC
          Known Limitations
          In this article
          cross icon
          dropdown icon
          Bring Your Own PSTN Solution
            Definitions
              dropdown icon
              Overview
                Architecture
                Meeting Join Using Call-in
                Meeting Join Using Callback (Optional)
                Solution Configuration Overview
                BYoPSTN Configuration Elements
                Phone Number Groups (PNG)
                Callback DNS SRV Groups (CDSG)
                Customer Templates
                BroadWorks Calling Cluster
              dropdown icon
              BYoPSTN Configuration Elements Example
                Ports Used by Webex
                TLS and SRTP Cipher Suites
                Audio Codecs Supported
                SIP and RTP Profile Requirements
                Webex Call Routing Domains
              dropdown icon
              CUBE Redundancy
                Duplex CUBE Deployment for BroadWorks Deployed in Single Site
                Simplex CUBE Deployment for BroadWorks Deployed in Multi-Site
              dropdown icon
              Provisioning
                Step 1: Partner Prerequisites
                Step 2: Provision Phone Number Groups (PNG) in Partner Hub
                Step 3: Provision Callback DNS SRV Groups (CDSG) in Partner Hub
                Step 4: Associate PNG and CDSG to Customer Templates in Partner Hub
                Step 5: Provision Seed Solution Organizations
                Step 6: Select the Primary Seed Solution Organization
                Step 7: Download BroadWorks Configuration (BYoPSTN)
                Step 8: Determine the Webex Edge Audio DNS SRV domain
                Step 9: Provision Partner BroadWorks Configuration
                Step 10 Provision Partner CUBE
                Step 11 BYoPSTN Certification
              Apply Updates to an In-Service Phone Number Group/Callback DNS SRV Group
                G722 Media Interoperability when Using Your Own SBC
                  Known Limitations
                  Bring Your Own PSTN Solution for Webex for Cisco BroadWorks
                  list-menuIn this article
                  Bring Your Own PSTN Solution

                  Definitions

                  Definitions

                  Description

                  Cisco Partner

                  An entity (generally a Service Provider) who sells Cisco Products and Services to their customers.

                  End Customer

                  Users who use the Cisco Products and Services sold to them by a Cisco Partner.

                  CUBE

                  Cisco Unified Border Element

                  Partner Organization

                  Webex Identity and Service Management repository that maintains information about Cisco Partners and their Customers.

                  Partner Hub

                  Web portal to provision Identity and Services for Cisco Partners and the customers they manage.

                  Customer Organization

                  Webex Identity and Service Management repository that maintains information about End Customer.

                  BroadWorks Enterprise or Service Provider / Group

                  Representation of the end customer in BroadWorks.

                  Overview

                  The Bring Your Own PSTN (BYoPSTN) solution lets Webex for Cisco BroadWorks Service Providers provision phone numbers that they own for users to use when joining Webex Meetings. The solution lets Partners leverage their own PSTN networks and make use of existing relationships with PSTN providers, rather than using Cisco-provided numbers.

                  The reference architecture in this document provides an end-to-end design for the BYoPSTN option. This architecture is validated by Cisco and uses Cisco Unified Border Element (CUBE) as the Session Border Controller (SBC) for call traffic between BroadWorks and Webex Meetings.

                  Choosing the Meeting Join Option

                  Currently, Webex for Cisco BroadWorks supports two options for provisioning meeting phone numbers. Service Providers must choose one of these two options—a mix is not supported:

                  • Cisco call-in numbers (Cisco PSTN)—Cisco provides the phone numbers that meeting participants can use to join meetings

                  • Partner provided call-in numbers (BYoPSTN)—Service Providers provide their own phone numbers to be used by meeting participants when joining meetings

                  BYoPSTN Solution

                  Partners who choose the Partner provided call-in numbers (BYoPSTN) option must provide their own PSTN phone numbers and must provision the network infrastructure that is required to route calls to and from Webex. The BYoPSTN solution facilitates routing calls Over the Top (OTT) via the public internet from BroadWorks to Webex.

                  The following conditions apply when selecting the BYoPSTN option:

                  • Cisco Partners may use the same phone numbers for more than one End Customer. These phone numbers can be in any country that the Partner operates.

                  • The BYoPSTN option requires no changes to the general onboarding process for Webex for Cisco BroadWorks customers.

                  • BYoPSTN requires provisioning at the Cisco Partner level and any End Customers that Partners activate after BYoPSTN is operational, are enabled automatically.

                  • All of the provisioning required for customer Meeting sites is automatic, as with the current generally available solution.

                  • Partners activating both Standard and Premium packages have two Meeting sites: one site for Standard users and another for Premium users. Both sites are enabled for BYoPSTN.

                  • Meeting participants who call in to meetings may choose to use Video and Content share via the internet.

                  • Applies to meeting joins for both Space meetings and PMR meetings. Note that for Space meetings, the space must have been created by a Standard or Premium user with Webex Meeting host capabilities in order to receive a PSTN access number—spaces created by Basic users do not receive PSTN access numbers.

                  • This document provides a validated configuration that uses CUBE as your SBC. However, if you don’t want to use CUBE, you can deploy your own SBC.

                  Architecture

                  The Webex for Cisco BroadWorks BYoPSTN solution builds on the Webex Edge set of services, more specifically, the Webex Edge Audio service available to Enterprise Customers. The architecture is adapted to integrate the Cisco Partners BroadWorks infrastructure with Webex Edge Audio, thereby enabling the Cisco Partner to centrally configure sets of phone numbers for use by their End Customers.

                  The main elements of the architecture are as follows:

                  • BroadWorks—Cisco Partners BroadWorks infrastructure

                  • Cisco Unified Border Element (CUBE)—Reference Session Border Controller (SBC) for the solution deployed in the Cisco Partners data center. The CUBE must be inside a DMZ. Note that if you don’t want to use CUBE, you can deploy your own SBC.

                  • Webex Edge Audio—Webex service, which decouples the PSTN from Webex by changing the call routing to make use of the Cisco Partner provided infrastructure.

                  Calls by participants to join a meeting traverse through BroadWorks to CUBE and from CUBE to the Webex infrastructure in the cloud via the internet. This model is applicable for both of the following meeting join scenarios:

                  • Call-in—a participant dials the phone number in the meeting invite on either their BroadWorks registered handset, mobile device or on the Webex App. The call is initiated by BroadWorks.

                  • Callback (optional)—a participant requests that Webex call a phone number that the participant provides. The call is initiated by Webex.

                  Calls routed from BroadWorks to CUBE within the Partner infrastructure will use SIP TCP for call signaling and RTP for media. From CUBE to Webex, calls use SIP TLS for signaling and sRTP for media. Call routing from CUBE to WebEx is via the Internet and does not use a SIP Trunk.

                  The typical setup for call-in/callback scenarios is as follows:

                  • Cisco Partner has a PSTN phone number (for example, 2403332200) and an associated Webex access code (for example, 88631321777971704941).

                  • Cisco Partner provisions a Virtual Subscriber on BroadWorks that corresponds to the CUBE device. The Partner maps the phone number to the access code and vice-versa.

                  • The access code, which is sent to Webex in the SIP messages, identifies the meeting sites associated with the Cisco Partner.

                  • The above phone number to access code mapping is configured once and is common to all End Customer meeting sites.

                  • Participants joining the meeting must enter the corresponding meeting id (for example, 123456), which identifies the specific meeting to join.

                  It is recommended that Partners follow the redundancy model outlined below.

                  Meeting Join Using Call-in

                  The following picture depicts the process of a user who joins the meeting by call-in.

                  Here are the steps involved for the participant to join a meeting by call-in.

                  1. User schedules a meeting in Webex. Webex assigns a meeting id (for example, 123456).

                  2. User dials the Phone Number that is associated with the meeting (for example, 2403332200). The SIP INVITE carries the Request URI as the phone number associated to the meeting.

                  3. BroadWorks translates the Phone Number to an access code (for example, 88631321777971704941) associated to the Meeting site and routes the call to CUBE with the Request URI as the access code.

                  4. Webex receives the SIP INVITE and answers the call. The language of the announcements is determined by the language specified for the Phone Number when it is provisioned in Cisco Partner Hub and BroadWorks.

                  5. User enters the meeting id (for example, 123456) using DTMF. Webex verifies the user and then lets the user join the meeting.

                  Meeting Join Using Callback (Optional)

                  The following picture shows the process of a user who joins the meeting by call-back, the user requests a call from Webex to join a meeting.

                  Here are the steps involved for the participant to join a meeting by callback:

                  1. User schedules a meeting in Webex. Webex assigns a meeting id (for example, 123456).

                  2. User requests a call from Webex to their desired number (for example, +16504441000) to join the meeting using the Webex app or Meetings client.

                  3. Webex initiates a SIP INVITE to CUBE based on the Callback DNS SRV group, provisioned in Cisco Partner Hub and BroadWorks. The SIP INVITE Request URI contains the phone number that must receive the call, (for example, +16504441000@cube.example.com).

                  4. CUBE translates the Phone Number in the Remote Party ID to a value that identifies a Virtual Subscriber on BroadWorks (for example, 88631321777971704941@ecccx.amer.pub.webex.com). This identifies the CUBE as a virtual user to the BroadWorks Application Server.

                  5. Call is offered to the user requested Phone Number and user answers the call to join the meeting. This phone number can be a BroadWorks subscriber or a PSTN number. If the requested number is a PSTN number, BroadWorks uses the provisioned path to route the call to the PSTN.

                  For the Callback option, it is mandatory to activate the following two features:

                  • 102746 – BroadWorks Support for CI UUID
                  • 102074 – BYO PSTN Billing support for CallBack and CallIn

                  This can be confirmed from CLI as below:

                  AS_CLI/System/ActivatableFeature> get
                  
                        Id                                               Description  Activated  Last Modified Timestamp
                  =============================================================================================
                    102746                            BroadWorks Support for CI UUID       true
                    102074          BYO PSTN Billing support for CallBack and CallIn       true      
                  

                  For a detailed description of these features and activation can be found in the section ‘VoiceXML Meeting Callback Virtual Subscriber’ in this document.


                   
                  If you choose not to configure the Meeting Join using Callback option, users can still use either the Call-in option to join meetings or they can join with computer audio. In this case, then you are not required to configure DNS SRV Callback Groups.

                  Solution Configuration Overview

                  The solution has several different components, each of which must be configured correctly for the solution to operate successfully. The components are as follows:

                  • BroadWorks

                  • CUBE (or an alternative SP Certified Session Border Controller (SBC))

                  • Webex Edge Audio

                  There are inter-dependencies between the configuration of these different components and as such one or more solution seed organizations are required to complete the required solution configuration and verification.

                  Seed Organization

                  A seed organization is a Webex Organization that you configure to generate and validate settings for the BYoPSTN solution. The seed organization must have at least one user assigned a Standard package, and that Standard package must use the Partner provided call-in numbers (BYoPSTN) meeting join option. It is recommended that you associate the seed organization with a test BroadWorks Service Provider or Enterprise.

                  The solution seed organizations serve two purposes:

                  • Seed configuration—The provisioning of the seed organization(s) generates phone number to meeting access codes mappings and a meeting site universally unique identifier (site UUID) that are required for the on-going operation of the solution. This information is required to configure BroadWorks Virtual Subscribers (VSUB).

                  • Configuration validation—Use the seed organization to determine if your BYoPSTN solution is configured in accordance with your requirements. Use the seed organization and test users to validate meeting call-in and callback use cases using the Partner provided call-in numbers and DNS SRV Callback records (if callback is enabled).

                  The administrator must generate a seed solution organization for each unique set of phone numbers and DNS SRV callback records. The generation of the seed solution organization in each case, generates the required phone number to meeting access code mappings and the capability to verify the associated meeting call-in and callback use cases for those phone numbers and callback DNS SRV records.

                  The administrator, using Cisco Partner Hub must select one seed solution organization as the primary seed solution organization. The meeting site UUID of the Standard package meeting of this primary seed solution organization must be configured on BroadWorks. It is critical that this meeting site remains provisioned as this site UUID is sent in each call-in meeting join request as an authentication token. This single site UUID is shared by all sets of phone numbers and callback DNS SRV records. Multiple site UUID values are not required.

                  The primary and any secondary seed solution organizations can be deleted, if desired prior to the set of phone numbers and callback DNS SRV records being assigned to non-test customers. When the set of phone numbers and callback DNS SRV records are assigned to any non-test customers, those phone numbers and callback records are associated with meeting sites for those customers and are in use for meeting join using call-in and callback. Any changes should be considered as service impacting.

                  The subsequent sections provide more details on the different configuration elements.

                  BYoPSTN Configuration Elements

                  A key element of the solution is the configuration of Cisco Partner phone numbers and DNS SRV callback records. BYoPSTN uses Phone Number Groups and Callback DNS SRV Groups as a way of assigning geographically based phone numbers and redundant call routing for Webex meetings. These elements are assigned to End customers by the Customer Template.

                  Phone Number Groups (PNG)

                  Cisco Partners provision the Phone Numbers used by participants to join Meetings in Cisco Partner Hub. These Phone Numbers are arranged together into a Phone Number Group. The list of Phone numbers is associated to a Meeting site. All Personal Meeting Rooms (PMR) and scheduled meetings in that Meeting site use the associated Phone Numbers. The following is an example of a Phone Number Group:

                  Table 1. Phone Number Group: US East

                  Phone Number Name

                  Country

                  Country Code

                  Phone Number

                  Announcement

                  Toll Type

                  Call-in Priority

                  US Maryland

                  US

                  +1

                  2403332200

                  English

                  Toll

                  Primary

                  US Florida

                  US

                  +1

                  9049002303

                  English

                  Toll

                  Secondary

                  US New York

                  US

                  +1

                  8056504578

                  English

                  Toll Free

                  None

                  Phone Numbers have the following attributes:

                  • Phone Number Name—Name to describe the phone number

                  • Country—Country to which the phone is assigned

                  • Country Code—Country calling code or country dial-in code

                  • Phone Number—The phone number to use to join a meeting without the country code

                  • Announcement—Language of the announcement to be played when a participant is joining a meeting

                  • Toll Type—The type of number: Toll or Toll free

                  • Call-in priority—The priority assigned to the meeting numbers. The participants view of the meeting join numbers is ordered based on this priority.

                  Default Phone Numbers: Administrators can assign a Call-in Priority of Primary, Secondary or None to a phone number in the Phone Number Group. The phone numbers with a priority of Primary or Secondary are default phone numbers. The default phone numbers are sent in the meeting invite emails and are listed in the priority order that participants should use to join meetings. The default phone numbers are not required to be in the same country. A primary phone number must be selected, a secondary phone number is optional. At least one of the default phone numbers must of type Toll.

                  End Customer users can choose to specify their own default phone numbers using the meeting site web interface. These numbers appear for that user and their participants when they are the meeting host. If the user joins a meeting as an attendee, they'll appear only for them.

                  As per the example above, the Cisco Partner administrator provisions US Maryland as the primary and US Florida as secondary, these are the default phone numbers. A user may choose to override this in their meetings by changing the primary to US New York and secondary as US Maryland.

                  The maximum number of phone numbers for a given Phone Number Group is 98.

                  NOTE: It is not supported to configure a dedicated number for a single enterprise.

                  Callback DNS SRV Groups (CDSG)

                  To allow meeting participants to choose the callback option, a Callback DNS SRV Group is required that points to the CUBE instance(s) within the Cisco Partner’s network. Webex uses these records to route the callback via CUBE to BroadWorks, which can then place the meeting callback to the meeting participant’s phone number.

                  Following is an example of a Callback DNS SRV Group.

                  Table 2. Callback DNS SRV Group Name: Global CB

                  Country/Region

                  Country Code

                  DNS SRV Record

                  United States

                  +1

                  cube.us.example.com

                  Mexico

                  +52

                  cube.mx.example.com

                  All other countries

                  N/A

                  cube.global.example.com

                  Callback DNS SRV records have the following attributes:

                  • Country/Region—The country or region for which this DNS SRV Record should be used to send call requests.

                  • Country Code—The country code associated with the Country/Region. You can only have one DNS SRV record per country code.

                  • DNS SRV Record—The DNS SRV record for the Cisco Partner CUBE instance(s).

                  When the participant requests a call on their specified phone number, Webex uses the Callback DNS SRV associated with the country code for the specified phone number to route the call to the appropriate elements in the Cisco Partners network.

                  Using a DNS SRV record in this way provides support for redundant CUBE instances to service the call requests from Webex. In the example above, when meeting participants in the US request a callback from Webex to their US phone number, Webex uses the DNS SRV cube.us.example.com to route that call to the Cisco Partner’s network. When Meeting participants in Mexico request a callback from Webex to their Mexico phone number, Webex will use the DNS SRV cube.mx.example.com to route that call to the Cisco Partner’s network.

                  For any Country/Regions that do not have a specific Callback DNS SRV record, those call requests route to the ‘All other countries’ DNS SRV record. The administrator must configure an ‘All other countries’ DNS SRV record.

                  The maximum number of records for a given Callback DNS SRV Group is 200.

                  Customer Templates

                  The Customer Template is an existing concept for the Webex for BroadWorks solution. The template provides the default configuration that is used to provision an End Customer. BYoPSTN provides additional attributes to the Customer Template:

                  • Meeting Join Type—Can be either Cisco call-in numbers or Partner provided call-in numbers. This attribute indicates the phone numbers that are configured for meeting sites associated with the Standard and Premium packages. Partner provided call-in numbers should be selected by the administrator.

                  • Phone Number Group—Associated with Partner provided call-in numbers option only, this attribute indicates the phone numbers that are used by End Customers that are provisioned for Standard and Premium packages when joining meetings.

                  Callback DNS SRV Group—Associated with Partner provided call-in numbers option only, this attribute indicates the DNS SRV records that are used by Webex when calling back to End Customers that are provisioned for Standard and Premium packages when joining meetings. If you do not want to enable callback, you can choose “Disable Callback”" when creating or updating a customer template. When the first subscriber for either Standard or Premium is provisioned for an End Customer, the associated package meeting site is provisioned. The package meeting site is provisioned as per the above Customer Template. Any subsequently provisioned subscriber for either Standard or Premium is added to the already provisioned meeting site—the meeting site configuration is not changed.

                  Any changes to the Customer Template with respect to the above attributes apply only to newly provisioned package meeting sites. Existing meeting sites, already provisioned, are unaffected by changes to the Customer Template.

                  The one notable exception is that if an End Customer already has a package meeting site, any new package meeting site is provisioned using the same Meeting Join Type as the existing package meeting site. For example, if an End Customer has a Standard package meeting site using Cisco call-in numbers and the Customer Template is updated to use Partner provided call-in numbers, a new Premium package meeting site is provisioned using Cisco call-in numbers, the Customer Template setting does not apply. The Standard and Premium meeting sites for a given End Customer shall always be provisioned consistently.

                  BroadWorks Calling Cluster

                  Cisco Partner Hub - BroadWorks Calling Cluster screen provides access to view and/or download the BroadWorks configuration (BYoPSTN) information. The BYoPSTN configuration information for a given cluster includes the following data:

                  • Primary Seed Solution Organization details including the Standard package meeting site UUID and site URL.

                  • Phone Number Group details for all groups configured for this cluster. This includes the phone number to meeting access code mappings for each group. Note the details should include groups that are associated with all secondary seed solution organizations.

                  • Callback DNS SRV Group details for all groups configured for this cluster. Note the details should include groups that are associated with all secondary seed solution organizations.

                  • Customer Template details for those templates using any of the Phone Number Groups and Callback DNS SRV Groups.

                  Each BroadWorks Calling Cluster has its own BroadWorks configuration (BYoPSTN) information specifically its assigned Phone Number Groups and Callback DNS SRV Group. However, please note that all BroadWorks Calling Cluster share the same Primary Seed Solution Organization and as such all include the same the Standard package meeting site UUID and site URL.

                  The BroadWorks configuration (BYoPSTN) information is only available for view/download when the administrator configures and selects the Primary Seed Solution Organization. The primary seed solution organization must have at least one user assigned to the Standard package and that Standard package must use the Partner provided call-in numbers (BYoPSTN) meeting join option.

                  BYoPSTN Configuration Elements Example

                  The following image shows an example of a multi-cluster BroadWorks deployment with geographically based customer templates, phone numbers and routing.

                  The first table shows a multi-cluster BroadWorks deployment with regionally based Customer Templates, Phone Number Groups and Callback DNS SRV groups. The subsequent tables expand on the Phone Number Group and Callback DNS SRV Groups.

                  BroadWorks Cluster

                  Template Name

                  Package

                  Meeting Join Type

                  Phone Number Group

                  Callback DNS SRV Group

                  BWKS US NG

                  US West Std

                  Standard

                  Partner provided call-in numbers

                  US West

                  CB US

                  US West Prem

                  Premium

                  US East Std

                  Standard

                  US East

                  US East Prem

                  Premium

                  BWKS MX

                  MX Std

                  Standard

                  Partner provided call-in numbers

                  MX PNG

                  CB MX

                  MX Prem

                  Premium

                  BWKS UK

                  UK Std

                  Standard

                  Partner provided call-in numbers

                  UK PNG

                  Callback Disabled

                  UK Prem

                  Premium

                  BWKS US

                  US Std

                  Standard

                  Cisco call-in numbers

                  None

                  None

                  • Subscribers provisioned using the US West Std or US West Prm template use the US West Phone number when joining meetings. Those subscribers meeting join callback requests are sent to the CB US DNS SRV records.

                  • Subscribers provisioned using the US East Std or US East Prm template use the US East Phone number when joining meetings. Those subscribers meeting join callback requests are sent to the CB US DNS SRV records.

                  • Subscribers provisioned using the MX Std or MX Prm template use the MX PNG Phone number when joining meetings. Those subscribers meeting join callback requests are sent to the CB MX DNS SRV records.

                  • Subscribers provisioned using the UK Std or UK Prm template use the UK PNG Phone numbers when joining meetings. Those subscribers will not be offered meeting join via callback as callback is disabled.

                  • Subscribers provisioned using the US Std are using Cisco call-in numbers and therefore have no Phone Number Group or Callback DNS SRV Group assigned. These subscribers use Cisco provided phone numbers for meeting joins and Cisco DNS SRV records for meeting joins using callback.

                  Details of the example Phone Number Groups are as follows:

                  Phone Number Group

                  Phone Number Name

                  Country

                  Country Code

                  Phone Number

                  Announcement

                  Toll Type

                  Call-in Priority

                  US West

                  US San Francisco

                  US

                  +1

                  4156551000

                  English

                  Toll

                  Primary

                  US Palo Alto

                  US

                  +1

                  9863502478

                  English

                  Toll Free

                  None

                  US East

                  US Maryland

                  US

                  +1

                  2403332200

                  English

                  Toll

                  Primary

                  US Florida

                  US

                  +1

                  9049002303

                  English

                  Toll

                  Secondary

                  US New York

                  US

                  +1

                  8056504578

                  English

                  Toll Free

                  None

                  MX PNG

                  Mexico

                  MX

                  +52

                  2065304086

                  European Spanish

                  Toll

                  Primary

                  UK PNG

                  UK

                  UK

                  +44

                  4527789651

                  English

                  Toll

                  Primary

                  Details of the example Callback DNS SRV Groups are as follows:

                  Callback DNS SRV Group

                  Country

                  DNS SRV

                  CB US

                  US

                  cube.us.example.com

                  All other countries

                  cube.row.example.com

                  CB MX

                  MX

                  cube.mx.example.com

                  All other countries

                  cube.row.example.com

                  The configuration for the US DNS SRV record, cube.us.example.com may be as in the example:

                  _sips._tcp.cube.us.example.com

                  86400

                  IN

                  SRV

                  10

                  10

                  5061

                  cube01.us.example.com

                  _sips._tcp.cube.us.example.com

                  86400

                  IN

                  SRV

                  10

                  10

                  5061

                  cube02.us.example.com

                  This DNS SRV record may resolve to the following DNS A record:

                  cube01.us.example.com

                  86400

                  IN

                  A

                  45.84.168.81

                  cube02.us.example.com

                  86400

                  IN

                  A

                  45.84.168.82


                   
                  The DNS SRV records resolve to secure SIP calls from Webex to CUBE.

                  Ports Used by Webex

                  The ports in the table below must be opened on the firewall of the DMZ where the CUBE resides, and other ports can be closed. For additional information on ports and network requirements, refer to the following article:

                  https://collaborationhelp.cisco.com/article/WBX264

                  Source

                  Source Ports

                  Destination

                  Destination Ports

                  Protocol

                  Description

                  Webex Edge Audio Services

                  Ephemeral

                  CUBE

                  5061

                  TCP

                  (mTLS 1.2) Inbound SIP signaling from Webex Edge Audio to CUBE SBC.


                   
                  CUBE SBC requires specifically the use of port 5061. The use of other ports in the range from 5060-5070 may be supported by other SBCs.

                  Webex Edge Audio Services

                  4000 - 4010

                  CUBE

                  5061

                  TCP

                  (mTLS 1.2) Options Ping for Webex Edge Audio.

                  CUBE

                  Ephemeral

                  EdgeAudio

                  5605

                  TCP

                  (mTLS 1.2) Outbound SIP signaling for Webex Edge Audio.

                  Webex Edge Audio Services

                  Ephemeral

                  CUBE

                  Ephemeral ports

                  8000 - 59999

                  UDP

                  (SRTP) Firewall pinholes need to be opened up for incoming media traffic to Edge audio.

                  CUBE

                  Ephemeral ports

                  10200 - 28000

                  Edge Audio

                  Ephemeral

                  UDP

                  (SRTP) Firewall pinholes need to be opened up for outgoing media traffic to CUBE.

                  TLS and SRTP Cipher Suites

                  TLS v1.2 or higher is used for mTLS handshake, and the following ciphers are supported by Webex Edge Audio (during Call-Back, Webex Edge Audio offers these in the TLS Handshake’s Client Hello):

                  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

                  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

                  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

                  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

                  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

                  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

                  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

                  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

                  • TLS_RSA_WITH_AES_256_GCM_SHA384

                  • TLS_RSA_WITH_AES_256_CBC_SHA256

                  • TLS_RSA_WITH_AES_128_GCM_SHA256

                  • TLS_RSA_WITH_AES_128_CBC_SHA256

                  • TLS_DHE_DSS_WITH_AES_256_GCM_SHA384

                  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA256

                  • TLS_DHE_DSS_WITH_AES_128_GCM_SHA256

                  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA256

                  The following ciphers are used for sRTP:

                  • AEAD_AES_256_GCM

                  • AEAD_AES_128_GCM

                  • AES_CM_128_HMAC_SHA1_80

                  • AES_CM_128_HMAC_SHA1_32

                  Audio Codecs Supported

                  • G722

                  • G711µ

                  • G711a

                  SIP and RTP Profile Requirements

                  The Solution requires that between CUBE (or your SBC) and Webex, you deploy SIP TLS for signaling and sRTP for media.

                  The SIP and RTP profiles as part of this communication should conform to the following requirements:

                  SIP Profile Requirements

                  Details

                  Session Expiry Timer

                  2220 sec (accept SIP 422) * is adjusted per business need and 422 is expected.

                  Media Offer for ingress

                  Early Offer

                  Media Offer for egress

                  Late Offer

                  Options ping interval

                  30s (Minimum)

                  DTMF

                  RFC2833 Payload 101 (No Acoustic DTMF!)

                  SIP-UDP Ports

                  4000-4010,5061,5065

                  RTP Profile

                  Details

                  Voice payload profile

                  G.722/ G.711μ /G.711a

                  Packet size

                  20 ms

                  VAD (Voice Activity Detection)

                  No

                  Media inactivity timer

                  1200 ms

                  Mid dialing codec change

                  Not accepted

                  RTP

                  8000-48198

                  sRTP Ciphers

                  AEAD_AES_256_GCM

                  AEAD_AES_128_GCM

                  AES_CM_128_HMAC_SHA1_80

                  AES_CM_128_HMAC_SHA1_32


                   
                  G.729 codec is not supported. If you want to use G.729, you must use transcoders.

                  Webex Call Routing Domains

                  The DNS SRV _sips._tcp.<domain> is used to reach Webex Edge Audio. There are four domains depending on the region.

                  Region

                  Domain

                  Americas

                  ecccspx.amer.pub.webex.com

                  UK, North Africa

                  ecccspx.emea.pub.webex.com

                  Asia Pacific

                  ecccspx.apac.pub.webex.com

                  Australia / New Zealand

                  ecccspx.anz.pub.webex.com

                  Europe

                  ecccspx.euro.pub.webex.com

                  The DNS SRV resolves to several A records pointing to the primary and secondary site. The following table provides an example for the AMER region and is subject to change in the future.

                  Record Type

                  Record

                  Target

                  Purpose

                  SRV

                  _sips._tcp.ecccspx.amer.pub.webex.com

                  ecccspxpr1.amer.pub.webex.com

                  Discovery of Webex Edge Audio

                  SRV

                  _sips._tcp.ecccspx.amer.pub.webex.com

                  ecccspxpr2.amer.pub.webex.com

                  Discovery of Webex Edge Audio

                  SRV

                  _sips._tcp.ecccspx.amer.pub.webex.com

                  ecccspxsc1.amer.pub.webex.com

                  Discovery of Webex Edge Audio

                  SRV

                  _sips._tcp.ecccspx.amer.pub.webex.com

                  ecccspxsc2.amer.pub.webex.com

                  Discovery of Webex Edge Audio

                  A

                  ecccspxpr1.amer.pub.webex.com

                  207.182.174.101*

                  Points to Webex Edge Audio AMER Primary 1

                  A

                  ecccspxpr2.amer.pub.webex.com

                  207.182.174.102*

                  Points to Webex Edge Audio AMER Primary 2

                  A

                  ecccspxsc1.amer.pub.webex.com

                  207.182.174.229*

                  Points to Webex Edge Audio AMER Secondary 1

                  A

                  ecccspxsc2.amer.pub.webex.com

                  207.182.174.230*

                  Points to Webex Edge Audio AMER Secondary 2


                   

                  The DNS-SRV is dynamic in nature, the IP addresses are prone to change; therefore, avoid hard-coding or bookmarking the IP addresses. Refer to the ‘Document Revision History’ section for any changes or updates made to the Port Reference Information for Webex Calling document.

                  CUBE Redundancy

                  Cisco Unified Border Element (CUBE) enables the Session Border Control capability in a network managing SIP connections between external entities and internal network. More information about CUBE is available in Prerequisites section below.

                  The redundancy models supported are defined with the purpose of providing High Availability and eliminating single-point-of-failure for the Cisco Partner. Three different models are outlined below. Cisco Partners should adopt whichever model is applicable to their environment.

                  During onboarding process partner should disable ICMP filters.

                  Duplex CUBE Deployment for BroadWorks Deployed in Single Site

                  Simplex CUBE Deployment for BroadWorks Deployed in Multi-Site

                  One more redundancy model is possible where CUBE is deployed in duplex mode in every site. This model is not necessary considering that BroadWorks is deployed with geo-redundancy.

                  Provisioning

                  Cisco Partners are required to deploy and manage the required infrastructure mentioned above for enabling BYoPSTN in their network. The following steps are required to provision and enable BYoPSTN for a Cisco Partner.
                  1

                  Partner Prerequisites

                  • Deploy the BroadWorks system

                  • Deploy CUBE for Webex Edge Audio or leverage your own SBC

                  2

                  Provision Phone Numbers in Cisco Partner Hub

                  • Provision Phone Number groups to be associated with Customer Templates

                  3

                  Provision Callback DNS SRV Groups in Cisco Partner Hub (Optional)

                  • If you want to deploy Meeting Join via Callback, provision Callback DNS SRV groups and update your DNS settings. Otherwise, you can skip this step.

                  4

                  Associate PNG (and CDSG) to Customer Templates

                  • Associate Phone Number Groups and Callback DNS SRV Groups (only if Meeting Callback is deployed) to your Customer Templates.

                  5

                  Provision Seed Solution Organizations

                  • Provision a test Service Provider or Enterprise for Webex For BroadWorks using each of the Customer Templates.

                  • Provision a subscriber with a Standard package that uses Partner Provided call-in numbers meeting join option.

                  6

                  Select the Primary Seed Solution Organization

                  • Select a single primary seed solution organziation for BYoPSTN.

                  7

                  Download the BroadWorks configuraion (BYoPSTN)

                  • Download the JSON file from Cisco Partner Hub which contains the information needed to configure BroadWorks

                  8

                  Determine the Webex Edge Audio DNS SRV domain

                  • Identify the Webex Edge Audio DNS SRV domain

                  9

                  Provision Partner BroadWorks Configuration

                  • CUBE Virtual Subscriber Configuration

                  • Apply the Phone Number to access code mapping, from downloaded JSON file, in Virtual Subscribers

                  • Network Server Configuration

                  10

                  Provision Partner CUBE (or your own SBC)

                  • Follow validated configuration to provision CUBE as your SBC

                  • Alternative. If you don't want to use CUBE, provision your own SBC using the CUBE configuration as a high-level guide

                  11

                  BYoPSTN Certification

                  • Complete acceptance tests for certification

                  Step 1: Partner Prerequisites

                  The following prerequisites must be completed for the provisioning of BYoPSTN. The prerequisites given below assume that the Partner has a working Webex for Cisco BroadWorks deployment that includes:

                  • Functioning BroadWorks System – as documented in the Webex for Cisco BroadWorks Solution Guide

                  • BroadWorks AS license with “VoiceXML” service in sufficient quantity (1 per PSTN number)

                  • BroadWorks patches required:

                    For R22:

                    • AP.xsp.22.0.1123.ap376935

                    • AP.as.22.0.1123.ap376935

                    For R23:

                    • AP.xsp.23.0.1075.ap376935

                    • AP.as.23.0.1075.ap376935

                    For R24

                    • AP.as.24.0.944.ap376935

                  • Cisco CUBE System deployed (IOS Version 16.12.2 or higher): https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book.html

                    Both hardware-based and virtual CUBE is supported. Hardware based CUBE is recommended for scalability and handling larger numbers of calls.

                  • Webex Partner organization – as outlined in the Webex for Cisco BroadWorks Solution Guide

                  Step 2: Provision Phone Number Groups (PNG) in Partner Hub

                  The procedure the Cisco Partner uses to add their Webex meeting call-in phone numbers is as follows:

                  1. Log in to Cisco Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling.

                  4. Under Meeting Join configuration (BYoPSTN), select Create Call-in Phone Number Group.

                  5. Enter the Phone Number Group name and select Next.

                  6. Enter the Phone Number details and select Next.

                  7. Review the Phone Number Group details summary and select Save.

                  8. Repeat this procedure for each Phone Number Group to be added.

                  The screenshots below illustrate the procedure.

                  Step 3: Provision Callback DNS SRV Groups (CDSG) in Partner Hub


                   
                  This step is to be completed only if you want to deploy the Meeting Join via Callback option. Otherwise, you can skip this step.

                   
                  If you do not configure this option, users can use the Call-in option to join meetings, or they can join with computer audio.

                  When you use the Meeting Callback option, a Callback DNS SRV Group is required to route calls from Webex to CUBE. The procedure the Cisco Partner uses to add their CUBE DNS SRV records to Webex is as follows:

                  1. Log in to Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling.

                  4. Under Meeting Join configuration (BYoPSTN), select Create callback DNS SRV Group.

                  5. Enter the Callback DNS SRV Group name.

                  6. Select Next.

                  7. Enter the Callback DNS SRV details.

                  8. Select Next.

                  9. Review the Callback DNS SRV details summary.

                  10. Select Save.

                  11. Provision any updates to DNS to reflect the new records in the DNS SRV group.

                  12. Repeat this procedure for each Callback DNS SRV Group to be added.

                  The screenshots below illustrate the procedure.

                  Step 4: Associate PNG and CDSG to Customer Templates in Partner Hub

                  Initial configuration and verification of the BYoPSTN solution requires a seed organization for each unique combination of Phone Number Group and Callback DNS SRV Group (if callback is required). Therefore, it is recommended that Cisco Partners similarly create a new Customer Template for each unique combination of Phone Number Group and Callback DNS SRV Group. Each customer template should be used to generate a corresponding seed organization.

                  Once the BYoPSTN configuration is seeded and verified using the seed organizations, the Phone Number Groups and Callback DNS SRV Groups can be applied to existing Customer Templates as required.

                  Please note that newly created Customer Templates are not in use by existing non-test customers and therefore can safely be used for manual verification of the BYoPSTN configuration.


                   
                  If you are not deploying Meeting Join via Callback, you do not need to associate Callback DNS SRV Groups to the Customer Template. However, you do need to select Disable Callback.

                  To add to a new Customer Template, do the following:

                  1. Log in to Cisco Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling.

                  4. Under Templates, select Add Template.

                  5. Enter the Template details. At the Package Type stage:

                    • Select Package Type as Standard.

                    • Select Meeting join configuration as Partner provided call-in numbers (BYoPSTN).

                    • Select a provisioned Phone Number group.

                    • For Callback DNS SRV group, if you want to enable the Meeting Callback option then select a provisioned Callback DNS SRV group. Otherwise, select Disable Callback.

                  6. Select Next.

                  7. Enter the remaining Template details.

                  8. Review the Template details summary.

                  9. Click Save.

                  10. Repeat this procedure for each Customer Template that must be added

                  The screenshot below illustrates the procedure.

                  To update an existing Customer Template, do the following:

                  1. Log in to Cisco Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling section.

                  4. Under Templates, select View Template.

                  5. Select the Template to be updated.

                  6. Scroll to the Meeting join configuration section:

                    • Select Partner provided call-in numbers (BYoPSTN).

                    • Select a previously configured Phone Number group.

                    • For Callback DNS SRV group, if you want to enable the Meeting Callback option, select a provisioned Callback DNS SRV group. Otherwise, select Disable Callback.

                  7. Select Save.

                    The screenshot below illustrates the procedure.

                  Step 5: Provision Seed Solution Organizations

                  The BYoPSTN solution has several different components, each of which must be configured correctly for the solution to operate successfully. One of the two purposes of the seed solution organizations is to generate phone number to meeting access codes mappings and a meeting site universally unique identifier (site UUID) that are required for the on-going operation of the solution. The other purpose being configuration verification.

                  For each unique combination of Phone Number Group and Callback DNS SRV Group to be used, a corresponding Customer Template should be created previously. For each of these Customer Templates, a seed solution organization must be provisioned. The provisioning of these seed organizations generates the phone number to meeting access codes mappings and a meeting site UUID that are required to configure BroadWorks.

                  Using each of the previously configured Customer Templates, provision a subscriber for a new test BroadWorks Service Provider or new BroadWorks Enterprise with a Standard package user. The resulting Standard package meeting site should be using Partner Provider call-in numbers meeting join option. Either of the following methods can be used to provision the subscriber:

                  1. Provision the test subscriber using BroadWorks Subscribers APIs as documented on developer.webex.com.

                  2. Enable the test subscriber for the IM&P Service on a BroadWorks configured to use the Customer Template. Please ensure the Customer Template is using the Standard package as the default to ensure the test subscriber is assigned a Standard package. Alternatively, the test subscriber must be subsequently updated to have the Standard package.

                  Please note it is recommended that the seed solution organizations are associated with a test BroadWorks Service Provider or test BroadWorks Enterprise.

                  Step 6: Select the Primary Seed Solution Organization

                  It is critical that this meeting site remains provisioned as this site UUID is sent in each call-in meeting join request as an authentication token. You should not delete the seed organization as the associated meeting site will also be deleted. If the seed organization is removed, you will need to provision a new one and reconfigure Broadworks with the new site UUID.

                  The primary and any secondary seed solution organizations can be deleted, if desired prior to the set of phone numbers and callback DNS SRV records being assigned to non-test customers. When the set of phone numbers and callback DNS SRV records are assigned to any non-test customers, those phone numbers and callback records are associated with meeting sites for those customers and are in use for meeting join using call-in and callback. Any changes should be considered as service impacting.

                  To select the Primary Seed Solution Organization, do the following:

                  1. Log in to Cisco Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling section.

                  4. Under Configuration Validation (BYoPSTN) section, select Assign.

                  5. In the Assign organization screen, search for and select one of the seed organizations previously configured

                  6. Select Assign.

                    The selected seed organization is the primary seed organization.

                  The screenshots below illustrate the procedure.

                  Step 7: Download BroadWorks Configuration (BYoPSTN)

                  The Primary Seed Solution Organization, Phone Number Groups and Callback DNS SRV Group details for a given BroadWorks Cluster are available in a single location, the BroadWorks configuration (BYoPSTN) JSON file. This information is needed to configure BroadWorks for BYoPSTN.

                  Please note the JSON configuration file is only available for view/download after the primary seed solution organization is selected.

                  The procedure to view/download the JSON configuration file is as follows:

                  1. Log in to Cisco Partner Hub.

                  2. Go to Settings.

                  3. Scroll to BroadWorks Calling.

                  4. Under Clusters, select View Cluster.

                  5. Select the Cluster that is associated with the Customer Templates that are configured for BYoPSTN.

                  6. Scroll to the BroadWorks configuration for BYoPSTN section.

                  7. Click Download JSON configuration file.

                  8. Repeat this procedure for any other BroadWorks Clusters.

                  The screenshots below illustrate the procedure.

                  Please see the sample JSON configuration file below. The file contains supplementary information on each Phone Number Group, Callback DNS SRV Group, the following key configuration items which must be entered on BroadWorks are marked in bold.

                  • siteUUID: BroadWorks must send this value in the SIP messages, it is a token which Webex Edge Audio uses to confirm the identity of the Cisco Partner’s BroadWorks and its access to meeting sites managed by this Cisco Partner.

                  • Phone number -to- access code mapping: The phone numbers and their associated Webex access codes must be configured on BroadWorks.

                    • phoneNumber

                    • accessCode

                  • localeTag: The desired announcement language associated with phone number must be configured on BroadWorks.

                  • dnsSrv: The Callback DNS SRV must be configured in the DNS and refer to the desired CUBE instances.

                  
                  {
                     "siteUUID": "491db0821791441a96c233fefb6c6dfc",
                     "siteURL": " seedtestenterpriseabc.webex.com ",
                     "partnerOrgId": "1da175de-3651-4467-b26b-b0d85a2cb3ad",
                     "solutionValidationOrgId": "d927ac4d-3d73-4d7f-8506-a1bc0a221934",
                     "customerTemplates": [
                        {
                           "name": "US West Std",
                           "id": "27fe1337-ab1d-44b0-8b5e-ff1d32f6e3f8",
                           "phoneNumberGroupId": "1bcb05bd-b919-45fd-b30e-71d2abb59e26",
                           "callbackDnsSrvGroupId": "25392686-a390-49b9-bad5-cb47159c3e992"
                        },
                        {
                           "name": "US East Std",
                           "id": "070d6682-b64f-46ea-bc4b-b2e1218ba4bb",
                           "phoneNumberGroupId": "12bc0b8f-ea1d-457f-8fe2-069ccf78907e",
                           "callbackDnsSrvGroupId": "25392686-a390-49b9-bad5-cb47159c3e992"
                        }
                     ],
                     "phoneNumberGroups": [
                     {
                           "name": "US West",
                           "id": "1bcb05bd-b919-45fd-b30e-71d2abb59e26",
                           "phonenumbers": [
                              {
                                 "id": "617c5faa-1721-45c7-bc70-e6d7c20ccc29",
                                 "name": "US Palo Alto",
                                 "countryCode": "US",
                                 "localeTag": "en_US",
                                 "tollType": "TollFree",
                                 "defaultPhoneNumberType": "NONE",
                                 "phoneNumber": "9863502478",
                                 "accessCode": "88672693772924908359"
                              },
                              {
                                 "id": "48fa7c50-9da0-4c8b-9b2f-307ff435c7c7",
                                 "name": "US Toll San Francisco",
                                 "countryCode": "US",
                                 "localeTag": "en_US",
                                 "tollType": "Toll",
                                 "defaultPhoneNumberType": "PRIMARY",
                                 "phoneNumber": "4156551000",
                                 "accessCode": "88652789466280320324"
                              }
                           ]
                        },
                        {
                           "name": "US East",
                           "id": "12bc0b8f-ea1d-457f-8fe2-069ccf78907e",
                           "phonenumbers": [
                              {
                                 "id": "ca0c622a-8621-4477-91e0-b3e214833568",
                                 "name": "US Maryland",
                                 "countryCode": "US",
                                 "localeTag": "en_US",
                                 "tollType": "Toll",
                                 "defaultPhoneNumberType": "PRIMARY",
                                 "phoneNumber": "2403332200",
                                 "accessCode": "88631321777971704941"
                              },
                              {
                                 "id": "00875574-9a46-4447-a967-350b6176755a",
                                 "name": "US Florida",
                                 "countryCode": "US",
                                 "localeTag": "en_US",
                                 "tollType": "Toll",
                                 "defaultPhoneNumberType": "SECONDARY",
                                 "phoneNumber": "9049002303",
                                 "accessCode": "88632627551145646175"
                              },
                              {
                                 "id": "a2c10316-9266-4423-a669-d67949f99d33",
                                 "name": "US New York",
                                 "countryCode": "US",
                                 "localeTag": "en_US",
                                 "tollType": "TollFree",
                                 "defaultPhoneNumberType": "NONE",
                                 "phoneNumber": "8056504578",
                                 "accessCode": "88649679020033567943"
                              }
                           ]
                        }
                     ],
                     "callbackDnsSrvGroups": [
                        {
                           "name": "CB US",
                           "callbackDnsSrvs": [
                              {
                                 "name": "Callback US",
                                 "countryCode": "US",
                                 "dnsSrv": "cube.us.example.com",
                                 "id": "c5209d17-7c2f-45b3-95a6-65d7f5f53c7e"
                              }
                           ],
                           "id": "25392686-a390-49b9-bad5-cb47159c3e992"
                        },
                        {
                           "name": "CB MX",
                           "callbackDnsSrvs": [
                              {
                                 "name": "Callback MX",
                                 "countryCode": "MX",
                                 "dnsSrv": "cube.mx.example.com",
                                 "id": "cca0e4c3-5cff-412c-a854-bfb719f603a2"
                              }
                           ],
                           "id": "36403797-b401-50c0-cbe5-dc58260d4f003"
                        }
                     ]
                  }
                  

                  Step 8: Determine the Webex Edge Audio DNS SRV domain

                  The Webex Edge Audio DNS SRV domain must be configured on BroadWorks. Use the following procedure to determine the value.

                  1. Log in to Cisco Partner Hub.

                  2. Go to Customers.

                  3. Select the BYoPSTN Validation Enterprise.

                  4. Select View Customer.

                  5. Go to Services/Meetings.

                  6. Select the Standard package meeting site.

                  7. Scroll to the bottom of the side-out panel, select Configure Site.

                  8. Select Common Settings / Audio Settings.

                  9. Under the Edge Audio Custom Global Call-in Numbers section, select Generate Lua Script.

                  10. In the pop-up window search for value “-- Update To header with CCAX URL”.

                     
                    -- Update To header with CCAX URL
                     local oldTo1 = msg:getHeader("To")
                     local newTo1 = string.gsub(oldTo1, "<sip:(.+)@(.*)>", "<sip:%1@ecccx.amer.webex.com>")
                     msg:modifyHeader("To", newTo1)
                    

                  11. Extract out the value in bold, for example, ecccx.amer.webex.com.

                  This is the Webex Edge Audio DNS SRV domain that must configured on BroadWorks.

                  Step 9: Provision Partner BroadWorks Configuration

                  This section describes the BroadWorks configuration necessary to implement the Meeting Call-in and Callback scenarios shown in the diagrams below. The configuration examples are based on the data in the JSON file shown in the previous section. Numbers, domains, naming of enterprise/groups, type of devices, policies, profiles, etc. are expected to vary by partner.

                  BroadWorks Detail— Call me (Callback using SIP X-Cisco-Meet-Info header) – to Registered Phone / PSTN

                  Call flow:

                  1. User requests call back, Webex initiates a call back.
                  2. Call is routed to BroadWorks OTT.
                  3. Call reaches the CUBE provisioned in CH. CUBE routes the call to BroadWorks.
                  4. BroadWorks identifies the call as Meeting Host origination and creates a session for the meeting host user and processes the call.
                  5. The meeting host user session processes the call and translates the dialed number. Additionally, a billing record is generated on behalf of the meeting host user.
                  6. BroadWorks routes the call either to the user associated to the device (7) or to PSTN (8).
                  User’s phone or PSTN rings and when answered joins the meeting.

                  Before You Begin

                  SIP communication between BroadWorks and the CUBE can be over UDP or TCP depending on your network requirements. For example, if some network or access devices (for example, gateways or endpoints) in the BYoPSTN call-in or callback flows do not support TCP, then UDP should be used instead.

                  The configuration and examples shown in this guide use TCP as the transport protocol. To use TCP, make sure that your BroadWorks Application Server and Network Server are both configured for TCP:

                  _CLI/Interface/SIP> get
                  networkProxyTransport = unspecified
                  accessProxyTransport = unspecified
                  supportDnsSrv = true
                  supportTcp = true

                  Application Server

                  Identify/Device Profile Type

                  A new Identity/Device Profile Type should be created to represent the CUBE. Make sure to set the following properties below, while others can be left at default values:

                  • Signaling Address Type—Set to Intelligent Proxy Addressing

                  • Authentication—Set to Enabled

                  • Support Identity in UPDATE and Re-INVITE—Checked

                  • Static Registration Capable—Set to Enabled

                  • Video Capable—Set to Disabled

                  In the example below, the new Identity/Device Profile Type “VXML_profile” is created to represent the CUBE.

                  Voice XML Virtual Subscriber

                  Create a VoiceXML Instance

                  Each Webex Meetings PSTN number is represented by a virtual subscriber in BroadWorks, and the VoiceXML virtual subscriber functionality can be used. It is recommended that a dedicated enterprise and group are used for all VoiceXML virtual subscribers. Note that we are not actually exploiting any VoiceXML capabilities, but this type of virtual user is suitable for interacting with the CUBE.

                  In order to use the VoiceXML service, ensure that the license has sufficient “VoiceXML” quantities and that the service is authorized on the enterprise and group levels, and the VoiceXML service is assigned to the group as shown in the example picture below.

                  Under Group > Services, select VoiceXML and create an instance for each PSTN number.

                  Configure VoiceXML Addresses

                  For each VoiceXML instance, provision the following under the VoiceXML Addresses:

                  • Phone Number—Enter the dial-in number for the Webex Meetings site (for example, 2403332200).

                  • Extension

                  • Identity/Device Profile—Create one instance (for example, VXML_deviceProf) based on the device type created in the previous section (VXML_profile in the example) and enter the following configuration.

                  • Line/port—Enter in the <access number>@<domain> format, where

                    • <access number> is the Access Code number for the Webex Meetings site (available from the JSON file) (for example, 88631321777971704941)

                    • <domain> is the domain of the Webex Edge Audio for this meeting site (for example, ecccspx.amer.pub.webex.com)

                  • Contact sip—For Meeting Call-In calls to the access number, the INVITE will be sent with a Request URI set to the value of this field. Enter the SIP contact in this format <sip contact>;<Locale>;<Meetings Site UUID>;<SIP transport>, where:

                    • <sip contact> is the <number> from the line/port field but with the domain as the SRV that resolves to the CUBE’s address (for example, 88631321777971704941@cube.internal.local)

                    • <Locale> represents the language setting according to the user locale (for example, locale=en_US)

                    • <Meetings Site UUID> is site UUID from the JSON file (for example, x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b)

                    • <SIP transport> should be transport=tcp to have the AS use TCP to send messages to the CUBE.

                  Below is an example of VoiceXML Addresses settings.


                   
                  For each additional Meeting access number to be used, an additional VoiceXML virtual subscriber should be created analogous to the one above. The same device profile can be used, but the Line Port and Contact fields must be constructed from the access number information as shown above.

                   
                  Make sure to verify that the Call Processing Policy limits that you configure on the BroadWorks virtual subscriber are sufficient to handle the extra BYoPSTN calls in your Phone Number Group.

                  Assign SIP Authentication to VoiceXML Instance

                  Assign the Authentication service to the VoiceXML virtual subscriber. This will be used to authenticate SIP INVITE messages from the CUBE in the Callback scenario. It also prevents the VoiceXML virtual subscriber from accepting calls from parties other than the CUBE

                  Go to the virtual subscriber Authentication page under Utilities and enter the SIP username and password as shown below:


                   

                  The CUBE must be configured with the same username and password in order to properly authenticate the INVITE messages that are sent to the AS.

                  An example of the command to configure SIP authentication on the CUBE is as follows:

                  sip-ua authentication username VSUB password 0 <unencrypted password>
                  (See the CUBE onfiguration/datafill for more details).

                  Namedefs file

                  The VoiceXML virtual subscriber SIP contact field contains the URL where the domain part resolves to the CUBE address. This is an internal SRV, and the namedefs file on the AS can be used to resolve the internal SRV to the CUBE IP.

                  In our example, the SIP contact SRV is cube.internal.local and resolves to address 10.165.196.30 port 5060 to reach the CUBE. On the AS, the /usr/local/broadworks/bw_base/conf/namedefs file is updated as follows:

                  _sip.tcp.cube.internal.local SRV 1 99 5060 10.165.196.30

                  Webex Meetings Call Type

                  Webex Meetings call processing configuration options are available to control how Meeting Call-In calls are handled. By default, Meeting Call-In calls are processed as external calls as Call-In numbers are hosted in a dedicated enterprise or service provider. External calls are normally included in the Session Admission Control session counts and flagged for charging in the CDR field chargeIndicator.

                  The following example adds the recommended configuration to process Meeting Call-Ins as internal calls such that they are excluded from charging and excluded from the Session Admission Control counts.

                  By setting Enforce NS Charge Field to true, the population of CDR field chargeIndicator is based on the configured Charge attribute of the Network Server call type.

                  AS_CLI/System/CallP/WebexMeetings/WebexCallTypes> add "Webex Meetings" WXM true true
                  
                  AS_CLI/System/CallP/WebexMeetings/WebexCallTypes> get
                        Name    NS Call Type    Enforce NS Charge Field  Process As Internal For SAC-Subscriber
                    ==========================================================================================
                    Webex Meetings       WXM               true                                true
                  

                  VoiceXML Meeting Callback Virtual Subscriber

                  Create a VoiceXML Meeting Callback Subscriber

                  A dedicated VoiceXML virtual subscriber with a special Webex Meeting Callback option (hereafter called VoiceXML meeting callback subscriber) needs to be configured on the BroadWorks Application Server (AS) to handle the Webex Meetings callback calls. Only a single instance of this subscriber can be configured on the AS.

                  To enable the feature, set the Activatable Feature 102074 to true via CLI.

                  AS_CLI/System/ActivatableFeature> activate 102074
                  ***** Warning *****:
                  This activity should only be done during a maintenance window because
                  this may cause large amounts of data to be added/modified/deleted and
                  it may take some time to execute. Features that have web page impacts
                  require that users and administrators log out and log back in.
                  Are you sure you want to continue?
                  
                  Please confirm (Yes, Y, No, N): y
                  ...Done
                  
                  AS_CLI/System/ActivatableFeature> get
                  
                        Id                                               Description  Activated  Last Modified Timestamp
                  =============================================================================================
                    102746                            BroadWorks Support for CI UUID       true
                    102074          BYO PSTN Billing support for CallBack and CallIn       true      
                    104256                          Weak Password Validation Service      false
                    104073  Add FAC Support for Call Center Agent Join-Unjoin in CDR      false
                    103542   Configurable Endpoint For Auto-Answer And Forced Answer      false
                    104255    Control password usage and behavior to ensure security      false
                  

                   

                  Since "BYO PSTN Billing support for CallBack and CallIn" feature depends on "BroadWorks Support for CI UUID" feature, before activating (102074) feature you also need to activate (102746) feature. For more details refer "CI User UUID Sync (Broadworks Support for CI UUID)" section.

                  The VoiceXML meeting callback subscriber is similar to the existing BYOPSTN VXML virtual subscriber but tagged it with a new “Webex Meeting Callback” flag. This VoiceXML meeting callback subscriber is configured with the same device profile as the existing BYOPSTN VXML virtual subscriber, as well as the Authentication service with the same credentials.

                  An example is shown below:

                  The VoiceXML meeting callback subscriber must exist on the AS hosting the meeting host user. When the AS receives the meeting callback INVITE request, it attempts to locate both the VoiceXML meeting callback user and the meeting host user on the AS during call setup. If neither of these users are found, the call is rejected.

                  Meeting Host Session

                  In the callback scenario with the X-Cisco-Meet-Info header, the Cisco BroadWorks Application Server receives a SIP INVITE request and identifies the meeting host user using the host CI User UUID parameter of the SIP X-Cisco-Meet-Info header. A call session is created on behalf of the meeting host user is created to process the call and execute the service profile of the user. Additionally, a billing record is generated on behalf of the meeting host user. The meeting ID and the site UUID information from the SIP X-Cisco-Meet-Info header are captured in the billing record.

                  An example of the SIP X-Cisco-Meet-Info header is shown below:

                  X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab
                  -04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec

                  Application Delivery Platform

                  CI User UUID Sync (Broadworks Support for CI UUID)

                  The user CI UUID is a unique identifier to identify users within the Webex environment.

                  This Webex Provisioning Sync application on the Cisco BroadWorks Application Delivery Platform (ADP) is used to synchronize, map, and store the user CI UUID into the BroadWorks infrastructure such that it can be used in various interactions with Webex and Webex for BroadWorks service.

                  Refer to the “Enable Webex Meeting Callback” on how the CI User UUID association is used by the Cisco BroadWorks Network Server and Cisco BroadWorks Application Server.

                  The following steps set up the Webex Provisioning Sync application to periodically poll and update the BroadWork Users with the CI UUID.

                  The Webex Provisioning Sync Application requires OAuth credentials with the spark-admin:broadworks_subscribers_read scope for the Cisco Identity Provider and can be obtained by raising a service request with your onboarding agent.

                  Check ‘Obtaining OAuth credentials for your Webex for Cisco BroadWorks’ section for more details to raise the service request at: https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cloudCollaboration/wx4bwks/Solution_Guide/wbxbw_b_solution-guide/wbxbw_b_SolutionGuide-PDF_chapter_01.html?bookSearch=true#Cisco_Generic_Topic.dita_0e1beabc-80ae-4e8d-b177-17108ec5daed

                  Add the token with an appropriate partner name as follows:

                  ADP_CLI/System/CommunicationUtility/DefaultSettings/ExternalAuthentication/CiscoIdentityProvider/Partners> add custBYO refreshToken
                        New Password:
                        Re-type New Password:
                        ADP_CLI/System/CommunicationUtility/DefaultSettings/ExternalAuthentication/CiscoIdentityProvider/Partners> get
                         Partner Name  Refresh Token
                  ==================================
                    FederationPartner       ********
                             custPart       ********
                              custBYO       ********
                  

                  Add the partner name associated with the OAuth token to the list of partners to be monitored by the Webex Provisioning Sync application with the ‘enabled’ flag set to ‘true’.

                  By this Webex Provisioning Sync application will start doing CI user UUID syncing on defined polling interval.

                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/MonitoredPartners> add custBYO true

                  Once the partner is included, the Webex Provisioning Sync application can now perform the association of the CI UUID to the BroadWorks users.

                  Change the connection timeout using the following commands:

                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/Controller> set requestTimeout 30000
                  ...Done
                  
                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/Controller> get
                  requestTimeout = 30000
                  
                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/Controller> cd http
                  
                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/Controller/Http> set connectionTimeout 300
                  *** Warning: BroadWorks needs to be restarted for the changes to take effect ***
                  
                  ADP_CLI/Application/WebexProvisioningSync/GeneralSetting/Controller/HTTP > get
                  connectionPoolSize = 5
                  connectionTimeout = 300
                  connectionIdleTimeOut = 300
                  maxConcurrentRequests = 10
                  maxCookieAgeInHours = 24
                  

                  This association can be done automatically or manually. The CLI manualSync command can instantly trigger the association to take place.

                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/MonitoredPartners> manualSync custBYO

                  Partners with ‘Enabled’ set to ‘true’ perform the associated on the polling interval. During the initial association, the Webex Provisioning Sync application queries the Webex Subscriber API to retrieve the data containing the CI UUID for all users hosted by the partner. The BroadWorks user’s External ID is updated with the associated CI UUID. Subsequent associations affect users added to the partner. The status command can be used to see if the synchronization is complete.

                  ADP_CLI/Applications/WebexProvisioningSync/GeneralSettings/MonitoredPartners> status
                    Partner Name         Status                 Last Sync Time
                  ============================================================
                         custBYO  synchronizing
                        custPart     monitoring  2023-01-29T15:36:43.873-05:00
                  2 entries found.
                  

                  Once the synchronization is complete, the status changes back to monitoring. Subsequent synchronization is performed on users added to the partner after the “Last Sync time”.

                  The following figure shows the CI UUID set within the External ID:

                  Network Server

                  Call Type

                  For billing and reporting purposes, it may be desirable to mark CDRs for Meetings Call-In calls. This can be accomplished using the Network Server PreCallTyping policy.

                  First, on the NS CLI under /System/CallP/CallType, add a new call type. The following example adds the new “WXM” call type:

                  NS_CLI/System/CallP/CallTypes> add WXM LOCAL true false "Webex Meetings"
                  NS_CLI/System/CallP/CallTypes> get calltype WXM    
                    CallType     Description  Category         Scope  SupportE164  Charge      
                  =======================================================================    
                    WXM          Webex Meetings  LOCAL  User Defined         true   false
                  

                  The call type can then be used in a PreCallTyping instance that is part of the BroadWorks user’s routing profile. In this example, a new PreCallTyping instance “wxm” was added under /Policy/PreCallTyping CLI context, but it could be an existing PreCallTyping instance already being used:

                  NS_CLI/Policy/PreCallTyping> add wxm true CallTypes ALL
                  
                  NS_CLI/Policy/PreCallTyping> get wxm                        
                  Policy: PreCallTyping  Instance: wxm                        
                    CallTypes:                                
                      Selection = {ALL}                                
                      From = {PCS, ALL, TRMT, LO, GNT, DP, WXM, LPS, OA, TPS, EA, FGB, POA, SV, SVCD, IN, MS, CSV, EM, SVCO, SMC, ZD, NIL, CT, TF, GAN, TO, DA, OAP}        
                    supportLCABasedNormalization = false                        
                    Enable = true 
                  

                  The next step is to add entries to the PreCallTyping instance for all the dial in numbers under the /Policy/PreCallTyping/DialPlan CLI context. For example:

                  NS_CLI/Policy/PreCallTyping/DialPlan> add wxm 1 dflt 12403332200 12403332200 exact 11 11 WXM 0 0 Webex Meetings
                  NS_CLI/Policy/PreCallTyping/DialPlan> add wxm 1 dflt_e164 12403332200 12403332200 exact 11 11 WXM 0 0 Webex Meetings
                  
                  NS_CLI/Policy/PreCallTyping/DialPlan> get wxm 1                
                  Policy: PreCallTyping  Instance: wxm  Table: DialPlan                
                  CC Dial Plan   From     To          Match Min Max Call Type Prefix Action  Call Ind  Description                  
                  ================================================================================================
                  1 dflt      12403332200 12403332200 {exact} 11 11 {WXM}     0                      Webex Weetings
                  1 dflt_e164 12403332200 12403332200 {exact} 11 11 {WXM}     0                      Webex Meetings
                  

                  The PreCallTyping instance is then added (provided it doesn’t already exist) to the applicable routing profile of the originating user as shown in the example below:

                  NS_CLI/Policy/Profile> add Profall PreCallTyping wxm
                  NS_CLI/Policy/Profile> get profile Profall
                  Profile:  Profall
                                   Policy              Instance
                     ==========================================
                               CallTyping           DefaultInst
                            CallScreening           DefaultInst
                              SubLocation           DefaultInst
                                FarEndRtg           DefaultInst
                               NearEndRtg           DefaultInst
                               UrlDialing           DefaultInst
                              MediaSrvSel           DefaultInst
                                   SIMPLE           DefaultInst
                                DstSvcRtg           DefaultInst
                        NumberPortability           DefaultInst
                               RCBasedRtg           DefaultInst
                        NetVoicePortalRtg           DefaultInst
                            PreCallTyping                   wxm    
                  

                   
                  BroadWorks originating CDR’s are only generated by calls originated from BW subscribers. PSTN originated calls from the “network” side of the AS will not generate originating CDR’s. There will be a terminating CDR for the VoiceXML virtual subscriber in either case.

                  RoutingNE

                  A RoutingNE is required on the NS under /System/Device/RoutingNE CLI context to represent the CUBE. This way, when the NS receives the INVITE from the CUBE, it will match the via header to the RoutingNE entry that is provisioned on the NS. Refer to the Cisco BroadWorks Network Server Command Line Interface Administration Guide for details on how to add a RoutingNE.

                  Below is an example of the commands to add the RoutingNE “WebexMeetings”, where the CUBE IP address = 10.165.196.30. The example also shows commands to create a new OrigRedirect and Profile instances to associate with the RoutingNE, but existing instances can also be used.

                  NS_CLI/Policy/OrigRedirect> add wxm_Inst true CallTypes ALL supportTrunkGroupLookups disable applyAccessSideRules enableRestrictive
                  
                  NS_CLI/Policy/OrigRedirect> get  wxm_Inst
                  Policy: OrigRedirect  Instance: wxm_Inst
                    Enable = true
                    CallTypes:
                      Selection = {ALL}
                      From = {PCS, ALL, TRMT, LO, GNT, DP, WXM, LPS, OA, TPS, EA, FGB, POA, SV, SVCD, IN, MS, CSV, EM, SVCO, SMC, ZD, NIL, CT, TF, GAN, TO, DA, OAP}
                    supportTrunkGroupLookups:
                      Selection = {disable}
                      From = {disable, enablePermissive, enableRestrictive}
                    applyAccessSideRules:
                      Selection = {enableRestrictive}
                      From = {disable, enablePermissive, enableRestrictive}
                  
                  NS_CLI/Policy/Profile> add wxm_routing
                  
                  NS_CLI/Policy/Profile> add wmx_routing OrigRedirect wxm_Inst
                  
                  NS_CLI/Policy/Profile> add wmx_routing SubLocation  DefaultInst
                  
                  NS_CLI/Policy/Profile> get profile wxm_routing 
                  Profile:  wxm_routing
                                   Policy              Instance
                     ==========================================
                             OrigRedirect           wxm_Inst
                              SubLocation           DefaultInst
                  
                  NS_CLI/System/Device/RoutingNE> add  WebexMeetings 1240364 1 99 wxm_routing false OnLine AccessRoutingNE
                  
                  NS_CLI/System/Device/RoutingNE/Address> add WebexMeetings 10.165.196.30 1 99 tcp
                  
                  NS_CLI/System/Device/RoutingNE> get
                  Network Element  WebexMeetings
                     Location      =  1240364
                     Static Cost   =  1
                     Static Weight =  99
                     Poll          =  false
                     OpState       =  enabled
                     State         =  OnLine
                     Profile       =  wxm_routing
                     Signaling Attributes=  AccessRoutingNE
                   
                  NS_CLI/System/Device/RoutingNE/Address> get
                  Routing NE   Address     Cost    Weight     Port    Transport Route  
                  WebexMeetings   10.165.196.30     1      99     -          tcp
                  

                  With the example configuration, the CUBE sends to the NS an INVITE that is similar to the following (important fields in bold):

                  INVITE sip:+19991111111@domain.com:5060 SIP/2.0
                  Via:SIP/2.0/TCP 10.10.10.10:5060;branch=z9hG4bK7C7B9EB
                  Remote-Party-ID:" BroadWorks
                  "<sip:886222222222@domain.com>;screen=no;party=calling;privacy=off
                  From:" BroadWorks "<sip:+12403333333@10.20.20.20>;tag=958BDDF4-1AB
                  To:<sip:+19991111111@domain.com>
                  Date:Thu, 03 Nov 2022 12:39:58 GMT
                  Call-ID:75D3B642-5AAB11ED-AC82BA3C-276254A1@10.20.20.30
                  Supported:100rel,timer,resource-priority,replaces,sdp-anat
                  Min-SE:14400
                  Cisco-Guid: 1976459008-1521160685-2893855292-0660755617
                  X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec"
                  X-Cisco-Org-Id:82e2eb35-1610-44e7-9b20-ab607e026270
                  User-Agent: Cisco-SIPGateway/IOS-16.12.2s
                  Timestamp: 1667479198
                  Session-ID:
                  e13cc71f24ae400669d5247d8306ac23;remote=00000000000000000000000000000000
                  Allow:INVITE,OPTIONS,BYE,CANCEL,ACK,PRACK,UPDATE,REFER,SUBSCRIBE,NOTIFY,INFO,REGSTER
                  CSeq:101 INVITE
                  Contact:<sip:+12403333333@10.20.20.20:5060;transport=tcp>
                  Expires:180
                  Allow-Events:telephone-event
                  Max-Forwards:68
                  

                  Where:

                  • INVITE Request URI contains the callback number

                  • Via header: contains the IP address of the CUBE which will be used to select the RoutingNE profile.

                  • X-Cisco-Info-Meet header: used to identify hostCIUserUuid, meetingid & siteUUID.

                  Upon receiving the INVITE, the NS uses the Via header to match with the RoutingNE “WebexMeetings”. This will in turn select the “wxm_routing” routing profile which contains the “wxm_Inst” instance of the OrigRedirect.

                  The NS OrigRedirect policy will then match the X-CISCO-MEET-INFO header:

                  X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec

                  with the Line Port configured on the VoiceXML virtual subscriber and send a 302 redirect to the AS pair hosting that subscriber. The 302 message is similar to the following:

                  SIP/2.0 302 Moved temporarily
                  Via:SIP/2.0/TCP 10.165.196.30:5060;branch=z9hG4bK5452684
                  From:" Webex "<sip:+12403332200@10.165.196.30>;tag=8EEAA586-1675
                  To:<sip:+14519615001@10.155.6.172>;tag=394411970-1602687588994
                  Call-ID:ABC5CCA2-D6411EB-8AD6D92D-EE20F768@10.165.196.30
                  CSeq:101 INVITE
                  Contact:<sip:+14519615001@hs2-bwks-v-as01-alpha.bwlab.org:5060;user=phone> ;q=0.5, <sip:+14519615001@hs2-bwks-v-as02-alpha.bwlab.org:5060;user=phone>;q=0.25
                  Content-Length:0
                  

                  Alias

                  The domain in the INVITE URI (in the example, it’s bw.myenterprise.com) sent by the CUBE to the NS has to be recognized by the NS. This can be done by adding the domain on the NS_CLI/System/Alias context, for example:

                  NS_CLI/System/Alias> add bw.myenterprise.com

                  The command to configure the INVITE URI domain on the CUBE can be found in the in the next section, under dial-peer/session target, for example:

                  dial-peer voice 23401 voip
                  session target dns:bw.myenterprise.com

                  HostingNE

                  To support Webex Meetings call processing configuration options for billing and Session Admission Control, the Application Server’s Hosting NE signaling attributes CallTypeInfoRequired and RequiresChargeIndication must be enabled on the NS_CLI/System/Device/HostingNE context. For example:

                  NS_CLI/System/Device/HostingNE> set broadworksASHostNe signaling E164Compliant,
                   CallTypeInfoRequired, SourceId, RequiresNetworkIndication RequiresChargeIndication;

                  Enable Webex Meeting Callback

                  In the callback scenario with the SIP X-Cisco-Meet-Info header, the CUBE sends the call to Network Server for originator redirect to the AS pair. The AS pair is determined based on the enableWebexMeetingHoostLookup system parameter.

                  NS_CLI/System/CallP/Options> get
                    accessSideRoutingNeDeterminedViaSignaling = false
                    disableNdcValidationForCalledNumbers = true
                    forceRoutingNEProfile = false
                    skipPrivatePoliciesOnEmergency = true
                    maxReturnedContacts = 10
                    enableWebexMeetingHostLookup = true
                  

                  When enableWebexMeetingHoostLookup system paramter is set to true, the meeting host user CI UUID in the X-Cisco-Meet-Info header is used to identify the AS pair hosting the meeting host user.

                  INVITE sip:+19991111111@domain.com:5060 SIP/2.0
                  Via:SIP/2.0/TCP 10.10.10.10:5060;branch=z9hG4bK7C7B9EB
                  Remote-Party-ID:" BroadWorks "<sip:886222222222@domain.com>;screen=no;party=calling;privacy=off
                  From:" BroadWorks "<sip:+12403333333@10.20.20.20>;tag=958BDDF4-1AB
                  To:<sip:+19991111111@domain.com>
                  Date:Thu, 03 Nov 2022 12:39:58 GMT
                  Call-ID:75D3B642-5AAB11ED-AC82BA3C-276254A1@10.20.20.30
                  Supported:100rel,timer,resource-priority,replaces,sdp-anat
                  Min-SE:14400
                  Cisco-Guid: 1976459008-1521160685-2893855292-0660755617
                  X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab-04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec"
                  X-Cisco-Org-Id:82e2eb35-1610-44e7-9b20-ab607e026270
                  User-Agent: Cisco-SIPGateway/IOS-16.12.2s
                  Timestamp: 1667479198
                  Session-ID: e13cc71f24ae400669d5247d8306ac23;remote=00000000000000000000000000000000
                  Allow:INVITE,OPTIONS,BYE,CANCEL,ACK,PRACK,UPDATE,REFER,SUBSCRIBE,NOTIFY,INFO,REGISTER
                  CSeq:101 INVITE
                  Contact:<sip:+12403333333@10.20.20.20:5060;transport=tcp>
                  Expires:180
                  Allow-Events:telephone-event
                  Max-Forwards:68
                  

                  Step 10 Provision Partner CUBE

                  This section provides a validated configuration for how to deploy Cisco Unified Border Element (CUBE) as the Session Border Controller (SBC) for the Bring Your Own PSTN Solution.

                  This section focuses on the CUBE configurations that are necessary to interwork with the example Webex for Cisco BroadWorks configuration shown in the previous section. For a more general discussion of initial CUBE deployment and configuration, refer to the following guides: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/voi-cube-overview.html

                  https://help.webex.com/en-us/b6vrdc/Cisco-Webex-Edge-Audio-for-CUBE-Customer-Configuration-Guide

                  Deploy Your Own SBC Option

                  If you don’t want to deploy CUBE, you have the option to deploy your own SBC. However, note that this document does not provide a validated configuration for SBCs other than CUBE.

                  If you deploy your own SBC, you can follow the high-level CUBE configuration requirements (for example, assignments such as the domain, public and private interfaces, and gateways) to guide your configuration. However, refer to your SBC documentation for detailed command line help as the actual commands for your own SBC will likely differ from CUBE.


                   

                  Unless specified otherwise, the remaining configuration requirements in Step 10 apply no matter which SBC you deploy. However, the command line examples are for CUBE only, unless specified that the example applies for other SBCs. For other SBCs, refer to your SBC documentation for configuration commands.

                  Initial Configuration

                  To configure CUBE, the privileged EXEC mode must be enabled. If prompted, enter the password.

                  enable

                  To enter global configuration mode:

                  configure terminal

                  Set the domain:

                  ip domain name myenterprise.com

                  Set the Maximum Segment Size (MSS):

                  ip tcp mss 1360

                  Networking Configuration

                  Define the public and private interfaces. In our CUBE example:

                  ------- Private side -------
                  interface GigabitEthernet1
                   description Interface facing BC
                   ip address <CUBE PRIV IP> <SUBNET MASK>
                   negotiation auto
                   no mop enabled
                   no mop sysid
                  !
                  ------- Public side -------
                  interface GigabitEthernet2
                   description Interface facing WEBEX
                   ip address <CUBE PUB IP> <SUBNET MASK>
                  negotiation auto
                   no mop enabled
                   no mop sysid
                  !
                  

                  Configure the gateways for IP Routing for the public and private sides:

                  ip route 0.0.0.0 <PUB SUBNET MASK> <CUBE PUB GW IP>
                  ip route 10.0.0.0 <PRIV SUBNET MASK> <CUBE PRIV GW IP>
                  

                  Enable SSH:

                  ip ssh logging events
                  ip ssh version 2
                  !
                  username admin privilege 15 password <password>
                  

                   

                  CUBE (or your own SBC) must be inside a DMZ with properly configured firewall rules. See section Ports used by Webex for the list of ports to open on the external firewall

                  Configure SRV records for callback calls sent from CUBE (or your SBC) to the BroadWorks Network Servers. For example, the SRV for bw.myenterprise.com:

                  ip host _sip._tcp.bw.myenterprise.com srv 1 50 5060 ns01.myenterprise.com
                  ip host _sip._tcp.bw.myenterprise.com srv 1 50 5060 ns02.myenterprise.com
                  ip host ns01.myenterprise.com <NS01 IP>
                  ip host ns02.myenterprise.com <NS02 IP>
                  

                  Configure the DNS server:

                  ip name-server <DNS_IP_address>

                   

                  An alternative DNS option is to configure internal DNS where the internal DNS reaches out to a parent DNS server if the internal lookup fails.

                  Call Processing Configuration

                  General

                  Configure the CUBE (or your SBC) with all IP addresses that need to access the VoIP service. This includes:

                  • Private side SIP signaling addresses for the BroadWorks AS, NS and MS servers.

                  • Public side addresses for Webex Edge for Audio infrastructure.

                  See below for an example CUBE configuration:

                  voice service voip
                   ip address trusted list
                    ------- IPs on private side (needs to include all BroadWorks AS, NS and MS signaling addresses)  -------
                    ipv4 <NS01 IP>
                    ipv4 <NS02 IP>
                    ipv4 <AS01 IP>
                    ipv4 <AS02 IP>
                    ipv4 <MS01 IP>
                    ------- IPs on public side (These are the public addresses for the Webex audio infrastructure. The below range is an example only.) -------
                    ipv4 64.68.96.0 255.255.224.0  
                    ipv4 66.114.160.0 255.255.240.0
                    ipv4 66.163.32.0 255.255.224.0
                  

                   
                  The above IP address range is an example. For the current list of public IP addresses for the Webex audio infrastructure, go to:

                  How Do I Allow Webex Meetings Traffic on My Network?—The IP Address range for most clusters appears under List of IP address ranges used by Cisco Webex Meeting Services. One exception is for China clusters, for which the range appears at the below link:

                  Network Requirements for Cisco Webex China Cluster

                  The default timer for the CUBE to establish a TCP connection before it route advances is 20 seconds. To change it:

                  ip tcp synwait-time <5-300 (seconds)>

                  On BroadWorks side, the default timer for the Application Server to time out on an unresponsive access device is 6 seconds. To change it:

                  AS_CLI/System/CallP/AccessRouting> set terminationAttemptTimeoutSeconds <1-15 (seconds)>

                  The public and private side interfaces for RTP traffic on CUBE (or your own SBC) need to be opened. See below for the CUBE example:

                  voice service voip
                   rtcp all-pass-through
                   media disable-detailed-stats
                    ------- CUBE public IP + port range -------
                   media-address range <CUBE PUB IP> <CUBE PUB IP> port-range 10200-28000
                    ------- CUBE private IP + port range -------
                   media-address range <CUBE PRIV IP> <CUBE PRIV IP> port-range 10200-28000
                  

                  Where:

                  • <CUBE PUB IP> is the public IP address of the CUBE
                  • <CUBE PRIV IP> is the private IP address of the CUBE
                  • Port-range: in the example, port range from 10200 to 28000

                  The CUBE supports the following TLS cipher suites (during call-in, CUBE offers these in the TLS Handshake’s Client Hello):

                  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
                  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
                  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
                  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
                  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
                  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
                  • TLS_RSA_WITH_AES_128_CBC_SHA
                  • TLS_EMPTY_RENEGOTIATION_INFO_SCSV

                  Other general settings to configure (see below for sample CUBE configurations):

                  aaa new-model
                  aaa authentication login default local
                  aaa authorization exec default local
                  !
                  ip scp server enable
                  !
                   voice service voip
                   address-hiding
                   allow-connections sip to sip
                   no supplementary-service sip moved-temporarily
                   call-quality
                    max-dropout 2
                    max-reorder 2
                   sip  
                    contact-passing
                  

                  Uri’s for inbound and outbound dialing must be defined for later use in dial-peers:

                  voice class uri INEdgeAudio sip
                   pattern x-cisco-webex-service=audio
                  !
                  voice class uri OUTEdgeAudio sip
                   host cube.internal.local
                  

                  Webex Edge Audio supports G722, G711ulaw, and G711alaw codecs. The following voice class code must be defined for later use in dial peers:

                  voice class codec 3
                   codec preference 1 g722-64
                   codec preference 2 g711ulaw
                   codec preference 3 g711alaw
                  

                  Webex Edge Audio uses SRTP. The voice class SRTP-crypto assigns the preferred SRTP crypto suite to use for Edge Audio. Configure the following crypto suites in order. The voice class srtp-crypto configuration must be applied to the dial-peers used for the connection with Edge Audio.

                  voice class srtp-crypto 234
                   crypto 1 AEAD_AES_256_GCM
                   crypto 2 AEAD_AES_128_GCM
                   crypto 3 AES_CM_128_HMAC_SHA1_80
                   crypto 4 AES_CM_128_HMAC_SHA1_32
                  

                  Preconfigure a primary key to be able to set a password for authentication

                  key config-key password-encrypt Password123 authentication username <username>
                  password encryption aes
                  

                  Enter the SIP authentication credentials that was provisioned for the VoiceXML virtual subscriber on the AS using the following command. For callback scenarios, these credentials will be used when AS challenges the INVITE that the CUBE (or your own SBC) sends to the AS.

                  sip-ua
                   ------- to enable authentication -------
                   authentication username <username> password 0 <password>
                  

                  Once the authentication is configured, the password will be obfuscated when viewing with the “show running-config” command

                  sip-ua
                   ------- to enable authentication -------
                   authentication username <username> password 6 [GF]XXXXX[YYYYYY\ZZZZZ]\
                  

                  The following global SIP configuration must also be done:

                  ------- Max INVITE retries -------
                   retry invite 3
                   ------- By default, use TLS -------
                   transport tcp tls v1.2
                   connection-reuse
                   ------- What trustpoint to use when mTLS is challenged -------
                   crypto signaling default trustpoint <trustpoint> 
                  

                  Translation Profiles

                  The SIP message translation profile 2340 is used for Meeting call-in calls. It should have an entry to modify the SIP messages incoming from BroadWorks before sending out to Edge Audio, as shown in the example rule 11.

                  ------- BroadWorks to Webex -------
                  voice class sip-profiles 2340
                   rule 1 request INVITE sip-header SIP-Req-URI modify "sips:" "sip:" 
                   rule 2 request INVITE sip-header To modify "sips:" "sip:" 
                   rule 3 request INVITE sip-header From modify "sips:" sip:
                   rule 4 request INVITE sip-header Remote-Party-ID modify "sips:" "sip:"  
                   rule 5 request INVITE sip-header P-Asserted-Identity modify "sips:" "sip:" 
                   rule 6 request ACK sip-header From modify "sips:" "sip:" 
                   rule 7 request REINVITE sip-header P-Asserted-Identity modify "sips:" "sip:" 
                   rule 8 request REINVITE sip-header From modify "sips:" "sip:" 
                   rule 9 request REINVITE sip-header Contact modify "sips:(.*)>" "sip:\1;transport=tls>" 
                   rule 10 request INVITE sip-header Contact modify "sips:" "sip:" 
                   rule 11 request INVITE sip-header SIP-Req-URI modify "cube.internal.local" "ecccspx.amer.pub.webex.com"
                  

                  The above rule 11 maps the incoming Request Uri from BroadWorks, which has the Contact value of the CUBE virtual subscriber device profile (value of the Contact field in the VXML_deviceProf Device Profile in our example):

                  88631321777971704941@cube.internal.local;x-cisco-site-
                  uuid=abbd70f6c519fb1ee053ad06fc0a038b;transport=tcp
                  To the appropriate Webex Edge Audio Call Routing Domain:
                  88631321777971704941@ecccspx.amer.pub.webex.com;x-cisco-site-
                  uuid=abbd70f6c519fb1ee053ad06fc0a038b;transport=tcp

                  Note that when CUBE (or your own SBC) is behind a static NAT, additional configuration to the sip-profile 2340 is required. Refer to the following link for more information:

                  https://help.webex.com/en-us/b6vrdc/Cisco-Webex-Edge-Audio-for-CUBE-Customer-Configuration-Guide

                   
                  If you deploy your own SBC, you will need to configure similar rules on your own SBC.

                  In order to forward 486 messages sent by the AS back to the Webex Edge Audio, the following configuration is required on CUBE (for your own SBC, refer to your SBC documentation for help)

                  voice service voip
                   no notify redirect ip2ip
                   sip
                    sip-profiles inbound
                  !
                  voice class sip-profiles 1
                   response 486 sip-header Reason modify "7" "" 
                   response 486 sip-header SIP-StatusLine modify "486.*" "600 Busy Everywhere"
                  

                  If other 4xx messages need to be forwarded back to the Webex Edge Audio, follow the same example above.

                  Dial Peers

                  A voice class tenant must be defined on CUBE (or your own SBC) for use in the dial peers later on, which satisfies the following criteria:

                  • There is no payload interworking that is needed for RTP-NTE DTMF packets, so configure asymmetric payload full.
                  • Edge audio doesn’t support caller ID updates, so the "no update-callerid" value must be configured.
                  • Webex Edge Audio call routing is based on URIs. The call-route URI must be enabled to match dial-peers based on URIs.

                  voice class tenant 234
                    asymmetric payload full
                    no update-callerid
                    Header-passing
                    no pass-thru content custom-sdp
                    call-route url
                  

                  The following dial peers are configured to allow the CUBE to process calls between BroadWorks and Webex Edge Audio. Configure the following on CUBE (a similar configuration would need to be configured on your own SBC):

                  dial-peer voice 23411 voip
                   description External Webex edge audio entry or exit dial-peer
                   session protocol sipv2
                   session target dns:ecccspx.amer.pub.webex.com
                   session transport tcp tls
                   destination uri OUTEdgeAudio
                   incoming uri request INEdgeAudio
                   voice-class codec 3 offer-all
                   voice-class sip url sips
                   voice-class sip profiles 2340
                   voice-class sip tenant 234
                   voice-class sip srtp-crypto 234
                   voice-class sip bind control source-interface GigabitEthernet2
                   voice-class sip bind media source-interface GigabitEthernet2
                   voice-class sip requri-passing
                   voice-class sip audio forced
                   dtmf-relay rtp-nte
                   srtp
                  !
                  dial-peer voice 23401 voip
                   description Internal mix mode Webex edge audio entry or exit dial-peer
                   session protocol sipv2
                   ---- using DNS SRV (preferred) - must match srv record configured above (_sip._tcp.bw.myenterprise.com) ----
                   session target dns:bw.myenterprise.com
                   session transport tcp
                   destination uri INEdgeAudio
                   incoming uri request OUTEdgeAudio
                   voice-class codec 3  
                   voice-class sip url sip
                   voice-class sip profiles 2341
                   voice-class sip profiles 1 inbound
                   voice-class sip tenant 234
                   voice-class sip bind control source-interface GigabitEthernet1
                   voice-class sip bind media source-interface GigabitEthernet1 dtmf-relay rtp-nte
                  !
                  

                  CUBE Call flows

                  With the configuration done above, examples of the incoming/outgoing call flow scenarios on the CUBE are described below. The color coding on a specific step relates it to the same color entries in the dial peers above.


                   
                  If you are deploying your own SBC, refer to your SBC documentation for details on call flows with your SBC.

                  For a Meeting Call-In scenario from BroadWorks to Webex:

                  • An incoming INVITE is received from BroadWorks on the internal interface with:
                    INVITE sip: 88631321777971704941@cube.internal.local;transport=tcp;x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b SIP/2.0
                    To:"VXML Virtual"<sip: 88631321777971704941@ecccspx.amer.pub.webex.com;x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b>
                    
                  • The incoming dial peer profile 23401 is selected based on the host in the incoming request URI (“cube.internal.local”) matching the “incoming uri request OUTEdgeAudio” configuration.
                  • The outgoing dial peer 23411 is selected based on the host in the request URI (“cube.internal.local”) matching the “destination uri OUTEdgeAudio” configuration.
                  • An outgoing INVITE is sent on the external interface with the host in the request URI changed from “cube.internal.local” to “ecccspx.amer.pub.webex.com” using the “voice-class sip profiles 2340” message translation profile specified in the dial peer:
                    INVITE sip: 88631321777971704941@ecccspx.amer.pub.webex.com;transport=tcp;x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b SIP/2.0
                    To: " VXML Virtual" <sip: 88631321777971704941@ecccspx.amer.pub.webex.com;x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b>
                    

                  For a Meeting Callback scenario from Webex to BroadWorks

                  • An incoming INVITE is received from Webex on the CUBE external interface with:
                    INVITE sip:+14519615001@cube.us.example.com;transport=tls;x-cisco-site-uuid=abbd70f6c519fb1ee053ad06fc0a038b;x-cisco-webex-service=audio SIP/2.0 
                    To: sip:+14519615001@cube.us.example.com;type=carrier_sbc 
                    X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec
                    
                  • The incoming dial peer 23411 is selected based on the pattern “x-cisco-webex-service=audio” being present in the incoming request URI based on the “incoming uri request INEdgeAudio” configuration.
                  • Two outgoing dial peers are chosen based on the pattern “x-cisco-webex-service=audio” being present in the request URI based on the “destination uri INEdgeAudio“ configuration.

                    - Dial Peer 302

                    - Dial Peer 23401

                  • An outgoing INVITE is sent to the Network Servers (SRV lookup based on “session target dns:bw.myenterprise.com entry” in the dial peer) on the internal interface
                    INVITE sip:+14519615001@10.155.6.172:5060 SIP/2.0 
                    X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec"
                    From: " Webex " ;tag=B91821B7-561
                    
                  • The Network Server returns contacts for the AS pair hosting the CUBE virtual subscriber:
                    SIP/2.0 302 Moved temporarily
                    Via:SIP/2.0/TCP 10.165.196.30:5060;branch=z9hG4bK880BD
                    From:" Webex "<sip:+12404540887@10.165.196.30>;tag=B91821B7-561
                    To:<sip:+14519615001@10.155.6.172>;tag=1829261807-1603395221529
                    Call-ID:3C88DF6A-13D411EB-8EE3D92D-EE20F768@10.165.196.30
                    CSeq:101 INVITE
                    Contact:<sip:+14519615001@hs2-bwks-v-as01-alpha.bwlab.org:5060;user=phone;transport=tcp>;q=0.5,<sip:+14519615001@hs2-bwks-v-as02-alpha.bwlab.org:5060;user=phone;transport=tcp>;q=0.25
                    Content-Length:0
                    
                  • The CUBE routes the call to the active AS based on the returned contact in the 302 message:
                    INVITE sip:+14519615001@hs2-bwks-v-as01-
                    alpha.bwlab.org:5060;user=phone;transport=tcp SIP/2.0
                    Via: SIP/2.0/TCP 10.165.196.30:5060;branch=z9hG4bK8812341
                    X-Cisco-Meet-Info:hostCIUserUuid="52f4c6cb-c6a3-4283-a1ab04cc8828b7c1";meetingid="26551128462";siteUUID="ec6659987f473332e0531b04fc0acaec"
                    From: " Webex " <sip:+12404540887@10.165.196.30>;tag=B91821C8-1AF5
                    To: <sip:+14519615001@10.155.6.172>
                    

                  mTLS Configuration

                  The following configuration steps must be done to allow mTLS connections between CUBE (or your own SBC) and Webex Edge Audio.


                   
                  It’s mandatory that you configure mTLS between CUBE (or your own SBC) and Webex Edge Audio.

                  Wildcard Certificate Support

                  Wildcard signed certificates use a generic subject-name (e.g., *.us.example.com) that corresponds to the domain for CUBE or your own SBC. Wildcard certificates are supported for multi-cluster CUBE or SBC deployments but are not supported for single node CUBE or SBC deployments.

                  Trustpool

                  During the TLS handshake, when the Webex Edge Audio sends its certificate, the CUBE will validate it against the list of certificates accepted in the trustpool.

                  The trustpool bundle has to be updated with the Cisco Root CA by downloading the latest “Cisco Trusted Core Root Bundle” from http://www.cisco.com/security/pki/ using the command:

                  crypto pki trustpool import clean url <url>

                  The certificates sent by Webex Edge Audio are signed by IdenTrust. Make sure that the “IdenTrust Commercial Root CA” certificate is installed. See this link for more details:

                  https://help.webex.com/en-us/WBX9000008850/What-Root-Certificate-Authorities-are-Supported-for-Calls-to-Cisco-Webex-Audio-and-Video-Platforms


                   
                  If you are using your own SBC, and are unable to complete the import, you can convert the bundle to .pem format using open-source tools, such as OpenSSL. For example, you could use hydrantID certificates with the following command:
                  openssl x509 -inform der -in certificate.cer -out certificate.pem

                  Trustpoint

                  Edge Audio requires your CUBE to offer signed certificates from trusted CA certificate authorities for Mutual TLS (mTLS) connections. Use the following link to get to a list of certificate authorities that Cisco trusts. Certificates that are signed by authorities in this list are considered valid and the connection will be allowed: https://help.webex.com/en-us/WBX9000008850/What-Root-Certificate-Authorities-are-Supported-for-Calls-to-Cisco-Webex-Audio-and-Video-Platforms

                  Single Node CUBE

                  Single node means that the CUBE (or your own SBC) will import a certificate with the subject-name unique to its FQDN, which means that no other CUBE would be able to import it (in other words, NOT a wildcard certificate).

                  • To create the CSR (Certificate Signing Request) for CUBE:

                    - create keypair (this keypair will be linked to the trustpoint)

                    CUBE(config)# crypto key generate rsa general-keys label <key label> exportable

                    • general-keys - Specifies that the general-purpose key pair should be generated.
                    • label <key-label> - (Optional) Name that is used for an RSA key pair when they are being exported. If a key label is not specified, the fully qualified domain name (FQDN) of the router is used.
                    • exportable - (Optional) Specifies that the RSA key pair can be exported to another Cisco device, such as a router.

                    - create trustpoint (A trustpoint contains the certificate that you want to bind on the CUBE. When the CUBE receives a certificate request, it will respond with the trustpoint’s certificate attached)

                    CUBE(config)#crypto pki trustpoint <trustpoint>
                    CUBE(ca-trustpoint)#
                        crl optional
                        enrollment terminal pem
                        fqdn <fqdn>
                        subject-name CN=<fqdn>
                        rsakeypair <key label>
                    

                  • crl - A certificate revocation list (CRL) is a list of revoked certificates. The CRL is created and digitally signed by the CA that originally issued the certificates. The CRL contains dates for when each certificate was issued and when it expires.

                    enrollment terminal pem - Adds privacy-enhanced mail (PEM) boundaries to the certificate request (manual copy-paste from BEGIN CERTIFICATE REQUEST to END CERTIFICATE REQUEST)

                    fqdn – Fully qualified domain name of the CUBE

                    subject-name CN=<fqdn> - the subject name to sign

                    rsakeypair <key label> - the keypair generated from previous step

                    (reference: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_conn_pki/configuration/15-mt/sec-pki-15-mt-book/sec-cert-enroll-pki.html)

                    - generate CSR:

                    CUBE(config)#crypto pki enroll <trustpoint>
                    % Start certificate enrollment ..
                    ...
                    % Include the router serial number in the subject name? [yes/no]: no
                    % Include an IP address in the subject name? [no]: no
                    Display Certificate Request to terminal? [yes/no]: yes
                     
                    Certificate Request follows:
                     
                    -----BEGIN CERTIFICATE REQUEST-----
                    ...
                    -----END CERTIFICATE REQUEST-----
                     
                    ---End - This line not part of the certificate request---
                                           
                    Redisplay enrollment request? [yes/no]: no
                    
                  • Send the CSR (from BEGIN CERTIFICATE REQUEST to END CERTIFICATE REQUEST) to CA (Certificate Authority)
                  • CA will generate a signed certificate

                    - Depending on the CA, they will provide the root certificate (e.g. DigiCertCA.crt) and the requested certificate (e.g. cube.crt)

                  • Load the CA certificate

                    - First, authenticate the trustpoint with the root’s certificate

                  • CUBE(config)#crypto pki authenticate <trustpoint>
                    Enter the base 64 encoded CA certificate.
                    End with a blank line or the word "quit" on a line by itself
                     
                    -----BEGIN CERTIFICATE-----
                    <ENTER THE ROOT CERT>
                    -----END CERTIFICATE-----
                     
                    Certificate has the following attributes:
                    Fingerprint: 40065311 FDB33E88 0A6F7DD1 4E229187
                    % Do you accept this certificate? [yes/no]: yes
                    Trustpoint CA certificate accepted.
                    % Certificate successfully imported
                    

                    - Then, import the CUBE’s certificate on the trustpoint CUBE

                    CUBE(config)# crypto ca import <trustpoint> certificate
                    % The fully-qualified domain name in the certificate will be: ...
                     
                    Enter the base 64 encoded certificate.
                    End with a blank line or the word "quit" on a line by itself
                     
                    -----BEGIN CERTIFICATE-----
                    <ENTER THE FQDN CERT>
                    -----END CERTIFICATE-----
                     
                    % Router Certificate successfully imported
                    


                   
                  If you are deploying your own SBC, refer to your SBC documentation for details on how to create the CSR.

                  Multi Node CUBE Cluster (Using Alternate Names in Certificate) - NOT Supported

                  Multi node means that the CUBE will be able to import the same certificate for more than one CUBE deployment. Using the subject alternate name to generate the CSR is currently not supported: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCud90920/?rfs=iqvred

                  Multi Node CUBE Cluster (Using wildcard signed certificate as pkcs12 format)

                  Multi node using a wildcard signed certificate means that the subject-name is generic (e.g., *.us.example.com) and it corresponds to the CUBE’s domain (or your SBC domain).

                  • Assuming you have a wildcard certificate ready, get the public (.crt) and private key (.key) files ready.
                  • Using OpenSSL, create a bundled PKCS12 format (.pfx) file including he .crt and .key file: (use cygwin on Windows) - reference: https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/
                     openssl pkcs12 -export -out <pfxfilename>.pfx -inkey <privatekeyfile>.key -in <certfile>.crt
                  • Transfer the .pfx file in the CUBE:bootflash: (scp from Linux server to CUBE)
                    scp <pfxfilename>.pfx <user>@<CUBEIP>:bootflash:<pfxfilename>.pfx
                  • Create a trustpoint and import the pkcs12 file:
                    CUBE# conf t
                    CUBE(config)#
                    CUBE(config)# crypto pki trustpoint <trustpoint>
                    CUBE(ca-trustpoint)# revocation-check crl
                    CUBE(ca-trustpoint)# exit
                    CUBE(config)# crypto pki import <trustpoint> pkcs12 bootflash:<pfxfilename>.pfx password <password>
                    

                  Validate the CUBE Certificate Configuration

                  Verify that the entire chain is included in the certificate. The following example shows validation commands for CUBE. If you are deploying your own SBC, use the commands that apply to your SBC.

                  CUBE(config)#crypto pki certificate validate <trustpoint>
                      Chain has 2 certificates
                      Certificate chain for <trustpoint> is valid
                   
                   
                  CUBE#show crypto pki trustpoints status
                      ...
                    Trustpoint <trustpoint>:
                      Issuing CA certificate configured:
                      Subject Name:
                       cn=HydrantID SSL ICA G2,o=HydrantID (Avalanche Cloud Corporation),c=US
                      Fingerprint MD5: 1135E326 56E5AADF 53A4DD32 C8D5590F 
                      Fingerprint SHA1: AC4A728B 4DFC3560 1FA34B92 2422A42C 253F756C 
                    Router General Purpose certificate configured:
                      Subject Name:
                       cn=*.us.example.com,ou=Webex,o=Cisco Systems, Inc.,l=San Jose,st=California,c=US
                      Fingerprint MD5: 756E4C83 CF36311A 7839FA51 7FA7ABA0 
                      Fingerprint SHA1: 8268817F 79EF91E0 3BA976A1 5C9D97F3 E834EB54 
                    State:
                      Keys generated ............. Yes (General Purpose, non-exportable)
                      Issuing CA authenticated ....... Yes
                      Certificate request(s) ..... Yes
                  

                  Set SIP signaling to use trustpoint

                  Use the following command to provision the SIP UA with the CUBE trustpoint. Following is an example for CUBE. If you are deploying your own SBC, refer to your SBC documentation for command help.

                  CUBE(config)#sip-ua CUBE(config-sip-ua)#crypto signaling default trustpoint <trustpoint>

                  CUBE Logs

                  To see enabled debug filters

                  CUBE# show debug

                  To set debug filters (examples)

                  CUBE# debug ccsip messages
                  CUBE# debug ccsip transport
                  CUBE# debug ccsip error
                  CUBE# debug ccsip info
                  CUBE# debug voip dialpeer inout
                  CUBE# debug voip ccapi inout
                  CUBE# debug voip application
                  CUBE# debug ip tcp transaction
                  

                  To unset debug filters (example)

                  CUBE# no debug ccsip messages

                  To clear and check log buffer

                  CUBE# clear log
                  >>> make test call <<<
                  CUBE# show log
                  

                   

                  If you are not deploying CUBE, refer to the documentation for your own SBC for details on how to use logs.

                  Other useful commands

                  To check current config

                  CUBE# show running-config (or just CUBE# show run)

                  To save config to ROM which will be used when booted

                  CUBE# write

                  Step 11 BYoPSTN Certification

                  After the configuration and provisioning of the BYoPSTN solution is completed, the Partner is required to run through a set of acceptance test cases in order to certify their solution. This is a required step for the Partner BYoPSTN to be approved and enabled.

                  The acceptance test cases are outlined in the document Bring Your Own PSTN Acceptance Procedure Webex For Cisco BroadWorks at: https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cloudCollaboration/wx4bwks/BYoPSTN/BYoPSTN_Acceptance.pdf .

                  The partner should provide the results of the successfully executed acceptance tests to the onboarding and certification teams.

                  Questions, issues and results from the execution of the acceptance test cases should be reported and shared in the Webex space assigned for onboarding the Partner.

                  Apply Updates to an In-Service Phone Number Group/Callback DNS SRV Group

                  Once non-test customers are assigned to a Customer Template using Partner provided call-in numbers, the following meeting join options are available to those users:

                  • Meeting invites include one or more default phone numbers from the assign Phone Number Group

                  • Webex App displays one or more default phone numbers from the assign Phone Number Group as a meeting join option

                  • Webex Meeting site UI displays one or more default phone numbers from the assign Phone Number Group as a meeting join option

                  • If callback has been enabled on the Customer Template, Webex Meeting provides the ‘Call me at’ option where the callback request is routed to one of the records specified in the assigned DNS SRV Callback Group

                  A change to meeting join options for a Customer Template or a change to an assigned Phone Number Group or a change to a Callback DNS SRV Group can affect the above meeting join options. These changes do not apply to existing customers, but newly provisioned customers will see these changes reflected immediately for their Standard and Premium package meeting sites. Therefore, it is highly recommended that any such change is verified using a seed solution organization before being applied to existing Customer Templates, Phone Number Groups or Callback DNS SRV Groups (if Callback DNS SRV Groups are deployed).

                  The following steps should be followed when making an update to the meeting join options for a customer template and/or applying updates to Phone Number Groups or Callback DNS SRV Groups.

                  Please note if the Customer Templates, Phone Number Groups or Callback DNS SRV Groups are in use by test BroadWorks Service Providers and/or test BroadWorks Enterprises, this procedure is optional. It may be more appropriate to simply delete the test BroadWorks Service Providers and/or test BroadWorks Enterprises organizations and re-provision them using the updated Customer Templates, Phone Number Groups or Callback DNS SRV Groups.

                  Update Phone Number Group only:

                  1. Create a new temporary Phone Number Group with the required updates.

                  2. Create a new temporary Customer Template that uses the new Phone Number Group. If an existing Phone Number Group is being used along with the group, assign that to the template.
                  3. Create a seed solution organization by provisioning a subscriber from a test BroadWorks Service Provider or test BroadWorks Enterprise with a Standard package using the new Customer Template. Please note that this is a secondary seed solution organization, no update to the meeting siteUUID configured on BroadWorks is required.
                  4. Download the BroadWorks Configuration (BYoPSTN) JSON file, it contains the phone number to access code mapping for the new phone numbers in the Phone Number Group.
                  5. Determine the Webex Edge Audio DNS SRV domain for the seed solution organization Standard package meeting site. It should be unchanged from the value previously determined for the original Phone Number Group.
                  6. Apply the configuration updates to BroadWorks using the BroadWorks Configuration (BYoPSTN) JSON file.
                  7. Verify the configuration by scheduling meetings using the seed organization Standard package site and joining the meeting using the call-in phone numbers.
                  8. Apply the update to the original Phone Number Group. The change is now in-service for non-test customers.
                  9. The seed solution organization, the temporary Phone Number Group, and Customer Template can be deleted. These elements are no longer required once the original Phone Number Group has been updated.

                  Update Callback DNS SRV Group Only:

                  1. Create a new temporary DNS SRV Callback Group with the required updates.
                  2. Create a new temporary Customer Template that uses the new Callback DNS SRV Group and existing Phone Number Group. If an existing DNS SRV Callback Group is being used along with the group, assign that to the template.
                  3. Create a seed solution organization by provisioning a subscriber from a test BroadWorks Service Provider or test BroadWorks Enterprise with a Standard package using the new Customer Template. Please note that this is a secondary seed solution organization, no update to the meeting siteUUID configured on BroadWorks is required.
                  4. Verify the configuration by scheduling meetings using the seed organization Standard package site, joining the meeting using the call-in phone numbers, and using the ‘Call me at’ option.
                  5. Apply the update to the original DNS SRV Callback Group. The change is now in-service for non-test customers.
                  6. The seed solution organization, DNS SRV Callback Group and Customer Template can be deleted. These elements are no longer required once the original Callback DNS SRV Group has been updated.

                  Update both Phone Number and Callback DNS SRV Group:

                  1. Create a new temporary Phone Number and DNS SRV Callback Group with the required updates.
                  2. Create a new temporary Customer Template that uses the new Phone Number Group and new Callback DNS SRV Group. If an existing Phone Number Group and/or DNS SRV Callback Group is being used along with the group, assign that to the template.
                  3. Create a seed solution organization by provisioning a subscriber from a test BroadWorks Service Provider or test BroadWorks Enterprise with a Standard package using the new Customer Template. Please note that this is a secondary seed solution organization, no update to the meeting siteUUID configured on BroadWorks is required.
                  4. Download the BroadWorks Configuration (BYoPSTN) JSON file, it contains the phone number to access code mapping for the new phone numbers in the Phone Number Group.
                  5. Determine the Webex Edge Audio DNS SRV domain for the seed solution organization Standard package meeting site. It should be unchanged from the value previously determined for the original Phone Number Group.
                  6. Apply the configuration updates to BroadWorks using the BroadWorks Configuration (BYoPSTN) JSON file.
                  7. Verify the configuration by scheduling meetings using the seed organization Standard package site, joining the meeting using the call-in phone numbers, and using the ‘Call me at’ option.
                  8. Apply the update to the original Phone Number and DNS SRV Callback Group. The change is now in-service for non-test customers.
                  9. The seed solution organization, the temporary Phone Number Group, DNS SRV Callback Group, and Customer Template can be deleted. These elements are no longer required once the original Phone Number Group and Callback DNS SRV Group has been updated.

                   
                  The primary seed solution organization should not be deleted unless a new primary seed solution organization has been selected and configured on BroadWorks. Deleting the primary seed solution organization removes the siteUUID on which the BYoPSTN solution depends for SIP message authentication to Webex Edge Audio. If deleted, meeting joins using call-in for sites using Partner provided call-in number will fail.

                  G722 Media Interoperability when Using Your Own SBC

                  When leveraging your own SBC, interoperability issues that are normally taken care of by CUBE need to be considered between the Cisco Partners BroadWorks Infrastructure and Webex Cloud. One example is a call-in or callback using G722 codec that involves the BroadWorks Media Server (for example, when using the BroadWorks Call Recording service). In this scenario, the Webex Edge Audio may send an SDP with "a=fmtp:9" line. Your SBC would need to update this line to add the bitrate parameter to have "a=fmtp:9 bitrate=64" before sending it to the BroadWorks backend.

                  Known Limitations

                  • Any changes to the Customer Template Meeting Join Option, Cisco call-in numbers, or Partner Provided call-in numbers are applied only to newly provisioned customers. Existing customers using the template remain unchanged.

                  • Any changes to the Customer Template Phone Number Group or Callback DNS SRV Group settings are applied only to newly provisioned customers or existing customers being provisioned for their first Standard or Premium package user. Existing customers that already have Standard or Premium package users remain unchanged.

                  • Any changes to the Phone Number Groups or Callback DNS SRV Groups that are assigned to Customer Templates are applied only to newly provisioned customers or existing customers being provisioned for their first Standard or Premium package user. Existing customers assigned to associated templates that already have Standard or Premium package users remain unchanged.

                  • A given Customer Template supports Cisco call-in numbers or Partner provided call-number meeting join option, a combination of the two options for the same template is not supported.

                  • The SIP messaging for ‘Call me at’ or callback meeting join use case does not include information on the customer and/or user that is hosting the meeting to be joined.

                  • The phone numbers and associated meeting access codes for a given Phone Number Group, only support a single Webex Edge Audio DNS SRV domain (for example, ecccspx.amer.webex.com). Using these phone numbers to call-in to meetings in a different Webex Edge Audio DNS SRV domain is not supported.

                  • Webex Edge Audio does not support renegotiating codecs mid call. As such, services that are invoked after a call is answered may not work properly.

                  • Webex App, Webex Meeting site UI and the Webex Meeting invite email provides a link to a “Toll-free calling restrictions” document. This document is specific to Cisco-provided phone numbers and should be ignored by users when using Partner provided phone numbers for meeting joins.

                  Document Revision History

                  The following table shows a history of changes to this document over the past 12 months.

                  Date

                  Version

                  Description of Change

                  April 08, 2024

                  1-36

                  • Addedd note that DNS-SRV is dynamic in nature and added wildcard to the IP Addresses.

                  January 10, 2024

                  1-35

                  • Rule 4 was added in Translation Profiles section.

                  December 22, 2023

                  1-34

                  • Updated Meeting Join using Callback (Optional), RoutingNE, Enable Webex Meeting Callback, Translation Profiles, and Cube Call Flows sections were updated.

                  July 04, 2023

                  1-33

                  • Updated Meeting Join using Callback (Optional) section.

                  February 02, 2023

                  1-32

                  • Added New domain for UK, and North Africa added under Webex Call Routing Domains.

                  • Added Meeting Host Session and Application Delivery Platform under Step 9: Provision Partner BroadWorks Configuration.

                  February 02, 2023

                  1-31

                  • Updated Apply updates to an in-service Phone Number Group/Callback DNS SRV Group section.

                  January 31, 2023

                  1-30

                  • Added Application Delivery Platform section under Application Server.

                  Nov 29, 2022

                  1-29

                  • Added Enable Webex Meeting Callback in Network Server section.

                  • Added Create a VoiceXML Meeting Callback Subscriber in Application Server section.

                  • Updated DNS SRV records under Webex Call Routing Domains.

                  Was this article helpful?