Export (0) Print
Expand All

Configuring Lync Dialog Listener

The steps presented in this section are optional unless you want to modify the default configurations.

There are two types of configurations used by the Lync Dialog Listener Service. One affects how the listener service reports the runtime logs. These options are specified in the logging.config file. The other type of configuration affects how the listener service behavors and these options are specified in the LyncDialogListener.exe.config file.

The configuration files are located in the Lync SDN API installation directory. By default, the path to this directory is C:\Program Files\Microsoft Lync Server\Microsoft Lync SDN API\.

The configuration files are located in the Lync SDN API’s installation directory. By default, the path to this directory is C:\Program Files\Microsoft Lync Server\Microsoft Lync SDN API\.

This section describes how to configure Lync Dialog Listener.

Configuring Lync Dialog Listener logging options

Follow these steps to modify the Lync Dialog Listener logging configuration.

  • Navigate to the API installation directory.

  • Open the logging.config file with a text editor.

  • Search for the <loggingConfiguration> section and make appropriate changes to entries under the <Listeners> elements.

Note Note

The configuration file can be conveniently inspected and modified using the Microsoft Enterprise Library Configuration Tool. For more information, see Microsoft Enterprise Library.

Each entry (an <add> element) under <listeners> corresponds to a specified type of logging. Modifications can include adding a new <add> entry to enable the specified type of logging, removing an <add> entry to disable the specified type of logging, and changing an existing <add> entry to modify the specified type of logging.

The Lync Dialog Listener service default configuration supports the following types of logging:

Logging type



Logging the application execution states, including Debug, Info, and Error types of data. The output is recorded in the LyncDiagnostics.log file.


Logging all types of data, including SIP messages with SDP headers, quality of experience data and error messages when errors are detected by Lync Dialog Listener.


Logging the quality of experience raw data from the Lync Server and error messages when errors are detected while the QoE report is processed.


Logging the dialog data, including SIP messages and some SDP headers and error messages when errors are detected while the SIP dialog event is processed.

The following example shows the LNEAppLog type of logging options containing a modified logging file path (in the boldface text).

  <add name="LNEAppLog"
DateTime, Timestamp, ProcessId, ThreadId, Callstack"/>

By default, the LyncSDNAPI.msi will set logging levels to “Debug”. To lower the logging level, remove the following switchValue option from the <categorySources> in the logging.config file:

<add switchValue="All" name="Debug">
          <add name="LNEAppLog" />

The resultant logging configuration file should now look as follows:

          <add switchValue="All" name="Init">
. . . 

Configuring Lync Dialog Listener execution options

Follow the steps below to modify the Lync Dialog Listener (LDL) execution configuration.

  1. Navigate to the API installation directory

  2. Open the LyncDialogListener.exe.config file with a text editor

  3. Search for the <appSettings> section and make appropriate changes to relevant entries therein.

The configuration for executing the LDL service is flexible. The following table shows a few options, as an illustration.

Default configuration


<add key=”submituri” value="http://yourwebservice" />

Set the value of the web address used to send Lync SDN API data to. This is populated by the installer but can be updated through this configuration.

<add key="hidepii" value="true" />

Set the value attribute to true to hide personal identifiable information (PII). Set value to false to see PII

<add key="sendallcallqoe" value="false" />

Set value to false to receive QoE information only for bad calls. Set value to true to see QoE information for all calls.

<add key="sendrawsdp" value="false"/>

Set value to false to not forward any SDP info (the “RawSDP” tag shown above) package. Set value to true to send SDP packages

<add key="sendcallinvites" value="false"/>

Set value to false to not notify about an upcoming call as indicated with an INVITE message. This event precedes a StartOrUpdate event which is initiated by a 200 OK for the SIP INVITE. Set value to true to send INVITE messages.

<add key="clientcertificateid" value=""/>

Set value to a thumbprint of the certificate to use for client certificate authentication.

<add key=”sendmeetingroominfo” value=”false” />

Set the value attribute to “true” to see Lync Meeting Room endpoint related information. Otherwise, Lync Meeting Rooms will not be specifically identified.

<add key="qoedatabasename" value="" />

Set value to the name of QoE database from which thresholds for bad Lync calls are received. If database name is entered here, Lync SDN API will use the database-defined thresholds. Otherwise, threshold values are also specified in the LyncDialogListener.exe.config file.

<add key="qoedatabaseusername" value="" />

Set value to the user name for signing in to the QoE database as specified in the database setting above. In a trusted connection, set value to an empty string and the credentials of the current user will be used to access the QoE database.

<add key="qoedatabaseuserpassword" value="" />

Set value to the password of the user above as part of the credentials to log in to the QoE database. In a trusted connection, set value to an empty string.

<add key="qualitythresholdlevel" value="Acceptable" />

Set value to either Acceptable or Optimal as the threshold for defining poor quality records. The values are defined in the QoE database. By default, Lync Dialog Listener uses the Acceptable level to identify bad QoE quality.

<add key=”submitqueuelen” value=”100” />

Set value to the maximum unanswered and waiting messages to send to each recipient. Change this value only if network conditions require a longer queue length due to delays in messages being received by the network management system.

