Reference13r2:Apps/PbxManager/App Calendar

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference13r1 | Reference13r2 (this version) | Reference13r3

The PBX Manager Plugin for the Calendar App allows you to create to kinds of app objects. One is the Calendar Admin, which is just a simple overview of what's going in. The other is the Calendar App itself. Please note that even if the app is named "Calendar", it isn't a calendar like it is known. For now, it's just a tool to synchronize the Outlook / Exchange Calendar with the innovaphone PBX to set the presence of the user to the active or upcomming appointments.

Applies To

innovaphone PBX from version 13r1 (Exchange 365 using OAuth2 needs 13r2 beta 2 or newer).

Supported Exchange Versions

  • Exchange 2013 or newer
  • Exchange 365


In order go get the current users presence synchronized with Exchange, the calendar must be configured. This includes two parts: the configuration for the communication with the PBX and the configuration for the communication with Exchange Server.

PBX & Presence

The following configuration can be set for the PBX communication:

  • Master PBX Name: This is the name of the main PBX. Even if several PBXs are used in your setup, the calendar supports communication with only one of them, usually the main PBX. The name must be specified, even if you use only one.
  • Tentative exceptions: Generally, tentative appointments are not used for presence updating. However, an email address for the organizer / creator of a tentative appointment can be specified here. If the Calendar finds such an appointment and the email of the organizer corresponds to the one specified here, the respective appointment will be used for the presence. This can be used, for example, to enter an absence date for a specific user in case of illness. This entry is optional.
  • Presence language: The language the Calendar uses for presence. This is not necessarily the one that is displayed in myApps or on the phone, since the presence is translated there into the respective language.
  • Presence timezone: The time zone in which the time of presence is calculated. As with the language, this is not necessarily the time that is displayed in myApps or on the phone, since the time zone set there is used.
  • Subject: Define whether the subject of an appointment should be visible in the presence or not.

Exchange Sync

  • Sync-Type: Select the type of connection to your Exchange server. On-Premises is to be used for local Exchange installations. Here, the calendar connects to Exchange via NTLM authentication. Cloud is for Exchange 365 (formerly Exchange Online), where AOtuh2 is used for the connection.
  • User: The username to use for the authentication. This use must have the Application Impersonation right and should also have a mailbox, since the user will be used to autodetect the Exchange settings, too. For more information about impersonation right (see below).
  • Password: (Only available when Sync-Type is On-Premises) The password to use for the connection to Exchange.
  • Autodiscover Server URL: The URL of the Exchange Autodiscover server. For more information, see the section autodiscover below. This value is optional.
  • Exchange-Server to use: The Exchange Server can report two addresses through which it can be reached: an internal and an external one. Normally it is not a problem to use the external address. However, depending on the local network setup, this may not work. In this case it is recommended to use the internal address.

Exchange Sync for Exchange 365

For this sync type you have some additional configuration steps. When connecting to Exchange 365, Calendar authenticates itself via OAuth2. In order to use this, the Calendar app must first be set up within Azure Active Directory. A description for this setup can be found in the howto article Setting up Calendar with OAuth2

Additional information

Impersonation user

In order to query the appointments of all Exchange users, the user used to connect to Exchange (On-Premise) or to authenticate the connection (OAuth2) must have the Application Impersonation right. This means that this user can act on behalf of all other users. For this reason and the rights associated with this impersonation user, the credentials of this user should be kept highly confidential! The Calendar itself stores the user's password in encrypted form in the AppPlatform database (on-premise only). Since the user is also used to determine Exchange server settings, the user may need to have its own mailbox. An example of how the Application Impersonation right can be assigned to a user can be found here: Exchange 2013 and 2016 Configuring Impersonation For Applications. Instructions for other Exchange versions or further information about Application Impersonation can be found in the Exchange documentation.


The calendar uses autodiscover to determine the server address, the Exchange version used and other user-relevant information. Normally, the calendar automatically determines the address of Exchange's autodiscover service based on the TLD of the impersonation user. For example, if the impersonation user's TLD is "", the calendar will look for the Autodiscover service at "", "", "" and "". Depending on the configuration, at least one of these URLs should be the correct one. However, under certain circumstances, this auto-detection may go wrong. Therefore, the address of the autodiscover service can be configured for the calendar. The exact address depends on your Exchange configuration. For Exchange 365 e.g. or are possibilities. Additional information can be found in the Autodiscover service in Exchange Server Knowledgebase

Users and primary SMTP address

The calendar will get a list of users available in the PBX. After that, he tries to resolve the primary SMTP address for each user to be able to get the users appointments. The calendar tries to use username@pbx-domain. If that isn't the users email address, you can add additional addresses to each user object in the PBX. This may help in case that a user can't be resolved.

Related Articles