Troubleshooting Lync Enterprise Voice calls can be a difficult task, but it doesn't have to be. When I need to troubleshoot a voice call, I grab a cup of hot chocolate (I'm not a coffee drinker) and the ICE Warning Flag Decoder tool. This free Microsoft tool interprets Interactive Connectivity Establishment (ICE) warning flags in Enterprise Voice calls. For those of you who are unfamiliar with this tool, let's take a look at what it brings to the table. Specifically, I'll cover:

  • What ICE warning flags are
  • How to capture the ICE warning flags
  • How to use the ICE Warning Flag Decoder to interpret the warnings

Understanding ICE Warning Flags

Whenever anyone makes voice calls with the Lync client, Lync logs diagnostic information that lets administrators see information about the calls, such as their duration, quality, and health. Embedded in the diagnostic logs is an ICE warning flag, whose value represents verbose information in the event the call wasn't successfully completed. An ICE warning flag is created, independent of the call quality being good or bad. You can find the flags in the MSDIANOSTICS section of a Session Initiation Protocol (SIP) message. How you capture and interpret the flag is where things get interesting.

Capturing the ICE Warning Flags

Capturing the ICE warning flags involves several steps that need be performed in the following order for the best results:

  1. Enable logging on the Lync client.
  2. Locate the Tracing folder.
  3. Use Snooper to search for ICE warning flags.

Let's look at these steps in more detail.

The first step is to enable logging on the Lync client. This is an end user setting that you can control using a client policy. End users can also enable or disable the setting on the Lync client themselves. To do so, an end user needs to click Options in the main window of the Lync client, select General in the left navigation pane, and select Full from the Logging in Lync drop-down box, as Figure 1 shows.

Figure 1: Enabling Logging on the Lync Client

Once enabled, the Lync client is set to capture diagnostic information about the user's voice calls in a log file. For the client-side logging to start, the user will need to log off, then log back on to the Lync client after enabling logging.

The next step is to locate the Tracing folder, which contains the logs for the Lync client. You can find this folder at %userprofile%\AppData\Local\Microsoft\Office\15.0\Lync\Tracing. You can also use the Lync Configuration Information page to find this folder path, as Figure 2 shows. Simply hold down the Ctrl key, right-click the Lync icon on the Task menu, then choose Lync Configuration Information.

Figure 2: Finding the Path to the Tracing Folder

Open the Tracing folder and confirm that a file named Lync-UccApi-0.UccApilog exists, as shown in Figure 3. If you don't see the file, the user probably didn't log off, then log back on to the Lync client after enabling logging.

 Figure 3: Checking for the Lync-UccApi-0.UccApilog File

The final step is to use the Microsoft Snooper tool to locate the ICE warning flags in the Lync-UccApi-0.UccApilog file. Snooper is one of the Microsoft Lync Server 2013 Debugging Tools. You need to have Snooper installed on the machine where you plan to view the flags. Once installed, open the Lync-UccApi-0.UccApilog file in Snooper. Don't be alarmed by all the information you'll see in the results window. Simply search for "ICEWarn" and all information related to the searched event will be highlighted. Figure 4 displays an ICE warning flag in Snooper. Write down the ICE warning flag value.

Figure 4: Finding ICE Warning Flags in Snooper

Using the ICE Warning Flag Decoder

At this point, you've already completed the hardest part of the troubleshooting process. Now you just need to download and install the ICE Warning Flag Decoder. Afterward, open the decoder, enter the ICE warning flag value you obtained using the Snooper tool, and click Submit. As Figure 5 shows, you'll see a description of what the value means on the right.

 FigFigure 5: Getting a Description for an ICE Warning Flagure 5: Getting a Description for an ICE Warning Flag

If you don't want to use the ICE Warning Flag Decoder, you can look up the information in a table that lists the descriptions for the ICE warning flag values and possible actions by an administrator. You can find this table by downloading "Chapter 9: External User Access" of the Microsoft Lync Server 2010 Resource Kit and searching for "Table 2".

Useful Application to Add to Your Toolbox

Troubleshooting Lync voice calls can seem like you're jumping into a deep dark hole, but it doesn't have to be that way. You can use the ICE Warning Flag Decoder to shed some light on the problem. I use the tool to not only troubleshoot voice call problems but also to occasionally check randomly placed Lync voice calls to see if any warnings are flagged. If you're like me, you won't ever look at troubleshooting voice calls the same way.