The following example shows an excerpt of a Lync Dialog Listener execution configuration, specifying where (submituri) to post the diagnostic data (sendrawsdp, sendallcallqoe, sendmeetingroominfo), how to submit the data, and what quality of experience metrics (qualityThresholdLevel, audio-DegradationAvgOptimal, audio-DegradationAvgAcceptable) to use in provisioning of the Lync network diagnostic data to a network management system.

    <add key="submituri" value="http://www.contoso.com/SDNWebService/PostStuffHere" />
    <add key="hidepii" value="true" />
    <add key="sendrawsdp" value="true" />
    <add key="sendallcallqoe" value="true" />
<add key="sendmeetingroominfo" value="true" />

    <add key="qualitythresholdlevel" value="Acceptable" />

    <add key="audio-DegradationAvgOptimal" value="0.6" />
<add key="audio-DegradationAvgAcceptable" value="1" />

At the bottom of the configuration file is a list of optional Quality of Experience fields which can be changed to customize individual threshold levels. These by default match the default values of thresholds within the Quality of Experience database. The full list of these fields is as follows:

<add key="audio-DegradationAvgOptimal" value="0.6" />
    <add key="audio-DegradationAvgAcceptable" value="1" />
    <add key="audio-RoundTripOptimal" value="200" />
    <add key="audio-RoundTripAcceptable" value="500" />
    <add key="audio-PacketLossRateOptimal" value="0.02" />
    <add key="audio-PacketLossRateAcceptable" value="0.05" />
    <add key="audio-JitterInterArrivalOptimal" value="15" />
    <add key="audio-JitterInterArrivalAcceptable" value="25" />
    <add key="audio-RatioConcealedSamplesAvgOptimal" value="0.03" />
    <add key="audio-RatioConcealedSamplesAvgAcceptable" value="0.07" />
    <add key="audio-RatioStretchedSamplesAvgOptimal" value="1" />
    <add key="audio-RatioStretchedSamplesAvgAcceptable" value="1" />
    <add key="audio-RatioCompressedSamplesAvgOptimal" value="1" />
    <add key="audio-RatioCompressedSamplesAvgAcceptable" value="1" />
    <add key="audio-DeviceHalfDuplexAECEventRatioOptimal" value="0.1" />
    <add key="audio-DeviceHalfDuplexAECEventRatioAcceptable" value="0.3" />
    <add key="audio-DeviceRenderNotFunctioningEventRatioOptimal" value="0.1" />
    <add key="audio-DeviceRenderNotFunctioningEventRatioAcceptable" value="0.3" />
    <add key="audio-DeviceCaptureNotFunctioningEventRatioOptimal" value="0.1" />
    <add key="audio-DeviceCaptureNotFunctioningEventRatioAcceptable" value="0.3" />
    <add key="video-CallType" value="1" />
    <add key="video-VideoPostFECPLROptimal" value="0.05" />
    <add key="video-VideoPostFECPLRAcceptable" value="0.1" />
    <add key="video-VideoLocalFrameLossPercentageAvgOptimal" value="5" />
    <add key="video-VideoLocalFrameLossPercentageAvgAcceptable" value="10" />
    <add key="video-RecvFrameRateAverageOptimal" value="12" />
    <add key="video-RecvFrameRateAverageAcceptable" value="7" />
    <add key="video-LowFrameRateCallPercentOptimal" value="5" />
    <add key="video-LowFrameRateCallPercentAcceptable" value="10" />
    <add key="video-LowResolutionCallPercentOptimal" value="5" />
    <add key="video-LowResolutionCallPercentAcceptable" value="10" />
    <add key="video-VideoPacketLossRateOptimal" value="0.05" />
    <add key="video-VideoPacketLossRateAcceptable" value="0.1" />
    <add key="video-VideoFrameRateAvgOptimal" value="12" />
    <add key="video-VideoFrameRateAvgAcceptable" value="7" />
    <add key="video-DynamicCapabilityPercentOptimal" value="5" />
    <add key="video-DynamicCapabilityPercentAcceptable" value="10" />
    <add key="applicationsharing-CallType" value="1" />
    <add key="applicationsharing-AppliedBandwidthLimitOptimal" value="1000000" />
    <add key="applicationsharing-AppliedBandwidthLimitAcceptable" value="500000" />
    <add key="applicationsharing-SpoiledTilePercentTotalOptimal" value="11" />
    <add key="applicationsharing-SpoiledTilePercentTotalAcceptable" value="36" />
    <add key="applicationsharing-JitterInterArrivalOptimal" value="50" />
    <add key="applicationsharing-JitterInterArrivalAcceptable" value="100" />
    <add key="applicationsharing-RelativeOneWayBurstDensityOptimal" value="1000" />
    <add key="applicationsharing-RelativeOneWayBurstDensityAcceptable" value="2000" />
    <add key="applicationsharing-RDPTileProcessingLatencyBurstDensityOptimal" value="100" />
    <add key="applicationsharing-RDPTileProcessingLatencyBurstDensityAcceptable" value="200" />
    <add key="applicationsharing-RelativeOneWayAverageOptimal" value="1" />
    <add key="applicationsharing-RelativeOneWayAverageAcceptable" value="1.75" />
    <add key="applicationsharing-RDPTileProcessingLatencyAverageOptimal" value="200" />
    <add key="applicationsharing-RDPTileProcessingLatencyAverageAcceptable" value="400" />

Community Additions

© 2014 Microsoft