A common question I get from customers is how can I determine if I’m in HD mode during a peer-to-peer video call? To get the answer you must analyze call data created by the Lync 2010 client after the call has been completed. Thankfully there are several places to find this information. This article discusses the tools and methods used to extract the video resolution from a Lync 2010 peer-to-peer video call.
Author: Jason Shave
Publication date: November 7, 2011
Product version: Lync 2010
I recently received a new Lenovo W520 laptop and noticed it had an embedded HD video camera. Can my W520 actually send HD video in Lync? Why do some calls look better than others? How do you test a specific device or scenario where you need to be sure you’re in HD mode? This article describes the procedures and tools needed to determine video call resolution. We’ll explain how to determine the video quality from the client to the Monitoring Server and how to analyze the Quality of Experience (QoE) report.
First, you’ll need to verify your hardware meets the minimum requirements to generate HD video. You must have at least one HD video camera, see USB Audio and Video Devices for more information. You need at least a dual-core CPU on the receiving side and at least a quad-core CPU on the sending side.
NOTE: A quad-core CPU is required to encode the HD video stream which is effectively sent at a resolution of 1280x720 @ 30 frames per second (fps). The receiving side can accept this stream as-is if the CPU is a quad-core. If the receiving side is a dual-core, every second frame will be decoded resulting in a 1280x720 @ 15 fps image.
You also need to make sure you have a correctly configured Lync Server 2010 Monitoring Server in your environment to view QoE reports sent from the client to the server.
You need to download a few tools to make life easier when sifting through lines of SIP and XML data. Download the Microsoft Lync Server 2010 Resource Kit Tools (requires .NET Framework 3.5 SP1) and the XML Notepad 2007.
To configure the client you must enable logging on the Lync 2010 client at the workstation receiving the HD video. This creates a .uccapilog file in the Tracing folder on C:\Users\<username>.
1. In the Lync client click the Options drop down menu (see Figure 1).
Figure 1: Options button.
2. Select Tools --> Options.
3. Click the General section of the options screen.
4. Click the checkbox to Turn on logging in Lync (see Figure 2).
5. Click OK.
Figure 2. Turn on logging.
6. Exit the Lync client completely. Restart the Lync client. Don’t just sign out and sign in.
7. Verify you have the file uccapilog in your profile under C:\Users\<username>\Tracing see Figure 3.
Figure 3. UCCAPI log file location.
NOTE: The file size increases as you use Lync and resets on an exit/re-launch of the client software. Executing sign-out and sign-in will not reset the file to zero bytes. To be sure you’re capturing relevant data, be sure to exit and restart Lync.
The default video setting for Lync Server 2010 is 640x480. If you want to achieve an HD call, you must change this setting. To configure the media settings of your Lync Server 2010 environment:
1. Open the Lync Management Shell as an Administrator.
2. Use the Get-CsMediaConfiguration cmdlet to view your current settings.
Figure 4. Default media configuration in Lync Server 2010.
3. To modify the settings type Set-CsMediaConfiguration –MaxVideoRateAllowed Hd720p15M.
Figure 5. Setting Lync Server 2010 to HD mode.
After you have installed the tools discussed above and the Lync 2010 client is enabled to log data to the local PC, you are ready for a capture.
1. Exit and restart the client to ensure you have a blank .uccapilog file and that any server-side settings such as HD video are received by the client.
2. Place a video call from the A party to the B party.
3. Double-click the video image on the B party side. This will send a message to the A party to switch to HD video mode (if capable).
4. Wait for about 30 seconds, then end the call from the A party side.
NOTE: The reason for ending the call on the A party side is because the Lync client will report the last resolution used in the call on the B party side. If you change from full-screen mode, the video resolution will obviously drop and the last reported resolution will show up in your QoE report.
5. Create a copy of the .uccapilog on the desktop.
On completion of the video call, the Lync client sends the QoE report to the Monitoring Server. This means the last used audio codec (for example RTA WB, G.711, and so forth) and the corresponding video resolutions are captured in the report. The Lync client sends a SIP ‘SERVICE’ message to the user’s Lync Server 2010 Front End which contains the QoE report. To view and translate this data follow these steps:
1. Double-click the .uccapilog file you copied to the Desktop.
2. Locate the Snooper.exe by browsing to C:\Program Files\Microsoft Lync Server 2010\Reskit\Tracing. You may want to create an association between this application and this log file type.
3. Click the Messages tab in Snooper.
4. Type VQReportEvent in the search box at the top of the screen.
5. Click Enter.
Snooper highlights all occurrences of the searched item in yellow. Figure 5 shows three calls within the capture period:
Figure 6. VQReportEvent search results.
6. Highlight and copy all data beginning with <?xml version=”1.0”?> and ending with <VQReportEvent>.
7. Launch XML Notepad 2007.
8. Paste the data into XML Notepad 2007.
9. Expand the VQSessionReport section.
10. Expand the MediaLine section. This section contains your video attributes.
11. Expand the InboundStream for inbound video on the B party side
12. Expand Payload.
13. Expand Video.
14. To the right of the Resolution tag, see the video resolution value (see Figure 6).
Figure 7. QoE report showing video resolution.
This process may appear to be lengthy and somewhat cumbersome. However, if you do not know your environment’s video resolution and you want to integrate a system such as the Polycom HDX video conferencing solution, this procedure will help determine your current resolution and ensure that you get what you pay for. In addition, using Snooper to work with log files and to analyze the data is a great way in improve your Lync skills!
Keywords: Lync 2010, HD, Video, Resolution, Snooper, XML Notepad, Resource Kit
there is a small typo in the article: Get-CsManagementConfiguration should be rather csMediaConfiguration
Great article - also as an FYI when you connect to a HDX you can hit the little i (info) button on the HDX to view the connected video resolution (CIF, VGA or RTV).
Thanks for the catch! The image shows the correct command :)
This should be fixed shortly.
Excellent article, Jason! Hope all's well!
Typo is resolved. Thanks for the catch!
or if you need only the resolution, open log file with notepad and search for: <resolution>. Don't need snooper and don't need xml notepad.
But...what a PITA just to find out what resolution you're sending.
In Wave15 I would strongly suggest to implement the "Show call details" button, which will presents the:
- current call codec, bitrate
- current video codec, bitrate, resolution
- media bypass active / inactive?
You already bought Skype, righht? It has this call details window since eons...
Thanks for the feedback folks. I recognize the pain this may appear to be and the comment about looking for the <resolution> tag is quite valid. If you're looking for a quicker way, you can take that shortcut. One of the reasons I wrote this article was to demonstrate the vast information embedded in our QoE report. The tools and methods used to extract this information are useful in applying to other aspects of managing and troubleshooting Lync. Cheers!
Double-click the video image on the B party side. This will send a message to the A party to switch to HD video mode (if capable).
----------could you pls explain the very detail of the message to A party ?
pls email me to : firstname.lastname@example.org
Its really a great post. I waste many days to just figure out what resolution using in a call before i found this post. First i did not setting a Monitoring server but after setting that its working.