Upload
phammien
View
227
Download
2
Embed Size (px)
Citation preview
Skype for Business Software Defined
Networking (SDN) Interface 2.2
© 2015 Microsoft. All rights reserved.
Contents
Skype for Business Software Defined Networking (SDN) Interface 2.2 ...................................................................... 6
Additional resources ................................................................................................................................................................... 6
Overview of Skype for Business SDN Interface 2.2 ............................................................................................................. 7
Skype for Business SDN Interface Release Notes ............................................................................................................... 8
New features in Skype for Business SDN Interface version 2.2, build 6.0.9319.59 ............................................ 8
Notes and known issues in the current release ............................................................................................................... 9
Understanding Skype for Business SDN Interface 2.2 .................................................................................................... 11
The Microsoft Skype for Business SDN Interface ......................................................................................................... 11
The Microsoft Skype for Business SDN Interface schema ........................................................................................ 11
Additional resources ................................................................................................................................................................ 12
Using the Skype for Business SDN Interface ...................................................................................................................... 13
Parsing Skype for Business call and quality data ......................................................................................................... 13
Additional resources ................................................................................................................................................................ 15
Skype for Business SDN Interface architecture ................................................................................................................. 16
Additional resources ................................................................................................................................................................ 19
Deploying Skype for Business SDN Interface .................................................................................................................... 20
Deploying Skype for Business SDN Interface with an SDN Manager pool ....................................................... 20
Deploying Skype for Business SDN Interface with a single SDN Manager ....................................................... 21
Deploying Skype for Business SDN Interface with primary and secondary failover ...................................... 21
Deploying Skype for Business SDN Interface with SDN Manager and Dialog Listener collocated ......... 22
Additional resources ................................................................................................................................................................ 23
New features in Skype for Business SDN Interface ......................................................................................................... 24
Additional resources ................................................................................................................................................................ 25
Installing Skype for Business SDN Interface 2.2................................................................................................................ 26
Additional resources ................................................................................................................................................................ 26
Getting ready to install Skype for Business SDN Interface ........................................................................................... 27
Additional resources ................................................................................................................................................................ 28
Activating QoE recording in Skype for Business Server ................................................................................................. 29
Verify and activate QoE recording using Management Shell commands ......................................................... 30
Verify and activate QoE recording using the Skype for Business Server Control Panel ............................... 30
July 2015 Skype for Business SDN Interface 2.2 p. 3
Setting up a DNS service location record ........................................................................................................................... 32
To set up the DNS service location record ..................................................................................................................... 32
Additional resources ................................................................................................................................................................ 33
Setting up SQL Server for a SDN manager database ..................................................................................................... 34
Additional resources ................................................................................................................................................................ 34
Setting up a Redis cache system............................................................................................................................................. 35
Additional resources ................................................................................................................................................................ 35
Installing security certificates ................................................................................................................................................... 36
Requesting and installing a certificate ............................................................................................................................. 37
Installing certificates for use with SDN Manager ......................................................................................................... 39
Assigning a server certificate to a port ............................................................................................................................ 39
Client certificate provisioning .......................................................................................................................................... 40
Authenticating Dialog Listener connections using client certificates .............................................................. 40
Authenticating the Server Certificate on the DL ...................................................................................................... 41
Installing certificates for the Dialog Listener ................................................................................................................. 41
Installing the SDN Manager ...................................................................................................................................................... 42
Installing the Dialog Listener .................................................................................................................................................... 46
To install the Dialog Listener ................................................................................................................................................ 46
Additional resources ................................................................................................................................................................ 49
Unattended installation of SDN Manager and Dialog Listener .................................................................................. 50
Unattended installation of the SDN Manager............................................................................................................... 50
Example unattended installations of the SDN Manager ........................................................................................... 52
Unattended installation of the Dialog Listener ............................................................................................................. 52
Doing an unattended uninstall ............................................................................................................................................ 53
Additional resources ................................................................................................................................................................ 54
Upgrading from previous version of the SDN Interface ................................................................................................ 55
Upgrading to version 2.2 from version 2.1 or 2.1.1 .................................................................................................... 55
Additional resources ................................................................................................................................................................ 56
Configuring Skype for Business SDN Interface 2.2 .......................................................................................................... 57
Additional resources ................................................................................................................................................................ 57
Configuring SDN Interface logging options ...................................................................................................................... 58
Configure logging options .................................................................................................................................................... 58
Logging configuration options for the Dialog Listener ............................................................................................. 59
Logging configuration options for the SDN Manager............................................................................................... 60
Additional resources ................................................................................................................................................................ 61
Configuring SDN Interface Dialog Listener ........................................................................................................................ 62
Editing the DialogListener.exe.config file ........................................................................................................................ 62
To manually edit Dialog Listener execution options .............................................................................................. 62
Configuring SDN Interface SDN Manager .......................................................................................................................... 64
July 2015 Skype for Business SDN Interface 2.2 p. 4
Operational modes of the SDN Manager ....................................................................................................................... 64
Configuring the SDN manager by editing the config file ............................................................................................. 65
Configuring SDN Interface using the command prompt.............................................................................................. 67
Command-line commands ................................................................................................................................................... 68
Example commands for viewing settings ........................................................................................................................ 69
SDN manager configuration settings ............................................................................................................................... 71
Dialog Listener configuration settings ............................................................................................................................. 72
Subscriber configuration settings ...................................................................................................................................... 73
Running and debugging Skype for Business SDN Interface ........................................................................................ 75
Running the SDN Interface Dialog Listener ........................................................................................................................ 76
Running Dialog Listener as a Windows service ............................................................................................................ 76
Running the Dialog Listener as a console application ............................................................................................... 77
Running the SDN Interface SDN Manager ......................................................................................................................... 78
Running the SDN Manager as a Windows service ...................................................................................................... 78
Running the SDN Manager as console application .................................................................................................... 79
Debugging the SDN Interface Dialog Listener .................................................................................................................. 80
Troubleshooting installation of Dialog Listener ........................................................................................................... 80
Verifying operations of Dialog Listener service ............................................................................................................ 81
Debugging the SDN Interface SDN Manager .................................................................................................................... 82
Activating WCF service logging .......................................................................................................................................... 82
Using the Message Receiver log service ......................................................................................................................... 83
Replaying logs ............................................................................................................................................................................ 84
Monitoring the SDN Manager and Dialog Listener ........................................................................................................ 85
SDN Manager and Dialog Listener performance counters .......................................................................................... 86
SDN Manager performance counters ............................................................................................................................... 87
Dialog Listener performance counters ............................................................................................................................. 88
Uninstalling the SDN Interface components ...................................................................................................................... 89
Uninstalling the Skype for Business SDN Interface ..................................................................................................... 89
Uninstall the Dialog Listener ................................................................................................................................................ 89
Uninstall the SDN Manager .................................................................................................................................................. 89
Unregister Dialog Listener ..................................................................................................................................................... 90
Using SIP Obfuscator for the SDN Interface ...................................................................................................................... 91
SIP Obfuscator ........................................................................................................................................................................... 91
Appendix to Skype for Business SDN Interface ................................................................................................................ 92
Installing the trusted root certificate ..................................................................................................................................... 93
Installing a trusted root certificate ................................................................................................................................ 93
Adding certificate snap-ins ............................................................................................................................................... 93
July 2015 Skype for Business SDN Interface 2.2 p. 5
Dialog Listener configuration file example ......................................................................................................................... 94
A sample of DialogListener.exe.config file ...................................................................................................................... 94
SDN Manager configuration file example ........................................................................................................................... 97
A sample of the SDNManager.exe.config file ................................................................................................................ 97
SDN Manager command-line example .............................................................................................................................. 106
Manager settings .................................................................................................................................................................... 106
Listener settings ...................................................................................................................................................................... 107
Subscriber settings ................................................................................................................................................................. 108
SDN Interface Bandwidth Estimates .................................................................................................................................... 109
Bandwidth Estimates ............................................................................................................................................................. 109
SDN Interface Performance Overview ................................................................................................................................ 110
Performance benchmarks .................................................................................................................................................... 110
Skype for Business Software Def ined
Networking (SDN) Interface 2.2 The Microsoft Skype for Business SDN Interface provides an interface for network management systems
to access network diagnostic data in order to monitor network traffic and optimize the quality of service.
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
This documentation explains what the Software Defined Network (SDN) Interface does and how to install
and configure the it to work with one or more known network management systems and ITPro tools.
This documentation contains the following:
Overview of Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
Additional resources Quality of Experience (QoE) Database Schema
RTP Profile for Audio and Video Conferences with Minimal Control, [RFC 3551]
RTP: A Transport Protocol for Real-Time Applications, [RFC 3550]
[MS-SDPEXT]: Session Description Protocol (SDP) Version 2.0 Extensions
International Telecommunication Union Recommendation P.562, [ITUP.562]
International Telecommunication Union Recommendation P.800.1, [ITUP.800.1]
July 2015 Skype for Business SDN Interface 2.2 p. 7
Overview of Skype for Business SDN Interface
2.2 Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The Microsoft Skype for Business SDN Interface provides a subscription-based interface for network
controllers or network management systems to receive call and quality data to monitor and analyze
network traffic in order to optimize the Skype for Business media stream quality.
The Microsoft Skype for Business SDN Interface is not a programming interface but a RESTful interface
through which subscribed systems (generally called "subscribers") receive data about active calls and the
end-to-end measured quality of media streams.
The data received is used to identify, diagnose and resolve quality and performance issues in the Skype
for Business environment or the network infrastructure that it uses. The quality metrics are intended to
correlate with information observed by the network infrastructure as well as with other calls, call-legs,
devices and endpoints. Goals of the SDN Interface include the following:
Superior diagnostics
Dynamic QOS
Intelligent routing
The objective is to provide quality data as close to real-time as possible, although without any guarantees;
this enables real-time tracking and diagnosis of calls in progress, as well as the collection of data for long-
term analysis.
In this section
Understanding Skype for Business SDN Interface 2.2
Installing Skype for Business SDN Interface 2.2
Configuring Skype for Business SDN Interface 2.2
Running and debugging Skype for Business SDN Interface
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 8
Skype for Business SDN Interface Release
Notes Applies to: SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013
In this article
New features in Skype for Business SDN Interface version 2.2, build 6.0.9319.59
Notes and known issues in the current release
The Microsoft Skype for Business SDN Interface provides a subscription-based interface for network
controllers or network management systems to receive call and quality data to monitor and analyze
network traffic in order to optimize the Skype for Business media stream quality.
The Skype for Business SDN Interface version 2.2 includes a number of new features over the previous
release.
New features in Skype for Business SDN Interface
version 2.2, build 6.0.9319.59 Following is a summary of the key new features in Skype for Business SDN Interface version 2.2.
Supports a new output schema, SDNInterface.Schema.D.xsd, 2.2 supports an enhanced data format
that includes several new fields. However, the general protocol and message type have not changed.
The new schema file, Schema D, describes the schema changes since Schema C was published with
SDN Interface versions 2.1 and 2.1.1. (See Skype for Business SDN Interface schema reference.)
The SDN Manager now implements a configuration service that manages settings for all Dialog
Listeners, SDN Managers (like itself), and subscribers. This allows a separation of an SDN Manager
server settings from SDN Managers processing call and quality related messages.
We have refined configuration handling so that configuration settings are now divided in to three
groups:
Subscriber: Contains settings specific to the receiver of the call and quality related messages.
Typically, a subscriber is network controller, network management system, or ITPro tool.
Listener: Contains settings specific to a Skype for Business Server front-end pool. Multiple pools,
having different configurations, may use the same SDN Manager pool.
Manager: Contains settings used by the SDN Manager pool.
With the exception of removing the redundancy in reporting the same endpoint metrics for every
stream, the SDN Manager will send more data and fields, but no format changes.
July 2015 Skype for Business SDN Interface 2.2 p. 9
If a subscriber cannot handle the changes in the new schema D message format, it can declare using
the legacy schema (SDNInterface.Schema.C.xsd) in the subscriber outputschema setting to receive
messages in the previous format (backward compatibility mode).
The SDN Interface 2.2 release further expands on the ability to filter messages for particular
subscribers. You can filter by subnet and domain name as well as by TenantID and SipTrunk name.
Enhanced handling of MidCall quality report messages. While only desktop and modern Skype for
Business clients (version 16.*.*.*) will send IncallQuality messages whenever media stream quality
crosses thresholds, other clients (for example, UCWA and LWA) will send IncallQuality messages in a
more periodic fashion.
Detailed address information is provided, including addressing information for Host, Reflexive and
Relay (if available) for signaling messages.
Additional signaling fields like Referred-by, Via, P-Asserted Identity (PAI), Replaces, and Wireless.
The Skype for Business Dialog Listener can be installed on an SBS or SBA, if so supported by the SBA
vendor. For more information, see Installing the Dialog Listener.
Reduced the amount of repetitive data sent as part of the endpoint information.
Provided support for Redis in-memory cache as an alternative to using a SQL Server database for the
data store.
Lync SDN Interface has been rebranded and is now known as the Skype for Business SDN Interface.
We have provided IPv6 support for subscriber filters.
We have changed the command line syntax to use the new structure.
The configuration files (SDNManager.exe.config and DialogListener.exe.config) only contain the most
essential information needed to locate the configuration service. The setup configures most of these
settings, so you should no longer need to modify these. Please use the SDN Manager.exe command
line interface for most configuration changes.
Settings changes using the command line in cache mode are now persisted and do not need to be
reapplied after a service restart (or configured in the config file).
In Schema D, UserAgent field now has a Type attribute that maps the UserAgent string to an integer
analog to the UAType used in the QoEMetrics database.
In Schema D, the StreamQuality field has an optional Source attribute. This field contains the name of
the trigger that caused the determination of a Bad or Poor stream. This name is either the name of a
metrics (if the determination was done as a result of the metrics crossing a threshold – only the first is
referenced here, there may be more), or, in case of an InCallQuality message, it can also be the name
of the client trigger (for example, BandwithLow, Jitter, Source, Destination, and so forth).
Notes and known issues in the current release The database structure has changed from version 2.1.1 of the nm- SDN Interface. The database
structure for Skype for Business SDN Interface version 2.2 is not compatible with versions 2.1.1 nor
2.1.
The IncallEnabled field is set based on the client version. If the sending of IncallQuality messages is
not activated correctly on the Skype for Business front-end server or client, this field may contain an
incorrect value.
July 2015 Skype for Business SDN Interface 2.2 p. 10
Initially, to receive messages from the SDN Manager you must provision at least one subscriber.
However, you can no longer provision this subscriber in the setup. Rather, you must use the
command line interface of the SDN Manager. At a minimum you need to call:
sdnmanager.exe p s some-subscriber-name submituri=http://<your-receiver-url>
The Dialog Listener component now requires .NET Framework 4.5. This might require the installation
of the .NET Framework 4.5 on front-end computers in 2010 topologies.
SDN Manager unattended installation:
If you miss the command line parameter SETUPDP=1 for the first SDN Manager installation in a
pool configuration, or when you want to share settings, the setup will finish successfully and a
database is created but the tables are not created. In this case you have to remove the database
manually and restart the installation. Make sure you set the SETUPDP=1 parameter for the first
installation and only when you need the database created.
If not specified, a directory for the logs will be created under c:\LyncSDNLogs.
Using the new "D" schema saves some bandwidth as messages containing most static endpoint
properties repeatedly have these properties removed after the first time.
This release has not been tested with the Skype-to- bridge.
Changes related to logging do not require you to restart the Windows service. Changing other
settings in the configuration files (*.config) require a service restart.
In contrast to previous versions of , Skype for Business 2015 has the ability to multiplex RTCP and RTP
streams over the same port. However, the SDN Interface does not report whether the same or a
different port is used.
In some cases, SDN Interface may not have sufficient information to report accurate HostIP,
ReflexiveIP and RelayIP addresses used. In such cases, it reports its best effort. For example, the
information processed from the session description protocol may not allow a determination whether
an IP address is in fact an address of the host, relay or network address translation.
July 2015 Skype for Business SDN Interface 2.2 p. 11
Understanding Skype for Business SDN
Interface 2.2
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
The Microsoft Skype for Business SDN Interface
The Microsoft Skype for Business SDN Interface schema
In this section
Additional resources
In any given Skype for Business Server deployment, poor network performance can adversely affect the
end user experience. Many factors can cause low performance or media quality. Exposing these is often
difficult, as well as time and resource intensive.
Skype for Business provides tools that help identify issues in its system and network infrastructure, as do
infrastructure and network manufacturers. The primary purpose of the SDN Interface is to bridges these
two worlds to enable a deeper understanding of the entire end-to-end system.
The Microsoft Skype for Business SDN Interface The Skype for Business SDN Interface is distributed as a downloadable installation package that supports
multiple Lync and Skype for Business versions. This content explains how to install and configure the
Skype for Business SDN Interface to work with one or more known network management systems and
network controllers. It also provides a technical reference to the Skype for Business call and quality data
that is provided. To get a contextual framework for the technical information, take a look at the
conceptual framework of the Skype for Business SDN Interface.
Important
The Skype for Business SDN Interface version 2.2 adds significant new functionality, as well as
changes to the message format. It also fixes bugs in the previous release but provides backward
compatibility so that its message format and semantics are fully compatible with the Lync SDN
Interface 2.1.1.
The Microsoft Skype for Business SDN Interface schema In Skype for Business SDN Interface, the call and quality data is defined by the new Skype for Business
SDN Interface schema (SDNInterface.Schema.D.xsd). This schema expands on the schema file that was
July 2015 Skype for Business SDN Interface 2.2 p. 12
supported in Lync SDN API version 2.0 (SDNInterface.Schema.C.xsd). In Schema D, more data types are
added and some improvements have been introduced. However, the schema structure is very similar and
most message parsers written for Schema C should also accept a Schema D implementation without
changes. Documentation of both schemas can be found in Skype for Business SDN Interface schema
reference.
Note
The SDN Interface schema files have been reformatted and updated with additional
documentation; furthermore, some fields have been marked "obsolete."
In this section Using the Skype for Business SDN Interface
Skype for Business SDN Interface architecture
Deploying Skype for Business SDN Interface
New features in Skype for Business SDN Interface
In-call QoE algorithm and throttling
Additional resources Overview of Skype for Business SDN Interface 2.2
Skype for Business SDN Interface Schema Reference
July 2015 Skype for Business SDN Interface 2.2 p. 13
Using the Skype for Business SDN Interface
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Skype for Business service providers and customers can use the Skype for Business SDN Interface to
obtain call and quality data about the states of audio, video and app-sharing streams produced by Lync
and Skype for Business clients on the network. The SDN Interface relies on the Dialog Listener
component to capture call and quality data and then dispatches the captured data to the SDN Manager
to process the raw data. The processed and aggregated data is then sent to subscribers, (for example,
network management system, network controllers, or IT administration tools), which can in turn correlate
the data with their own observations from the network, readjust policies, or reallocate network resources
dynamically to improve the service quality.
For example, a Skype for Business service provider or customer finds that conference calls initiated during
a certain time frame in a given geographical region regularly experience audio or video quality issues. To
find out what happens, they can install and configure the SDN Interface in their Skype for Business
topology and connect it with an SDN-aware network controller. The combined information from Skype for
Business clients and the network controller will enable the service provider or customer to resolve issues
within the Skype for Business deployment by, for example, identifying bad server components, resolve
issues within the network by, for example, identifying a bottleneck in a segment of their network or router
configuration during specific load patterns. As a result, they may adjust the network resources
accordingly, or, in other cases, the analysis might result in a need to add more server resources or allocate
additional PSTN ports/sessions to reduce the incidence of call quality issues.
Parsing Skype for Business call and quality data The following are examples of SDN Interface messages.
XML
<LyncDiagnostics Version="D"> <ConnectionInfo> … </ConnectionInfo> <Start Type="audio"> <From> … </From> <To> … </To> <Properties> <Protocol>UDP</Protocol> …
July 2015 Skype for Business SDN Interface 2.2 p. 14
</Properties> </Start> <Start Type="audio"> … </Start> <Start Type="video"> … </Start> … </LyncDiagnostics>
<LyncDiagnostics Version="D">
<ConnectionInfo>
…
</ConnectionInfo>
<QualityUpdate Type="audio">
<From>……</From>
<To>……</To>
<Properties>
…
<PacketUtilization>1461</PacketUtilization>
<JitterInterArrival>11</JitterInterArrival>
<JitterInterArrivalMax>15</JitterInterArrivalMax>
<DegradationAvg>0.06</DegradationAvg>
<RatioConcealedSamplesAvg>0.000999001</RatioConcealedSamplesAvg>
<RecvNoiseLevel>-51</RecvNoiseLevel>
<RecvSignalLevel>-15</RecvSignalLevel>
<BurstGapDuration>27720</BurstGapDuration>
<DegradationMax>0.09</DegradationMax>
<OverallMinNetworkMOS>4.15</OverallMinNetworkMOS>
<OverallAvgNetworkMOS>4.19</OverallAvgNetworkMOS>
…
</Properties>
</QualityUpdate>
…
</LyncDiagnostics>
The XML output from the SDN Manager consists of a set of messages that have <LyncDiagnostics> as
their root element. Each message corresponds to a snapshot of the data streams in a call. A
<LyncDiagnostics> element contains one <ConnectionInfo> child element and one or more of the
<Invite>, <Start>, <update><Error>, <InCallQuality>, <Ended>, <Bye> and <QualityUpdate> elements.
Optionally, a <RawSDP> element might be present to contain the SDP content of the SIP message that
triggered this SDN message. These child elements fall into the following groups:
1. The first group, including <ConnectionInfo>, <RawSDP>, describe attributes of the overall state of
the call and connection between the endpoints involving the media streams. The group includes a call
dialog identifier (<CallId>) and conversation identifier (<ConversationId>) among others, which can
be used to correlate this call with other calls.
2. The second group includes <Invite>, <Error>, and <Bye>, which are used to forward signaling events
about the overall call. These elements are optional.
July 2015 Skype for Business SDN Interface 2.2 p. 15
3. The third group includes <Start>, <Update>, and <Ended>. They describe the individual states of the
call media streams in real time.
4. The last group, including <InCallQuality> and <QualityUpdate>, provides insight into the quality of
individual streams of the call.
The From and To sections contain information related to the endpoints with the IP and Ports being most
relevant for identifying the data streams (RTP). A quality update section provides numerous properties
related to the end points and streams, as shown in the preceding code example. In the current Schema D
and in most cases, only the first pair of From/To contains a complete set, while further instances only
contain the data that may be different for the respective end points.
Note
SDN Interface does not report the ports used for the RTCP traffic. Traditionally, the RTCP ports
were the RTP ports + 1, but recent updates by the media stack team in the Skype for Business
2015 release also uses multiplexing of RTP and RTCP traffic over the same port.
For more information about SDN Manager-generated Skype for Business SDN Interface data, see Skype
for Business SDN Interface reference.
Additional resources Understanding Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 16
Skype for Business SDN Interface architecture
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Conceptually, the Skype for Business SDN Interface consists of the following components:
A Dialog Listener that captures signaling and quality observations about media traffic between Skype
for Business endpoints.
An SDN Manager that collects the data from one or more Dialog Listener and distributes to third-
party network management systems.
A data store that maintains the shared state among all SDN Managers in a single pool.
One or more subscribers, generally network management systems, also known as network controllers,
or ITPro tools that support a RESTful web service to receive and analyze the call- and media-quality
data posted from the SDN Manager. Skype for Business SDN Interface infrastructure
At a high level, the Skype for Business SDN Interface infrastructure consists of the SDN Manager, the
Dialog Listener/Skype for Business Server front end and a network controller. It also includes Skype
for Business clients and one or more networks in an infrastructure cloud.
July 2015 Skype for Business SDN Interface 2.2 p. 17
Figure 1. Skype for Business SDN Interface architecture
The types of Skype for Business media traffic involving two or more Skype for Business endpoints include
audio and video calls and application sharing.
The Dialog Listener is implemented as a Windows service, can work with Lync Server 2010, Lync Server
2013, and Skype for Business 2015. It has also been tested with early releases of newer versions, and
July 2015 Skype for Business SDN Interface 2.2 p. 18
requires .NET Framework 4.5 or later versions. The Dialog Listener is configured to send data to the SDN
Manager.
The SDN Manager is also a lightweight Windows service that we recommend you run on a separate virtual
or hardware application server that uses Windows Server 2008 or later (see Deploying Skype for Business
SDN Interface). The SDN Manager is responsible for processing the various events received from the
Dialog Listener. It maintains state of the individual real-time streams—including whether the stream has
started, ended, updated, and more in the associated data store (either Redis, local cache, or SQL Server
database)—and sends the resulting XML data to the configured data receivers. The SDN Manager requires
.NET Framework 4.5 or a later.
Upon receiving a relevant message on the Skype for Business Server front end computers, the Dialog
Listener forwards essential parts of the message to the SDN Manager, which raises an event and invokes
an event handler to parse the captured messages. Furthermore, it selects those properties related to the
quality of the audio, video, and application sharing media streams between Skype for Business endpoints.
The SDN Manager then posts the data in an XML format to the registered receiver (or subscriber), for
example, network management systems or network controller, and also makes relevant log entries at the
same time.
A subscriber runs independently of the SDN Manager and its underlying Skype for Business Server
environment. It uses a web service to receive as input the Skype for Business call and quality data
captured by the SDN Manager. The web service must be configured as a subscriber in the SDN Manager
so that it can post the Skype for Business call and quality data to the configured web service address. In
the current Skype for Business version, this web service address as well as other configuration data is
stored in a "Subscriber" structure for each such receiver.
A subscriber can be a network controller which monitors and analyzes network elements and traffic for
the Skype for Business clients, in addition to various other kinds of network traffic. More specifically, when
a Skype for Business user calls another Skype for Business user, a SIP dialog is established. SIP messages
are exchanged between the client and Skype for Business Server. Specific SIP messages contain data
reflecting media-related events relevant for Skype for Business SDN Interface and are forwarded to the
SDN Manager. The SDN Manager is then responsible for verifying, combining and packaging the call and
quality data in XML and posting them to the web services. Figure 2 shows this process.
Figure 2. Detailed Skype for Business SDN Interface architecture
July 2015 Skype for Business SDN Interface 2.2 p. 19
Additional resources Understanding Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 20
Deploying Skype for Business SDN Interface
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Deploying Skype for Business SDN Interface with an SDN Manager pool
Deploying Skype for Business SDN Interface with a single SDN Manager
Deploying Skype for Business SDN Interface with primary and secondary failover
Deploying Skype for Business SDN Interface with SDN Manager and Dialog Listener collocated
Additional resources
Microsoft Skype for Business SDN Interface supports different deployment scenarios with noteworthy
differences and trade-offs. Regardless of the deployment topology you choose, always install the Dialog
Listener components on all the Skype for Business Server front ends; these front ends can be Lync Server
versions 2010 or later, including Skype for Business Server 2015.
Deploying Skype for Business SDN Interface with an
SDN Manager pool In a Skype for Business SDN Interface pool configuration, all Dialog Listeners are connected to a DNS
load-balanced pool of SDN Manager servers.
In this configuration, the size of the pool scales with the message load produced by the Skype for
Business Servers and Dialog Listeners. The pool automatically handles most server failures, but requires a
data store to maintain a shared and consistent state among all the SDN Managers in the pool. The data
store itself can be SQL Server database or a Redis cache system. Subscribers, like network controllers
connected to this SDN Manager pool receive a consistent state about applicable media streams handled
by the connected Skype for Business Server front end pools. The setup provides the option for a disaster
pool failover configuration. If all SDN Manager instances in a pool are unreachable, Dialog Listeners may
be configured to fail-over to an alternative pool.
Figure 1. Deployment of Skype for Business SDN Interface with a pool of SDN Managers
July 2015 Skype for Business SDN Interface 2.2 p. 21
Deploying Skype for Business SDN Interface with a single SDN
Manager
In this simple configuration, all Dialog Listeners are connected to a single SDN Manager component. The
SDN Manager service maintains its call state information in memory and a database is not required. This
configuration is useful when the call load is under the limit that a single SDN Manager can support and
fault-tolerance is not required.
Deploying Skype for Business SDN Interface with primary and
secondary failover
To overcome server failures in a single SDN Manager deployment, the SDN Interface can take a second
SDN Manager as a failover alternate for all the connected Dialog Listeners. When a disconnected Dialog
Listener attempts to deliver messages to the primary SDN Manager, a failover protection algorithm will
switch to the alternative SDN Manager to ensure that the SDN Interface provides continuous service when
server failures occur. In this case, the alternate SDN Manager becomes the new primary service provider.
Call states are lost during the failover transition, because state is kept in memory on the primary SDN
Manager. This may cause inconsistent or incomplete message reporting delivered to subscribers until the
new active SDN Manager can establish a consistent view of the ongoing media streams.
Note
In the event of fail over, the secondary computer is promoted to the new primary node. Restoring
the second node will automatically make it the secondary node, and the new primary node will
stay in place until it fails over.
Figure 2. Deployment of SDN Interface with primary and secondary SDN managers
July 2015 Skype for Business SDN Interface 2.2 p. 22
Deploying Skype for Business SDN Interface with SDN Manager and
Dialog Listener collocated
In this configuration, both the SDN Manager and the Dialog Listener are installed on the Skype for
Business Server front end. Call states are usually maintained in memory and they are not shared with
other SDN Managers. The collocated SDN Manager can only report on calls from endpoints managed by
the hosting Skype for Business Server, and if the clients stay connected to the same front end during a
call.
Often, two different Skype for Business front end servers are involved in handling a call, each receiving
different quality data. The SDN Manager won’t be able to correlate these messages and a subscriber to
both SDN Manager instances will get duplicate messages and might need to merge quality information to
get a complete picture of the active media streams. Adding an SDN Manager to the Skype for Business
Server will further increase the load (CPU, memory, and possibly network) on these servers.
When the SDN Manager and the Dialog Listeners are installed on several Skype for Business Server front
ends, basically disconnected from each other, the SDN Interface supports sharing the settings for all
these components. In this case, an SDN Manager would provide a dedicated configuration service.
Figure 3. Deployment of the SDN Interface collocated with SDN manager and dialog listener
July 2015 Skype for Business SDN Interface 2.2 p. 23
Additional resources
Understanding Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 24
New features in Skype for Business SDN
Interface Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Following are new and improved features of the Microsoft Skype for Business SDN Interface, version 2.2
Supports a new output schema, SDNInterface.Schema.D.xsd, 2.2 supports an enhanced data format
that includes several new fields. However, the general protocol and message type have not changed.
The new schema file, Schema D, describes the schema changes since Schema C was published with
SDN Interface versions 2.1 and 2.1.1.
The SDN Manager now implements a configuration service that manages settings for all Dialog
Listeners, SDN Managers (like itself), and subscribers. This allows a separation of an SDN Manager
server settings from SDN Managers processing call and quality related messages.
We have refined configuration handling so that configuration settings are now divided in to three
groups:
Subscriber: Contains settings specific to the receiver of the call and quality related messages.
Typically, a subscriber is network controller, network management system, or ITPro tool.
Listener: Contains settings specific to a Skype for Business Server front-end pool. Multiple pools,
having different configurations, may use the same SDN Manager pool.
Manager: Contains settings used by the SDN Manager pool.
With the exception of removing the redundancy in reporting the same endpoint metrics for every
stream, the SDN Manager will send more data and fields, but no format changes.
If a subscriber cannot handle the changes in the new schema D message format, it can declare using
the legacy schema (SDNInterface.Schema.C.xsd) in the subscriber outputschema setting to receive
messages in the previous format (backward compatibility mode).
The SDN Interface 2.2 release further expands on the ability to filter messages for particular
subscribers. You can filter by subnet and domain name as well as by TenantID and SipTrunk name.
Enhanced handling of MidCall quality report messages. While only desktop and modern Skype for
Business clients (version 16.*.*.*) will send IncallQuality messages whenever media stream quality
crosses thresholds, other clients (for example, UCWA and LWA) will send IncallQuality messages in a
more periodic fashion.
Detailed address information is provided, including addressing information for Host, Reflexive and
Relay (if available) for signaling messages.
Additional signaling fields like Referred-by, Via, P-Asserted Identity (PAI), Replaces, and Wireless.
The Skype for Business Dialog Listener can be installed on an SBS or SBA, if so supported by the SBA
vendor. For more information, see Installing the Dialog Listener.
Reduced the amount of repetitive data sent as part of the endpoint information.
Provided support for Redis in-memory cache as an alternative to using a SQL Server database for the
data store.
Lync SDN Interface has been rebranded and is now known as the Skype for Business SDN Interface.
July 2015 Skype for Business SDN Interface 2.2 p. 25
We have provided IPv6 support for subscriber filters.
We have changed the command line syntax to use the new structure.
The configuration files (SDNManager.exe.config and DialogListener.exe.config) only contain the most
essential information needed to locate the configuration service. The setup configures most of these
settings, so you should no longer need to modify these. Please use the SDN Manager.exe command
line interface for most configuration changes.
Settings changes using the command line in cache mode are now persisted and do not need to be
reapplied after a service restart (or configured in the config file).
In Schema D, UserAgent field now has a Type attribute that maps the UserAgent string to an integer
analog to the UAType used in the QoEMetrics database.
In Schema D, the StreamQuality field has an optional Source attribute. This field contains the name of
the trigger that caused the determination of a Bad or Poor stream. This name is either the name of a
metrics (if the determination was done as a result of the metrics crossing a threshold – only the first is
referenced here, there may be more), or, in case of an InCallQuality message, it can also be the name
of the client trigger (for example, BandwithLow, Jitter, Source, Destination, and so forth).
Additional resources Understanding Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 26
Installing Skype for Business SDN Interface 2.2
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
You install Microsoft Skype for Business SDN Interface by running two installation packages. One is for the
SDN Manager and the other is for the Dialog Listener. The two packages are
SkypeforBusinessSDNManager.msi and SkypeforBusinessDialogListener.msi.
We recommend that you run SkypeforBusinessSDNManager.msi before you run the
SkypeforBusinessDialogListener.msi. This will ensure that the SDN Manager is running and ready when
the Dialog Listener attempts to connect to the SDN Manager.
In this section
Getting ready to install Skype for Business SDN Interface
Installing the SDN Manager
Installing the Dialog Listener
Unattended installation of SDN Manager and Dialog Listener
Additional resources
Overview of Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 27
Getting ready to install Skype for Business SDN
Interface
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
To ensure that the Software Defined Network (SDN) Interface components are successfully installed and
started, do the following before you run the installation packages:
1. Set up a DNS record to define a round-robin FQDN for the SDN Manager pool.
2. Set up an optional DNS SRV record to support the Dialog Listeners (as well as subscribers) to locate
the configuration service. (see below)
3. Close the Service Control Panel to prevent the Windows service installation from hanging.
4. Ensure that the Skype for Business Server front ends and the SDN Manager servers have reasonably
synchronized clocks. This is especially important for the SDN Manager processing timeouts, which rely
on time stamps. Note, too, that significantly divergent times will cause unexpected behavior as well
as uneven load balancing.
5. If you choose, install all certificates necessary for mutual TLS. Create and place the same client
certificate on every Dialog Listener, and obtain client certificates expected and authorized by each the
network controller on all SDN Managers.
6. Set up a Redis cache to enable using Redis as your data store (see below).
7. Set up SQL Server for using a database as your data store (see below).
8. To install Dialog Listener, first run the SkypeForBusinessDialogListener.msi on a Skype for Business
Server front end using an administrator account that is also a part of the RTC Server Applications local
group. To add the administrator account to the RTC Server Applications group, follow these steps:
a) Log on to the Skype for Business Server front end server computer as the administrator and
start the server manager snap-in.
b) Add the administrator account to the RTC Server Applications local group.
When you run Steps 9a and 9b, log off and log on again for the changes to take effect. The
Dialog Listener service account must be a member of the RTC Local Server Group.
Note
You should install SDN Manager on a separate application server to maximize the performance of
the Skype for Business Server front end.
In this section
Setting up a DNS service location record
Setting up SQL Server for a SDN manager database
Installing security certificates
Activating QoE recording in Skype for Business Server
July 2015 Skype for Business SDN Interface 2.2 p. 28
Additional resources
Installing Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 29
Activating QoE recording in Skype for Business
Server
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Verify and activate QoE recording using Management Shell commands
Verify and activate QoE recording using the Skype for Business Server Control Panel
If Quality of Experience (QoE) recording has not been activated in the Skype for Business monitoring
server, you must activate it before installing the Skype for Business SDN Interface. You can verify and
activate the QoE recording in one of the two ways:
Using the Skype for Business Server Management Shell commands
Using the Skype for Business Server control panel
July 2015 Skype for Business SDN Interface 2.2 p. 30
Verify and activate QoE recording using Management Shell
commands
To verify the QoE recording using Skype for Business Server Management Shell commands, open a
Management Shell command prompt on a Skype for Business Server computer and issue the following
command.
Get-CsQoEConfiguration -Identity site:W15Topology
In our example, "W15Toplogy" is the site name assigned to the Skype for Business Server deployment. If
the EnableQoE attribute is set to True in the returned result, the QoE recording has been activated. If the
EnableQoE attribute is False, issue the following command to activate the QoE recording.
Set-CsQoEConfiguration -Identity site:W15Topology -EnableQoE $True
For detailed information about the commands, see Skype for Business Server 2015 Management Shell.
Verify and activate QoE recording using the Skype for Business Server
Control Panel
To verify the QoE recording using the Skype for Business Server control panel, start the control panel and
select the Monitoring and Archiving tab on the navigation pane, then select the Quality of Experience
Data tab.
Figure 1. Skype for Business Server Control Panel showing QoE activation setting
If the QoE column of the specified topology (W15Topology) is checked, the QoE recording is activated.
Otherwise, choose the Edit menu option and select the Enable monitoring of QoE data checkbox for the
July 2015 Skype for Business SDN Interface 2.2 p. 31
specified Skype for Business Server topology. We recommend that you also select the Enable purging
QoE data checkbox and specify a maximum number of days to keep the QoE data before purging.
Note
Some of the parameters might not be available in the control panel. To view and set such
advanced features, use the commands. For more information about the commands, see
Configuring SDN Interface using the command prompt.
Setting up a DNS service location record
Setting up SQL Server for a SDN manager database
Installing security certificates
July 2015 Skype for Business SDN Interface 2.2 p. 32
Setting up a DNS service location record
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
You can configure the Skype for BusinessDialog Listener to query DNS for the location of the single host
or pool of SDN Manager service, if the DNS service location record was created properly. This article
explains how to create the service location records. You must have domain administrator privileges to do
this.
Note
When DNS service location records are used by the Dialog Listener by setting checkdns=true in
the configuration file, any configured value for the parameter configurationserviceuri is ignored.
The URI specified in the service location record is used instead.
To set up the DNS service location record
1. Log on to the DNS server and open the DNS Manager
.
2. Open DNS and choose the zone to create the service location record for (Current domain, forward
lookup zone).
3. From the Context menu, select Other New Records ..., navigate to Service Location, and choose
Create Record.
4. Fill in the form (shown in Figure 1) by providing the following values:
Service: _sdninternal
Protocol: _http or _https
Port number: 9333 (9332 for https)
Host offering the LSM service: FQDN of the host computer (for example,
SdnPool.LneProd.contoso.com)
July 2015 Skype for Business SDN Interface 2.2 p. 33
Figure 1. New Resource Record dialog box
Note: If both the HTTP and HTTPS protocols are specified, the HTTP service location record is
ignored until the HTTPS record is deleted.
After the service location discovery is configured, the following behavior will occur:
If the HTTPS protocol is set, the Dialog Listener looks for the _sdninternal service address for that
protocol. Otherwise, the Dialog Listener attempts to retrieve the address of an SDN Manager service using
the HTTP protocol. It then creates a service URL with the service name ("Settings") appended at the end.
Here is an example of a resulting URL: https://SdnPool.contoso.com:9332/Settings.
You can enable Dialog Listeners to use the service location record to discover the SDN Manager locations
by selecting the appropriate settings in the SkypeForBusinessDialogListener.msi installation wizard, or by
editing the DialogListener.exe.config file and setting the following entry:
<add key="checkdns" value="True"/>
Additional resources
Getting ready to install Skype for Business SDN Interface
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 34
Setting up SQL Server for a SDN manager
database
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In a pool configuration, Skype for Business SDN Interface requires a data store to share call states of
concurrently ongoing calls or configuration settings among multiple SDN Managers, which can be a SQL
Server or other data store. However, this SDN Manager database is hosted on a SQL Server database.
Make sure to select the SQL Server host that supports appropriate behaviors in the presence of fault.
To minimize hardware investments, and after evaluating available performance resources on the Skype for
Business backend SQL Server database, you may consider using the SDN Manager server. You can use any
SQL Server edition, including the SQL Server Express edition.
The installer creates and configures a new database or joins a new SDN Manager installation with an
existing database.
Additional resources
Getting ready to install Skype for Business SDN Interface
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 35
Setting up a Redis cache system
Applies to: Lync Server 2010 | Lync Server 2013 | SharePoint Foundation 2013 | SharePoint Online |
SharePoint Server 2013 | Skype for Business 2015
Redis (http://redis.io/) is a fast, light weight, scalable in-memory key-value cache system that you can use
for a data store for your Skype for Business SDN Interface implementation
Microsoft Azure offers a Redis service to which you can connect; however, you can also run Redis on
Windows (https://github.com/MSOpenTech/redis) or on other operating systems. Using the Redis
connection string and the configuration file (for example, redis-windows.conf) you can configure to use
SSL, active/passive failover, as well as number of other parameters.
In a pool configuration, Skype for Business SDN Interface needs a data store to share call states for
concurrently ongoing calls or for configuration settings among multiple SDN Manager instances, which
can be a Redis No-SQL key-value store.
Note
Redis must be set up and running when SDN Manager is installed in Redis mode to prevent errors
during service startup. The setup will not verify this.
Additional resources Getting ready to install Skype for Business SDN Interface
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 36
Installing security certif icates
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Requesting and installing a certificate
Installing certificates for use with SDN Manager
Assigning a server certificate to a port
Installing certificates for the Dialog Listener
Additional resources
To ensure secure message transport and client authentication, the Skype for Business SDN Interface
components support mutual transport layer security (TLS). But for this to work, you must request
certificates from an appropriate certification authority. These certificates are needed for the SDN Manager,
the Dialog Listener, and for subscribers. You might also have to install a root certificate of the certification
authority (CA), if it is not trusted.
You will need to use a client certificate on each front-end server in the Dialog Listener and a server
certificate on each SDN Manager for the SDN Manager pool fully qualified domain name. In addition, you
must install a server certificate on the subscribers, and also an appropriate client certificate on the SDN
Manager host computers so you can authenticate it to the subscribers. Finally, you need to ensure that
the Windows communication foundation (WCF) configuration of the SDN Manager validates the client
certificates set on the Dialog Listeners.
To install certificates, you will follow this general approach:
1. Request a certificate from a certificate server of the correct type
2. Install the server certificate on a server for each SDN Manager and subscriber.
3. Install client certificates on all clients which are Dialog Listeners so they can talk with the SDN
Manager, as well as on all SDN Manager instances so they can talk with subscribers acting as a server
(if that subscriber requires authentication via client certificate).
4. Install a trusted root certificate on computers where the certificate authority reports it as not trusted.
For instructions, see Installing the trusted root certificate.
July 2015 Skype for Business SDN Interface 2.2 p. 37
Note
You can verify that the SSL and client authentication works independently of Skype for Business
SDN Interface by using a general purpose test tool, such as wfetch.exe
Detailed instructions for the specific certificate installations are found in the following procedures. In each,
assume that a Microsoft Certification Authority is being used. For detailed explanation and instructions on
how to create a certificate request for Microsoft Certificate Services, see Managing Certificate Services and
SSL.
Requesting and installing a certif icate
The following example demonstrates how to request a certificate from a Windows Certificate Server and
your security policies and available templates at your certificate service may be different.
1. In your web browser, navigate to your certification server (for example, http://<servername>/certsrv).
This should be the same certificate authority that is used to generate certificates for the client.
2. Choose the Request a certificate link.
3. Choose the Advanced certificate request link.
4. Choose the Create and submit a request to this CA link.
5. In the Certificate Template dropdown, select the Exportable Server Cert option for a server
certificate or appropriate template for the client certificate.
6. When creating the server certificate, specify the fully qualified domain name as the certificate Name,
as well as its Friendly Name. Other fields can remain blank or retain their default values.
7. Choose Submit.
8. Choose the Install this Certificate link. The certificate will be installed to the Certificates-Current
User\Personal\Certificates folder.
9. Start MMC and add the certificate snap-ins shown in step 8 of the Installing the trusted root
certificate section in the Appendix.
10. Move the certificate from the Certificates-Current User\Personal\Certificates folder to the
Certificates Local computer\Personal\Certificates folder.
11. Ensure that the processes have access to the entire certificate, including its private key. This might
require adding the network service (or other credential that runs the service) to the certificate as
shown in figures 1 and 2.
July 2015 Skype for Business SDN Interface 2.2 p. 38
Figure 1. Adding a service to the certif icate, part 1
Figure 2. Adding a service to the certif icate, part 2
July 2015 Skype for Business SDN Interface 2.2 p. 39
Installing certif icates for use with SDN Manager
You must install certificates on the SDN Manager in order to do the following:
Authenticate and secure communications between possibly multiple Dialog Listeners and a SDN
Manager. (Applies to server certificates.)
Authenticate and secure communications from SDN Manager to possibly multiple subscribers (for
example, network controllers, network management systems, ITPro tools, and so forth). (Applies to
client certificates.)
Each server certificate must contain the fully qualified domain name of the receiving system. You cannot
use an IP address, host name or local addresses (*.local). The certificate must be installed in the local
computer store. When client authentication is required by a subscriber system, the client certificate on the
SDN Manager might need to contain the fully qualified domain name of the computer that is hosting
SDN Manager, depending on how the subscriber third-party system authenticates a client. The certificates
must be signed by a certification authority that is trusted by all involved parties. If the certification
authority is not trusted, the root certificate of the certification authority must be installed on all involved
computers.
You should follow the standard WCF certificate validation mechanism to configure the settings to validate
the client certificates
Note
Make sure when using a pool of SDN Managers, the certificate contains the entire pool fully
qualified domain name (for example, "sdnpool.contoso.com"). This name should have at least one
period delimiter (".").
Assigning a server certif icate to a port To activate and assign the server certificate to the port used to receive SSL traffic on the SDN Manager,
you will need to run the following command:
netsh http add sslcert ipport=0.0.0.0:9332 certhash=<thumb> appid={12345678-1234-ABCD-ABCD-1234567890AB} clientcertnegotiation=<enable or disable> verifyclientcertrevocation=<enable or disable>
Replace the <thumb> with the thumbprint of the server certificate associated with the SDN Manager’s
pool fully qualified domain name. You will also probably need to set
verifyclientcertrevocation=disabled if you use self-signed certs and clientcertnegotiation depending on
whether you use client certs on the Dialog Listener.
July 2015 Skype for Business SDN Interface 2.2 p. 40
Client certif icate provisioning
When provisioning subscribers, you can specify the thumbprint of the client certificate in the
configuration settings for the specified subscriber.
Note
This procedure is necessary only if a subscriber requires client authentication. In this case, the
subscriber must be configured to validate and accept the client certificate. When generating the
client certificate, you must set the parameters and fields according to the certificate validation
policy of the subscriber system.
To install the client certificate, follow the steps listed in the Requesting and Installing a certificate
procedure earlier in this article. The thumbprint of a client certificate must be specified in the
clientcertificateid property of the subscriber configuration.
You can obtain the thumbprint by using the Certificate dialog, as shown in Figure 1.
Figure 1. Certif icate dialog box
Authenticating Dialog Listener connections using client certif icates
For the SDN Manager to authorize client certificates from the Dialog Listener, you must configure the
client certificate validation logic in the SDNManager.exe.config file as specified by the Windows
Communication Framework (WCF).
By default, the SDN Manager uses a simple custom validator for client certificates that it receives from the
Dialog Listener. The current SDNManager.exe.config file contains the configuration for this custom
accept-and-log client certificate validator. WCF then ensures that a certificate is consistent and valid
July 2015 Skype for Business SDN Interface 2.2 p. 41
before the validator is called. This validator (AcceptAndLogValidator) logs information from the
certificate and always accepts it.
For an increased security, you must configure a different validator for client certificates by using standard
WCF configuration mechanisms. The following example shows the WCF configuration for the
AcceptAndLogValidator:
XML
<serviceBehaviors> <behavior name="CustomValidator"> <serviceCredentials> <clientCertificate> <authentication certificateValidationMode="Custom" customCertificateValidatorType="Microsoft.Rtc.Enlightenment.Hub.AcceptAndLogValidator, SDNManager" /> </clientCertificate> </serviceCredentials> </behavior> </serviceBehaviors>
Authenticating the Server Certif icate on the DL
For increased security you may want to activate server certificate revocation list checking. Per WCF, you
can configure this by adding the following configuration file parameters in the DialogListener.exe.config
file:
<configuration> <system.net> <settings> <servicePointManager checkCertificateRevocationList="true" /> </settings> </system.net> </configuration>
Installing certif icates for the Dialog Listener
You must install a certificate on the Dialog Listener to authenticate and secure communication between
the Dialog Listener and the SDN Manager. This applies to the client certificate. To install the client
certificate, follow the steps listed in the "Requesting and installing a certificate," earlier in this article.
After installing the certificate, you must provision the Dialog Listener to use the client certificate. You need
the thumbprint, as described in section earlier in this article entitled "Client certificate provisioning." For
the Dialog Listener, the thumbprint should be provided during the setup or afterwards by editing the
configurationcertificate field in the DialogListener.exe.config file and the clientcertificateid field in the
Listener settings.
July 2015 Skype for Business SDN Interface 2.2 p. 42
Installing the SDN Manager
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
To install Skype for Business SDN Manager, do the following:
1. Copy the SDNManager.msi to the server computer that will host the SDN Manager.
2. Launch the SDNManager.msi.
3. In the Welcome to the Microsoft SDN Manager Setup Wizard, choose Next.
4. Accept the End-User License Agreement and then choose Next.
5. In the Destination Folder panel, keep the default or enter a custom SDN Manager installation
directory.
Figure 1. SDN manager destination folder
6. Do the same for the service logging directory; that is, set it to c:\logdir\, then select the checkbox to
enable debug level logging.
July 2015 Skype for Business SDN Interface 2.2 p. 43
Note
While the number of log files is limited, for production environments it is not recommended
that you activate debug logging unless investigating a particular issue, as extensive amounts
of logs are written.
7. On the SDN Manager Topology wizard screen, select one of the three available options:
Join (or create) a pool of SDN Managers using a REDIS cache
Join (or create) a pool of SDN Managers using a SQL Server database.
Set up an individual SDN Manager that does not share settings.
Figure 2. SDN manager topology
Note: To download and install Redis, visit the Redis web site.
8. Depending on your choice, select one of the following:
a) If the first option is selected, do the following:
July 2015 Skype for Business SDN Interface 2.2 p. 44
In the REDIS Settings wizard page (Figure 3), enter the connect string to a Redis cache service.
You can enter the password, if required, as part of the connect string, or else enter the
password in the separate Password field.
Figure 3. REDIS settings wizard screen
Note: REDIS key space field prevents multiple clients from using the same key, causing
applications to interfere with one other. If you intend to use this cache for multiple SDN pools
or other application, please ensure that each one has a different key space value.
b) If you selected the second option (Join (or create) a pool of SDN Managers using a SQL
Server database), do the following:
In Skype for BusinessSDN Manager Database Settings wizard page, enter a SQL Server
name in the Database Server field, and the database instance name, if appropriate, in
the Database Name field.
July 2015 Skype for Business SDN Interface 2.2 p. 45
Figure 4. SDN manager database settings
Select either the Integrated Security or SQL Authentication to specify the credentials
that the SDN Manager uses to access the database. Make sure to use the credentials with
the sufficient privileges to access, create and configure the database. Then choose Next.
After the installer has successfully contacted the database server, it will either create a
new SDN Manager database with the specified name or connect to an existing one.
Choose Next.
In Skype for Business SDN Manager Database Settings wizard page, choose the
credentials the SDN Manager will use to access the SQL Server database during
operation.
c) If the third option is selected, no further settings are needed as the single SDN Manager
instance will use its internal memory cache for tracking all ongoing call sessions.
Note:
If you choose this final option please ensure that the SDN Manager host has sufficient memory
for all concurrent ongoing sessions,
9. In the Ready to install panel, click the Install button to start the installation.
10. In the wizard completed panel, click Finish to exit the installation wizard.
July 2015 Skype for Business SDN Interface 2.2 p. 46
Installing the Dialog Listener
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Follow these steps to use the Setup Wizard to install the Dialog Listener component.
Important
It is recommended that you first install the SDN Manager, and then install the Dialog Listener.
To install the Dialog Listener
1. Copy the SkypeForBusinessDialogListener.msi file to each Skype for Business Server front end and run
the installation package on each server computer by following these steps for each.
2. Choose the SkypeForBusinessDialogListener.msi. In the Welcome to the Microsoft Dialog Listener
Setup Wizard, then choose Next.
3. Accept the End-User License Agreement, and then choose Next.
4. Specify the installation folder and also specify the location of the application logs (see Figure 1). In the
destination folder field, keep the default or enter a custom Dialog Listener installation directory. Do
the same for the service logging directory and select the checkbox to activate debug level logging.
July 2015 Skype for Business SDN Interface 2.2 p. 47
Figure 1. Destination folder selection wizard page
Note
While the number of log files is limited, for production environments it is not recommended
that you activate debug logging unless investigating a particular issue, as extensive amounts
of logs are written.
The installer will attempt to locate a DNS SRV record referring to an SDN configuration service pool
and let you choose this SRV record to connect to the configuration service. If you
use this option, you will be prompted to specify a client certificate and an account under which the
Dialog Listener Windows Service should run before continuing the installation.
5. In SDN Interface Configuration Service wizard page, enter SDN configuration service URL, and then
choose Next.
July 2015 Skype for Business SDN Interface 2.2 p. 48
Figure 2. SDN Interface configuration service wizard page
The configuration service is part of SDN Manager. You may dedicate a particular SDN Manager to
serve as the configuration service, or refer to an entire pool of SDN Manager instances by using their
pool fully qualified domain name. The data store used by this SDN Manager or pool defines the
settings used by this SDN Interface system, including the settings used for all Dialog Listener
instances, the SDN Manager itself, and settings for all subscribers.
If you have a DNS SRV record configured, selecting the checkbox (Use the DNS SRV Record to get
the URIs) will use the DNS records instead of the URL to locate the configuration service. On the next
screen, you may optionally select a client certificate for authentication when using a https connection.
6. In Dialog Listener Service Account wizard screen, select the Network Service or Specify an
Account option, and then select Next.
July 2015 Skype for Business SDN Interface 2.2 p. 49
Figure 3. Dialog Listener service account
This wizard screen allows you to specify a user account to run the Dialog Listener Windows Service
or, alternatively, use the network service. If the Dialog Listener service fails to start using network
service, you may need to change the Windows service definition and specify different credentials. The
network service or the specified user account must be in the RTC Server Applications or RTC Local
Administrators local group.
7. In the Ready to install panel, choose the Install button to start the installation.
8. In the wizard completed panel, choose Finish to exit the installation wizard.
Additional resources Installing the SDN Manager
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 50
Unattended installation of SDN Manager and
Dialog Listener
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Unattended installation of the SDN Manager
Example unattended installations of the SDN Manager
Unattended installation of the Dialog Listener
Doing an unattended uninstall
Additional resources
In production, you often have to install the SDN Manager and Dialog Listener using installation scripts,
and therefore in an unattended mode. This article describes the parameters that are used for an
unattended installation.
Unattended installation of the SDN Manager
The following table lists installation parameters for an unattended installation of the SDN Manager.
Note
Using unattended installation is an advanced feature. Not all parameters may be validated or
report detailed errors. Use regular an installation and logging to investigate any issues you may
experience.
Parameter Description
INSTALLDIR Specifies the installation destination for the binaries.
LOGPATH Directory to contain the generated log files
July 2015 Skype for Business SDN Interface 2.2 p. 51
Parameter Description
TOPOLOGY describes the desired deployment scenario:
Value Description
0 (Cache) Use an in-memory
cache for settings and call
state
1 Obsolete. Not used.
2 (Database) Use the SDN
Manager database to store
and share the settings as
well as call state.
3 (REDIS) Use a REDIS cache
service as a data store for
settings and call state.
DOMAIN Domain name. This parameter is required if you set TOPOLOGY=2.
COMPUTERNAME Name of the server that is hosting the SDN Manager. This parameter is required is
you set TOPOLOGY=2. The parameter is used to create a machine account in the
SQL Server database.
DATABASE_SERVER (e.g. DATABASE_SERVER=ContosoBE\Monitoring) specifies the SQL Server as well
as SQL instance, if appropriate.
DATABASE Name of the database on the SQL Server. The default name is "SDNManager22".
SQL_ADMIN_USER Account to use to create and setup the database. Do not specify when using SQL
integrated security with the current user running the setup.
SQL_ADMIN_PASSWO
RD
Password for the SQL admin account if SQL Authentication is used.
SQLUSER Account that is used by the SDN Manager to access the SDN Manager database.
SQLPASSWORD Password for the SQL account if SQL Authentication is used
USE_SQL_AUTH Describes the authentication mode that should be used during run time.
Value Description
0 Use integrated security
based on the machine
account.
1 Use the SQL credentials
provided.
July 2015 Skype for Business SDN Interface 2.2 p. 52
Parameter Description
SETUPDB Setting this parameter to 1 causes the installer to create the SDN ManagerSDN
Manager database. This parameter must be set (SETUPDB=1) for the first
installation when a database for call state or settings should be created.
REDIS_CONNECTSTRI
NG
The connect string to access a REDIS cache server. For example, to connect to
Azure the connect string might appear as
follows:myname.redis.cache.windows.net,ssl=true,password=VeryLongKeyCopied
FromPortal
For more information, see How to Use Azure Redis Cache
REDIS_PASSWORD Password to access the REDIS server. For Microsoft Azure Redis Cache, enter the
key provided on the Azure Management panel.
Note
Most settings provided during the setup can be modified after installation by editing the
SDNManager.exe.config file
Example unattended installations of the SDN Manager
Database install
msiexec /i SkypeForBusinessSDNManager.msi /quiet /lv* install.log LOGPATH=c:\LogDir TOPOLOGY=2 DATABASE_SERVER=mysqlserver DEBUGLOGGING=All SETUPDB=1 SQL_ADMIN_USER=sa SQL_ADMIN_PASSWORD=mypwd SQLUSER=simpleuser SQLPASSWORD=simplepassword DOMAIN=contoso COMPUTERNAME=thiscomputername USE_SQL_AUTH=1 DATABASE_NAME=sdndb
REDIS install
msiexec /i SkypeForBusinessSDNManager.msi /quiet /lv* install.log LOGPATH=c:\LogDir TOPOLOGY=3 REDIS_CONNECTSTRING=redis.contoso.com;ssl=true REDIS_PASSWORD=myredispwd
Unattended installation of the Dialog Listener
Following are unattended installation parameters for the Dialog Listener.
Parameter Description
INSTALLDIR Specifies the installation destination for the binaries.
CONFIGURATIONURI URI to locate the SDN Manager or pool that serves
the configuration service http://localhost:9333/DL.
ACCOUNTYPE Type of account to run Dialog Listener: "0" for
Network Service account and "1" for a user account.
APPLIED_SERVICE_USERNAME Domain/username for the Dialog Listener Windows
Service account.
July 2015 Skype for Business SDN Interface 2.2 p. 53
Parameter Description
APPLIED_SERVICE_PASSWORD Password for the Dialog Listener Windows Service
account.
THUMBPRINT Thumbprint of the client certificate needed to
contact the SDN Manager.
USE_SRV_RECORD_BOOL If true, then instead of using the configuration
service URI, retrieve the location from the DNS SRV
record.
SKIPREGISTRATION During the installation, a script is executed to
register the Dialog Listener with the Skype for
Business Server. To skip executing this script, set
SKIPREGISTRATION=1.
You must manually perform this registration and
start the Dialog Listener Windows service. An
example of this script can be found under
C:\ProgramData\Microsoft\Skype for Business
Dialog Listener\Register.ps1.
Note
Most settings provided during the setup can be modified after the installation by editing the
DialogListener.exe.config file
Note
When DNS Service Location (SRV) records are used by the Dialog Listener, any configured value
for the parameter CONFIGURATIONURI is ignored. Instead, the URI specified in the SRV record is
used.
An installation using the SKIPREGISTRATION=1 option offers an interesting alternative installation. This
script executed has three major purposes: Perform the registration of Skype for Business SDN Interface
with Skype for Business, so that it forwards request and response messages to the Dialog Listener service,
attempt to activate sending of Incall Quality messages (if available), and to start the service itself.
The registration and activation are only required once for the entire pool and the Dialog Listener Windows
service can be started manually as well as using several other options. As the script also uses some
lengthy verifications whether the Skype for Business Server is ready and set up correctly, this step could
be skipped, speeding up deployment and specifically upgrade processes for experienced administrators.
Doing an unattended uninstall
To do an unattended uninstall, do the following:
For SDN Manager: In the command line, type C:\Windows\System32\msiexec.exe /X{60A580F2-
7B7A-4665-9696-07BE5D9AF15F}
July 2015 Skype for Business SDN Interface 2.2 p. 54
For Dialog Listener: In the command line, type C:\Windows\System32\msiexec.exe /X{640967B9-
CD8D-455F-BAB1-463EBFC51C38}
Note
The product code for the Dialog Listener has changed since the previous release.
Additional resources
Installing the SDN Manager
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 55
Upgrading from previous version of the SDN
Interface
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The Skype for Business SDN Interface, version 2.2, supports features to help ensure a smooth upgrade
from versions 2.1 and 2.1.1 in a wide variety of scenarios, including the following:
Installation of the Dialog Listener does not require a restart or downtime of any Skype for Business
Server instance. Regardless, we recommend that you perform upgrades only during off-hours and
with minimal load on all components.
The Dialog Listener, version 2.2, may be installed on a front-end server that already has any previous
version installed. With the exception of the DNS SRV record, both installations can be run
independently.
The SDN Manager, version 2.2, allows you to configure the output schema to be "C" which means the
messages generated should be indistinguishable from what the SDN Manager 2.1.1 produced.
SDN Manager 2.2 can interoperate with Dialog Listener version 2.1 and 2.1.1. No other combination
or version is supported.
Note
It is recommended that you perform the upgrade in multiple steps; that is, first upgrade to 2.1.1
and then to version 2.2.
Upgrading to version 2.2 from version 2.1 or 2.1.1
When upgrading to version 2.2 from versions 2.1 or 2.1.1, use the following guidelines.
The data structure in the SQL Server data store is different and the database used for 2.1/2.1.1 cannot
be used for 2.2. You must set up a new database. In 2.2 you can choose a name for the database (the
default is "SDNManager22").
Upgrade the SDN Manager component first.
During the upgrade, observe the application logs and PerfMon for performance details to ensure that
the remaining system is able to handle the load.
When installing the Dialog Listener 2.2, executing the registration script is not necessary every time
and therefore using the msiexec’s command line option, SKIPREGISTRATION=1, is recommended. In
this case, the service needs to be started manually. (For more information, see Unattended installation
of SDN Manager and Dialog Listener.) You only need to perform the registration once for each pool
for 2.2, but the registration information has changed from 2.1.1.
You should expect a higher rate of errors during the transition to the new version due to missing
information about ongoing calls in the new system.
After the upgrade, you need to manually remove the registration of the previous version in the Skype
for Business Management Console.
July 2015 Skype for Business SDN Interface 2.2 p. 56
If you want to upgrade from a version of the Skype for Business SDN API that is earlier than 2.1, you
must first upgrade to 2.1 or 2.1.1 before upgrading to 2.2. Alternatively, you can simply uninstall the
previous version and reinstall 2.2.
Additional resources Installing the SDN Manager
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 57
Configuring Skype for Business SDN Interface
2.2
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Skype for Business SDN Interface 2.2 supports three methods for configuring its components:
Default configuration provided during the setup.
Direct editing of the configuration files, DialogListener.exe.config and SDNManager.exe.config.
By using the SDNManager.exe command line interface.
Most configuration settings provided during the setup are stored in each component's respective
configuration file. In addition, the configuration files allow you to set more configuration settings, as well
as to configure logging behavior. The remaining configuration settings can be edited using the command
line interface.
In this section Configuring SDN Interface logging options
Configuring SDN Interface Dialog Listener
Configuring SDN Interface SDN Manager
Configuring the SDN manager by editing the config file
Configuring SDN Interface using the command prompt
Additional resources Overview of Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 58
Configuring SDN Interface logging options
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Configure logging options
Logging configuration options for the Dialog Listener
Logging configuration options for the SDN Manager
Additional resources
Skype for Business SDN Interface version 2.2 uses the logging infrastructure of the Enterprise Libraries 5.0.
You can inspect and modify the configuration file by using the Microsoft Enterprise Library Configuration
Tool. For a complete documentation on the options and capabilities of the logging infrastructure, see
Configuring the Logging Application Block.
The Enterprise Libraries also includes a configuration tool that provides an intuitive graphical user
interface for adding and changing settings for the logging configuration. You can use this tool to
configure the Dialog Listener logging options. This article explains how to configure the logging options
in the DialogListener.exe.config and SDNManager.exe.config files directly.
Configure logging options
To manually set the most common logging configurations, do the following:
1. Open the DialogListener.exe.config or SDNManager.exe.config file, as appropriate, using a text editor
of choice.
2. Search for the <loggingConfiguration> section and make appropriate changes to entries under the
<listeners>, <formatters> and <categorySource> elements.
The <listeners> element specifies the log output, including the log file location and file
rotation policies. They refer to a particular formatter to be used. Each <add> element entry
under <listeners> specifies a type of logging. You can add a new <add> entry to enable a
specified type of logging, remove an <add> entry to disable a specified type of logging, or
change an existing <add> entry to a different type of logging.
The <formatters> element specifies the style for each log entry.
The <categorySource> element specifiesDialog Listener and SDN Manager bindings to
listener log channels. The switchValue attribute can have a value of either Off or All,
indicating whether the log channel is active. For a more thorough investigation of issues, you
must start the debug channel by setting the switchValue to All, as shown in the example
below.
July 2015 Skype for Business SDN Interface 2.2 p. 59
The default configuration ensures that at most ten log files per type are written. Consequently, at most
only the last ten log files are available for each logging type.
Note
Modifying the log settings in the config files does NOT require a restart of the service. These
changes are picked up automatically by the Enterprise Logging functionality.
The examples illustrated updates to the logging configuration files. The first example shows setting the
switchValue to Off. The second example shows modifying the logging file path for the LNEAppLog
logging type.
XML
<add switchValue="All" name="Debug"> <listeners> <add name="LNEAppLog" /> </listeners> </add>
XML
<listeners> <add name="LNEAppLog" type="…" listenerDataType="…" fileName="C:\logdir\DialogListener.log" footer="" formatter="LNEDetailFormatter" header="" rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="100000" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"/> </listeners>
Logging conf iguration options for the Dialog Listener
The Dialog Listener default configuration supports the following types of logging:
Logging type Description
LNEAppLog Logs the application execution states, including Info
and Error types of data as well as adding activated
debug channel. The output is recorded in the
DialogListener.log file. This file will not contain any
personal identifying information.
AllDataLog Logs all input data, including session initiation (SIP)
messages with session description (SDP) headers,
and raw quality of experience reports.
July 2015 Skype for Business SDN Interface 2.2 p. 60
Logging type Description
QoEInputDataLog Logs the quality of experience raw data from the
Skype for Business Server.
DialogDataLog Logs the dialog data, including SIP messages and
SDP headers.
Logging conf iguration options for the SDN Manager
The SDN Manager default configuration supports the following types of logging:
Logging type Description
LNEAppLog Logs the application execution states, including Info
and Error types of data as well as adding activated
debug channel. The output is recorded in the
SDNManager.log file. This file will not contain any
personal identifying information.
AllOutputLog Logs all output data sent to subscribers. The output
is recorded in the AllOutputManager.log file
AllInputLog Logs all input data received from Dialog Listeners.
This data can be replayed and the output is
recorded in the AllInputManager.log file.
ErrorMsgLog Logs individual messages about processing issues
and the respective error messages for further
investigation. The output is recorded in the
ErrorMsgManager.log file.
LogOutputLog Logs messages received at the Message Receiver
Log Service. The output is recorded in the
LogOutput.log file. For more information, see
Debugging the SDN Interface SDN Manager.
QoEInputDataLog Logs the quality of experience raw data of the
Skype for Business Server received from Dialog
Listeners. The output is recorded in the
QoEInputManager.log file.
QoEDataLog Logs the raw QoE reports. The output is recorded in
the QoEDataManager.log file.
DialogDataLog Logs the dialog data, including SIP messages,
received from the Dialog Listeners. The output is
recorded in the DialogData.log file.
July 2015 Skype for Business SDN Interface 2.2 p. 61
Caution
Both the DialogListener.log and SDNManager.log files do not contain person-identifiable
information, even in debug mode; however, the other log files might contain un-obfuscated user
aliases, names and telephone numbers. Activate these logs with caution.
Additional resources Configuring Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 62
Configuring SDN Interface Dialog Listener
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In general, the Skype for Business Dialog Listener component obtains its configuration settings using two
mechanisms:
From the DialogListener.exe.config file. These settings have the primary responsibility for locating the
applicable configuration service.
From configuration settings provisioned by the configuration service. These settings how the Dialog
Listener receives, processes and forwards data from the Skype for Business Server front end as well as
how the requests are processed by the SDN Manager.
This article explains how to configure Skype for Business Dialog Listener by editing the
DialogListener.exe.config file. The configuration file is located in the Dialog Listener installation directory,
whose default directory location is C:\Program Files\Microsoft Skype for Business Server\Microsoft Skype
for Business DialogListener\.
Editing the DialogListener.exe.conf ig f ile
You can modify some of the configuration options for the Dialog Listener by directly editing the
DialogListener.exe.config file. These options allow the Dialog Listener to locate the appropriate
configuration service so it can retrieve additional configuration settings. The configurations service is part
of the SDN Manager.
These additional settings that you need to set re execution options, which cannot be configured using the
configuration service, but must be modified manually in the configuration file for each Dialog Listener
instance.
To manually edit Dialog Listener execution options
1. Navigate to the Dialog Listener installation directory, which is located by default at C:\Program
Files\Microsoft Skype for Business Server\Microsoft Skype for Business DialogListener\
2. Open the DialogListener.exe.config file with a text editor of choice.
3. Locate the <appSettings> section and edit the relevant entries as appropriate.
The following example shows an excerpt of the Dialog Listener configuration file that contains the Dialog
Listener execution options:
XML
<appSettings> <add key="configurationserviceuri" value="http://localhost:9333/Settings" /> <add key="configurationcertificate" value="" /> <!-- thumbprint of a client certificate to use to authenticate the DL with the SM --> <add key="configurationrefresh" value="00:01:00" /> <!-- Period for refreshing the settings from the configuration service --> <add key="checkdns" value="false" /> <!-- use a URI provided by the DNS
July 2015 Skype for Business SDN Interface 2.2 p. 63
SRV record for locating the configuration service --> <add key="msplidentifier" value="SDN" /> </appSettings>
In the XML code example, the configurationserviceuri key value specifies the URI to the appropriate
configuration service. For HTTP, the default port number is 9333; for HTTPS the default port number is
9332.
The configurationrefresh key value specifies the time span between which the Dialog Listener checks for
updates to its settings. In the example, this value is set to one minute (00.01:00).
The configurationcertificate key value contains the thumbprint of an installed client certificate for
authenticating the current Dialog Listener to the SDN Manager if HTTPS is used and mutual
authentication is required.
The checkdns key value is used to override the configurationserviceuri key. If it is set to true, the Dialog
Listener is forced to use the URI defined in the DNS SRV record to locate the SDN Manager. For more
information, see Setting up a DNS service location record.
The msplidentifier key value allows you to change the identifier that is used to register with the Skype for
Business Server.
Configuring Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
Setting up a DNS service location record
July 2015 Skype for Business SDN Interface 2.2 p. 64
Configuring SDN Interface SDN Manager
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
SDN Manager can run in three different operational modes: cache, database, and Redis. Which of these
three the SDN Manager uses depends on how it stores and shares the state of call streams, as well as its
configurations settings.
Cache mode. When in cache mode, stream state is kept only in local memory and is not shared
among SDN Manager instances. You can only use this option if you run the SDN Manager as a
singleton, or in a primary-secondary failover configuration. When using this option, ensure that there
is enough memory to hold call state data for all active calls during peak times.
Database mode. In the database mode, stream state is stored in a SQL Server database. All of the
configuration settings are shared among all SDN Manager instances that are connected to the same
database.
Redis mode. In Redis mode, the stream state is stored in a Redis in-memory cache system.
When the SDN Manager is asked for settings through its configuration service, it uses the same data store
to maintain these settings. In Cache mode, settings are persisted to prevent you from needing to
reconfigure them after a service restart.
Operational modes of the SDN Manager
The SDN Manager operational mode you select depends on how the Skype for Business SDN Interface is
deployed. For more information about the deployment scenarios, see Deploying Skype for Business SDN
Interface.
Typically, the SDN Manager installation determines all the necessary configuration settings, such as those
for selecting the deployment mode (mode), connecting to the database (statedbserver, statedbusername,
statedbpassword), or connecting to Redis. To change these settings, you must edit them directly in the
configuration file. After the configuration file is edited, you must restart the SDN Manager service for the
changes to take effect. Any further changes to the configuration settings must thereafter be completed by
using the command line interface.
You can also configure SDN Manager to maintain logging information to assist with debugging. For
information about setting or updating the logging configuration, see Configuring SDN Interface logging
options.
Configuring Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 65
Configuring the SDN manager by editing the
config f ile
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
You can edit the SDNManager.exe.config file to change configuration settings for the SDN Manager. The
SDNManager.exe.config file is located in the default installation directory, where you will also find
SDNManager.exe.
The following example shows how to edit the <appSettings> section in the configuration file:
XML
<appSettings> <add key="configurationserviceuri" value="http://localhost:9333/Settings" /> <add key="configurationrefresh" value="00:00:30" /> <!-- LSM: Period for refreshing the settings from the store --> <add key="configurationcertificate" value="" /> <!-- thumbprint of a client certificate to use to authenticate the SDNManager with the configuration service --> <add key="checkdns" value="false" /> <!-- Decide to choose the DNS record to locate the configuration service --> <add key="mode" value="Redis" /> <!-- Cache, Database, Redis - mode how to store call states and settings --> <add key="statedbserver" value="mySQLServer" /> <!-- Database server and credential for accessing call state and settings --> <add key="statedbname" value="sdnmanager22" /> <!-- Database name --> <add key="statedbusername" value="" /> <!-- empty for integrated security --> <add key="statedbpassword" value="" /> <add key="redisconnectstring" value="poolSdn.redis.cache.windows.net,ssl=true" /> <!-- Connect string to redis service --> <add key="redispassword" value="123456789012345678901234567890=" /> <!-- Password string to redis service --> <add key="Identifier" value="MySDN" /> <!-- Differentiator for LSM configurations --> </appSettings>
In the example code, the Mode key value describes the operational mode of the SDN Manager (cache,
database, or Redis). All SDN Manager instances in a SDN Manager pool must have the same setting. The
SDN Manager itself uses the configuration service to periodically retrieve updates to the configuration
settings. Usually, it will use its own configuration service, but the configurationserviceuri key value lets
you point to another SDN Manager to maintain the configuration data.
The configurationrefresh key value indicates how often the SDN Manager updates changes in its data
store. In the example, this value is set to every 30 seconds (00:00:30) The configurationcertificate key
value is used to authenticate the SDN Manager to the configuration service.
The checkdns key value is a Boolean and, if true, indicates there is an alternative to using a DNS SRV
record to locate the configuration service.
July 2015 Skype for Business SDN Interface 2.2 p. 66
The StateDbServer, StateDbName, StateDbUserName, and StateDbPassword key values describe the
connection to the shared SDN Manager database. If no user name is specified, integrated security is used.
The statedbserver value can be an SQL Server database name (other than "localhost") or an SQL Server
instance name.
Similarly, the RedisConnectString and RedisPassword key values are used to connect a Redis cache
service. The Identifier key value allows you to distinguish between different SDN Manager instances in a
pool using the same Redis data store.
Important
Changes to the configuration file will take effect only after restarting the service.
Configuring Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 67
Configuring SDN Interface using the
command prompt Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Command-line commands
Example commands for viewing settings
SDN manager configuration settings
Dialog Listener configuration settings
Subscriber configuration settings
Most settings used by the Dialog Listener and SDN Manager are kept in the central data store (local
cache, SQL Server database, or Redis cache) that is managed by the configuration service. These settings
can be accessed and modified through a command line tool (SDNManager.exe). SDNManager.exe can
also get and set limits for quality metrics of call streams from the QoEMetrics database.
Note
The command line tool must connect to running Connection Service/SDN Manager (or SDN
Manager pool). Using a local copy of the SDNManager.exe allows you to connect to any
configuration service, but the default instance is the one used by the installation itself.
Configuration settings are divided into three groups:
Manager. (m)anager settings are used by the SDN Manager component.
Listener. (l)istener settings are used by the Dialog Listener component installed on a specified pool
of Skype for Business Server front end machines. When a Dialog Listener installed on a new pool
connects to the configuration service (which is running on an SDN Manager) a new group of Dialog
Listener settings is generated for the fully qualified domain name of the Skype for Business Server
front end pool.
Subscriber. (s)ubscriber settings are used for a specified receiver of the media stream, call, and
quality messages. You need to manually create a settings group for each receiver.
Note
Listener and manager settings are populated by default, but subscriber settings are not set until a
subscriber is created. Also note that only one manager setting can be used.
This article contains the following section:
Command-line commands
Example commands for viewing settings
SDN manager configuration settings
Dialog Listener configuration settings
Subscriber configuration settings
July 2015 Skype for Business SDN Interface 2.2 p. 68
Command-line commands
The command-line executable, SDNManager.exe, is located in the SDN Manager installation directory,
which by default is located at C:\Program Files\Microsoft Skype for Business Server\Microsoft Skype for
Business SDN Manager. The command-line interface provides three categories of commands:
CRUD (create, read, update, delete) operation commands on listener, subscriber, and manager
settings.
A command to download and sync threshold limit settings from the QoEMetrics database.
Replay recorded log commands, which are debugging and test operations. For more information, see
Debugging the SDN Interface SDN Manager.
Each command allows you to explicitly specify the URI and, if necessary, client certificate thumbprint to
connect to the configuration service to update settings or to the SDN Manager service to execute a replay
file.
To access help on the available commands, enter the following at the command prompt: C:\ >
SDNManager.exe /?. The command produces the following output:
Skype for Business SDN Manager 2.2, Build Version: 6.0.9319.xx Copyright (C) Microsoft Corporation. All rights reserved. /? Help
/u(pload) m(anager) filename [http(s)://site] [thumbprint]
/u(pload) s(ubscriber) subscriberid filename [http(s)://site] [thumbprint]
/u(pload) l(istener) dialoglistenerid filename [http(s)://site] [thumbprint]
.... Upload & store
configuration into the datastore
through the SDN Manager service referred to by the url or the
local service
using the client certificate thumbprint.
/d(ownload) m(anager) [filename] [http(s)://site/Settings] [thumbprint]
/d(ownload) s(ubscriber) [subscriberid] [filename] [http(s)://site]
[thumbprint]
/d(ownload) l(istener) [dialoglistenerid] [filename] [http(s)://site]
[thumbprint]
.... Download configuration from the store into a local file from
the
SDN Manager service (referred to by the url or the local
service)
using the client certificate thumbprint.
/p(arameter) m(anager) name=value [http(s)://site] [thumbprint]
/p(arameter) s(ubscriber) subscriberid name=value [http(s)://site]
[thumbprint]
/p(arameter) l(istener) dialoglistenerid name=value [http(s)://site]
[thumbprint]
.... Set an individual
configuration value in the SDN Manager service (referred to
by the url
July 2015 Skype for Business SDN Interface 2.2 p. 69
or the local service) using the client certificate
thumbprint.
/r(emove) s(ubscriber) subscriberid [http(s)://site] [thumbprint]
/r(emove) l(istener) dialoglistenerid [http(s)://site] [thumbprint]
.... Remove or reset a settings group
in the SDN Manager service (referred to by the url
or the local service) using the client certificate
thumbprint.
/e filename [http(s)://site] [thumbprint]
.... Send content of the file as messages to the
SDN Manager service (referred to by the url or the local
service)
using the client certificate thumbprint
and process these messages.
/et filename [http(s)://site] [thumbprint]
.... Send content of file as messages to the
SDN Manager service (referred to by the url or the local
service)
using the client certificate thumbprint
and process these messages with the given timing preserved.
/q dbserver [user] [password] [http(s)://site] [thumbprint]
.... Retrieve threshold values from a QoE database with the
specified user
name and password and store them in the SDN Manager service
(referred to by the url or the local service)
using the client certificate thumbprint.
[] ... optional parameter
Example for SDNManager uris: http://server:9333/Settings or
http://localhost:9333/DL
Example commands for viewing settings
Use the following example commands to view settings.
Sdnmanager.exe d l
Displays all configured Dialog Listener settings. You will get one record after a Dialog Listener has
started up and requested settings.
Sdnmanager.exe d s
Displays all configured subscriber settings.
Sdnmanager.exe p s mynms submituri=http://my_nms/sdn
July 2015 Skype for Business SDN Interface 2.2 p. 70
Modifies the submituri setting for my_nms or creates new settings group for my_nms if one does
not already exist. Similarly, you can then modify other settings to adjust the output behavior
(signaling, quality, sendrawsdp, and so forth).
Sdnmanager.exe d s mynms mysettings.xml
https://sdnhost:9333/Settings 23991123649b4cfcb48ccf14f2d08601221caa2c
Connects to a configuration service running on sdnpool using https; a client certificate selected using
its thumbprint is used to authenticate the request. The request downloads the mynms subscriber
settings and saves them in the mysettings.xml file.
Sdnmanager.exe u s mynms mysettings.xml
Upload settings saved using the previous commands.
For a complete example of the output, see Appendix to Skype for Business SDN Interface. In addition, you
can get all the threshold settings from the Skype for Business Server QoEMetrics database. The SDN
Manager uses the downloaded thresholds to update the corresponding manager settings, as shown here
C:\>SDNManager.exe /q mySfB_BackEnd\monitoring. In the example, the fragment
mySfB_BackEnd\monitoring represents the SQL Server instance hosting the Skype for Business Server
QoEMetrics database. The command updates the threshold limits used to determine stream quality.
July 2015 Skype for Business SDN Interface 2.2 p. 71
SDN manager conf iguration settings
The manager settings group provides settings for the general operation of the SDN Manager. An
example of the output of the manager settings can be found in the Appendix to Skype for Business SDN
Interface.
Setting Description
calltimeout Maximum time expected for a call, after the call is
assumed to be terminated and cleaned up.
invitetimeout Maximum time expected for ringing, before either
an error should be processed or the user should
have picked up the call.
qoetimeout Maximum time to wait for the second raw QoE
report before forwarding a merged report to the
subscriber(s).
endedtimeout Maximum time to wait after an Ended message is
received before cleaning up the call if no raw QoE
report is received.
maxcachesize Maximum number of call states cached in the
internal cache when in cache mode.
timeouthandlerperiod Time interval between checks for call timeouts in
the data store.
hidepii Set to true (the default value) to obfuscate or hide
personal identifiable information (PII) in messages.
Set to false to see PII, in particular a full SIP UI that
includes the account name and telephone numbers.
In addition to these configuration settings, the configuration file also contains a list of threshold values
used by SDN Manager to determine stream quality. These threshold values are used for determining call
quality.
There are two threshold values for each metric: Optimal and Acceptable. The values define the three
quality bands for each modality. For a call stream to have the Good quality, all the quality metrics must be
below (better than) the Optimal level. A call is of Poor quality when all the metrics are below the
Acceptable threshold and one or more of them are above the Optimal threshold. A call is Bad when one
or more of the metrics are above (worse than) the Acceptable threshold.
You can modify these threshold settings by using the SDNManager.exe /p the /q command. The /p
command updates the value individually and the /q command downloads and updates all of the
threshold settings from the Skype for Business Server QoEMetrics database.
July 2015 Skype for Business SDN Interface 2.2 p. 72
Dialog Listener conf iguration settings
The listener settings group contains settings for the Dialog Listener running on a pool of Skype for
Business front-end servers. Each server pool connected to the configuration service has its own settings
group; however, all server front-ends in the pool use the same settings. Each pool is identified by its pool
fully qualified domain name. You can find examples of output for the listener settings in the Appendix to
Skype for Business SDN Interface.
Setting Description
submituri Specifies the URI to the SDN Manager instance or
pool.
alternativeuri Specifies an alternative SDN Manager or disaster
failover SDN Manager pool.
clientcertificateid If a HTTPS connection is used to connect with the
SDN Manager instance or pool, this parameter
contains the thumbprint of the client certificate to
use to authenticate the requests to the server.
submitqueuelen Sets the maximum unanswered and waiting
messages to the SDN Manager. Change this value
only if network conditions require a longer queue
length caused by fluctuating delays in message
deliveries to the SDN Manager instance or pool.
maxretry Specifies the maximum number of retransmission
attempts before a message is dropped.
maxdelaylimit Specifies the number of transmission failures before
slowing down the transmission of call and quality
messages.
maxbackoff Specifies the maximum number of seconds to delay
message delivery upon transmission errors. The
delay starts at one second and increments another
second with every failed delivery up to the specified
maxbackoff setting.
maxopen Specifies the maximum number of messages sent
concurrently.
maxretrybeforefailover Specifies the maximum number of message
transmission failures before attempting to fail over
to the alternative SDN Manager instance or pool, if
configured.
July 2015 Skype for Business SDN Interface 2.2 p. 73
Subscriber conf iguration settings
The subscriber settings group describes the behavior that each subscriber expects. You can see an
example of output from subscriber settings in the Appendix to Skype for Business SDN Interface.
Setting Description
submituri Specifies the URI of the receiver (network controller,
network management system, or ITPro tool) that
receives media stream and stream quality data.
outputschema Specifies the format of the output messages.
Choose "C" for generating the same message
structure as in Lync SDN Interface 2.1 and 2.1.1.
Select "D" (the default) for the new expanded
structure introduced with Skype for Business SDN
Interface 2.2. Both schemas are documented in
Skype for Business SDN Interface schema reference.
clientcertificateid If a HTTPS connection is used to connect to the
recipients, this parameter contains the thumbprint
of the client certificate for authenticating requests
to the server.
domainfilters A comma-separated list of partial domain names for
users. This subscriber receives call and quality
messages for users that are in the specified
domains. If no domain name is specified, no
messages are filtered.
subnetfilters A comma-separated list of subnets (IP4 or IPv6).
The subscriber receives data about calls originating
or being received in one of these subnets. To
specify a subnet, use the format: 196.168.0.0/16 or
2001:4898::dc76:194f%32.
tenantfilters A comma-separated list of TenantIds as used in
Skype for Business Online, for which the subscriber
receives call and stream quality data.
trunkfilters A comma-separated list of SIP trunk names defined
in Skype for Business, for which the subscriber
receives call and stream quality data.
quality Boolean that specifies whether to send the
subscriber QualityUpdate and InCallQuality
messages. True to send messages; False if no
messages are to be sent.
July 2015 Skype for Business SDN Interface 2.2 p. 74
Setting Description
signaling Boolean that specifies whether to send <Invite>,
<Error> and <Bye> messages to the subscriber.
True to send messages.
sendrawsdp Set value to True to forward SDP information to the
subscriber (using the <RawSDP> tag). Set to False
to prevent sending raw SDP content to this
subscriber.
maxretry Specifies the maximum number of retransmission
attempts before a message is dropped.
maxdelaylimit Specifies the number of transmission failures before
slowing down the transmission of call and quality
messages.
maxbackoff Specifies the maximum number of seconds to delay
message delivery upon transmission errors. The
delay starts at one second and increments another
second with every failed delivery up to the specified
maxbackoff setting.
maxopen Specifies the maximum number of messages sent
concurrently to the subscriber.
submitqueuelen Specifies the maximum unanswered and waiting
messages to send to this recipient. Change this
value only if network conditions require a longer
queue length caused by fluctuating delays in
messages delivered to the subscriber.
Configuring Skype for Business SDN Interface 2.2
Skype for Business SDN Interface schema reference
July 2015 Skype for Business SDN Interface 2.2 p. 75
Running and debugging Skype for Business
SDN Interface Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
This section describes how to run, log, and debug the Skype for Business SDN Interface.
In this article
Running the SDN Interface Dialog Listener
Running the SDN Interface SDN Manager
Debugging the SDN Interface Dialog Listener
Debugging the SDN Interface SDN Manager
Monitoring the SDN Manager and Dialog Listener
SDN Manager and Dialog Listener performance counters
Uninstalling the SDN Interface components
Configuring the Skype for Business Client
Using SIP Obfuscator for the SDN Interface
July 2015 Skype for Business SDN Interface 2.2 p. 76
Running the SDN Interface Dialog Listener Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
This section describes how to run the Dialog Listener as a Windows service and console application.
The Dialog Listener setup wizards install, configure, and start the Dialog Listener as a Windows service.
With the default configuration, the service is set to start automatically. You can restart it after the
configuration is changed or when the service fails. You can use the Windows Services panel to verify the
service and reconfigure it. The Windows Services panel lets you change the credentials that you use to run
the service. These credentials are used to access the Skype for Business, as long as the service is run from
an account that is in the RTC Server Applications group and granted the logon as service rights in the local
Group Policy.
In general, the Dialog Listener executes as Windows service. In some case, particularly for debugging and
for replay, you can run the Dialog Listener as a console application from the command prompt.
Note
Unlike the SDN Manager, you cannot run the service and the command line tool at the same time.
Running Dialog Listener as a Windows service
1. Start the Windows Services application as shown in Figure 1.
2. Locate the Dialog Listener entry.
Figure 1. The Windows services window
3. If Dialog Listener is not already started, right-click the entry to select the Properties menu item. Click
Start to restart the service, then click OK after the service is restarted.
July 2015 Skype for Business SDN Interface 2.2 p. 77
Figure 2. Dialog listener properties dialog box
If the service does not start, you may need different user credentials. The user must also be in the
local RTC Server Applications security group. You can change the user credentials to run the service by
using the Dialog Listener Properties dialog box as shown in Figure 2.
Running the Dialog Listener as a console application
To run the Dialog Listener as a console application, launch DialogListener.exe without any parameter; this
starts the service as a console application.
Running the Dialog Listener as a console application gives you more feedback from the Dialog Listener
service, in particular around issues related to startup and connecting to the Skype for Business Server. It
also helps you identify credential-related issues pertaining to the Dialog Listener having appropriate
access rights.
July 2015 Skype for Business SDN Interface 2.2 p. 78
Running the SDN Interface SDN Manager Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
This section describes how to run Skype for Business SDN Manager as a Windows service and as a console
application.
The SDN Manager setup wizard will install, configure, and start SDN Manager service. By default, the SDN
Manager service is configured to run automatically. However, you may need to restart the service after
changing the settings or if the service fails.
Open the Windows Services utility to determine whether the service is running and, if not, reconfigure and
start it. The Windows Services panel also let you change the credentials that are used to run the service.
In general, you run the SDN Manager as a Windows service. In some cases, especially for debugging, you
may want to run the SDN Manager as a console application.
Running the SDN Manager as a Windows service
1. Start Windows Services utility.
2. Search for SDN Manager entry.
3. If SDN Manager is not already started, right-click the entry to select the Properties menu item. Click
Start to restart the service. Click OK after the service is restarted.
July 2015 Skype for Business SDN Interface 2.2 p. 79
Figure 1. SDN Manager properties dialog box
Note
You can control the service using the windows net or sc commands, for example, sc start
"Skype for Business SDN Manager".
Running the SDN Manager as console application
Start SDNManager.exe without any parameter and it will start the SDN Manager service in a console
application.
Note
If you specify any command line parameter, SDN Manager will not start as a service but instead
attempts to execute specified command line arguments in an active SDN Manager instance or
pool.
July 2015 Skype for Business SDN Interface 2.2 p. 80
Debugging the SDN Interface Dialog Listener Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Troubleshooting installation of Dialog Listener
DialogListener.exe is a Skype for Business Server application and uses SPL (MSPL) to connect to Skype for
Business Server. Therefore, it must be registered with the Skype for Business Server. When an installation
of the Dialog Listener fails, it may be due to the Dialog Listener not being properly registered. To
troubleshoot, verify that the application is registered by running the Get-CsServerApplication cmdlet from
the Skype for Business Server Management Shell.
Start the Skype for Business Server Management Shell.
Issue the following cmdlet in the Skype for Business Server Management Shell window:
Get-CsServerApplication
Verify that the following entry (or a similar one) is displayed as the cmdlet the output:
If such an entry is not shown in the output, ensure that you are running in an administrator account
that is also member of the RTC Server Applications local group before you install Dialog Listener. You
may manually configure a registration similar to the one shown.
Check whether the current Skype for Business front-end server is synchronized by executing the Get-
CsManagementStoreReplicationStatus command. This operation may take several minutes and may
time out if the synchronization fails.
Check whether QoE reporting is activated for this particular Skype for Business Server pool by using
the Get-CsQoEConfiguration command.
It is possible that the Dialog Listener service does not start due to incompatible or incorrect
credentials. You can verify and update the credentials by starting the Dialog Listener service at the
command prompt.
July 2015 Skype for Business SDN Interface 2.2 p. 81
An example of the registration script named "Register.ps1" can be found in the folder C:\Program
Files\Microsoft Skype for Business Server\Microsoft Skype for Business Dialog Listener.
Verifying operations of Dialog Listener service
To confirm that the installation is successful, do the following:
1. Verify that the DialogListener.exe service has started by opening Windows Task Manager.
2. After running the Setup, you can confirm that the installation is successful by checking the
Diagnostics.log file and verifying that there are no errors reported in the log file.
July 2015 Skype for Business SDN Interface 2.2 p. 82
Debugging the SDN Interface SDN Manager Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Activating WCF service logging
Using the Message Receiver log service
Replaying logs
The Skype for Business SDN Interface provides several advanced features to improve security and to help
you debug configuration issues.
Activating WCF service logging
The SDN Manager supports advanced debugging by using the Windows Communication Foundation
(WCF). Instead of detailing how to use or change this, we provide an example as an illustration as follows.
For complete information on this subject, see the WCF documentation. By uncommenting and
customizing the section that follows, which is an excerpt from an SDNManager.exe.config file, you can
receive low level debugging logs from the WCF service.
XML
<!--<system.diagnostics> <trace autoflush="true" indentsize="4"> <listeners> <add name="file" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/> </listeners> </trace> <sources> <source name="System.Net"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.Net.HttpListener"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.Net.Sockets"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.Net.Cache"> <listeners> <add name="System.Net"/> </listeners> </source> <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
July 2015 Skype for Business SDN Interface 2.2 p. 83
<listeners> <add name="sdt" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "c:\logdir\log.e2e" /> </listeners> </source> </sources> <switches> <add name="System.Net" value="Verbose"/> <add name="System.Net.Sockets" value="Verbose"/> <add name="System.Net.Cache" value="Verbose"/> <add name="System.Net.HttpListener" value="Verbose" /> </switches> <sharedListeners> <add name="System.Net" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\logdir\Tracing.log" traceOutputOptions = "DateTime" /> </sharedListeners> </system.diagnostics>-->
Using the Message Receiver log service
The SDN Manager contains a simple REST web service component that can act as a subscriber and receive
messages and log them for later analysis. You can use this built-in service to simulate a SDN Interface-
aware network controller or other subscriber.
The log service can be started using both HTTP and HTTPS and will receive random XML messages and to
log them to the "LogOutput.log" log file (RelayData – log channel).
<service name="Microsoft.Rtc.Enlightenment.Hub.LogService"> <endpoint address="http://localhost:9333/Log" behaviorConfiguration="webby" bindingConfiguration="wsHttpEndpointBindingNoSec" binding="webHttpBinding" name="ep1" contract="Microsoft.Rtc.Enlightenment.Hub.ILogService" /> <endpoint address="https://localhost:9332/Log" behaviorConfiguration="webby" binding="webHttpBinding" bindingConfiguration="wsHttpEndpointBindingNoCert" name="ep1" contract="Microsoft.Rtc.Enlightenment.Hub.ILogService"> <identity> <dns value="ServerSideCert" /> </identity> </endpoint> </service>
You can configure the subscriber to use the log service by setting the submitUri key value to
"http://localhost:9333/Log/PostStuffHere", instead of an actual network controller’s web service address
like SDNManager.exe p s logsrv submituri=http://localhost:9333/Log/PostStuffHere.
Note
You can also view the last megabyte of messages received by browsing to
http://localhost:9333/Log/GetStuffHere.
July 2015 Skype for Business SDN Interface 2.2 p. 84
Replaying logs
As another debugging feature, the SDN Manager allows you to replay recorded input logs. The SDN
Manager can log all messages it receives from the Dialog Listener. By using the SDN Manager command
line tool, you can send such a log to the SDN Manager service and have it replayed and executed.
Furthermore, the logs can be replayed with or without the original timing.
To replay logs, do the following:
1. Activate logging AllInputLog Listener in the SDNManager.exe.config file (see Configuring SDN
Interface logging options). Only the logs generated by the SDN Manager can be replayed from this
Listener.
2. Launch the SDNManager.exe using the /e or /et parameters to replay a portion of recorded logs, for
example, from the file AllInput.log.
3. Launch the DialogListener.exe using either the /e or /et parameters to replay recorded SIP log files
either recorded by the SDN Manager or from Skype for Business Server itself using OcsLogger.exe or
Snooper.exe.
July 2015 Skype for Business SDN Interface 2.2 p. 85
Monitoring the SDN Manager and Dialog
Listener Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In addition to supporting internal logging, the Dialog Listener and SDN Manager also send events to the
Windows event log. This lets you monitor the operational status of the Skype for Business SDN Interface
components by examining event entries in the Windows Event Viewer (Figure 1). For example, the
operational status message reports that the SDN Manager or Dialog Listener service has started or
stopped and also report error conditions that include connection failures to the Skype for Business Server
and database, or between the SDN Manager and Dialog Listener.
Figure 1. Windows Event Viewer
July 2015 Skype for Business SDN Interface 2.2 p. 86
SDN Manager and Dialog Listener
performance counters Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The SDN Manager and Dialog Listener provide performance counters that you can access using Perfmon.
The performance counters are described in the following table and may be accessed using Perfmon.
Figure 1. Performance counters for Dialog Listener and SDN Manager
July 2015 Skype for Business SDN Interface 2.2 p. 87
SDN Manager performance counters
Performance counter Description
# Messages received Total number of call related messages received
# call messages sent overall Total number of call related messages sent
successfully - counting every destination
# unique call messages sent Total number of unique call related messages
attempted to send (regardless of how many
destinations)
# call messages failed Total number of send failures (regardless whether
resending succeeded)
# undelivered messages Total number messages that were not received at a
destination - even with attempting to resend
# messages failed processing Total number messages that failed during
processing
# messages / sec Number of messages sent per second
# length of longest queue Longest send message queue
# incoming messages / sec Rate of incoming call related messages
# messages processing time (ms) Processing time per message (ms)
# calls tracked in the cache Number of messages currently in the state cache
# collisions in the cache Number of colliding concurrent updates in the state
cache
# of past due calls being processed Number of calls being processed for a state update
being past due
# Average message delivery time Time in milliseconds from attempting to send a
message to actually receive a delivery confirmation
(including resending attempts).
# messages attempting to send Number of messages being attempted to send
concurrently.
# calls completed Number of calls completed.
# calls timed out Number of calls completed with a timeout.
# calls completed/sec Rate of calls completed per second.
# calls timed out/sec Rate of calls timing out per second.
July 2015 Skype for Business SDN Interface 2.2 p. 88
Dialog Listener performance counters
Performance counter Description
# Messages received Total number of call related messages received
# call messages sent overall Total number of call related messages sent
successfully - counting every destination
# unique call messages sent Total number of unique call related messages
attempted to send (regardless of to how many
destinations)
# call messages failed Total number of send failures (regardless whether
resending succeeded
# undelivered messages Total number messages that were not received at a
destination - even when there were attempts to
resend them.
# messages failed processing Total number messages that failed during
processing
# messages / sec Number of messages sent per second
# length of longest queue Longest send-message queue
# messages attempted to send Number of messages currently attempted to send.
# messages attempted to send overall Number of messages overall attempted to send.
# Average message delivery time Time in ms from attempting to send a message to
actually receive a delivery confirmation (including
resending attempts).
July 2015 Skype for Business SDN Interface 2.2 p. 89
Uninstalling the SDN Interface components Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Uninstalling the Skype for Business SDN Interface
Uninstall the Dialog Listener
Uninstall the SDN Manager
Unregister Dialog Listener
This section describes how to uninstall Skype for Business SDN Interface components, the Dialog Listener
and the SDN Manager services.
Uninstalling the Skype for Business SDN Interface
Removing the Skype for Business SDN Interface involves removing and unregistering the Dialog Listener,
and uninstalling the SDN Manager.
Uninstall the Dialog Listener
1. On the server on which the Dialog Listener is installed, open the Control Panel, then open Program
and Features.
2. Select Skype for Business Server Dialog Listener.
3. Right-click the selection and select Uninstall.
Uninstall the SDN Manager
1. On the server on which the SDN Manager is installed, open the Control Panel, then open Program
and Features.
2. Select Skype for Business ServerSDN Manager
3. Right-click the selection and select Uninstall.
July 2015 Skype for Business SDN Interface 2.2 p. 90
Unregister Dialog Listener
To unregister Dialog Listener as a Skype for Business Server application, do the following:
Start a Skype for Business Management Shell and invoke the following cmdlet:
Remove-CsServerApplication -Identity <app identity>
Where <app identity> is the application identity string.
Example: Service:registrar:pool1.contoso.com/Diagnostics. You can follow the example shown in Installing
Skype for Business SDN Interface 2.2 for using Get-CsServerApplication cmdlet to discover the <app
identity> value for the application.
Note
Removing the registration will deactivate all Dialog Listener instances on any front-ends deployed
in this pool.
Uninstalling all Dialog Listener instances in a pool won’t unregister the SDN Interface application.
You need to do this manual.
July 2015 Skype for Business SDN Interface 2.2 p. 91
Using SIP Obfuscator for the SDN Interface Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The Skype for Business SDN Interface includes a utility named SIPObfuscator.exe for use by authorized
partners that you can use to obtain the obfuscated value of a user name. The resultant obfuscated name
can be used to query for dialog data involving the specified user when privacy protection is turned on.
SipObfuscator.exe requires that .NET Framework 4.5 be installed.
SIP Obfuscator
When privacy protection is turned on in the SDN Manager, personal identifiable information in Skype for
Business call and quality data is obfuscated by replacing identifying information with a SIP alias. For
example, the SIP Uri of sip:[email protected] might be replaced by
sip:[email protected]. When the network traffic patterns of a single user is specified, the
SIP Obfuscator utility allows you to determine the obfuscated user's identity.
SIP Obfuscator is a Windows console application that is installed along with installations of the SDN
Manager and Dialog Listener.
To use SIP Obfuscator, do the following:
1. Select a known user name, for example, adama.
2. Type the following command in a Windows console and press Enter.
SIPObfuscator adama
3. The obfuscated user name is displayed as output, for example:
CE6AF05C9705A05E
To search for the data records associated with this user (sip:[email protected]), you can search for the
records containing sip:[email protected]. An example of such an obfuscated data record
is shown as follows:
<Start Type="audio"> <From> <Id>87c1bcf104</Id> <EPId>1579d442a7</EPId> <URI>sip:[email protected]</URI> …… </From> </Start>
Note
IP addresses are never obfuscated in sfbSdn because they are essential information for identifying
the streams in the network.
July 2015 Skype for Business SDN Interface 2.2 p. 92
Appendix to Skype for Business SDN Interface Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The Appendix contains examples of the SDN Manager and Dialog Listener configuration files, example
input and output for the Dialog Listener console application, and instructions for using the SIP Obfuscator
with the Skype for Business SDN Interface.
In this article
Installing the trusted root certificate
Dialog Listener configuration file example
SDN Manager configuration file example
SDN Manager command-line example
SDN Interface Bandwidth Estimates
SDN Interface Performance Overview
July 2015 Skype for Business SDN Interface 2.2 p. 93
Installing the trusted root certif icate Applies to: Lync Server 2010 | Lync Server 2013 | SharePoint Foundation 2013 | SharePoint Online |
SharePoint Server 2013 | Skype for Business 2015
Installing a trusted root certificate is necessary only if you are notified that the certificate of authority is
not trusted on any machine. This can occur when you use a private or custom certificate server instead of
acquiring certificates from an established public certificate of authority.
Installing a trusted root certif icate
1. On the machine that requires a certificate, in your web browser, navigate to your local certification
server. This should be the same certificate of authority used for generating the server and, optionally,
client certificates.
2. Choose Download a CA certificate, certificate chain, or CRL link, as needed.
3. Select the appropriate certificate of authority from the list and choose the Base 64 Encoding method.
4. Choose the Download CA certificate link and then choose Open option when prompted to open or
save the certificate.
5. When the certificate window opens, choose Install Certificate…. The Certificate Import wizard
appears.
6. In the wizard, choose Next. Then, when you are prompted for the Certificate Store, choose Place all
certificates in the following store. Select the Trusted Root Certification Authorities store.
7. Complete the remaining steps of the wizard and click Finish.
Upon completing the wizard, you next want to add the certificate snap-ins using the Microsoft
Management Console (MMC).
Adding certif icate snap-ins
1. Launch MMC (mmc.exe).
2. Choose File > Add/Remove Snap-ins.
3. Choose Certificates, then choose Add.
4. Choose My user account.
5. Choose Add again and this time select Computer Account.
6. Move the new certificate from the Certificates-Current User > Trusted Root Certification
Authorities into Certificates (Local Computer) > Trusted Root Certification Authorities.
Overview of Skype for Business SDN Interface 2.2
Appendix to Skype for Business SDN Interface
July 2015 Skype for Business SDN Interface 2.2 p. 94
Dialog Listener configuration f ile example Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The following code sample is an example of the Dialog Listener configuration file.
A sample of DialogListener.exe.config f ile XML
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/> </configSections> <loggingConfiguration name="" tracingEnabled="true" defaultCategory="Error"> <listeners> <add name="LNEAppLog" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fileName="c:\logdir\DialogListener.log" footer="" formatter="LNEDetailFormatter" maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="10000" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"/> <add name="AllDataLog" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fileName="c:\logdir\AllData.log" footer="" formatter="SimpleOutput" maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="10000"/> <add name="QoEInputDataLog" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fileName="c:\logdir\QoEInputData.log" footer="" formatter="SimpleOutput" maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="10000"/> <add name="DialogDataLog" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
July 2015 Skype for Business SDN Interface 2.2 p. 95
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fileName="c:\logdir\DialogData.log" footer="" formatter="SimpleOutput" maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="10000"/> </listeners> <formatters> <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{timestamp(local:O)}{tab}{message}{tab}{dictionary({tab}{key}: {value})}" name="LNEOverviewFormatter"/> <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{timestamp(local:O)}{tab}[{category}]{tab}{message}{tab}{dictionary({tab}{key}: {value})}" name="LNEDetailFormatter"/> <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{message}{newline}" name="SimpleOutput"/> </formatters> <categorySources> <add switchValue="All" name="Debug"> <listeners> <add name="LNEAppLog"/> </listeners> </add> <add switchValue="All" name="Error"> <listeners> <add name="LNEAppLog"/> </listeners> </add> <add switchValue="All" name="QoEInputData"> <listeners> <add name="QoEInputDataLog"/> <add name="AllDataLog"/> </listeners> </add> <add switchValue="All" name="DialogData"> <listeners> <add name="AllDataLog"/> <add name="DialogDataLog"/> </listeners> </add> <add switchValue="All" name="Info"> <listeners> <add name="LNEAppLog"/> </listeners> </add> <add switchValue="All" name="TransmissionError"> <listeners> <add name="LNEAppLog"/> </listeners> </add>
July 2015 Skype for Business SDN Interface 2.2 p. 96
</categorySources> <specialSources> <allEvents switchValue="All" name="All Events"/> <notProcessed switchValue="ActivityTracing" name="Unprocessed Category"> <listeners> <add name="LNEAppLog"/> </listeners> </notProcessed> <errors switchValue="All" name="Logging Errors & Warnings"> <listeners> <add name="LNEAppLog"/> </listeners> </errors> </specialSources> </loggingConfiguration> <appSettings> <add key="configurationserviceuri" value="http://localhost:9333/Settings"/> <add key="configurationcertificate" value=""/> <!-- thumbprint of a client certificate to use to authenticate the DL with the SM --> <add key="configurationrefresh" value="00:01:00"/> <!-- Period for refreshing the settings from the configuration service --> <add key="checkdns" value="False"/> <!-- use a URI provided by the DNS SRV record for locating the configuration service --> <add key="msplidentifier" value="SDN22"/> </appSettings> </configuration>
July 2015 Skype for Business SDN Interface 2.2 p. 97
SDN Manager configuration f ile example Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
The following is an example of the SDN Manager configuration file (SDNManager.exe.config).
A sample of the SDNManager.exe.conf ig f ile
XML
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/> </configSections>
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="Error">
<listeners>
<add name="LNEAppLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\SDNManager.log" footer="" formatter="LNEDetailFormatter"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, ProcessId, ThreadId, Callstack"/>
<add name="AllOutputLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\AllOutputManager.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
<add name="AllInputLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
July 2015 Skype for Business SDN Interface 2.2 p. 98
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\AllInputManager.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
<add name="ErrorMsgLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\ErrorMsgManager.log" footer="---------------"
formatter="LNEDetailFormatter" maxArchivedFiles="10" header=""
rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="10000"/>
<add name="LogOutputLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\LogOutput.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
<add name="QoEInputDataLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\QoEInputManager.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
<add name="QoEDataLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\QoEDataManager.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
<add name="DialogDataLog"
type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFil
July 2015 Skype for Business SDN Interface 2.2 p. 99
eTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.Rol
lingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging,
Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\logdir\DialogData.log" footer="" formatter="SimpleOutput"
maxArchivedFiles="10" header="" rollFileExistsBehavior="Increment"
rollInterval="Day" rollSizeKB="10000"/>
</listeners>
<formatters>
<add
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="{timestamp(local:O)}{tab}{message}{tab}{dictionary({tab}{key}:
{value})}" name="LNEOverviewFormatter"/>
<add
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="{timestamp(local:O)}{tab}[{category}]{tab}{message}{tab}{dictionary({ta
b}{key}: {value})}" name="LNEDetailFormatter"/>
<add
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{message}{newline}"
name="SimpleOutput"/>
</formatters>
<categorySources>
<add switchValue="All" name="Debug">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</add>
<add switchValue="All" name="Error">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</add>
<add switchValue="All" name="Info">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</add>
<add switchValue="All" name="QoEInputData">
<listeners>
<add name="AllInputLog"/>
July 2015 Skype for Business SDN Interface 2.2 p. 100
</listeners>
</add>
<add switchValue="All" name="QoEData">
<listeners>
<add name="QoEDataLog"/>
</listeners>
</add>
<add switchValue="All" name="RelayData">
<listeners>
<add name="LogOutputLog"/>
</listeners>
</add>
<add switchValue="All" name="DialogData">
<listeners>
<add name="AllInputLog"/>
</listeners>
</add>
<add switchValue="All" name="BreakingData">
<listeners>
<add name="ErrorMsgLog"/>
</listeners>
</add>
<add switchValue="All" name="OutputData">
<listeners>
<add name="AllOutputLog"/>
</listeners>
</add>
<add switchValue="All" name="TransmissionError">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events"/>
<notProcessed switchValue="ActivityTracing" name="Unprocessed Category">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</notProcessed>
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="LNEAppLog"/>
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
July 2015 Skype for Business SDN Interface 2.2 p. 101
<appSettings>
<add key="configurationserviceuri" value="http://localhost:9333/Settings"/>
<add key="configurationrefresh" value="00:00:50"/> <!-- LSM: Period for
refreshing the settings from the store -->
<add key="configurationcertificate" value=""/> <!-- thumbprint of a client
certificate to use to authenticate the SDNManager with the configuration service
-->
<add key="checkdns" value="false"/> <!-- Decide to choose the DNS record to
locate the configuration service -->
<add key="mode" value="Redis"/> <!-- Cache, Database, Redis - mode how to
store call states and settings -->
<add key="statedbserver" value="mysql"/> <!-- Database server and credential
for accessing call state and settings -->
<add key="statedbname" value="SDNManager22"/> <!-- Database name -->
<add key="statedbusername" value=""/> <!-- empty for integrated security -->
<add key="statedbpassword" value=""/>
<add key="redisconnectstring" value="localhost"/> <!-- Connect string to
redis service -->
<add key="redispassword" value=""/> <!-- Password string to redis service --
>
<add key="Identifier" value="MySDNDB"/> <!-- Differentiator for LSM
configurations -->
</appSettings>
<system.web>
<httpRuntime targetFramework="4.5"/>
</system.web>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<!--<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="file" type="System.Diagnostics.TextWriterTraceListener"
initializeData="trace.log"/>
</listeners>
</trace>
<sources>
<source name="System.Net">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.HttpListener">
<listeners>
<add name="System.Net"/>
July 2015 Skype for Business SDN Interface 2.2 p. 102
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\logdir\log.e2e" />
</listeners>
</source>
</sources>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
<add name="System.Net.Cache" value="Verbose"/>
<add name="System.Net.HttpListener" value="Verbose" />
</switches>
<sharedListeners>
<add name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\logdir\Tracing.log" traceOutputOptions = "DateTime"
/>
</sharedListeners>
</system.diagnostics>
-->
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="wsHttpEndpointBindingNoSec" maxBufferPoolSize="400000"
maxReceivedMessageSize="400000" maxBufferSize="400000" transferMode="Streamed">
<readerQuotas maxDepth="32" maxArrayLength="400000"
maxStringContentLength="400000"/>
</binding>
<binding name="wsHttpEndpointBinding" maxBufferPoolSize="400000"
maxReceivedMessageSize="400000" maxBufferSize="400000" transferMode="Streamed">
<readerQuotas maxDepth="32" maxArrayLength="400000"
July 2015 Skype for Business SDN Interface 2.2 p. 103
maxStringContentLength="400000"/>
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
<binding name="wsHttpEndpointBindingNoCert" maxBufferPoolSize="400000"
maxReceivedMessageSize="400000" maxBufferSize="400000" transferMode="Streamed">
<readerQuotas maxDepth="32" maxArrayLength="400000"
maxStringContentLength="400000"/>
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="CustomValidator"
name="Microsoft.Rtc.Enlightenment.Hub.LyncHandler">
<endpoint address="http://localhost:9333/LDL"
behaviorConfiguration="webby" binding="webHttpBinding"
bindingConfiguration="wsHttpEndpointBindingNoSec" name="ep0"
contract="Microsoft.Rtc.Enlightenment.Hub.ILyncHandler"/>
<endpoint address="https://localhost:9332/LDL"
behaviorConfiguration="webby" binding="webHttpBinding"
bindingConfiguration="wsHttpEndpointBinding" name="ep1"
contract="Microsoft.Rtc.Enlightenment.Hub.ILyncHandler">
<identity>
<dns value="ServerSideCert"/>
</identity>
</endpoint>
<endpoint address="http://localhost:9333/Settings"
behaviorConfiguration="webby" binding="webHttpBinding"
bindingConfiguration="wsHttpEndpointBindingNoSec" name="ep2"
contract="Microsoft.Rtc.Enlightenment.Hub.ILyncHandler"/>
<endpoint address="https://localhost:9332/Settings"
behaviorConfiguration="webby" binding="webHttpBinding"
bindingConfiguration="wsHttpEndpointBinding" name="ep3"
contract="Microsoft.Rtc.Enlightenment.Hub.ILyncHandler">
<identity>
<dns value="ServerSideCert"/>
</identity>
</endpoint>
</service>
<service name="Microsoft.Rtc.Enlightenment.Hub.LogService">
<endpoint address="http://localhost:9333/Log"
behaviorConfiguration="webby" bindingConfiguration="wsHttpEndpointBindingNoSec"
binding="webHttpBinding" name="ep1"
July 2015 Skype for Business SDN Interface 2.2 p. 104
contract="Microsoft.Rtc.Enlightenment.Hub.ILogService"/>
<endpoint address="https://localhost:9332/Log"
behaviorConfiguration="webby" binding="webHttpBinding"
bindingConfiguration="wsHttpEndpointBindingNoCert" name="ep1"
contract="Microsoft.Rtc.Enlightenment.Hub.ILogService">
<identity>
<dns value="ServerSideCert"/>
</identity>
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CustomValidator">
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="Custom"
customCertificateValidatorType="Microsoft.Rtc.Enlightenment.Hub.AcceptAndLogValid
ator, SDNManager"/>
</clientCertificate>
</serviceCredentials>
<!-- To avoid disclosing metadata information, set the values below to
false before deployment -->
<!--<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>-->
<!-- To receive exception details in faults for debugging purposes, set
the value below to true. Set to false before deployment to avoid disclosing
exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
<serviceThrottling maxConcurrentCalls="300" maxConcurrentSessions="300"
maxConcurrentInstances="600"/> <!-- maxconcurrentcalls: default is 16 * cpus,
maxconcurrentsessions: default 100*cpus, maxconcurrentinstances= sum of others --
>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webby">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="webHttpBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
July 2015 Skype for Business SDN Interface 2.2 p. 105
</configuration>
July 2015 Skype for Business SDN Interface 2.2 p. 106
SDN Manager command-line example Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
In this article
Manager settings
Listener settings
Subscriber settings
The following code examples show the input and output resulting from running the SDN Manager
console application. Examples are shown for the Manager, the Listener, and the Subscriber.
Manager settings XML
C:\Program Files\Microsoft Skype for Business Server\Microsoft Skype for Business SDN Manager>SDNManager.exe d m Response code: SUCCESS Detail: TimeStamp: 2015-05-02T11:26:48.7393744Z <Configuration Version="2.0" culture="en-US" Kind="Manager" Identifier="DEFAULT"> <parameter key="calltimeout">1.00:00:00</parameter> <parameter key="endedtimeout">00:00:15</parameter> <parameter key="invitetimeout">00:03:00</parameter> <parameter key="maxcachesize">20000</parameter> <parameter key="qoetimeout">00:00:05</parameter> <parameter key="timeouthandlerperiod">00:00:10</parameter> <parameter key="hidepii">False</parameter> <parameter key="applicationsharing-AppliedBandwidthLimitAcceptable">500000</parameter> <parameter key="applicationsharing-AppliedBandwidthLimitOptimal">1000000</parameter> <parameter key="applicationsharing-JitterInterArrivalAcceptable">100</parameter> <parameter key="applicationsharing-JitterInterArrivalOptimal">50</parameter> <parameter key="applicationsharing-RDPTileProcessingLatencyAverageAcceptable">400</parameter> <parameter key="applicationsharing-RDPTileProcessingLatencyAverageOptimal">200</parameter> <parameter key="applicationsharing-RDPTileProcessingLatencyBurstDensityAcceptable">200</parameter> <parameter key="applicationsharing-RDPTileProcessingLatencyBurstDensityOptimal">100</parameter> <parameter key="applicationsharing-RelativeOneWayAverageAcceptable">1.75</parameter> <parameter key="applicationsharing-RelativeOneWayAverageOptimal">1</parameter> <parameter key="applicationsharing-RelativeOneWayBurstDensityAcceptable">2000</parameter> <parameter key="applicationsharing-RelativeOneWayBurstDensityOptimal">1000</parameter> <parameter key="applicationsharing-SpoiledTilePercentTotalAcceptable">36</parameter> <parameter key="applicationsharing-
July 2015 Skype for Business SDN Interface 2.2 p. 107
SpoiledTilePercentTotalOptimal">11</parameter> <parameter key="audio-DegradationAvgAcceptable">1</parameter> <parameter key="audio-DegradationAvgOptimal">0.6</parameter> <parameter key="audio-DeviceCaptureNotFunctioningEventRatioAcceptable">0.3</parameter> <parameter key="audio-DeviceCaptureNotFunctioningEventRatioOptimal">0.1</parameter> <parameter key="audio-DeviceHalfDuplexAECEventRatioAcceptable">0.3</parameter> <parameter key="audio-DeviceHalfDuplexAECEventRatioOptimal">0.1</parameter> <parameter key="audio-DeviceRenderNotFunctioningEventRatioAcceptable">0.3</parameter> <parameter key="audio-DeviceRenderNotFunctioningEventRatioOptimal">0.1</parameter> <parameter key="audio-JitterInterArrivalAcceptable">25</parameter> <parameter key="audio-JitterInterArrivalOptimal">15</parameter> <parameter key="audio-PacketLossRateAcceptable">0.05</parameter> <parameter key="audio-PacketLossRateOptimal">0.02</parameter> <parameter key="audio-RatioCompressedSamplesAvgAcceptable">1</parameter> <parameter key="audio-RatioCompressedSamplesAvgOptimal">1</parameter> <parameter key="audio-RatioConcealedSamplesAvgAcceptable">0.07</parameter> <parameter key="audio-RatioConcealedSamplesAvgOptimal">0.03</parameter> <parameter key="audio-RatioStretchedSamplesAvgAcceptable">1</parameter> <parameter key="audio-RatioStretchedSamplesAvgOptimal">1</parameter> <parameter key="audio-RoundTripAcceptable">500</parameter> <parameter key="audio-RoundTripOptimal">200</parameter> <parameter key="video-DynamicCapabilityPercentAcceptable">10</parameter> <parameter key="video-DynamicCapabilityPercentOptimal">5</parameter> <parameter key="video-LowFrameRateCallPercentAcceptable">10</parameter> <parameter key="video-LowFrameRateCallPercentOptimal">5</parameter> <parameter key="video-LowResolutionCallPercentAcceptable">10</parameter> <parameter key="video-LowResolutionCallPercentOptimal">5</parameter> <parameter key="video-RecvFrameRateAverageAcceptable">7</parameter> <parameter key="video-RecvFrameRateAverageOptimal">12</parameter> <parameter key="video-VideoFrameRateAvgAcceptable">7</parameter> <parameter key="video-VideoFrameRateAvgOptimal">12</parameter> <parameter key="video-VideoLocalFrameLossPercentageAvgAcceptable">10</parameter> <parameter key="video-VideoLocalFrameLossPercentageAvgOptimal">5</parameter> <parameter key="video-VideoPacketLossRateAcceptable">0.1</parameter> <parameter key="video-VideoPacketLossRateOptimal">0.05</parameter> <parameter key="video-VideoPostFECPLRAcceptable">0.1</parameter> <parameter key="video-VideoPostFECPLROptimal">0.05</parameter> <parameter key="build">6.0.9323.0</parameter> </Configuration>
Listener settings XML
C:\Program Files\Microsoft Skype for Business Server\Microsoft Skype for Business SDN Manager>SDNManager.exe d l pool1.enlightenment.contoso.com
Response code: SUCCESS Detail: TimeStamp: 2015-05-02T11:27:49.6606590Z
<Configuration Version="2.0" culture="en-US" Kind="Listener"
Identifier="pool1.enlightenment.contoso.com" LastModified="2015-05-
02T11:27:49.6606590Z">
<parameter key="submituri">http://localhost:9333/LDL</parameter>
July 2015 Skype for Business SDN Interface 2.2 p. 108
<parameter key="alternativeuri"></parameter>
<parameter key="clientcertificateid"></parameter>
<parameter key="submitqueuelen">1000</parameter>
<parameter key="maxbackoff">30</parameter>
<parameter key="maxdelaylimit">25</parameter>
<parameter key="maxopen">100</parameter>
<parameter key="maxretry">100</parameter>
<parameter key="maxretrybeforefailover">10</parameter>
<parameter key="Requester">FirstFEServer</parameter>
</Configuration>
Subscriber settings XML
C:\Program Files\Microsoft Skype for Business Server\Microsoft Skype for Business SDN Manager>SDNManager.exe d s first Response code: SUCCESS Detail: TimeStamp: 2015-05-06T06:45:10.2224428Z <Configuration Version="2.0" culture="en-US" Kind="Subscriber" Identifier="first"> <parameter key="submituri">http://localhost:9333/Log/poststuffhere</parameter> <parameter key="outputschema">D</parameter> <parameter key="clientcertificateid"></parameter> <parameter key="domainfilters"></parameter> <parameter key="subnetfilters"></parameter> <parameter key="tenantfilters"></parameter> <parameter key="trunkfilters"></parameter> <parameter key="quality">True</parameter> <parameter key="signaling">False</parameter> <parameter key="sendrawsdp">False</parameter> <parameter key="maxbackoff">30</parameter> <parameter key="maxdelaylimit">25</parameter> <parameter key="maxopen">100</parameter> <parameter key="maxretry">100</parameter> <parameter key="submitqueuelen">1000</parameter> </Configuration>
July 2015 Skype for Business SDN Interface 2.2 p. 109
SDN Interface Bandwidth Estimates Provides bandwidth estimate data for Skype for Business SDN Interface.
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Skype for Business SDN Interface, version 2.2, provides some estimates on the bandwidth that will be used
during a call for each stream as a consequence of the codecs being used. The following table shows the
raw estimates for each codec. The Bandwidth xml tag contains an exponential running weighted average
based on the codecs that might be used during the call. This Bandwidth tag shows 0 bandwidth if the
given stream direction is inactive.
Bandwidth Estimates
Codec Media Typical Maximum
X-MSRTA/16000 audio 49600 91000
X-MSRTA/8000 audio 33100 56600
G722/8000 audio 85400 164600
G722/8000/2 audio 108400 228600
G722/16000/2 audio 108400 228600
G7221/16000 audio 44800 81000
PCMU/8000 audio 83200 161000
PCMA/8000 audio 83200 161000
SIREN/16000 audio 39300 68600
SILK/16000 audio 47700 105000
SILKNARROW/8000 audio 31200 59000
SILKWIDE/16000 audio 47700 105000
SILK/8000 audio 31200 59000
X-ULPFECUC/90000 audio 29000 64000
AAL2-G726-32/8000 audio 38600 62000
X-RTVC1/90000 video 500000 2510000
X-H264UC/90000 video 500000 4010000
H264 video 500000 4010000
X-ULPFECUC/90000 video 29000 64000
X-DATA/90000 applicationsharing 439000 943000
July 2015 Skype for Business SDN Interface 2.2 p. 110
SDN Interface Performance Overview Provides some guidelines on performance benchmarks for Skype for Business SDN Interface.
Applies to: Lync Server 2010 | Lync Server 2013 | Skype for Business 2015
Version 2.2 of the Skype for Business SDN Interface was tested in a production environment and in lab
setups but no formal scalability testing has been conducted. Nevertheless, the following performance data
should give you an idea what you can expect. Please consider these numbers as example only.
Performance benchmarks A pool of two SDN Manager servers can support the traffic from 48 Skype for Business front-end
servers supporting around 80,000 users in one continent. CPU and memory impact of the Dialog
Listener on the front-ends is hardly noticeable, while the load in the two SDN Manager servers
reaches overall 50% in high load situations.
Memory consumption is low and fairly stable.
Sample machine configuration:
Stand-alone SDN Manager server: Windows Server 2012 R2
CPU: 8 Cores, 8GB of memory
Hard drive: 1 TB
In lab scenarios, we execute load of 400 audio calls per minute against two front-end servers and two
SDN Manager instances. These topologies consist of virtual machines only with not more than two
cores and 8 GB of memory each.
Bandwidth includes the RTCP stream, which may use a different port.
If a pool configuration is used around a database, the SQL Server is expected to be production level
server with state-of-the art memory and CPU. Similarly, a REDIS cache server must be configured to
handle the load.