How to integrate VerbumCall with Skype for Business?
Access the documentation to integrate VerbumCall with Skype for Business platform.
Follow the next steps to integrate VerbumCall with Skype for Business:
1. Audience
This document is intended for the SIP trunk customer’s technical staff and Value Added Retailer (VAR) having installation and operational responsibilities. This configuration guide provides steps for configuring Skype for Business 6.0.9319 and Oracle Enterprise SBC Acme Packet 3820 ECZ7.3.0 Patch 2 (Build 75) to Nexmo SIP Trunking services.
2. SIP Trunking Network Components
The network for the SIP trunk reference configuration is illustrated below and is representative of a Skype for Business and Oracle SBC configuration to Nexmo SIP trunking.
Incoming and outgoing off-net calls using G711ULAW & G711ALAW voice codecs
Calling Line (number) Identification Presentation
Calling Line (number) Identification Restriction
Call hold and resume
Call transfer (unattended and attended)
Call Conference
Call forward (All, No answer)
DTMF relay both directions (RFC2833)
Media flow-through on Oracle E-SBC
3.1.2 Features Not Supported by PBX
None
3.1.3 Features Not Tested
None
3.1.4 Caveats and Limitations
No Session Audit message is sent from Nexmo
Session refresh is always done by Nexmo. Skype for Business does Session refresh only through UPDATE message and Nexmo does not support UPDATE.
4. Configuration
4.1 IP Address Worksheet
The specific values listed in the table below and in subsequent sections are used in the lab configuration described in this document, and are for illustrative purposes only. The customer must obtain and use the values for your deployment.
Component
Lab Value
Customer Value
Oracle E-SBC
LAN IP Address
10.70.59.40
LAN Subnet Mask
255.255.255.0
WAN IP Address
192.xx.xx.xxx
WAN Subnet Mask
255.255.255.128
Skype for Business
System IP Address
172.16.29.62
4.2 Configuring Skype for Business
This section describes the Skype for Business configuration necessary to support connectivity to Oracle E-SBC. A SIP trunk is established between Skype for Business and Oracle E-SBC for use by signaling traffic to and from Nexmo via Oracle E-SBC.
4.2.1 Enable TCP Mode
Skype for Business and Oracle E-SBC will communicate over TCP since UDP is not supported by Skype for Business. To enable TCP mode in Skype for Business follow the steps below.
Navigate to Mediation Pools in the Skype for Business Topology Builder
Here we use the co-located mediation server to communicate with the Oracle E-SBC
Right click and click Edit
Assign Listening ports for TCP on the Skype for Business side
Check Enable TCP Port option
4.2.2 Adding a Trunk
Right click on the PSTN gateways option and select New IP/PSTN Gateway
Enter the IP address of the Oracle E-SBC
Click Next
In Define the root trunk page
Trunk name: 10.64.4.177 (Oracle E-SBC LAN IP)
Listening Port for IP/PSTN Gateway: 5060, Configure the listening port of the SBC
SIP Transport Protocol: Select TCP
Associated Mediation Server:fe01.sfbsp.local, Select the mediation pool to be associated
Associated Mediation Server port: 5060
Click Finish
Publish the topology for the configuration to be reflected
4.2.3 Trunk Configuration
Open the Skype for Business Control Panel
Navigate to Voice Routing
Go to the TRUNK CONFIGURATION page
Click New and select Pool Trunk
In the Select a Service page, select the trunk added in section 4.2.
Assign a name
Set Encryption Support Level: Select Not supported
Set Refer Support:None
Set the remaining options as seen in the figure below
Click OK and Commit the changes.
4.2.4 Voice Routing
The trunk created in the previous step needs to be assigned to a Route. This is done so that when a Skype for Business user dials a call out to the Nexmo, the calls terminate via the configured Oracle E-SBC trunk.
Open the Skype for Business control panel
Navigate to Voice Routing → VOICE POLICY
A Dial Plan can be configured for users if any digit modifications are needed. Here the Global Dial Plan is used.
Configure a Voice Policy for the users to use when dialing a call out to the Oracle E-SBC
Click New under Associated PSTN Usages to create a new PSTN Usage
Assign a name
Click New under Associated Routes to create a new Route
Assign a Name for the new route
Create a match pattern for the calls going out under Build a Pattern to match section. Here "+1214242" is used to match PSTN number.
Select the Trunk under Associated trunks section and click OK
Save the Route
Save the PSTN Usage
Save the Voice Policy
4.2.5 Dial Plan
Dial Plan is used to strip or insert digits.
Navigate to Voice Routing section in the Skype for Business Control Panel
Select Global Dial Plan. Here the Global Dial Plan is used.
Open the Global dial plan
Navigate to Associated Normalization Rules and add normalization rules
Keep All is a default normalization rule which allows all the numbers
Save the changes
4.3 Oracle E-SBC Configuration
4.3.1 Create Physical Interfaces
This section defines the physical interfaces to the Skype for Business and Nexmo networks.
4.3.1.1 Physical Interface for Skype for Business
Navigate to Configuration → Objects → system → phy-interface
Click Add
Name:s1p
Operation Type: Media
Port: 0
Slot: 1
Click OK
4.3.1.2 Physical Interface for Nexmo
Navigate to Configuration → Objects → system → phy-interface
Click Add
Name:s0p
Operation Type: Media
Port: 0
Slot: 0
Click OK
4.3.2 Create Network Interfaces
This section defines the network interfaces to the Skype for Business and Nexmo networks.
4.3.2.1 Network Interface for Skype for Business
Navigate to Configuration → Objects → system → network-interface
Click Add
Name:s1p
Sub port id: 0
Hostname:fe01.sfpsp.local (Skype for Business FQDN)
IP address: 10.64.4.177 (E-SBC LAN IP)
Netmask: 255.255.0.
Gateway: 10.64.1.
Click OK
4.3.2.2 Network Interface for Nexmo
Navigate to Configuration → Objects → system → network-interface
Click Add
Name:s0p
Sub port id: 0
IP address:192.xx.xx.xxx (E-SBC WAN IP)
Netmask:255.xxx.x.x
Gateway:192.x.x.x
Click OK
4.3.3 Create Realm-config
Realms are used as a basis for determining egress and ingress associations between physical and network interfaces.
4.3.3.1 Realm for Skype for Business
Navigate to Configuration → Objects → media-manager → realm-config
Click Add
Identifier: SFB
Network Interfaces: Click Add and select Skype for Business Network interface
Click OK
4.3.3.2 Realm for Nexmo
Navigate to Configuration → Objects → media-manager → realm-config
Click Add
Identifier: nexmo
Network Interfaces: Click Add and select Nexmo Network interface
Click OK
4.3.4 Create Steering Pool
Steering pool define sets of ports that are used for steering media flows through the Acme Packet E-SBC.
4.3.4.1 Steering Pool for Skype for Business
Navigate to Configuration → Objects → media-manager → steering-pool
Click Add
IP Address: 10.64.4.177 (E-SBC LAN IP)
Realm ID: SFB (Realm of Skype for Business)
Network Interface: Select Skype for Business Network interface
Click OK
4.3.4.2 Steering pool for Nexmo
Navigate to Configuration → Objects → media-manager → steering-pool
Click Add
IP Address:192.x.x.x (E-SBC WAN IP)
Realm ID: nexmo (Realm of Nexmo)
Network Interface: Select Nexmo Network interface
Click OK
4.3.5 Modify SIP Config
SIP-config sets the values for the Acme Packet SIP operating parameters.
Registrar Domain: * (This option is required when using Registration Method)
Registrar Host: * (This option is required when using Registration Method)
Click OK
4.3.6 Create SIP Interface
SIP interface defines the signaling interface (IP address and port) to which the Acme Packet E- SBC sends and receives SIP messages. SIP Interface and Realm ID are created for both Skype for Business and Nexmo
4.3.6.1 SIP Interface for Skype for Business
Navigate to Configuration → Objects → session-router → sip-interface
Click Add
Realm ID: SFB
SIP Ports: Click Add
Address: Enter the SBC LAN IP address
Port: Configure the SBC listening port for TCP
Transport Protocol: TCP
Allow Anonymous : all , for example
Click OK
4.3.6.2 SIP Interface for Nexmo
Navigate to Configuration → Objects → session-router → sip-interface
Click Add
Realm ID: Nexmo
SIP Ports: Click Add
Address: Enter the SBC WAN IP Address
Port: Configure the SBC listening port for TCP
Transport Protocol: UDP
Allow Anonymous : all, for example
Click OK
4.3.7 Create Session Agent
A session agent defines an internal "next hop" signaling entity for the SIP traffic. A realm is associated with a session agent to identify sessions coming from or going to the session agent. Session agents are created for both Skype for Business and Nexmo.
4.3.7.1 Session Agent for Skype for Business
Navigate to Configuration → Objects → session-router → session-agent
Click Add or Modify
Hostname: 172.16.29.62, for example
IP Address: 172.16.29.62, for example
Port: Configure the PBX listening port
Transport Method:StaticTCP
Realm ID: SFB
Out translationid:** addplusone
In manipulationid:** add_pai
Out manipulationid:** outManipToSFB
Click Add under Auth attribute
Auth Realm : Nexmo FQDN (sip.nexmo.com is used for this test) provided by Nexmo
Username : User name (911236e3 is used for this test) provided by Nexmo
Password : Password provided by Nexmo
Click OK
4.3.7.2 Session Agent for Nexmo
Navigate to Configuration → Objects → session-router → session-agent
Click Add or Modify
Hostname: Enter the hostname (sip.nexmo.com is issued for this test)
Port: Configure the PBX listening port
Transport method: UDP
Realm ID: Nexmo
Options:max-udp-length=0 (Note: This setting allows the SBC to fragment UDP packets. Otherwise the maximum size a UDP packet may be is 1500 bytes.). Without this setting, E-SBC sends "513 MESSAGE TOO LARGE" if a UDP packet length is more than 1500 bytes.
Out manipulationid: Surrogate
Click OK
4.3.8 Create Local Policy
Local policies are defined to allow any SIP request from Skype for Business realm to be routed to the Nexmo realm and vice-versa.
4.3.8.1 Local Policy for Skype for Business
Navigate to Configuration → Objects → session-router → local-policy
Click Add or Modify
From Address: * - Used in this example
To Address : * - Used in this example
Source Realm: nexmo
Policy Attributes: Add or Edit
Next Hop: Enter the Skype For Business IP Address
Realm: SFB
Cost: 0
Click OK
4.3.8.2 Local Policy for Nexmo
Navigate to Configuration → Objects → session-router → local-policy
Click Add or Modify
From Address:* is used in this example
To Address : * - This is used in this example
Source realm: SFB
Policy Attributes: Add or Edit
Next Hop: Enter the Nexmo FQDN
Realm: nexmo
Action:replace-uri is used in this example
Cost: 0
Click OK
4.3.9 Create Surrogate Agent
Surrogate registration allows the Acme Packet SBC to perform trunk side registrations to the Nexmo network. The values for register-user, register-contact-user and password are provided by Nexmo.
Navigate to Configuration → Objects → Show advanced → session-router → surrogate-agent
Register Host:sip.nexmo.com is used in this example
Register User : 911236e3 is used in this example
Realm ID: SFB
Customer Host:172.16.29.62 (Skype for Business IP)
Customer Next Hop:172.16.29.62 (Skype for Business IP)
Register Contact Host: SBC WAN IP
Register Contact User:911236e3 is used in this example
Password: Type the Authentication password
Register Expires: 60 is used for this test
Route to Registrar: Enabled
Auth User:911236e3 is used in this example
Click OK
4.3.10 Create Translation Rules
The below translation rule is applied to Out translationid of Skype for Business Session agent. This adds + in the user part of the TO header.
Navigate to Configuration → Objects → session-router → translation-rules
Click Add
ID:addplus1 (Identifier name used for this test)
Type: add
Add String: +
4.3.11 Create SIP Manipulation
SIP manipulation specifies rules for manipulating the contents of specified SIP headers. For the Compliance test, a set of SIP manipulations were configured that contain a set of SIP header manipulation rules (HMR) on traffic From or To with respect to Nexmo and Skype for Business.
4.3.11.1 SIP Manipulation for Skype for Business
add_pai rule is applied in the SIP header coming from Skype for business to Oracle E-SBC. The manipulation script is assigned to In manipulationid of Session agent of Skype for Business.
1 HMR for SIP headers coming from Skype for Business to E-SBC 2 SIP manipulaton rule developed to insert P-Asserted-Identty header 3 SIP manipulaton rule developed to change SDP atriiute from INACTIVE to SENDRECV in the INVITE
new-value element-rule name inactivetosendrecv parameter-name application/sdp type mime action find-replace-all match-val-type any comparison-type case-sensitive match-value a=inactive new-value a=sendrecv element-rule name sendonlytosendrecv^4 parameter-name application/sdp type mime action find-replace-all match-val-type any comparison-type case-sensitive match-value a=sendonly new-value a=sendrecv header-rule name sessionrefresh^5 header-name Session-Expires action manipulate comparison-type case-sensitive msg-type reply methods match-value new-value element-rule name uactouas parameter-name type header-value action find-replace-all match-val-type any comparison-type case-sensitive match-value refresher=uas new-value refresher=uac
outManipToSFB rule is applied to SIP headers sending from Oracle E-SBC to Skype for business. The manipulation script is assigned to out manipulationid of Session agent of Skype for Business.
sip-manipulation
name outManipToSFB^6 description To SFB
4 SIP manipulaton rule developed to change SDP atriiute from SENDONLY to SENDRECV in the INVITE 5 SIP manipulaton rule developed to change Session refresher parameter from UAS to UAC in the response message 6 HMR for SIP headers sending from E-SBC to Skype for Business.
split-headers join-headers header-rule name From^7 header-name From action manipulate comparison-type case-sensitive msg-type request methods match-value new-value element-rule name From_header parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value $LOCAL_IP header-rule name To^8 header-name To action manipulate comparison-type case-sensitive msg-type request methods match-value new-value element-rule name To parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value sfpsp.local
header-rule name modURI^9 header-name Request-uri action manipulate comparison-type case-sensitive msg-type any methods
7 SIP manipulaton rule developed for changing the URI host IP to local SBC LAN IP in the FROM header 8 SIP manipulaton rule developed for changing the URI host IP to Skype for Business FQDN in the TO header 9 SIP manipulaton rule developed to replace the URI host IP to Skype for Business FQDN in the REQUEST-URI
match-value new-value element-rule name mod2 parameter-name type uri-host action replace match-val-type fqdn comparison-type case-sensitive match-value new-value sfbsp.local
4.3.11.2 SIP Manipulation for Nexmo
Surrogate rule is applied to SIP header coming from Oracle E-SBC to Nexmo. The manipulation script is assigned to out manipulationid of Session agent of Nexmo.
sip-manipulation name surrogate^10 description split-headers join-headers header-rule name ModURI^11 header-name request-uri action manipulate comparison-type case-sensitive msg-type any methods match-value new-value element-rule name mod2 parameter-name type uri-host action replace match-val-type fqdn comparison-type case-sensitive match-value new-value sip.nexmo.com+:+$REMOTE_PORT header-rule name from_nexmo^12 header-name FROM action manipulate
10 HMR for SIP headers sending from E-SBC to Nexmo network 11 SIP manipulaton rule developed for replacing the URI host IP with Nexmo FQDN and the remote port numier in the REQUEST_URI 12 SIP manipulaton rule developed for replacing the URI host IP to SBC WAN IP in the FROM header
comparison-type case-sensitive msg-type request methods match-value new-value element-rule name from_add_nexmo parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value $LOCAL_IP header-rule name contact^13 header-name CONTACT action manipulate comparison-type case-sensitive msg-type request methods match-value new-value element-rule name contactlocalip parameter-name type uri-host action replace match-val-type ip comparison-type case-sensitive match-value new-value $LOCAL_IP element-rule name contactlocalport^14 parameter-name type uri-port action replace match-val-type any comparison-type case-sensitive match-value new-value $LOCAL_PORT element-rule name contactuserpart^15 parameter-name type uri-user action add
13 SIP manipulaton rule developed for replacing the URI host IP to SBC WAN IP in the CONTACT header 14 SIP manipulaton rule developed for replacing the Contact Port to SBC port numier in the CONTACT header 15 SIP manipulaton rule developed for adding the valid FROM header digits in the URI User part of CONTACT header
match-val-type any comparison-type case-sensitive match-value new-value $FROM_USER.$0 header-rule name nexmooptions header-name FROM action manipulate comparison-type case-sensitive msg-type any methods OPTIONS match-value new-value element-rule name nexmooptions^16 parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value $LOCAL_IP header-rule name nexmosipoptions^17 header-name TO action manipulate comparison-type case-sensitive msg-type any methods OPTIONS match-value new-value element-rule name nexmosipoptions parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value sip.nexmo.com header-rule name nexmtoheader^18 header-name TO action manipulate comparison-type case-sensitive
16 SIP manipulaton rule developed for replacing the URI host IP to SBC WAN IP in the FROM header in the OPTIONS message 17 SIP manipulaton rule developed for replacing the URI host IP to Nexmo FQDN in the TO header in the OPTIONS message 18 SIP manipulaton rule developed for replacing the URI host IP to Nexmo FQDN in the TO header
msg-type request methods match-value new-value element-rule name nexmotoheader parameter-name type uri-host action replace match-val-type any comparison-type case-sensitive match-value new-value sip.nexmo.com
4.4 Nexmo Configuration
4.4.1 Configure Numbers in Nexmo Account
Login to the Nexmo account using the credentials provided at the time of registration. A Key and Secret will be displayed on the dashboard and this can be used as the username and password for Registration SIP Trunks.
In order to provide the URL to which the call has to be routed from Nexmo, navigate to the Numbers tab
Click Edit against each number as shown below
A pop-up will be displayed
Select the "Forward to" and provide the URL to which the calls route
Click Update to save the changes
5. Summary of Tests and Results
N/S = Not Supported N/T= Not Tested N/A= Not Applicable
Test Case
Test Case Description
Result
Notes
1
Calling Party Disconnects Before Answer
PASS
2
Calling Party Disconnects After Answer
PASS
3
Called Party Disconnects After Answer
PASS
4
Three Way Calling
PASS
5
Calling Party Presentation Restricted
PASS
6
Calling Party Disconnects Before Answer
PASS
7
Calling Party Disconnects After Answer
PASS
8
Called Party Disconnects After Answer
PASS
9
Calling Party Receives Busy
PASS
10
International Outbound Dialing
PASS
11
Outbound Call Forward Always
PASS
12
Outbound Call Forward Not Available (Ring No Answer)
PASS
13
Outbound Consultative Call Transfer
PASS
14
Outbound Semi-Attended/Blind Call Transfer
PASS
15
Outbound Call Hold
PASS
16
Terminate Early Media Outbound Call Before Answer
PASS
17
Early Media Forward Call
PASS
18
Outbound, Wait for Session Audit
PASS
No Session Audit message is sent by Nexmo. HMR rule is applied in E-SBC to initiate Nexmo to send Session refresh at specified interval.