Push Service for Exchange/Office 365

 

The Push Service is an add-on to the ResourceXpress server. It is an independent Windows Service used to update/sync booking with Exchange/O365 calendars. The benefit of using the Push Service is to reduce the number of requests made from ResourceXpress to the Exchange/O365 environment. Instead of the ResourceXpress server polling every 60 seconds any new bookings or updates are automatically pushed by
the Exchange/O365 server to ResourceXpress via a subscription.

 

Requirements and Considerations

  • If ResourceXpress is integrating to a remote Exchange Server or Office 365 the Push Service server will need to be accessible over the public internet.

  • When connecting to more than 20 Exchange mailboxes an Impersonation Role will be required. It is
    advised to use an Impersonation Role when connecting to less than 20 profiles, however, it
    is not a strict requirement.

  • .NET Framework 4.8 is required for Push Service v0.7 and above

 

The below table shows the required Push Service version for the respective ResourceXpress version.

ResourceXpress Version

Push Service Version

ResourceXpress Version

Push Service Version

ResourceXpress V2021.2 or earlier

Push Service v0.6

ResourceXpress V2021.4 to V2023.5

Push Service v0.8*

*requires .NET Framework 4.8

ResourceXpress V2024.1 or above

Push Service v0.9*

*requires .NET Framework 4.8

Configure Impersonation Roles in Exchange

Connect to Exchange via PowerShell

First, open PowerShell from a Windows computer.

Copy and paste the code below then press Enter.

# Get user details $UserCredential = Get-Credential # Create connection to office 365 $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection # Start session Import-PSSession $Session

 

An Authentication screen will appear. Enter your Office 365 administrator’s username and password and click OK.

Create a new Management Scope for Resource Mailboxes

Copy and paste the code below, change the -Name value to suit your environment.

# Create Management Scope New-ManagementScope -Name "RXResourceMailboxes" -RecipientRestrictionFilter {RecipientTypeDetails -eq "RoomMailbox"}

Assign the Impersonation Role

Log into your O365 tenant as an Admin and navigate to Admin - Admin Centers - Exchange.

Create a new role under Permissions - Admin Roles.

The Write scope will be the new Management Scope created in PowerShell.

The Members should include the ResourceXpress service account that has already been granted Full Access Permissions to the resource mailboxes.

Click Save.

Push Service Installation and Configuration

Install and Configure

Step 1: Please contact helpdesk@qedas.com to request the Push Server install files.

This version of Push Service is only compatible with ResourceXpress V5 or above

Step 2: Navigate to the download directory and run RXNewPushServiceV0.6-install.exe as administrator. Choose an installation directory or leave as default and click Next then Install and Finish.

Step 3: Navigate to the install directory, by default this will be

C:\Program Files (x86)\QED\RXNewPushService

and open the file RxPushService_V0.6.exe.config in a text editor.

A more advanced text editor, for example, Notepad++ will offer an easier way of editing the application config files than the built-in server tools such as WordPad or Notepad

Step 4: Edit the required values as detailed in the following table and save the file.

Line

Parameter

Description

Example Value

Line

Parameter

Description

Example Value

9

TenantUrl

The ResourceXpress Application Server IP or FQDN. If the Push Service is running on the same server as the main application you can enter http://localhost

http://localhost

or

http://<localrxserverFQDN>

10

NotificationUrl

The IP or FQDN of the server running Push Service. If Resourcexpress is integrated to a remote Exchange server or O365 this value must be the externally accessible FQDN

http://rxserver.local

or

http://rxserver.domain.com

11

UseImpersonation

The value must be true if ResourceXpress connects to more than 20 Exchange resource mailboxes

true or false

12

ApiKey

The Api key of your ResourceXpress application.

12345678910abc12def31415

The ResourceXpress API key can be found on the following file on the ResourceXpress application server

C:\inetpub\wwwroot\ResourceFiles\web.config

Copy the value for the line

<add key="ApiKey" value="12345678910abc12def31415"/>

Below is an example of a completed Push Server config file.

<?xml version="1.0"?> <configuration> <configSections> </configSections> <appSettings> <add key="EwsFrequency" value="5"/> <add key="EwsFrequencyDelay" value="5"/> <add key="ProcessSubscriptionInterval" value="1"/> <add key="TenantUrl" value="http://localhost"/> <add key="NotificationUrl" value="http://rxserver.domain.local"/> <add key="UseImpersonation" value="true"/> <add key="ApiKey" value="12345678910abc12def31415"/> <add key="UseTLSVersion" value="1.0,1.1,1.2"/> </appSettings> <connectionStrings/> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> </startup> </configuration>

Step 5: Open Windows Services as an administrator. Right-click the RXPushService and start the service.

Check Push Service is Running

To check Push Service has been successfully configured open your ResourceXpress admin console and navigate to Administration Settings - System Settings - Resource Server. Check the Exchange Push Service icon is green and says Running.

 

Troubleshooting

Push Service events are logged in the ResourceXpress application directory in the location

C:\inetpub\wwwroot\ResourceFiles\Log

If the Push Service fails to run you can check the log file RXCloudError-<yyyymmdd>.log to see any error messages being returned from Exchange. Some common troubleshooting steps are listed below.

 

  • Check the Windows Service RXPushService is running and is set to run automatically

  • Check the ApiKey value in the Push Service config file matches the ApiKey value in the application web.config file

  • Ensure the UseImpersonation value is set to true if connecting to more than 20 Exchange mailboxes

  • Ensure the Exchange Service Account has the Impersonation Role for ResourceMailboxes in the Exchange Admin Center

  • Ensure the Push Service server is accessible over the public internet and that the externally accessible URL is configured in the NotificationUrl value of the Push Service config file

The following macros are not currently supported in the footer:
  • style