Vonage SIP Trunking Configuration Guide
Skype for Business 6.0.9319
With Oracle E-SBC Acme Packet 3820 ECZ7.3.0 Patch 2
(Build 75)
July 2017
Note: Parts of this guide still refer to Nexmo. Vonage acquired Nexmo in June 2016.
Contents
- 1. Audience
-
2. SIP Trunking Network Components
- 2.1 Network Components
-
3. Features
- 3.1.1 Features Supported
- 3.1.2 Features Not Supported by PBX
- 3.1.3 Features Not Tested
- 3.1.4 Caveats and Limitations
-
4. Configuration
- 4.1 IP Address Worksheet
- 4.2 Configuring Skype for Business
- 4.2.1 Enable TCP Mode
- 4.2.2 Adding a Trunk
- 4.2.3 Trunk Configuration
- 4.2.4 Voice Routing
- 4.2.5 Dial Plan
- 4.3 Oracle E-SBC Configuration
- 4.3.1 Create Physical Interfaces
- 4.3.1.1 Physical Interface for Skype for Business
- 4.3.1.2 Physical Interface for Nexmo
- 4.3.2 Create Network Interfaces
- 4.3.2.1 Network Interface for Skype for Business
- 4.3.2.2 Network Interface for Nexmo
- 4.3.3 Create Realm-config
- 4.3.3.1 Realm for Skype for Business
- 4.3.3.2 Realm for Nexmo
- 4.3.4 Create Steering Pool
- 4.3.4.1 Steering Pool for Skype for Business
- 4.3.4.2 Steering pool for Nexmo
- 4.3.5 Modify SIP Config
- 4.3.6 Create SIP Interface
- 4.3.6.1 SIP Interface for Skype for Business
- 4.3.6.2 SIP Interface for Nexmo
- 4.3.7 Create Session Agent
- 4.3.7.1 Session Agent for Skype for Business
- 4.3.7.2 Session Agent for Nexmo
- 4.3.8 Create Local Policy
- 4.3.8.1 Local Policy for Skype for Business
- 4.3.8.2 Local Policy for Nexmo
- 4.3.9 Create Surrogate Agent
- 4.3.10 Create Translation Rules
- 4.3.11 Create SIP Manipulation
- 4.3.11.1 SIP Manipulation for Skype for Business
- 4.3.11.2 SIP Manipulation for Nexmo
- 4.3.1 Create Physical Interfaces
- 4.4 Nexmo Configuration
- 4.4.1 Configure Numbers in Nexmo Account
- 5. Summary of Tests and Results
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.
2.1 Network Components
Component | Version | Comments |
---|---|---|
Skype for Business | 6.0.9319 |
|
Oracle E-SBC | Acme Packet 3820 ECZ7.3.0 Patch 2 (Build 75) |
|
Microsoft Exchange Server 2016 | 15.1.225.42 |
Microsoft Exchange UM |
Skype for Business Client | Model: CP-7965 |
|
Cisco IP Phone |
Model: CP-7965 App Load ID: jar45sccp.9-4-2TH1-1.sbn Boot Load ID: tnp65.9-3-1-CR17.bin
|
This Cisco IP Phone is the PSTN test device |
3. Features
3.1.1 Features Supported
- 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 associatedAssociated 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.
- Navigate to Configuration → Objects → session-router → sip-config → Modify
- Home Realm ID: SFB (Realm of Skype for Business)
- 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 NexmoPassword : 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 thehostname
(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
: SurrogateClick 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.
sip-manipulation
name add_pai^1
description
split-headers
join-headers
header-rule
name add_pai^2
header-name P-ASSERTED-IDENTITY
action add
comparison-type case-sensitive
msg-type request
methods INVITE
match-value
new-value <sip:+$FROM_USER.$0+@192.xx.xx.xxx;user=phone>
header-rule
name inactsendonlytosendrecv^3
header-name Content-Type
action manipulate
comparison-type case-sensitive
msg-type request
methods INVITE
match-value
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. |
19 | Inbound, Wait for Session Audit | PASS | |
20 | Outbound DTMF (RTPevent ) |
PASS | |
21 | Inbound DTMF (RTPevent ) |
PASS |