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 using EWS and 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 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
Impersonation Roles are not required when integrating using Microsoft Graph API.
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 |
---|---|---|---|
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 | 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 | or |
11 | UseImpersonation | The value must be true if ResourceXpress connects to more than 20 Exchange resource mailboxes using EWS. | true or false |
12 | ApiKey | The Api key of your ResourceXpress application. | 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 using EWS
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
- style