Step by Step Enabling Instant Messaging on Outlook Web App (OWA) with Skype for Business Server 2015

Integrating Skype for Business Server and Outlook Web App adds instant messaging and presence to Outlook Web App and enables your unified contact list to be shared between Outlook Web App and Skype for Business.

After server-to-server authentication is in place (check another post of mine here) we then can enable Instant Messaging from OWA

Here are a couple of things to know before starting:

You must verify that the Unified Communications Managed API 4.0 Runtime has been installed in your Microsoft Exchange Server 2013 backend server. You can do this by looking for the existence of the following registry value:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange OWA\InstantMessaging\ImplementationDLLPath

If you have installed the Microsoft Exchange Unified Messaging Call Router service and the Microsoft Exchange Unified Messaging service on the same computer then there is no need to create a trusted application pool for Outlook Web App. (This assumes that the server in question is hosting a SipName UM dial plan.) Skype for Business Server 2015 can autodiscover any Exchange servers that host a SipName UM dial plan and create a Known Server List. I must create a Skype for Business Server trusted application pool and a trusted application associated with Outlook Web App; that will add the Exchange 2013 server to the Known Servers List.

Now, onto configuring. In my test environment, I will need to get my Skype for Business Site ID and then run a command to create a trusted application pool.

To find my Skype for Business site ID I run:

Get-CsSite | Select-Object DisplayName, SiteID

Get-CsSite

Get-CsSite Results

The next command I need to run is

New-CsTrustedApplicationPool -Identity Exchange2013.austinlab.com -Registrar EnterpriseEDTN1.austinlab.com -Site 1-RequiresReplication $False

New-CsTrustedApplicationPool

Running New-CsTrustedApplicationPool

After creating the trusted application pool, use a command similar to the following to configure an application Identity and a port for Outlook Web App

New-CsTrustedApplication -ApplicationId OutlookWebApp -TrustedApplicationPoolFqdn Exchange2013.austinlab.com -Port 5199

New-CsTrustedApplication

Running New-CsTrustedApplication

After creating the trusted application you must run the Enable-CsTopology command to enable the changes to your Skype for Business Server topology:

Enable-CsTopology

Running Enable-CsTopology

That should be it for the Skype for Business Server configuration. Let’s move on to Exchange 2013.

We need to enable Instant Messaging on Outlook Web App in the Outlook Web App Server virtual directories on the front end Exchange servers.

Here are the default settings running Get-OwaVirtualDirectory cmdlet:

Get-OwaVirtualDirectory

Running Get-OwaVirtualDirectory

Enable Instant Messaging on the client access servers by running the following command from Exchange Management Shell:

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingEnabled $True -InstantMessagingType OCS

Set-OwaVirtualDirectory

Running Set-OwaVirtualDirectory

With this setting enabled, the Outlook Web App attempts to sign in already but fails:

OWA trying to sign in

OWA trying to sign in

OWA failed to sign in

