Symptoms
When Lync Server 2010 Enterprise Edition or Standard Edition front end server pools are deployed with either:
-
Office Communications Server 2007 R2 Edge server pool
-
Lync Server 2010 Edge server pool
Push notifications for Lync mobile clients are not delivered to the Apple iPhone, Apple iPad and Windows phone 7 mobility platforms
Note The Lync mobile application can run in the background on Android and Nokia devices, so push notifications are not required for these devicesCause
The Lync Server 2010 Mobility service sends SIP messages that contain active hyperlinks in their Message-Body header that define the XML namespace information for the push notification to the Lync Server Push Notification service.
Lync Server 2010 Front End Pool Using the URL Filter page in the IM and Presence group in Lync Server Control Panel to enable the Hyperlink prefix option Send warning message, will precede the active hyperlink with a user defined warning message in the SIP packet that contains the push notification message. The Lync Server Push Notification service will reject the modified push notification information and send an error response back to the Lync Server 2010 Mobility service. Office Communications Server 2007 R2 Access Edge server Using the URL Filter tab of the Office Communications Server 2007 R2 Intelligent IM Filter dialog to:-
Allow instant messages that contain hyperlinks, but convert the hyperlinks to plain text
-
Allow instant messages that contain hyperlinks. Enter a warning that you want to insert at the beginning of each containing hyperlinks
Will precede the active hyperlink with a user defined warning message and convert the active hyperlink to text by preceding it with an underscore or precede the active hyperlink with a user defined warning message in the SIP packet that contains the push notification message. The Lync Server Push Notification service will reject the modified push notification information and send an error response back to the Lync Server 2010 Mobility service.
Workaround
One of the following four workarounds will allow the Lync Server 2010 Mobility service to send SIP messages that contain active hyperlinks
Workaround 1 The following steps will disable the filtering of URLs in for Lync 2010 instant messaging for the scope of the global policy:-
Open the Lync Server Control Panel (LSCP)
-
Choose the IM and Presence feature from the LSCP menu
-
Select the URL Filter page button
-
On the Edit URL Filter - Global page, choose the Do not filter option as the Hyperlink prefix
-
Click on the Commit button
Workaround 2
-
Open the Lync Server Control Panel (LSCP)
-
Choose the IM and Presence feature from the LSCP menu
-
Select the URL Filter page
-
Leave the Send warning message option chosen as the Hyperlink prefix
-
Click on the Select... button for the Filter these hyperlinks prefixes: feature
-
On the Select Hyperlink Prefix page, expand the HTTP Hyperlink prefixes
-
Remove the check mark from the http: and https: hyperlink prefixes
-
Click on the OK button
-
On the Edit URL Filter - Global page, click on the Commit button
Note the following Lync Server 2010 PowerShell cmdlets can be used to remove hyperlink prefixes using the Lync Server Management Shell:
-
Set-CsImFilterConfiguration -Identity -Prefixes @{remove="http:"}
-
Set-CsImFilterConfiguration -Identity -Prefixes @{remove="https:"}
Workaround 3
The following steps will disable the filtering of URLs for instant messaging that are proxied by the Office Communications Server 2007 R2 Access Edge server for the Lync 2010 front end server pool in a coexistence scenario.-
Open a Computer Management Snap in on the OCS 2007 R2 Access Edge server
-
Expand the Services and Applications node
-
Right click on the Office Communications Server Node and select the Filtering Tools, Intelligent Instant Messaging Filter menu option
-
On the URL Filter tab of the Office Communications Server 2007 R2 Intelligent IM Filter dialog, uncheck the Enable URL Filtering choice
-
Click on the OK button
Workaround 4
The following steps will disable the filtering of URLs for instant messaging that begin with the http or https prefix and are proxied by the Office Communications Server 2007 R2 Access Edge server for the Lync 2010 front end server pool in a coexistence scenario-
Open a Computer Management Snap in on the OCS 2007 R2 Access Edge server
-
Expand the Services and Applications node
-
Right click on the Office Communications Server Node and select the Filtering Tools, Intelligent Instant Messaging Filter menu option
-
On the URL Filter tab of the Office Communications Server 2007 R2 Intelligent IM Filter dialog locate the Enter the prefixes, separated by a space, that you want the URL filter to block section.
-
Remove the http and https prefixes
-
Click on the OK button
Resolution
To resolve this issue, install one of the following cumulative updates:
-
If you deploy Lync Server 2010 Edge server pool, install the following cumulative update: 2689846Description of the update for Lync Server 2010: March 2012
-
If you deploy Office Communications Server 2007 R2 Edge server pool, install the following cumulative update:2695383Description of the update for Office Communications Server 2007 R2: April 2012
More Information
The Lync Server 2010 Mobility service supports the use of the synthetic transaction Test-CsMcxPushNotification PowerShell cmdlet. Test-CsMcxPushNotification is used to test push notification connectivity between the internal Lync Server 2010 pool and the Lync Server Push Notification service. If using the synthetic transaction Test-CsMcxPushNotification PowerShell cmdlet fails and returns one of the following error messages to the console, the issue that is described in the Symptoms section of this article may be occurring.Test-CsMcxPushNotification For more detailed information on Lync Server 2010 instant message filtering:Configuring Filtering for Instant Messaging (IM) For more detailed information on using the Set-CsImFilterConfiguration PowerShell cmdlet:Set-CsImFilterConfiguration
The first time the Test-CsMcxPushNotification PowerShell cmdlet is issued with URL filtering enabled, the following error information will be returned to the console: Test-CsMcxPushNotification : A 400 (Bad Request) response was received from the network and the operation failed. See the exception details for more information. At line:1 char:27 + Test-CsMcxPushNotification <<<< + CategoryInfo : OperationStopped: (:) [Test-CsMcxPushNotification], FailureResponseException + FullyQualifiedErrorId : WorkflowNotCompleted,Microsoft.Rtc.Management.SyntheticTransactions.TestMcxPushNotificationCmdlet Subsequent attempts to use the Test-CsMcxPushNotification PowerShell cmdlet with URL filtering enabled, will return the following error information will be returned to the console: Test-CsMcxPushNotification : Push Notification request was rejected. At line:1 char:27 + Test-CsMcxPushNotification <<<< + CategoryInfo : OperationStopped: (:) [Test-CsMcxPushNotification], SyntheticTransactionException + FullyQualifiedErrorId : WorkflowNotCompleted,Microsoft.Rtc.Management.SyntheticTransactions.TestMcxPushNotificationCmdlet For more detailed information on using the Test-CsMcxPushNotification PowerShell cmdlet: