Lync 2013 clients must be on the November 2013 Updates (15.0.4551.1005)
Deployment and Configuration
Environment – Lync 2013 Client with August 2013 updates and Lync 2013 Server (January 2014 updates)
This option is not enabled by default within the Lync client policy and therefore shows no radio button to enable this within the Lync client options under "My Picture".
In order to enable the "Show a picture from a website" radio button you must configure a client policy. This can be performed on the Global policy or more granular based on site or user policies. Below are the commands to enable this option.
$pe=New-CsClientPolicyEntry -Name EnablePresencePhotoOptions -Value True
Set-CsClientPolicy -Instance $po
After the policy is enabled you will see the radio button option in the Lync 2013 client. Now users can put in a Web URL which should be both publically accessible and not require a password. If this isn't available outside the network users will have problems accessing this when external. After inputting the URL you have to click "Connect to Picture". If this connection successful you will notice the dialog below the URL will change to a message stating "Your picture's been downloaded" (Figure 1). What this means is that we were able to connect to the picture and publish it via a Service request. Also when we clicked "Connect to Picture" the primary Frontend servers rtc.dbo.PublishedStaticInstance table was updated with this URL. This will allow other users to Subscribe to your presence and get the correct URL.
Figure 1: Picture from URL has been successfully downloaded
You can find this URL by either using SQL or DBAnalyze which are both shown below.
Where ResourceId = PublisherId
Once this was done I found the user and selected all the lines for that user within the table and copied it out to notepad. Below you will see my URL is now in my contact card.
firstname.lastname@example.org <otherOptions xmlns="http://schemas.microsoft.com/2006/09/sip/options/otherOptions"><privacyModeUserSelection>noSelection</privacyModeUserSelection><currentPrivacyMode>standard</currentPrivacyMode><publishEndpointLocation>true</publishEndpointLocation><lastQueryPrivacyEnabled>false</lastQueryPrivacyEnabled><publishActivityHistory>true</publishActivityHistory><EnableContactSyncUserOption>0</EnableContactSyncUserOption><lastPresencePhotoUrl>http://fabdc1/rischwen2.jpg</lastPresencePhotoUrl></otherOptions>
DBAnalyze.exe – this tool is a part of the Reskit for Lync 2013
Find the primary frontend server for this user (Figure 2)
Figure 2: Primary FE server for User21
PS C:\Program Files\Microsoft Lync Server 2013\ResKit> .\DBAnalyze.exe /sqlserver:fablfe3\rtclocal /report:user /user:email@example.com > c:\dbanalyze_user21.txt
Now when Administrator@fabrikam.com logs in and subscribes to the presence of User21 Lync will return the photo URL (Figure 3). Once the Administrators client has the URL it will access that location and download the picture (Figure 4).
Figure 3:Administrator Subscribe request
Figure 4: Administrator's Lync client connecting to photo URL
One thing that I have noticed when users select the "Show a picture from a website" option is that these photos are not cached. This behavior is different than when selecting "Show my picture" and having it display your picture from AD. You can see below (Figure 5) both of the users with AD photos are cached (Administrator & User20) but the users with pictures from a website (User21 and User22) are not. This means that in order for users to pull your photo they will access the URL defined for your picture every time. If this becomes unavailable (server outage, FW, DNS resolution issues, file or folder name change, etc…) users will be unable to see your photo.
Figure 5: Photo caching