OWA failed to sign in`

We need to modify the following file, WEB.CONFIG which is typically located here:

C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa

WEB.CONFIG

Location of WEB.CONFIG

Create a backup of this file first!

Two lines should be added under the <AppSettings> node in the Web.config file.

First of all, get your thumbprint for your Exchange Certificate:

Get-ExchangeCertificate

Get-ExchangeCertificate

Running Get-ExchangeCertificate

For my lab, I am taking my certificate thumbprint and using it in the web.config file. Open the web.config file to edit it.

<add key=”IMCertificateThumbprint” value=”B6571FD7C407D7D597E4B805F0F86B0B926CCCF0″/>

<add key=”IMServerName” value=”EnterpriseEDTN1.austinlab.com”/>

web.config

Modifying web.config

Save the file and then recycle the Outlook Web App pool by typing in the following command:

C:\Windows\System32\Inetsrv\Appcmd.exe recycle apppool /apppool.name:”MSExchangeOWAAppPool”

Appcmd.exe

Recycling the Outlook Web App pool

The final step is to configure the OwaMailboxPolicy. You may have only the default OwaMailboxPolicy like my test environment, shown by running the command:

Get-OwaMailboxPolicy | fl name,Inst*

Get-OwaMailboxPolicy

Running Get-OwaMailboxPolicy

You can modify that as follows:

Set-OwaMailboxPolicy –Identity “Default” –InstantMessagingEnabled $True –InstantMessagingType “OCS”

Set-OwaMailboxPolicy

Running Set-OwaMailboxPolicy to enable IM

If you have more than one OwaMailboxPolicy you can change all of them at once using the following command:

Get-OwaMailboxPolicy | Set-OwaMailboxPolicy -InstantMessagingEnabled $True -InstantMessagingType “OCS”

That should be all that is required to get OWA and Skype for Business Server 2015 integrated.

Troubleshooting OWA and Skype for Business Server Integration

Ensure that the user has a mailbox on Exchange 2013.

Ensure that the user has been enabled for Skype for Business Server 2015.

Ensure that the user has a valid SIP proxy address.

Confirm that Event ID 112
(and the source MSExchange OWA) is logged in the application log on the mailbox server. This appears after the initial sign-on to Outlook Web App confirming initialisation of the Instant Messaging Endpoint Manager.

Confirm that Event ID 112

Confirming Event ID 112

If instant messaging does not appear to be working then, on the mailbox server, look for log files in the folder C:\Program Files\Microsoft\Exchange server\V15\Logging\OWA\InstantMessaging. If either the Logging or the InstantMessaging folders do not exist that indicates that integration has failed.

Review the steps taken to integrate from start to finish.

Use SIPStack tracing on Skype for Business Server (All Levels and All Flags) to try and determine why integration failed.

Ensure that the server or servers you are using are not in the Known Server List twice.

If you have installed a Service Pack to Exchange 2013, I have noticed from experience that the web.config file is overwritten and the information on the certificate and the Instant Messaging server name needs to be added in again.

Other posts related to this

Step by Step on configuring the Unified Contact Store (UCS) and Skype for Business Server 2015

Step by Step on configuring Skype for Business Server 2015 and Exchange 2013 Archiving

Step by Step on configuring Oauth between Skype for Business Server 2015 On Premises and Exchange 2013

Advertisements

3 Comments

Filed under Exchange 2013, Instant Messaging, OAuth, Outlook Web App, Skype for Business Server 2015, Step by Step

3 responses to “Step by Step Enabling Instant Messaging on Outlook Web App (OWA) with Skype for Business Server 2015

  1. For the amount of times i’ve configured Lync Exchange IM integration for OWA i’ve always found it baffling that the integration still has a reliance on the webconfig file. Soon as you upgrade to a new CU your integration is broken until you update the webconfig file again. This has been the case since Exchange 2013 RTM’ed. It would be really useful if MSFT could provide a resolution for this or at least make the integration more admin friendly.
    As mature as Exchange 2013 is ( of which the Exchange 2016 preview seems to also have this ‘limitation’ ) i see no reason why the integration should continue to have a reliance on the webconfig file. Just seems like lazy coding to me. Add an attribute to the OWAvDir where you can set the attribute easily would be my suggestion.

    Like

    • Hi Shawn, thanks for visiting and taking the time to comment. I can totally agree with you on this. Who would have thought that applying a patch or update to fix issues actually breaks something?! I would have liked to see this fixed in Exchange 2016 and I am surprised that it isn’t yet. Just simply preventing the replacement of the file in the Exchange 2013 updates would have done and like you say, going down the road of an attribute would be a good suggestion. I do wonder what the reasoning is on this…
      All the best! Austin

      Like

  2. Knowing MS someone probably just forgot…. Why its not managed in band is beyond me, as then you can do what you like with the webconfig file and the subsequent CU updates which always wipe custom changes.

    Its just more of an annoying inconvenience than anything else and has certainly prevented me sometimes for Lab/POC’s to update to the latest CU, as i just can’t be bothered to trawl through (or troubleshoot) and redo all the custom changes i’ve made because a new CU has wiped it all.

    Oddly this was all done in band with Exchange 2010 with native cmdlets and the webconfig file didn’t have to be edited. So if anything this is a an administrative regression that has been around far too long.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s