<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=The</id>
	<title>innovaphone wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=The"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/The"/>
	<updated>2026-05-05T18:30:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Apps/PbxManager/App_Microsoft365&amp;diff=77998</id>
		<title>Reference14r1:Apps/PbxManager/App Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Apps/PbxManager/App_Microsoft365&amp;diff=77998"/>
		<updated>2025-10-02T08:58:16Z</updated>

		<summary type="html">&lt;p&gt;The: /* Add an app object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the Connector for Microsoft 365 PBX-Manager plugin, the needed app object can be created and configured automatically. &lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
== Add an API object == &lt;br /&gt;
&lt;br /&gt;
;name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; from the API object, which must be named microsoft365-api.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the API object, which must be named microsoft365-api.&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=77412</id>
		<title>Reference16r1:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=77412"/>
		<updated>2025-07-23T12:24:58Z</updated>

		<summary type="html">&lt;p&gt;The: /* Technical Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|Apps]]&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* Connector for Microsoft 365 from Version 16r1&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronizes Microsoft Teams presences with the innovaphone PBX and back, and optionally additionally Calendar presence from Exchange Online (part of the Microsoft 365 Cloud Services).&lt;br /&gt;
It is also possible to search for your own contacts. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform (minimum version 120004)&lt;br /&gt;
* V16r1&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* PBX-App(innovaphone-microsoft365) license per user - order no. 02-00050-009&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== User Presence ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto15r1:Configure User Presence Sync by Connector for Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph API.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made periodically.&lt;br /&gt;
&lt;br /&gt;
The app synchronises the PBX presence with Teams through the Graph Api. The on-the-phone presence will be renewed every 5 minutes. The other presences have a lifetime of 1 day but the away has a lifetime of 7 days.&lt;br /&gt;
The lifetimes are described [https://learn.microsoft.com/en-us/graph/api/presence-setuserpreferredpresence?view=graph-rest-1.0&amp;amp;tabs=http here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
===== User Matching =====&lt;br /&gt;
You now can choose the fields used for user matching on either side from the following options:&lt;br /&gt;
* PBX&lt;br /&gt;
** CN (Long Name property from the PBX user object)&lt;br /&gt;
** h323 (Name property from the PBX user object)&lt;br /&gt;
* Azure Portal&lt;br /&gt;
** displayName&lt;br /&gt;
** mail&lt;br /&gt;
** mailNickname&lt;br /&gt;
** onPremisesDistinguishedName&lt;br /&gt;
** onPremisesSamAccountName&lt;br /&gt;
** onPremisesUserPrincipalName&lt;br /&gt;
** userPrincipalName&lt;br /&gt;
&lt;br /&gt;
Additionally, you have the possibility to remove a possibly contained domain from the Azure fields content. &amp;lt;br&amp;gt;&lt;br /&gt;
Example: &#039;user@domain.tld&#039; is transformed to &#039;user&#039;, if this option is checked.&lt;br /&gt;
&lt;br /&gt;
===== Mapping Table =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
===== Master/Slave =====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Calendar Presence ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
Introduced in 15r1 the Connector for Microsoft 365 will offer a possibility to sync Azure Portal calendar events (Teams, Exchange online) via the Graph API with the PXB presence.&amp;lt;br&amp;gt;&lt;br /&gt;
For now the [https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Calendar Calendar App] is (along with other functions) also capable of syncing calendar events, but using the old EWS mechanism, which Microsoft announced as end of life starting from 2026.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; Please make sure to not use both apps for syncing calendar events in parallel, this is not supported and will most likely lead to conflicts and unexpected behaviours.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When the configuration of the connector for Microsoft 365 Calendar Presence Sync is complete, the app connects to Microsoft to receive a token with the calendar app registered in the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
With the token, the app can pick up the users from the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
These are matched against the users in the PBX, based on the configured &amp;quot;User Assignment&amp;quot; settings.&amp;lt;br&amp;gt;&lt;br /&gt;
For each matched user with a valid Connector for Microsoft 365 licence applied, a subscription for calendar events is created at Microsoft to receive event changes in Microsoft Calendar for these users.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A user subscription is also started to receive user changes (add, delete or update).&amp;lt;br&amp;gt;&lt;br /&gt;
If a user has changed, the users are retrieved again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If a calendar event has been started or ended, it is forwarded to the PBX.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Event subscriptions are renewed every day.&lt;br /&gt;
* License Check is made every hour.&lt;br /&gt;
&lt;br /&gt;
=== Contact Search ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
Introduced in 16r1 the Connector for Microsoft 365 will offer a possibility to search for your own contacts (Teams, Exchange online) via the Graph API.&lt;br /&gt;
&lt;br /&gt;
When the configuration of the connector for Microsoft 365 Contact Search is complete, the app connects to Microsoft to receive a token with the contact search app registered in the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
With the token, the app can pick up the users from the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
These are matched against the users in the PBX, based on the configured &amp;quot;User Assignment&amp;quot; settings.&amp;lt;br&amp;gt;&lt;br /&gt;
For each matched user with a valid Connector for Microsoft 365 licence applied, the user can search with the Phone App, for example. The search string is made available to the Connector for Microsoft 365 via the microsoft365-api. The results are sent to the consumer, e.g. the Phone App and presented there.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A user subscription is started to receive user changes (add, delete or update).&amp;lt;br&amp;gt;&lt;br /&gt;
If a user has changed, the users are retrieved again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* License Check is made every hour.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&#039;&#039;Applies to the User Presence and the Calendar Presence&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Synchronization Delay ===&lt;br /&gt;
In the official Graph-API documentation, Microsoft is providing an overview about expected latencies for change notifications.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find a whole overview table here:&amp;lt;br&amp;gt;&lt;br /&gt;
https://learn.microsoft.com/en-us/graph/change-notifications-overview#latency&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For the user presences the resource &amp;quot;presence&amp;quot; is used and an average latency of 10 seconds but a maximum up to 1 minute is provided.&amp;lt;br&amp;gt;&lt;br /&gt;
Such a delay in syncing changed presences from Teams down to the PBX are considered normal and are caused by the Microsoft Graph-API.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In case of calendar events the average is provided as &amp;quot;less than 1 minute&amp;quot; and the maximum to 3 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Presence ==&lt;br /&gt;
=== Line states set by the PBX does not block calls in Teams ===&lt;br /&gt;
Line states set by a 3rd party application (like the Connector for Microsoft 365) through the graph API are currently &#039;&#039;&#039;only for display purpose and do not block new calls&#039;&#039;&#039; in Teams.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://techcommunity.microsoft.com/t5/teams-developer/ms-graph-setpresence-problems/m-p/2798805/highlight/true#M3957&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the above linked discussion, there once existed a feature request on Microsoft Voice, which is no longer available since it was not voted.&lt;br /&gt;
=== Maximum number of supported users ===&lt;br /&gt;
The connector now supports multiple Microsoft Teams communication users, which is the prerequisite to subscribe for more than 650 users. There is a new ribbon (Manage Teams Accounts) that allows you to configure as many communication users as you need. Every configured communication user can be used to subscribe 650 users, for example:&lt;br /&gt;
&lt;br /&gt;
*3 configured communication users x 650 licensed users = 1950 users can be subscribed&lt;br /&gt;
&#039;&#039;&#039;Please be aware&#039;&#039;&#039;: Each communication user must have a Teams license applied.&lt;br /&gt;
&lt;br /&gt;
This limitation is caused by Microsoft.&amp;lt;br&amp;gt;&lt;br /&gt;
In the documentation of the Graph-API you will find a hint to this limitation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://learn.microsoft.com/en-us/graph/changenotifications-for-presence#subscribe-to-multiple-users-presence&amp;lt;br&amp;gt;&lt;br /&gt;
Trying to subscribe more than 650 users (with one communication user) by using the presence subscription API will be declined by the graph API with an error message, that too many users are requested.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communication User (UserSynctoPbx) ===&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as technical communication user for the Connector.&lt;br /&gt;
&lt;br /&gt;
=== Multiple sites / instances require multiple communication users ===&lt;br /&gt;
Each instance or each site must have separate communication users, as Microsoft only allows one concurrent subscription per communication user. (otherwise an HTTP 409 conflict will occur)&lt;br /&gt;
&lt;br /&gt;
This means that if you want to subscribe to the same Azure Portal backend from two different sites (or instances), you will need to have multiple communication users (each with an applied Teams licence) in order to be able to subscribe from all endpoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscription Timeout ===&lt;br /&gt;
&lt;br /&gt;
==== Situation ====&lt;br /&gt;
Due to a current limitation in the Graph API it is not possible to cancel or delete an active presence subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the [https://learn.microsoft.com/en-us/graph/api/subscription-delete?view=graph-rest-1.0&amp;amp;tabs=http|documentation of the current Graph API (1.0)] the “Delete subscription” chapter does not include presence subscriptions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also not possible to have multiple subscription in parallel. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make sure to only request a new presence subscription when the old one is not valid anymore, the app will store the state of the presence subscription and the time until it is valid in the database.&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the chapter “Technical Overview” we are creating presence subscriptions with a validity of 10 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
The presence subscription will be renewed as soon as it is no longer valid which will be 10 minutes after initial subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Impact ====&lt;br /&gt;
If settings are changed or the app instance is restarted it will check the corresponding database entry on startup.&amp;lt;br&amp;gt;&lt;br /&gt;
In case the last presence subscription was completed less than 10 minutes ago, there is still an active presence subscription and the app has to wait for it to become invalid. &amp;lt;br&amp;gt;&lt;br /&gt;
Some Changes (e.g., to the “Notification-URL”) will only take effect after a new created subscription. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Beta Version of the Graph API is already providing a function to delete presence subscriptions, so we hope we can improve this behavior in the future.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
===Creating an app trace===&lt;br /&gt;
For further analysis and creating a support ticket it will be useful to have a suitable app trace. &amp;lt;br&amp;gt;&lt;br /&gt;
Before creating the trace please make sure the following trace flags are activated for the app instance:&lt;br /&gt;
* App&lt;br /&gt;
* Database&lt;br /&gt;
* HTTP client&lt;br /&gt;
* TLS&lt;br /&gt;
* TCP&lt;br /&gt;
* App WebSocket&lt;br /&gt;
* Config&lt;br /&gt;
* Webserver&lt;br /&gt;
&lt;br /&gt;
After setting the config flags, please make sure to&lt;br /&gt;
* stop the instance&lt;br /&gt;
* deleting the current instance log&lt;br /&gt;
* start the instance&lt;br /&gt;
&#039;&#039;&#039;Now please wait at least 5 Minutes before you save the log&#039;&#039;&#039;, otherwise we could not have the whole picture in the trace.&lt;br /&gt;
&lt;br /&gt;
The restart and deletion of the the old log is useful the see the complete initialization process right away.&lt;br /&gt;
&lt;br /&gt;
===SSL Certificate for notification URL===&lt;br /&gt;
It also is useful to make sure the notification URL has a valid and public signed certificate.&amp;lt;br&amp;gt;&lt;br /&gt;
You can do that, using an SSL-Checker, for example: https://www.sslshopper.com/ssl-checker.html &amp;lt;br&amp;gt;&lt;br /&gt;
Without a valid, public signed certificate, Microsoft will decline the connection since it will not be possible to establish a trust relationship for the SSL/TLS secure channel.&lt;br /&gt;
&lt;br /&gt;
===Correctness of notification URL===&lt;br /&gt;
You can try to open the notification URL in your Browser&amp;lt;br&amp;gt;&lt;br /&gt;
Most likely you will see a HTTP 404 (Not Found) error message, which is the expected behavior since we are not providing an HTML website, the HTTP GET request from the browser will not be answered with content.&amp;lt;br&amp;gt;&lt;br /&gt;
This is perfectly fine since Microsoft will send presence updates with HTTP POST and will not try to request content from our app.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
What you can find out by trying to open the URL in your browser are the two following things: &amp;lt;br&amp;gt;&lt;br /&gt;
* If you receive a HTTP 404 error message you are most likely connected to an App Platform, if not you need to check your DNS (and maybe also reverse proxy) settings.&lt;br /&gt;
* If the URL is modified and the used build number is added, an app has answered your request&lt;br /&gt;
** Example: &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt; is modified to &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/&amp;lt;b&amp;gt;1510411&amp;lt;/b&amp;gt;/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
** If this is not the case, your URL is wrong. (Be aware: The URL depends on the settings of the web server path of your app instance)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be aware:&#039;&#039;&#039; The URL-Recognition in the Application Platform is &#039;&#039;&#039;case sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== User Presence == &lt;br /&gt;
===GUI Feedback===&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. &amp;lt;br&amp;gt;&lt;br /&gt;
Sometimes it needs a little bit time until the states are changed. &amp;lt;br&amp;gt;&lt;br /&gt;
If the states remain, it is mandatory to enable logs on the app platform and check for more information. &amp;lt;br&amp;gt;&lt;br /&gt;
([[Howto13r3:Configure Connector for Microsoft365#Creating an app trace|Concept App Service Connector for Microsoft 365: Creating an app trace]])&lt;br /&gt;
&lt;br /&gt;
====No connection to Master PBX====&lt;br /&gt;
Check the MasterPBX name.&amp;lt;br&amp;gt;&lt;br /&gt;
The field must only contain the name [&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;pbx&amp;lt;/span&amp;gt;], &#039;&#039;&#039;not the full domain&#039;&#039;&#039; [&amp;lt;span style=&amp;quot;color:red;text-decoration: line-through;&amp;quot;&amp;gt;pbx.domain.tld&amp;lt;/span&amp;gt;]. ([[Howto13r3:Configure Connector for Microsoft365#Synchronization from Teams to the PBX|Synchronization from Teams to the PBX - Master PBX field]])&lt;br /&gt;
&lt;br /&gt;
====Presence subscription failed====&lt;br /&gt;
There are many reasons why the &amp;quot;Presence subscription failed&amp;quot; message could be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
We try to list the most common reasons:&lt;br /&gt;
* The permission for the registered app in the Azure portal are not correctly set ([[Howto13r3:Configure Connector for Microsoft365#Create an App for syncing Teams to PBX|Howto: Create an App for syncing Teams to PBX]])&lt;br /&gt;
* The Notification URL is wrong ([[Reference13r3:Concept App Service Connector for Microsoft 365#Correctness of notification URL|Concept App Service Connector for Microsoft 365: Correctness of notification URL]] )&lt;br /&gt;
* The App service is not reachable from the internet ([[Reference13r3:Concept App Service Connector for Microsoft 365#Correctness of notification URL|Concept App Service Connector for Microsoft 365: Correctness of notification URL]] )&lt;br /&gt;
* The certificate for the public endpoint (e.g. reverse proxy) is not valid, or not publicly signed ([[Reference13r3:Concept App Service Connector for Microsoft 365#SSL Certificate for notification URL|Concept App Service Connector for Microsoft 365: SSL Certificate for notification URL]])&lt;br /&gt;
* The user from PBX and the Azure Portal cannot be matched ([[Reference13r3:Concept App Service Connector for Microsoft 365#User Matching|Concept App Service Connector for Microsoft 365: User Matching]])&lt;br /&gt;
* The App Platforms clock time is wrong ([[Reference13r3:Concept App Service Connector for Microsoft 365#App Platform clock time is wrong|Concept App Service Connector for Microsoft 365: App Platform clock time is wrong]])&lt;br /&gt;
* No user has a valid Connector for Microsoft 365 App license ([[Reference13r3:Concept App Service Connector for Microsoft 365#Requirements|Concept App Service Connector for Microsoft 365: Requirements]])&lt;br /&gt;
&lt;br /&gt;
===Teams License for communication user===&lt;br /&gt;
If presence subscription does not work, please check if all of the configured communication users have a Microsoft Teams license applied and no multifactor authentication is in use for this particular user. &amp;lt;br&amp;gt;&lt;br /&gt;
Also please make sure you can login with the configured credentials. (If you have set a password as an Administration, the user needs to change the password during the first login, therefore the given password will be invalid for API access).&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Sometimes, after changing setting or after the instance has restarted it can take up to 12 minutes until the presence subscription is working correctly. (Due to the subscription timeout)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
== Special Characters In Password ==&lt;br /&gt;
If you are using special characters (*, &amp;amp;, (, ), etc.) in you password you could possibly run into a problem with the authentication of the communication user.&amp;lt;br&amp;gt;&lt;br /&gt;
The authentication failed status is beeing displayed. &amp;lt;br&amp;gt;&lt;br /&gt;
For the moment the only workaround is to eliminate special characters from you password.&lt;br /&gt;
&lt;br /&gt;
==App Platform clock time is wrong==&lt;br /&gt;
If the clock time at the App Platform is not correct, this will lead to an unstable behaviour of the Connector for Microsoft 365.&amp;lt;br&amp;gt;&lt;br /&gt;
Since the Connector for Microsoft 365 is using the Microsoft Graph APIs presence subscription function, it needs to provide in its request a precise time until the subscription validity will be expired.&amp;lt;br&amp;gt;&lt;br /&gt;
The app service is handling subscription and will automatically recreate a new subscription each time the previous one has expired.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A wrong clock time will lead to false expiration times and thus&lt;br /&gt;
*  the subscription will be expired earlier than expected (synchronisation is not working because there is no valid subscription)&lt;br /&gt;
*  the subscription will be valid longer than expected (the app service is trying to create a new subscription because it is expecting the previous one to be expired - will lead to a 409 conflict error, because only one subscription can be valid at a time)&lt;br /&gt;
&lt;br /&gt;
If you are not sure about the current time of the App Platform, you can login via SSH into the App Platform and execute the &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; command to check the current time.&amp;lt;br&amp;gt;&lt;br /&gt;
You will receive an output like: &lt;br /&gt;
 Tue Mar 12 13:38:57 UTC 2024&lt;br /&gt;
Please be aware: The time is displayed in UTC, so please make sure to convert to your local time zone.&lt;br /&gt;
&lt;br /&gt;
==Geoblocking==&lt;br /&gt;
Since there might be no reliable country assignment for Microsoft addresses, all Microsoft addresses must be enabled on the upstream firewall in the event of geoblocking in order to ensure functionality of the Office365 Connector.&amp;lt;br&amp;gt;&lt;br /&gt;
As an alternative you might be able to configure your firewall to bypass the geoblocking for the configured notification URL.&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Contact Search by Connector for Microsoft365]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=77411</id>
		<title>Reference16r1:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=77411"/>
		<updated>2025-07-23T12:22:58Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|Apps]]&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* Connector for Microsoft 365 from Version 16r1&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronizes Microsoft Teams presences with the innovaphone PBX and back, and optionally additionally Calendar presence from Exchange Online (part of the Microsoft 365 Cloud Services).&lt;br /&gt;
It is also possible to search for your own contacts. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform (minimum version 120004)&lt;br /&gt;
* V16r1&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* PBX-App(innovaphone-microsoft365) license per user - order no. 02-00050-009&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== User Presence ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto15r1:Configure User Presence Sync by Connector for Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph API.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made periodically.&lt;br /&gt;
&lt;br /&gt;
The app synchronises the PBX presence with Teams through the Graph Api. The on-the-phone presence will be renewed every 5 minutes. The other presences have a lifetime of 1 day but the away has a lifetime of 7 days.&lt;br /&gt;
The lifetimes are described [https://learn.microsoft.com/en-us/graph/api/presence-setuserpreferredpresence?view=graph-rest-1.0&amp;amp;tabs=http here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
===== User Matching =====&lt;br /&gt;
You now can choose the fields used for user matching on either side from the following options:&lt;br /&gt;
* PBX&lt;br /&gt;
** CN (Long Name property from the PBX user object)&lt;br /&gt;
** h323 (Name property from the PBX user object)&lt;br /&gt;
* Azure Portal&lt;br /&gt;
** displayName&lt;br /&gt;
** mail&lt;br /&gt;
** mailNickname&lt;br /&gt;
** onPremisesDistinguishedName&lt;br /&gt;
** onPremisesSamAccountName&lt;br /&gt;
** onPremisesUserPrincipalName&lt;br /&gt;
** userPrincipalName&lt;br /&gt;
&lt;br /&gt;
Additionally, you have the possibility to remove a possibly contained domain from the Azure fields content. &amp;lt;br&amp;gt;&lt;br /&gt;
Example: &#039;user@domain.tld&#039; is transformed to &#039;user&#039;, if this option is checked.&lt;br /&gt;
&lt;br /&gt;
===== Mapping Table =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
===== Master/Slave =====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Calendar Presence ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
Introduced in 15r1 the Connector for Microsoft 365 will offer a possibility to sync Azure Portal calendar events (Teams, Exchange online) via the Graph API with the PXB presence.&amp;lt;br&amp;gt;&lt;br /&gt;
For now the [https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Calendar Calendar App] is (along with other functions) also capable of syncing calendar events, but using the old EWS mechanism, which Microsoft announced as end of life starting from 2026.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; Please make sure to not use both apps for syncing calendar events in parallel, this is not supported and will most likely lead to conflicts and unexpected behaviours.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When the configuration of the connector for Microsoft 365 Calendar Presence Sync is complete, the app connects to Microsoft to receive a token with the calendar app registered in the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
With the token, the app can pick up the users from the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
These are matched against the users in the PBX, based on the configured &amp;quot;User Assignment&amp;quot; settings.&amp;lt;br&amp;gt;&lt;br /&gt;
For each matched user with a valid Connector for Microsoft 365 licence applied, a subscription for calendar events is created at Microsoft to receive event changes in Microsoft Calendar for these users.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A user subscription is also started to receive user changes (add, delete or update).&amp;lt;br&amp;gt;&lt;br /&gt;
If a user has changed, the users are retrieved again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If a calendar event has been started or ended, it is forwarded to the PBX.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Event subscriptions are renewed every day.&lt;br /&gt;
* License Check is made every hour.&lt;br /&gt;
&lt;br /&gt;
=== Contact Search ===&lt;br /&gt;
&lt;br /&gt;
==== Configuration ====&lt;br /&gt;
Please have a look into our [[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365|Howto guide for basic configuration aid]].&lt;br /&gt;
&lt;br /&gt;
==== Technical Overview ====&lt;br /&gt;
Introduced in 16r1 the Connector for Microsoft 365 will offer a possibility to search for your own contacts (Teams, Exchange online) via the Graph API.&lt;br /&gt;
&lt;br /&gt;
When the configuration of the connector for Microsoft 365 Contact Search is complete, the app connects to Microsoft to receive a token with the contact search app registered in the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
With the token, the app can pick up the users from the Azure portal.&amp;lt;br&amp;gt;&lt;br /&gt;
These are matched against the users in the PBX, based on the configured &amp;quot;User Assignment&amp;quot; settings.&amp;lt;br&amp;gt;&lt;br /&gt;
For each matched user with a valid Connector for Microsoft 365 licence applied, the user can search with the Phone App for example. The search string is provided to the Connector for Microsoft 365 via the microsoft365-api. The results are send to the consumer, for example the Phone App and were presented there.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A user subscription is started to receive user changes (add, delete or update).&amp;lt;br&amp;gt;&lt;br /&gt;
If a user has changed, the users are retrieved again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* License Check is made every hour.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&#039;&#039;Applies to the User Presence and the Calendar Presence&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Synchronization Delay ===&lt;br /&gt;
In the official Graph-API documentation, Microsoft is providing an overview about expected latencies for change notifications.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find a whole overview table here:&amp;lt;br&amp;gt;&lt;br /&gt;
https://learn.microsoft.com/en-us/graph/change-notifications-overview#latency&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For the user presences the resource &amp;quot;presence&amp;quot; is used and an average latency of 10 seconds but a maximum up to 1 minute is provided.&amp;lt;br&amp;gt;&lt;br /&gt;
Such a delay in syncing changed presences from Teams down to the PBX are considered normal and are caused by the Microsoft Graph-API.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In case of calendar events the average is provided as &amp;quot;less than 1 minute&amp;quot; and the maximum to 3 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Presence ==&lt;br /&gt;
=== Line states set by the PBX does not block calls in Teams ===&lt;br /&gt;
Line states set by a 3rd party application (like the Connector for Microsoft 365) through the graph API are currently &#039;&#039;&#039;only for display purpose and do not block new calls&#039;&#039;&#039; in Teams.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
https://techcommunity.microsoft.com/t5/teams-developer/ms-graph-setpresence-problems/m-p/2798805/highlight/true#M3957&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the above linked discussion, there once existed a feature request on Microsoft Voice, which is no longer available since it was not voted.&lt;br /&gt;
=== Maximum number of supported users ===&lt;br /&gt;
The connector now supports multiple Microsoft Teams communication users, which is the prerequisite to subscribe for more than 650 users. There is a new ribbon (Manage Teams Accounts) that allows you to configure as many communication users as you need. Every configured communication user can be used to subscribe 650 users, for example:&lt;br /&gt;
&lt;br /&gt;
*3 configured communication users x 650 licensed users = 1950 users can be subscribed&lt;br /&gt;
&#039;&#039;&#039;Please be aware&#039;&#039;&#039;: Each communication user must have a Teams license applied.&lt;br /&gt;
&lt;br /&gt;
This limitation is caused by Microsoft.&amp;lt;br&amp;gt;&lt;br /&gt;
In the documentation of the Graph-API you will find a hint to this limitation:&amp;lt;br&amp;gt;&lt;br /&gt;
https://learn.microsoft.com/en-us/graph/changenotifications-for-presence#subscribe-to-multiple-users-presence&amp;lt;br&amp;gt;&lt;br /&gt;
Trying to subscribe more than 650 users (with one communication user) by using the presence subscription API will be declined by the graph API with an error message, that too many users are requested.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Communication User (UserSynctoPbx) ===&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as technical communication user for the Connector.&lt;br /&gt;
&lt;br /&gt;
=== Multiple sites / instances require multiple communication users ===&lt;br /&gt;
Each instance or each site must have separate communication users, as Microsoft only allows one concurrent subscription per communication user. (otherwise an HTTP 409 conflict will occur)&lt;br /&gt;
&lt;br /&gt;
This means that if you want to subscribe to the same Azure Portal backend from two different sites (or instances), you will need to have multiple communication users (each with an applied Teams licence) in order to be able to subscribe from all endpoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscription Timeout ===&lt;br /&gt;
&lt;br /&gt;
==== Situation ====&lt;br /&gt;
Due to a current limitation in the Graph API it is not possible to cancel or delete an active presence subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the [https://learn.microsoft.com/en-us/graph/api/subscription-delete?view=graph-rest-1.0&amp;amp;tabs=http|documentation of the current Graph API (1.0)] the “Delete subscription” chapter does not include presence subscriptions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also not possible to have multiple subscription in parallel. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make sure to only request a new presence subscription when the old one is not valid anymore, the app will store the state of the presence subscription and the time until it is valid in the database.&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the chapter “Technical Overview” we are creating presence subscriptions with a validity of 10 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
The presence subscription will be renewed as soon as it is no longer valid which will be 10 minutes after initial subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Impact ====&lt;br /&gt;
If settings are changed or the app instance is restarted it will check the corresponding database entry on startup.&amp;lt;br&amp;gt;&lt;br /&gt;
In case the last presence subscription was completed less than 10 minutes ago, there is still an active presence subscription and the app has to wait for it to become invalid. &amp;lt;br&amp;gt;&lt;br /&gt;
Some Changes (e.g., to the “Notification-URL”) will only take effect after a new created subscription. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Beta Version of the Graph API is already providing a function to delete presence subscriptions, so we hope we can improve this behavior in the future.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
===Creating an app trace===&lt;br /&gt;
For further analysis and creating a support ticket it will be useful to have a suitable app trace. &amp;lt;br&amp;gt;&lt;br /&gt;
Before creating the trace please make sure the following trace flags are activated for the app instance:&lt;br /&gt;
* App&lt;br /&gt;
* Database&lt;br /&gt;
* HTTP client&lt;br /&gt;
* TLS&lt;br /&gt;
* TCP&lt;br /&gt;
* App WebSocket&lt;br /&gt;
* Config&lt;br /&gt;
* Webserver&lt;br /&gt;
&lt;br /&gt;
After setting the config flags, please make sure to&lt;br /&gt;
* stop the instance&lt;br /&gt;
* deleting the current instance log&lt;br /&gt;
* start the instance&lt;br /&gt;
&#039;&#039;&#039;Now please wait at least 5 Minutes before you save the log&#039;&#039;&#039;, otherwise we could not have the whole picture in the trace.&lt;br /&gt;
&lt;br /&gt;
The restart and deletion of the the old log is useful the see the complete initialization process right away.&lt;br /&gt;
&lt;br /&gt;
===SSL Certificate for notification URL===&lt;br /&gt;
It also is useful to make sure the notification URL has a valid and public signed certificate.&amp;lt;br&amp;gt;&lt;br /&gt;
You can do that, using an SSL-Checker, for example: https://www.sslshopper.com/ssl-checker.html &amp;lt;br&amp;gt;&lt;br /&gt;
Without a valid, public signed certificate, Microsoft will decline the connection since it will not be possible to establish a trust relationship for the SSL/TLS secure channel.&lt;br /&gt;
&lt;br /&gt;
===Correctness of notification URL===&lt;br /&gt;
You can try to open the notification URL in your Browser&amp;lt;br&amp;gt;&lt;br /&gt;
Most likely you will see a HTTP 404 (Not Found) error message, which is the expected behavior since we are not providing an HTML website, the HTTP GET request from the browser will not be answered with content.&amp;lt;br&amp;gt;&lt;br /&gt;
This is perfectly fine since Microsoft will send presence updates with HTTP POST and will not try to request content from our app.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
What you can find out by trying to open the URL in your browser are the two following things: &amp;lt;br&amp;gt;&lt;br /&gt;
* If you receive a HTTP 404 error message you are most likely connected to an App Platform, if not you need to check your DNS (and maybe also reverse proxy) settings.&lt;br /&gt;
* If the URL is modified and the used build number is added, an app has answered your request&lt;br /&gt;
** Example: &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt; is modified to &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/&amp;lt;b&amp;gt;1510411&amp;lt;/b&amp;gt;/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
** If this is not the case, your URL is wrong. (Be aware: The URL depends on the settings of the web server path of your app instance)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be aware:&#039;&#039;&#039; The URL-Recognition in the Application Platform is &#039;&#039;&#039;case sensitive&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== User Presence == &lt;br /&gt;
===GUI Feedback===&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. &amp;lt;br&amp;gt;&lt;br /&gt;
Sometimes it needs a little bit time until the states are changed. &amp;lt;br&amp;gt;&lt;br /&gt;
If the states remain, it is mandatory to enable logs on the app platform and check for more information. &amp;lt;br&amp;gt;&lt;br /&gt;
([[Howto13r3:Configure Connector for Microsoft365#Creating an app trace|Concept App Service Connector for Microsoft 365: Creating an app trace]])&lt;br /&gt;
&lt;br /&gt;
====No connection to Master PBX====&lt;br /&gt;
Check the MasterPBX name.&amp;lt;br&amp;gt;&lt;br /&gt;
The field must only contain the name [&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;pbx&amp;lt;/span&amp;gt;], &#039;&#039;&#039;not the full domain&#039;&#039;&#039; [&amp;lt;span style=&amp;quot;color:red;text-decoration: line-through;&amp;quot;&amp;gt;pbx.domain.tld&amp;lt;/span&amp;gt;]. ([[Howto13r3:Configure Connector for Microsoft365#Synchronization from Teams to the PBX|Synchronization from Teams to the PBX - Master PBX field]])&lt;br /&gt;
&lt;br /&gt;
====Presence subscription failed====&lt;br /&gt;
There are many reasons why the &amp;quot;Presence subscription failed&amp;quot; message could be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
We try to list the most common reasons:&lt;br /&gt;
* The permission for the registered app in the Azure portal are not correctly set ([[Howto13r3:Configure Connector for Microsoft365#Create an App for syncing Teams to PBX|Howto: Create an App for syncing Teams to PBX]])&lt;br /&gt;
* The Notification URL is wrong ([[Reference13r3:Concept App Service Connector for Microsoft 365#Correctness of notification URL|Concept App Service Connector for Microsoft 365: Correctness of notification URL]] )&lt;br /&gt;
* The App service is not reachable from the internet ([[Reference13r3:Concept App Service Connector for Microsoft 365#Correctness of notification URL|Concept App Service Connector for Microsoft 365: Correctness of notification URL]] )&lt;br /&gt;
* The certificate for the public endpoint (e.g. reverse proxy) is not valid, or not publicly signed ([[Reference13r3:Concept App Service Connector for Microsoft 365#SSL Certificate for notification URL|Concept App Service Connector for Microsoft 365: SSL Certificate for notification URL]])&lt;br /&gt;
* The user from PBX and the Azure Portal cannot be matched ([[Reference13r3:Concept App Service Connector for Microsoft 365#User Matching|Concept App Service Connector for Microsoft 365: User Matching]])&lt;br /&gt;
* The App Platforms clock time is wrong ([[Reference13r3:Concept App Service Connector for Microsoft 365#App Platform clock time is wrong|Concept App Service Connector for Microsoft 365: App Platform clock time is wrong]])&lt;br /&gt;
* No user has a valid Connector for Microsoft 365 App license ([[Reference13r3:Concept App Service Connector for Microsoft 365#Requirements|Concept App Service Connector for Microsoft 365: Requirements]])&lt;br /&gt;
&lt;br /&gt;
===Teams License for communication user===&lt;br /&gt;
If presence subscription does not work, please check if all of the configured communication users have a Microsoft Teams license applied and no multifactor authentication is in use for this particular user. &amp;lt;br&amp;gt;&lt;br /&gt;
Also please make sure you can login with the configured credentials. (If you have set a password as an Administration, the user needs to change the password during the first login, therefore the given password will be invalid for API access).&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Sometimes, after changing setting or after the instance has restarted it can take up to 12 minutes until the presence subscription is working correctly. (Due to the subscription timeout)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
== Special Characters In Password ==&lt;br /&gt;
If you are using special characters (*, &amp;amp;, (, ), etc.) in you password you could possibly run into a problem with the authentication of the communication user.&amp;lt;br&amp;gt;&lt;br /&gt;
The authentication failed status is beeing displayed. &amp;lt;br&amp;gt;&lt;br /&gt;
For the moment the only workaround is to eliminate special characters from you password.&lt;br /&gt;
&lt;br /&gt;
==App Platform clock time is wrong==&lt;br /&gt;
If the clock time at the App Platform is not correct, this will lead to an unstable behaviour of the Connector for Microsoft 365.&amp;lt;br&amp;gt;&lt;br /&gt;
Since the Connector for Microsoft 365 is using the Microsoft Graph APIs presence subscription function, it needs to provide in its request a precise time until the subscription validity will be expired.&amp;lt;br&amp;gt;&lt;br /&gt;
The app service is handling subscription and will automatically recreate a new subscription each time the previous one has expired.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A wrong clock time will lead to false expiration times and thus&lt;br /&gt;
*  the subscription will be expired earlier than expected (synchronisation is not working because there is no valid subscription)&lt;br /&gt;
*  the subscription will be valid longer than expected (the app service is trying to create a new subscription because it is expecting the previous one to be expired - will lead to a 409 conflict error, because only one subscription can be valid at a time)&lt;br /&gt;
&lt;br /&gt;
If you are not sure about the current time of the App Platform, you can login via SSH into the App Platform and execute the &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; command to check the current time.&amp;lt;br&amp;gt;&lt;br /&gt;
You will receive an output like: &lt;br /&gt;
 Tue Mar 12 13:38:57 UTC 2024&lt;br /&gt;
Please be aware: The time is displayed in UTC, so please make sure to convert to your local time zone.&lt;br /&gt;
&lt;br /&gt;
==Geoblocking==&lt;br /&gt;
Since there might be no reliable country assignment for Microsoft addresses, all Microsoft addresses must be enabled on the upstream firewall in the event of geoblocking in order to ensure functionality of the Office365 Connector.&amp;lt;br&amp;gt;&lt;br /&gt;
As an alternative you might be able to configure your firewall to bypass the geoblocking for the configured notification URL.&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Contact Search by Connector for Microsoft365]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77408</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77408"/>
		<updated>2025-07-23T11:33:34Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission Connector for Microsoft365 ContactSearch.png|thumb|none|600px|APIPermission Connector for Microsoft365 ContactSearch/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 App&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the API object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 API&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* The &#039;&#039;&#039;Name&#039;&#039;&#039; and &#039;&#039;&#039;SIP&#039;&#039;&#039; has to be &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365-api&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft_365_Settings_API.png|thumb|none|600px|microsoft_365_Settings_API.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Configuration of the Contact Search=====&lt;br /&gt;
* For the contact search you select &#039;&#039;&#039;Configuration for Contact Search&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDContactSearch&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;TenantContactSearch&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretContactSearch&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURL&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77407</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77407"/>
		<updated>2025-07-23T11:33:00Z</updated>

		<summary type="html">&lt;p&gt;The: /* Synchronization from the Teams to PBX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Der Artikel ist derzeit noch eine Kopie der Calendar Presence Integration und muss noch überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission Connector for Microsoft365 ContactSearch.png|thumb|none|600px|APIPermission Connector for Microsoft365 ContactSearch/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 App&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the API object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 API&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* The &#039;&#039;&#039;Name&#039;&#039;&#039; and &#039;&#039;&#039;SIP&#039;&#039;&#039; has to be &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365-api&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft_365_Settings_API.png|thumb|none|600px|microsoft_365_Settings_API.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Configuration of the Contact Search=====&lt;br /&gt;
* For the contact search you select &#039;&#039;&#039;Configuration for Contact Search&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDContactSearch&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;TenantContactSearch&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretContactSearch&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Contact Search app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURL&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77406</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77406"/>
		<updated>2025-07-23T11:28:55Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Der Artikel ist derzeit noch eine Kopie der Calendar Presence Integration und muss noch überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission Connector for Microsoft365 ContactSearch.png|thumb|none|600px|APIPermission Connector for Microsoft365 ContactSearch/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 App&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the API object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 API&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* The &#039;&#039;&#039;Name&#039;&#039;&#039; and &#039;&#039;&#039;SIP&#039;&#039;&#039; has to be &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365-api&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft_365_Settings_API.png|thumb|none|600px|microsoft_365_Settings_API.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Microsoft_365_Settings_API.png&amp;diff=77405</id>
		<title>File:Microsoft 365 Settings API.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Microsoft_365_Settings_API.png&amp;diff=77405"/>
		<updated>2025-07-23T11:14:24Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77401</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77401"/>
		<updated>2025-07-23T08:06:01Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Der Artikel ist derzeit noch eine Kopie der Calendar Presence Integration und muss noch überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission Connector for Microsoft365 ContactSearch.png|thumb|none|600px|APIPermission Connector for Microsoft365 ContactSearch/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 App&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the API object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Microsoft365 API&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* The &#039;&#039;&#039;Name&#039;&#039;&#039; and &#039;&#039;&#039;SIP&#039;&#039;&#039; has to be &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365-api&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77400</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77400"/>
		<updated>2025-07-23T07:05:17Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Der Artikel ist derzeit noch eine Kopie der Calendar Presence Integration und muss noch überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission Connector for Microsoft365 ContactSearch.png|thumb|none|600px|APIPermission Connector for Microsoft365 ContactSearch/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_ContactSearch.png&amp;diff=77399</id>
		<title>File:APIPermission Connector for Microsoft365 ContactSearch.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_ContactSearch.png&amp;diff=77399"/>
		<updated>2025-07-23T07:00:47Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;APIPermission Connector for Microsoft365 ContactSearch&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77398</id>
		<title>Howto16r1:Configure Contact Search by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Configure_Contact_Search_by_Connector_for_Microsoft365&amp;diff=77398"/>
		<updated>2025-07-23T06:59:41Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Der Artikel ist derzeit noch eine Kopie der Calendar Presence Integration und muss noch überarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 16r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App to search for contacts====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration|app_registration_connector_for_microsoft365.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|authentication_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Contacts.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px|azure_select_api-permission.png/]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px|azure_select_api-permission_application.png/]]&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Calendar.png|thumb|none|600px|apipermission_connector_for_microsoft365_calendar.png/]]&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px|microsoft365_install_app_1.png/]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px|microsoft365_install_app_2.png/]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px|microsoft365_create_instance_1.png/]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px|microsoft365_create_instance_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px|microsoft365_pbx_manager_1.png/]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px|microsoft365_pbx_manager_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px|microsoft365_template_1.png/]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px|microsoft365_template_2.png/]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px|microsoft365_admin_app_1.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - You need to specify the address Microsoft can send presence updates to&lt;br /&gt;
## You need to make sure that you define a URL where you can reach your App Platform from the public internet &amp;lt;code&amp;gt;public.dns&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the domain you have configured in the app instance before (3.2.2) &amp;lt;code&amp;gt;your.domain&amp;lt;/code&amp;gt;&lt;br /&gt;
## Next you need the name of the instance you have configured before (3.2.2) &amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&lt;br /&gt;
## The URL will always be terminated by &amp;lt;code&amp;gt;subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
##* &amp;lt;code&amp;gt;https://public.dns/your.domain/microsoft365/subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Microsoft 365|Concept App Service Connector for Microsoft 365]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure User Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto16r1:Configure Calendar Presence Sync by Connector for Microsoft365]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=77221</id>
		<title>Reference14r1:Concept App Service Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=77221"/>
		<updated>2025-06-30T16:40:57Z</updated>

		<summary type="html">&lt;p&gt;The: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Voicemail]]&lt;br /&gt;
&lt;br /&gt;
The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Database for voicemails&lt;br /&gt;
* Voicemail App on all myApps capable devices with visual Voicemail Notification&lt;br /&gt;
* Play, Download and Delete Voicemails&lt;br /&gt;
* Automatic Deletion of old voicemail-messages&lt;br /&gt;
* MWI on IP phones&lt;br /&gt;
* Email notification with a .wav attachment of the voicemail file&lt;br /&gt;
* Available languages German, Danish, Dutch, English, Finnish, French, Italian, Norwegian, Polish, Portuguese, from 15r1:Romanian, Swedish, Spanish, and Czech&lt;br /&gt;
* Custom XML voicemail scripts can be enabled&lt;br /&gt;
* Group Voicemail&lt;br /&gt;
* Automatically delete old voicemails (read/stored and unread) after x days&lt;br /&gt;
* Configure default pin / length of the PIN-codes&lt;br /&gt;
* Call own voice box&lt;br /&gt;
* Edit own pin (set back to default)&lt;br /&gt;
* Activate/deactivate call forwarding (CFU/CFB/CFNR)&lt;br /&gt;
* Number resolution with search provider (com.innovaphone.phonelookup) -&amp;gt; at the moment only usable with myApps and OutlookSearch&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX and App Platform from version 14r1 on.&lt;br /&gt;
* A UC- or Voicemail-license per user having a voicemail-box. &lt;br /&gt;
* Each voicemail-user needs to have a number assigned.&lt;br /&gt;
* Group Voicemail-boxes need a Voicemail license (PBX-VoicemailUser&amp;lt;version&amp;gt;) too (set automatically via the PBX Manager).&lt;br /&gt;
&lt;br /&gt;
= Apps =&lt;br /&gt;
&lt;br /&gt;
== Voicemail App (innovaphone-voicemail) ==&lt;br /&gt;
Main app to manage the voicemail-messages and personal settings.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=== Group Voicemail ===&lt;br /&gt;
After configuration with the PBX Manager, it offers the same familiar features. Delete/Move affects all users of this app (MWI for all users is deleted). For its configuration, see the [[Howto:Group_Voicemail#Configuration_App_Platform| Group Voicemail article]].&lt;br /&gt;
&lt;br /&gt;
== PBX Manager ==&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Here you can configure all global Voicemail-settings:&lt;br /&gt;
* User and Password for all &lt;br /&gt;
* (From V14r1 on) Number of days for auto deletion of old voicemail-messages. If not set (default), there is no auto-deletion.&lt;br /&gt;
&lt;br /&gt;
=== add voicemail ===&lt;br /&gt;
Input-field to create a new Voicemail-system. Besides the normal input-fields, you can:&lt;br /&gt;
* Activate the email notifications&lt;br /&gt;
* Activate a custom voicemail-script&lt;br /&gt;
* (From V14r1 Final on) Configure the default PIN. If not set (default), the 8765 is assumed.&lt;br /&gt;
: By configuring a default PIN, you can also change the PIN length: &lt;br /&gt;
: Using 876543 as default PIN not only changes the default PIN, but defines also the PIN-length used to 6.&lt;br /&gt;
* Used URL-parameters:&lt;br /&gt;
** &#039;$app&#039;: indicates that it&#039;s an App&lt;br /&gt;
** $_defaultpin: defines the default PIN and the length of the PIN used by the system&lt;br /&gt;
&lt;br /&gt;
=== add group voicemail ===&lt;br /&gt;
Input-field to create a new VoicemailGroup-box. Besides the normal input-fields (see &#039;add voicemail&#039;), you can:&lt;br /&gt;
* Configure the list of users who want to receive an MWI. This is a comma-separated list of SIP names (no numbers allowed). &lt;br /&gt;
* Extra Used URL-parameters:&lt;br /&gt;
** &#039;$m&#039;: comma-separated list of SIP names for MWI&lt;br /&gt;
** &#039;$group&#039;: indicates that it&#039;s a Group Voicemail&lt;br /&gt;
&lt;br /&gt;
== MWI on Phone ==&lt;br /&gt;
http://wiki.innovaphone.com/index.php?title=Howto:Group_Voicemail&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Voicemail XML Script==&lt;br /&gt;
The PBX should be able to load the &amp;lt;code&amp;gt;vm.xml&amp;lt;/code&amp;gt; file from the Voicemail App Service. Therefore the credentials(&#039;&#039;User&#039;&#039;, &#039;&#039;Password&#039;&#039;) under Tab &#039;&#039;Voicemail&#039;&#039;, must match with the credentials configured in the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager (Settings-section).&lt;br /&gt;
Changing these credentials can be done best via the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager, as this plugin will adjust all the necessary things (Voicemail-object and database-record of the Voicemail-instance).&lt;br /&gt;
&lt;br /&gt;
To trace, if PBX can read the Voicemail XML from App Platform, activate the Trace flag on the Voicemail Object, PBX Trace in the Maintenance/Tracing, and make a call to the Voicemail to see if the vm.xml is transmitted correctly.&lt;br /&gt;
&lt;br /&gt;
==App WebSocket==&lt;br /&gt;
The PBX should maintain a permanent WebSocket connection to the Voicemail App Service. On the Voicemail Object, under Tab &#039;&#039;Voicemail&#039;&#039;, check if &#039;&#039;Script URL&#039;&#039; show &#039;&#039;connected&#039;&#039; state. The Voicemail-objects password in the &#039;General&#039;-tab is being used for this and checked against the Voicemail-instances password.&lt;br /&gt;
&lt;br /&gt;
If not, check if the URL is correct and points to the service instance. The PBX should be able to resolve the DNS name and be able to connect to the Voicemail App Service on the App Platform. &lt;br /&gt;
If all OK: re-configure the password on the instance and voicemail-object.&lt;br /&gt;
&lt;br /&gt;
=Known Problems=&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Group_Voicemail| Group Voicemail]]&lt;br /&gt;
* [[Howto:Getting_started_with_your_own_PBX_voicemail_script| Getting started with your own PBX voicemail script]]&lt;br /&gt;
* [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode| Use your own voicemail files with the voicemail APP in custom mode]]&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=77220</id>
		<title>Reference14r1:Concept App Service Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=77220"/>
		<updated>2025-06-30T16:39:38Z</updated>

		<summary type="html">&lt;p&gt;The: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Voicemail]]&lt;br /&gt;
&lt;br /&gt;
The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Database for voicemails&lt;br /&gt;
* Voicemail App on all myApps capable devices with visual Voicemail Notification&lt;br /&gt;
* Play, Download and Delete Voicemails&lt;br /&gt;
* Automatic Deletion of old voicemail-messages&lt;br /&gt;
* MWI on IP phones&lt;br /&gt;
* Email notification with a .wav attachment of the voicemail file&lt;br /&gt;
* Available languages German, Danish, Dutch, English, Finnish, French, Italian, Norwegian, Polish, Portuguese, Romanian, Swedish, Spanish, and Czech&lt;br /&gt;
* Custom XML voicemail scripts can be enabled&lt;br /&gt;
* Group Voicemail&lt;br /&gt;
* Automatically delete old voicemails (read/stored and unread) after x days&lt;br /&gt;
* Configure default pin / length of the PIN-codes&lt;br /&gt;
* Call own voice box&lt;br /&gt;
* Edit own pin (set back to default)&lt;br /&gt;
* Activate/deactivate call forwarding (CFU/CFB/CFNR)&lt;br /&gt;
* Number resolution with search provider (com.innovaphone.phonelookup) -&amp;gt; at the moment only usable with myApps and OutlookSearch&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX and App Platform from version 14r1 on.&lt;br /&gt;
* A UC- or Voicemail-license per user having a voicemail-box. &lt;br /&gt;
* Each voicemail-user needs to have a number assigned.&lt;br /&gt;
* Group Voicemail-boxes need a Voicemail license (PBX-VoicemailUser&amp;lt;version&amp;gt;) too (set automatically via the PBX Manager).&lt;br /&gt;
&lt;br /&gt;
= Apps =&lt;br /&gt;
&lt;br /&gt;
== Voicemail App (innovaphone-voicemail) ==&lt;br /&gt;
Main app to manage the voicemail-messages and personal settings.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=== Group Voicemail ===&lt;br /&gt;
After configuration with the PBX Manager, it offers the same familiar features. Delete/Move affects all users of this app (MWI for all users is deleted). For its configuration, see the [[Howto:Group_Voicemail#Configuration_App_Platform| Group Voicemail article]].&lt;br /&gt;
&lt;br /&gt;
== PBX Manager ==&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Here you can configure all global Voicemail-settings:&lt;br /&gt;
* User and Password for all &lt;br /&gt;
* (From V14r1 on) Number of days for auto deletion of old voicemail-messages. If not set (default), there is no auto-deletion.&lt;br /&gt;
&lt;br /&gt;
=== add voicemail ===&lt;br /&gt;
Input-field to create a new Voicemail-system. Besides the normal input-fields, you can:&lt;br /&gt;
* Activate the email notifications&lt;br /&gt;
* Activate a custom voicemail-script&lt;br /&gt;
* (From V14r1 Final on) Configure the default PIN. If not set (default), the 8765 is assumed.&lt;br /&gt;
: By configuring a default PIN, you can also change the PIN length: &lt;br /&gt;
: Using 876543 as default PIN not only changes the default PIN, but defines also the PIN-length used to 6.&lt;br /&gt;
* Used URL-parameters:&lt;br /&gt;
** &#039;$app&#039;: indicates that it&#039;s an App&lt;br /&gt;
** $_defaultpin: defines the default PIN and the length of the PIN used by the system&lt;br /&gt;
&lt;br /&gt;
=== add group voicemail ===&lt;br /&gt;
Input-field to create a new VoicemailGroup-box. Besides the normal input-fields (see &#039;add voicemail&#039;), you can:&lt;br /&gt;
* Configure the list of users who want to receive an MWI. This is a comma-separated list of SIP names (no numbers allowed). &lt;br /&gt;
* Extra Used URL-parameters:&lt;br /&gt;
** &#039;$m&#039;: comma-separated list of SIP names for MWI&lt;br /&gt;
** &#039;$group&#039;: indicates that it&#039;s a Group Voicemail&lt;br /&gt;
&lt;br /&gt;
== MWI on Phone ==&lt;br /&gt;
http://wiki.innovaphone.com/index.php?title=Howto:Group_Voicemail&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Voicemail XML Script==&lt;br /&gt;
The PBX should be able to load the &amp;lt;code&amp;gt;vm.xml&amp;lt;/code&amp;gt; file from the Voicemail App Service. Therefore the credentials(&#039;&#039;User&#039;&#039;, &#039;&#039;Password&#039;&#039;) under Tab &#039;&#039;Voicemail&#039;&#039;, must match with the credentials configured in the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager (Settings-section).&lt;br /&gt;
Changing these credentials can be done best via the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager, as this plugin will adjust all the necessary things (Voicemail-object and database-record of the Voicemail-instance).&lt;br /&gt;
&lt;br /&gt;
To trace, if PBX can read the Voicemail XML from App Platform, activate the Trace flag on the Voicemail Object, PBX Trace in the Maintenance/Tracing, and make a call to the Voicemail to see if the vm.xml is transmitted correctly.&lt;br /&gt;
&lt;br /&gt;
==App WebSocket==&lt;br /&gt;
The PBX should maintain a permanent WebSocket connection to the Voicemail App Service. On the Voicemail Object, under Tab &#039;&#039;Voicemail&#039;&#039;, check if &#039;&#039;Script URL&#039;&#039; show &#039;&#039;connected&#039;&#039; state. The Voicemail-objects password in the &#039;General&#039;-tab is being used for this and checked against the Voicemail-instances password.&lt;br /&gt;
&lt;br /&gt;
If not, check if the URL is correct and points to the service instance. The PBX should be able to resolve the DNS name and be able to connect to the Voicemail App Service on the App Platform. &lt;br /&gt;
If all OK: re-configure the password on the instance and voicemail-object.&lt;br /&gt;
&lt;br /&gt;
=Known Problems=&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Group_Voicemail| Group Voicemail]]&lt;br /&gt;
* [[Howto:Getting_started_with_your_own_PBX_voicemail_script| Getting started with your own PBX voicemail script]]&lt;br /&gt;
* [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode| Use your own voicemail files with the voicemail APP in custom mode]]&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75253</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75253"/>
		<updated>2025-02-27T11:56:43Z</updated>

		<summary type="html">&lt;p&gt;The: /* Configuration in Azure Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Calendars.Read) and (User.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px]]&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Calendar.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - Please insert the Notification URL to your App Platform to get notifications&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75252</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75252"/>
		<updated>2025-02-27T11:55:30Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Calendar.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px]]&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Calendar.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - Please insert the Notification URL to your App Platform to get notifications&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365_Calendar.png&amp;diff=75251</id>
		<title>File:Authentication Connector for Microsoft365 Calendar.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365_Calendar.png&amp;diff=75251"/>
		<updated>2025-02-27T11:53:54Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_Calendar.png&amp;diff=75250</id>
		<title>File:APIPermission Connector for Microsoft365 Calendar.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_Calendar.png&amp;diff=75250"/>
		<updated>2025-02-27T11:53:30Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75249</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75249"/>
		<updated>2025-02-27T11:43:23Z</updated>

		<summary type="html">&lt;p&gt;The: /* Configuration in Azure Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px]]&lt;br /&gt;
[[Image:Azure_Select_Api-Permission_Application.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - Please insert the Notification URL to your App Platform to get notifications&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75248</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75248"/>
		<updated>2025-02-27T11:42:30Z</updated>

		<summary type="html">&lt;p&gt;The: /* Configuration in Azure Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Azure_Select_Api-Permission.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - Please insert the Notification URL to your App Platform to get notifications&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75247</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75247"/>
		<updated>2025-02-27T11:38:35Z</updated>

		<summary type="html">&lt;p&gt;The: /* Synchronization from the Teams to PBX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add a new app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;In the picture you can see that we have 2 values after that which we can use for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;NotificationURLCalendar&#039;&#039;&#039; - Please insert the Notification URL to your App Platform to get notifications&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75235</id>
		<title>Howto15r1:Configure Calendar Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto15r1:Configure_Calendar_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=75235"/>
		<updated>2025-02-26T18:35:19Z</updated>

		<summary type="html">&lt;p&gt;The: Created page with &amp;quot;==Applies To== This information applies to Connector for Microsoft 365 from version 15r1  ==More Information==  This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt; In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt; After that, you will install the App in your Application Platform, and configure everything.   ===System Requirements===  * Licenses &amp;#039;&amp;#039;&amp;#039;innovaphone Connector for Microsoft 365&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
Connector for Microsoft 365 from version 15r1&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&amp;lt;br&amp;gt;&lt;br /&gt;
In preparation, you first will need to configure one Application in your Azure Portal. &amp;lt;br&amp;gt;&lt;br /&gt;
After that, you will install the App in your Application Platform, and configure everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* Licenses &#039;&#039;&#039;innovaphone Connector for Microsoft 365&#039;&#039;&#039; per user who wants to use the innovaphone myApps Connector for Microsoft 365.&lt;br /&gt;
* &#039;&#039;&#039;account in Azure Portal of Microsoft&#039;&#039;&#039; (for each of the technical communication users, no permission role needed)&amp;lt;br&amp;gt;&lt;br /&gt;
* Must have access from the internet to your App Platform&lt;br /&gt;
** This can be done by using a reverse proxy or other firewall&lt;br /&gt;
* The public endpoint &#039;&#039;&#039;must have &#039;&#039;&#039; a &#039;&#039;&#039;valid, public signed certificate&#039;&#039;&#039; (in order to make a trusted SSL connection from the Azure cloud to the Application Platform possible)&lt;br /&gt;
** A valid certificate is required in all involved network entities - at least in the App Platform and if used in the Reverse Proxy; to ensure transmission of MS365 HTTPS POST requests to the app service in order to send notifications.&lt;br /&gt;
* Admin account for Azure Portal (only necessary for granting needed permission for registered app during setup)&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Configuration in Azure Portal===&lt;br /&gt;
&lt;br /&gt;
====Create an App for syncing Calendar Events from Teams to PBX====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add a new app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;In the picture you can see that we have 2 values after that which we can use for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to Certificates &amp;amp; Secrets on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring App Platform and PBX===&lt;br /&gt;
====Installing the connector app====&lt;br /&gt;
* First you need to install the connector app from the App Store:&lt;br /&gt;
[[Image:Microsoft365_install_app_1.png|thumb|none|600px]]&lt;br /&gt;
* Install the app by selecting&lt;br /&gt;
# All apps&lt;br /&gt;
# innovaphone AG&lt;br /&gt;
# innovaphone myApps Connector for Microsoft 365&lt;br /&gt;
# select the current Version &lt;br /&gt;
# Click install&lt;br /&gt;
[[Image:Microsoft365_install_app_2.png|thumb|none|600px]]&lt;br /&gt;
====Creating an instance for the connector app====&lt;br /&gt;
* For creating an Instance, in the AP Manager you need to &lt;br /&gt;
# select &#039;&#039;&#039;innovaphone myApps Connector for Microsoft 365&#039;&#039;&#039;&lt;br /&gt;
# click &#039;&#039;&#039;add&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_1.png|thumb|none|600px]]&lt;br /&gt;
* Insert the following information and save&lt;br /&gt;
# The technical Instance Name (we suggest microsoft365)&lt;br /&gt;
# Your Domain (This should be the domain you have already configured in your PBX and your Application Platform)&lt;br /&gt;
# define a password for the communication between the PBX and the app instance&lt;br /&gt;
# define a password for the communication between the app instance and the database&lt;br /&gt;
&#039;&#039;All other fields should be filled automatically&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_create_instance_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Creating the PBX app object using the PBX Manager Plugin====&lt;br /&gt;
* Open the PBX Manager and &lt;br /&gt;
# select the &#039;&#039;&#039;AP &amp;lt;code&amp;gt;InstanceName&amp;lt;/code&amp;gt;&#039;&#039;&#039; Tile&lt;br /&gt;
# Click &#039;&#039;&#039;Add an app&#039;&#039;&#039;&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_1.png|thumb|none|600px]]&lt;br /&gt;
* Specify the &#039;&#039;&#039;Name&#039;&#039;&#039; and the &#039;&#039;&#039;SIP&#039;&#039;&#039; (We suggest using &#039;&#039;&#039;&amp;lt;code&amp;gt;microsoft365&amp;lt;/code&amp;gt;&#039;&#039;&#039; for this technical names)&lt;br /&gt;
[[Image:Microsoft365_pbx_manager_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Add the admin app to a user or a template====&lt;br /&gt;
To be able to configure the connector app, you need users to have access to the admin app.&amp;lt;br&amp;gt;&lt;br /&gt;
You can achieve this by adding the app to a user, or to a template. &amp;lt;br&amp;gt;&lt;br /&gt;
In this Howto - as an example - we will add the app to the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template. &amp;lt;br&amp;gt;&lt;br /&gt;
* In the PBX Manager &lt;br /&gt;
# select the &amp;lt;code&amp;gt;Templates&amp;lt;/code&amp;gt; tile &lt;br /&gt;
# click on the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
[[Image:Microsoft365_template_1.png|thumb|none|600px]]&lt;br /&gt;
* In the &amp;lt;code&amp;gt;Config Admin&amp;lt;/code&amp;gt; template&lt;br /&gt;
# open Apps&lt;br /&gt;
# Check the &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; checkbox&lt;br /&gt;
# Save the changes&lt;br /&gt;
[[Image:Microsoft365_template_2.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
====Configure the connector with the admin app====&lt;br /&gt;
Now your admins (designated groups or configured user) should have access to the connector admin app. &amp;lt;br&amp;gt;&lt;br /&gt;
* A user with access to the app can now see a new tile in the &#039;&#039;&#039;All Apps&#039;&#039;&#039; area&lt;br /&gt;
* The name depends on the configured &amp;lt;code&amp;gt;app name&amp;lt;/code&amp;gt; from the PBX Manager plugin&lt;br /&gt;
[[Image:Microsoft365_admin_app_1.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Synchronization from the Teams to PBX=====&lt;br /&gt;
* For the calendar synchronization you select from Teams to PBX for &#039;&#039;&#039;Calendar Presence&#039;&#039;&#039; in the admin app&lt;br /&gt;
# &#039;&#039;&#039;ClientIDCalendar&#039;&#039;&#039; - Please insert the Application ID (Client ID) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;TenantCalendar&#039;&#039;&#039; - Please insert the Directory ID (Tenant) from Azure Portal from the in preparation created Calendar app&lt;br /&gt;
# &#039;&#039;&#039;ClientSecretCalendar&#039;&#039;&#039; - Please insert the shared secret from the in preparation created Calendar app&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Main_Page&amp;diff=75097</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Main_Page&amp;diff=75097"/>
		<updated>2025-02-13T15:51:57Z</updated>

		<summary type="html">&lt;p&gt;The: /* Latest News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- Message of the day --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
== Remote Support ==&lt;br /&gt;
As Remote Support Tool, we use our own product [https://www.innovaphone.com/en/all-apps/apps-to-work-with/remote-control-app.html Remote Control]. innovaphone only carries out scheduled remote maintenance via our ticket system by prior consultation. &lt;br /&gt;
&lt;br /&gt;
You will receive a support link from our support team, which you can use to download and install the necessary client.&lt;br /&gt;
&lt;br /&gt;
After you have opened the client, you can enter the support link and then join the session.&lt;br /&gt;
&lt;br /&gt;
== Searching ==&lt;br /&gt;
Searching in wiki works, but is sometimes cumbersome.  However, you can have Google do the job for you.  Try [https://www.google.de/search?q=site%3Ainnovaphone.com+xml+documentation &amp;lt;code&amp;gt;site:innovaphone.com your search terms&amp;lt;/code&amp;gt;] to search the innovaphone sites for matches!&lt;br /&gt;
&lt;br /&gt;
If you still don&#039;t find what you are looking for, [mailto:presales@innovaphone.com drop us a message]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- latest news commented out, may be reactivated once there are new really --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; margin-top:15px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0.5em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- please insert new message ON TOP and remove extraneous (more than 5) old messages --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;nowiki&amp;gt; ~~~~ is replaced by your name and date automatically &amp;lt;/nowiki&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Latest News ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 16:51, 13 February 2025 (CET)&amp;lt;/p&amp;gt; [[Support:Firmware V14r2 product/14r2/firmware 1420458 (sr 7) available | Version 14r2 Service Release 7]] is now available from the [http://store.innovaphone.com/release/download.htm download page]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 16:51, 13 February 2025 (CET)&amp;lt;/p&amp;gt; [[Support:Firmware V14r1 product/14r1/firmware 1410589 (sr 12) available | Version 14r1 Service Release 12]] is now available from the [http://store.innovaphone.com/release/download.htm download page]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 16:51, 13 February 2025 (CET)&amp;lt;/p&amp;gt; [[Support:Firmware V13r3 product/13r3/firmware 138014 (sr 24) available | Version 13r3 Service Release 24]] is now available from the [http://store.innovaphone.com/release/download.htm download page]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 16:51, 13 February 2025 (CET)&amp;lt;/p&amp;gt; [[Support:Firmware V12r2 product/12r2/firmware 125887 (sr 73) available | Version 12r2 Service Release 73]] is now available from the [http://store.innovaphone.com/release/download.htm download page]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Msc|Msc]] ([[User talk:Msc|talk]]) 13:01, 7 February 2025 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Firmware V15r1 product/15r1/firmware 1510335 (beta3) available| Version 15r1 Beta3]] is now available from the [https://store.innovaphone.com/beta/download.htm Beta Store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Cam&amp;amp;action=edit&amp;amp;redlink=1|Cam]] 16:22, 18 September 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[App Calculator beta1 available]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Sga|Sga]] ([[User talk:Sga|talk]]) 17:43, 15 September 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware IP73 1011 (5.0.1) released| Wireless Handset Firmware IP73 1011 (5.0.1)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Gal&amp;amp;action=edit&amp;amp;redlink=1|Gal]] ([[User talk:Gal&amp;amp;action=edit&amp;amp;redlink=1|talk]]) 13:39, 31 July 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware IP64 10314 (3.0.13)/IP65 10119 (3.0.13) released| Wireless Handset Firmware IP64 10314 (3.0.13)/IP65 10119 (3.0.13)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Cam&amp;amp;action=edit&amp;amp;redlink=1|Cam]] 12:03, 31 July 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[App Working final available]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 15:38, 6 February 2023 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware IP62 3040621 (6.2.7) released| Wireless Handset Firmware IP62 3040621 (6.2.7)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 13:13, 6 February 2023 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:WinPDM Software 3130113 (4.1.8) released| WinPDM Software 3130113 (4.1.8)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 15:05, 11 February 2022 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware IP64 10313 (2.12.10)/IP65 10118 (2.12.10) released| Wireless Handset Firmware IP64 10313 (2.12.10)/IP65 10118 (2.12.10)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Kwa&amp;amp;action=edit&amp;amp;redlink=1|kwa]] 14:00, 16 June 2021 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:IQM Build 8029100 available| IQM Build 8029100 Hotfix34]] is now available from the [https://store.innovaphone.com/release/download.htm the Software download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 12:46, 16 June 2021 (CEST))&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:TAPI Service Provider 8188 (hotfix21) available|TAPI Service Provider 8188 (hotfix21)]] is now available from [https://store.innovaphone.com/release/download.htm the Software download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde&amp;amp;action=edit&amp;amp;redlink=1|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Linux Application Platform 100271 (sr64) available| Linux Application Platform V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde&amp;amp;action=edit&amp;amp;redlink=1|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone Reporting 100271 (sr64) available| innovaphone Reporting V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde&amp;amp;action=edit&amp;amp;redlink=1|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone Fax 100271 (sr64) available| innovaphone Fax V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde&amp;amp;action=edit&amp;amp;redlink=1|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone Exchange Calendar Connector 100271 (sr64) available| innovaphone Exchange Calendar Connector V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 18:21, 12 October 2020 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware IP61 3022811 (4.7.8)/IP63 3022912 (4.7.8) released| Wireless Handset Firmware IP61 3022811 (4.7.8)/IP63 3022912 (4.7.8)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 21:30, 27 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless Handset Firmware and Management Software product/9.00/wireless 100037 (hotfix19) available| Wireless Package hotfix 19]] is now available from the [http://download.innovaphone.com/ice/9.00#wireless V9 download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde&amp;amp;action=edit&amp;amp;redlink=1|Dde]] 07:56, 9 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:App Platform build 90007 available| App Platform build 90007]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Kwa&amp;amp;action=edit&amp;amp;redlink=1|kwa]] 14:00, 02 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Recording Build 121100 available| innovaphone Recording SR29 build 121100]] is now available from the [http://download.innovaphone.com/ice/10.00/#recording V10 download area].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; margin-top:15px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0.5em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New Articles ==&lt;br /&gt;
&amp;lt;!-- https://www.mediawiki.org/wiki/Extension:Newest_Pages --&amp;gt;&lt;br /&gt;
{{Special:Newestpages/all/20}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; margin-top:15px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0.5em 1em; font-size:1&amp;quot;&amp;gt;&lt;br /&gt;
== More innovaphone Ressources ==&lt;br /&gt;
* [http://www.innovaphone.com Home Page]&lt;br /&gt;
* [http://download.innovaphone.com Download Site ]&lt;br /&gt;
* [http://my.innovaphone.com my.innovaphone ]&lt;br /&gt;
* [http://mantis.innovaphone.com/ Ticketing System ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70520</id>
		<title>Reference14r1:Concept App Service Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70520"/>
		<updated>2024-01-02T13:35:49Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Voicemail]]&lt;br /&gt;
&lt;br /&gt;
The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Database for voicemails&lt;br /&gt;
* Voicemail App on all myApps capable devices with visual Voicemail Notification&lt;br /&gt;
* Play, Download and Delete Voicemails&lt;br /&gt;
* Automatic Deletion of old voicemail-messages&lt;br /&gt;
* MWI on IP phones&lt;br /&gt;
* Email notification with a .wav attachment of the voicemail file&lt;br /&gt;
* Available languages German, Danish, Dutch, English, Finnish, French, Italian, Norwegian, Polish, Portuguese, Swedish, Spanish, and Czech&lt;br /&gt;
* Custom XML voicemail scripts can be enabled&lt;br /&gt;
* Group Voicemail&lt;br /&gt;
* Automatically delete old voicemails (read/stored and unread) after x days&lt;br /&gt;
* Configure default pin / length of the PIN-codes&lt;br /&gt;
* Call own voice box&lt;br /&gt;
* Edit own pin (set back to default)&lt;br /&gt;
* Activate/deactivate call forwarding (CFU/CFB/CFNR)&lt;br /&gt;
* Number resolution with search provider (com.innovaphone.phonelookup) -&amp;gt; at the moment only usable with myApps and OutlookSearch&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX and App Platform from version 14r1 on.&lt;br /&gt;
* A UC- or Voicemail-license per user having a voicemail-box. &lt;br /&gt;
* Each voicemail-user needs to have a number assigned.&lt;br /&gt;
* Group Voicemail-boxes need a Voicemail license too (set automatically via the PBX Manager).&lt;br /&gt;
&lt;br /&gt;
= Apps =&lt;br /&gt;
&lt;br /&gt;
== Voicemail App (innovaphone-voicemail) ==&lt;br /&gt;
Main app to manage the voicemail-messages and personal settings.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=== Group Voicemail ===&lt;br /&gt;
After configuration with the PBX Manager, it offers the same familiar features. Delete/Move affects all users of this app (MWI for all users is deleted). For its configuration, see the [[Howto:Group_Voicemail#Configuration_App_Platform| Group Voicemail article]].&lt;br /&gt;
&lt;br /&gt;
== PBX Manager ==&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Here you can configure all global Voicemail-settings:&lt;br /&gt;
* User and Password for all &lt;br /&gt;
* (From V14r1 on) Number of days for auto deletion of old voicemail-messages. If not set (default), there is no auto-deletion.&lt;br /&gt;
&lt;br /&gt;
=== add voicemail ===&lt;br /&gt;
Input-field to create a new Voicemail-system. Besides the normal input-fields, you can:&lt;br /&gt;
* Activate the email notifications&lt;br /&gt;
* Activate a custom voicemail-script&lt;br /&gt;
* (From V14r1 Final on) Configure the default PIN. If not set (default), the 8765 is assumed.&lt;br /&gt;
: By configuring a default PIN, you can also change the PIN length: &lt;br /&gt;
: Using 876543 as default PIN not only changes the default PIN, but defines also the PIN-length used to 6.&lt;br /&gt;
* Used URL-parameters:&lt;br /&gt;
** &#039;$app&#039;: indicates that it&#039;s an App&lt;br /&gt;
** $_defaultpin: defines the default PIN and the length of the PIN used by the system&lt;br /&gt;
&lt;br /&gt;
=== add group voicemail ===&lt;br /&gt;
Input-field to create a new VoicemailGroup-box. Besides the normal input-fields (see &#039;add voicemail&#039;), you can:&lt;br /&gt;
* Configure the list of users who want to receive an MWI. This is a comma-separated list of SIP names (no numbers allowed). &lt;br /&gt;
* Extra Used URL-parameters:&lt;br /&gt;
** &#039;$m&#039;: comma-separated list of SIP names for MWI&lt;br /&gt;
** &#039;$group&#039;: indicates that it&#039;s a Group Voicemail&lt;br /&gt;
&lt;br /&gt;
== MWI on Phone ==&lt;br /&gt;
http://wiki.innovaphone.com/index.php?title=Howto:Group_Voicemail&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Voicemail XML Script==&lt;br /&gt;
The PBX should be able to load the &amp;lt;code&amp;gt;vm.xml&amp;lt;/code&amp;gt; file from the Voicemail App Service. Therefore the credentials(&#039;&#039;User&#039;&#039;, &#039;&#039;Password&#039;&#039;) under Tab &#039;&#039;Voicemail&#039;&#039;, must match with the credentials configured in the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager (Settings-section).&lt;br /&gt;
Changing these credentials can be done best via the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager, as this plugin will adjust all the necessary things (Voicemail-object and database-record of the Voicemail-instance).&lt;br /&gt;
&lt;br /&gt;
To trace, if PBX can read the Voicemail XML from App Platform, activate the Trace flag on the Voicemail Object, PBX Trace in the Maintenance/Tracing, and make a call to the Voicemail to see if the vm.xml is transmitted correctly.&lt;br /&gt;
&lt;br /&gt;
==App WebSocket==&lt;br /&gt;
The PBX should maintain a permanent WebSocket connection to the Voicemail App Service. On the Voicemail Object, under Tab &#039;&#039;Voicemail&#039;&#039;, check if &#039;&#039;Script URL&#039;&#039; show &#039;&#039;connected&#039;&#039; state. The Voicemail-objects password in the &#039;General&#039;-tab is being used for this and checked against the Voicemail-instances password.&lt;br /&gt;
&lt;br /&gt;
If not, check if the URL is correct and points to the service instance. The PBX should be able to resolve the DNS name and be able to connect to the Voicemail App Service on the App Platform. &lt;br /&gt;
If all OK: re-configure the password on the instance and voicemail-object.&lt;br /&gt;
&lt;br /&gt;
=Known Problems=&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Group_Voicemail| Group Voicemail]]&lt;br /&gt;
* [[Howto:Getting_started_with_your_own_PBX_voicemail_script| Getting started with your own PBX voicemail script]]&lt;br /&gt;
* [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode| Use your own voicemail files with the voicemail APP in custom mode]]&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70035</id>
		<title>Reference14r1:Concept App Service Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70035"/>
		<updated>2023-12-01T11:55:59Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This product is in the beta phase and is not yet finished}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Voicemail]]&lt;br /&gt;
&lt;br /&gt;
The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Database for voicemails&lt;br /&gt;
* Voicemail App on all myApps capable devices with visual Voicemail Notification&lt;br /&gt;
* Play, Download and Delete Voicemails&lt;br /&gt;
* Automatic Deletion of old voicemail-messages&lt;br /&gt;
* MWI on IP phones&lt;br /&gt;
* Email notification with a .wav attachment of the voicemail file&lt;br /&gt;
* Available languages German, Danish, Dutch, English, Finnish, French, Italian, Norwegian, Polish, Portuguese, Swedish, Spanish, and Czech&lt;br /&gt;
* Custom XML voicemail scripts can be enabled&lt;br /&gt;
* Group Voicemail&lt;br /&gt;
* Automatically delete old voicemails after x days&lt;br /&gt;
* Configure default pin&lt;br /&gt;
* Call own voice box&lt;br /&gt;
* Edit own pin (set back to default)&lt;br /&gt;
* Activate/deactivate call forwarding (CFU/CFB/CFNR)&lt;br /&gt;
* Number resolution with search provider&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX and App Platform from version 14r1 on.&lt;br /&gt;
* A UC- or Voicemail-license per user having a voicemail-box. &lt;br /&gt;
* Group Voicemail-boxes need a Voicemail license too (set automatically via the PBX Manager).&lt;br /&gt;
&lt;br /&gt;
= Apps =&lt;br /&gt;
&lt;br /&gt;
== Voicemail App (innovaphone-voicemail) ==&lt;br /&gt;
Main app to manage the voicemail-messages and personal settings.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=== Group Voicemail ===&lt;br /&gt;
After configuration with the PBX Manager, it offers the same familiar features. Delete/Move affects all users of this app (MWI for all users is deleted). For its configuration, see the [[Howto:Group_Voicemail#Configuration_App_Platform| Group Voicemail article]].&lt;br /&gt;
&lt;br /&gt;
== PBX Manager ==&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Here you can configure all global Voicemail-settings:&lt;br /&gt;
* User and Password for all &lt;br /&gt;
* (From V14r1 on) Number of days for auto deletion of old voicemail-messages. If not set (default), there is no auto-deletion.&lt;br /&gt;
&lt;br /&gt;
=== add voicemail ===&lt;br /&gt;
Input-field to create a new Voicemail-system. Besides the normal input-fields, you can:&lt;br /&gt;
* Activate the email notifications&lt;br /&gt;
* Activate a custom voicemail-script&lt;br /&gt;
* (From V14r1 on) Configure the default PIN. If not set (default), 8765 is assumed.&lt;br /&gt;
* Used URL-parameters:&lt;br /&gt;
** &#039;$app&#039;: indicates that it&#039;s an App&lt;br /&gt;
&lt;br /&gt;
=== add group voicemail ===&lt;br /&gt;
Input-field to create a new VoicemailGroup-box. Besides the normal input-fields (see &#039;add voicemail&#039;), you can:&lt;br /&gt;
* Configure the list of users who want to receive an MWI. This is a comma-separated list of SIP names (no numbers allowed). &lt;br /&gt;
* Extra Used URL-parameters:&lt;br /&gt;
** &#039;$m&#039;: comma-separated list of SIP names for MWI&lt;br /&gt;
** &#039;$group&#039;: indicates that it&#039;s a Group Voicemail&lt;br /&gt;
&lt;br /&gt;
== MWI on Phone ==&lt;br /&gt;
http://wiki.innovaphone.com/index.php?title=Howto:Group_Voicemail&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Voicemail XML Script==&lt;br /&gt;
The PBX should be able to load the &amp;lt;code&amp;gt;vm.xml&amp;lt;/code&amp;gt; file from the Voicemail App Service. Therefore the credentials(&#039;&#039;User&#039;&#039;, &#039;&#039;Password&#039;&#039;) under Tab &#039;&#039;Voicemail&#039;&#039;, must match with the credentials configured in the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager (Settings-section).&lt;br /&gt;
Changing these credentials can be done best via the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager, as this plugin will adjust all the necessary things (Voicemail-object and database-record of the Voicemail-instance).&lt;br /&gt;
&lt;br /&gt;
To trace, if PBX can read the Voicemail XML from App Platform, activate the Trace flag on the Voicemail Object, PBX Trace in the Maintenance/Tracing, and make a call to the Voicemail to see if the vm.xml is transmitted correctly.&lt;br /&gt;
&lt;br /&gt;
==App WebSocket==&lt;br /&gt;
The PBX should maintain a permanent WebSocket connection to the Voicemail App Service. On the Voicemail Object, under Tab &#039;&#039;Voicemail&#039;&#039;, check if &#039;&#039;Script URL&#039;&#039; show &#039;&#039;connected&#039;&#039; state. The Voicemail-objects password in the &#039;General&#039;-tab is being used for this and checked against the Voicemail-instances password.&lt;br /&gt;
&lt;br /&gt;
If not, check if the URL is correct and points to the service instance. The PBX should be able to resolve the DNS name and be able to connect to the Voicemail App Service on the App Platform. &lt;br /&gt;
If all OK: re-configure the password on the instance and voicemail-object.&lt;br /&gt;
&lt;br /&gt;
=Known Problems=&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Howto:Group_Voicemail| Group Voicemail]]&lt;br /&gt;
* [[Howto:Howto:Getting_started_with_your_own_PBX_voicemail_script| Getting started with your own PBX voicemail script]]&lt;br /&gt;
* [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode| Use your own voicemail files with the voicemail APP in custom mode]]&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70034</id>
		<title>Reference14r1:Concept App Service Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_App_Service_Voicemail&amp;diff=70034"/>
		<updated>2023-12-01T11:54:33Z</updated>

		<summary type="html">&lt;p&gt;The: Created page with &amp;quot;{{FIXME|reason=This article is still work in progress}} Apps  The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).  =Features= * Database for voicemails * Voicemail App on all myApps capable devices with visual Voicemail Notificatio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
[[Category:Concept|Apps]]&lt;br /&gt;
&lt;br /&gt;
The App Services Voicemail is an App Service which can be installed on an innovaphone App Platform. It is used to manage voicemail-messages (store, play, download and (auto-)delete) and configure the voicemail-box per user (change PIN-code, activate the voicemail-box, ...).&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
* Database for voicemails&lt;br /&gt;
* Voicemail App on all myApps capable devices with visual Voicemail Notification&lt;br /&gt;
* Play, Download and Delete Voicemails&lt;br /&gt;
* Automatic Deletion of old voicemail-messages&lt;br /&gt;
* MWI on IP phones&lt;br /&gt;
* Email notification with a .wav attachment of the voicemail file&lt;br /&gt;
* Available languages German, Danish, Dutch, English, Finnish, French, Italian, Norwegian, Polish, Portuguese, Swedish, Spanish, and Czech&lt;br /&gt;
* Custom XML voicemail scripts can be enabled&lt;br /&gt;
* Group Voicemail&lt;br /&gt;
* Automatically delete old voicemails after x days&lt;br /&gt;
* Configure default pin&lt;br /&gt;
* Call own voice box&lt;br /&gt;
* Edit own pin (set back to default)&lt;br /&gt;
* Activate/deactivate call forwarding (CFU/CFB/CFNR)&lt;br /&gt;
* Number resolution with search provider&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX and App Platform from version 14r1 on.&lt;br /&gt;
* A UC- or Voicemail-license per user having a voicemail-box. &lt;br /&gt;
* Group Voicemail-boxes need a Voicemail license too (set automatically via the PBX Manager).&lt;br /&gt;
&lt;br /&gt;
= Apps =&lt;br /&gt;
&lt;br /&gt;
== Voicemail App (innovaphone-voicemail) ==&lt;br /&gt;
Main app to manage the voicemail-messages and personal settings.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=== Group Voicemail ===&lt;br /&gt;
After configuration with the PBX Manager, it offers the same familiar features. Delete/Move affects all users of this app (MWI for all users is deleted). For its configuration, see the [[Howto:Group_Voicemail#Configuration_App_Platform| Group Voicemail article]].&lt;br /&gt;
&lt;br /&gt;
== PBX Manager ==&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Here you can configure all global Voicemail-settings:&lt;br /&gt;
* User and Password for all &lt;br /&gt;
* (From V14r1 on) Number of days for auto deletion of old voicemail-messages. If not set (default), there is no auto-deletion.&lt;br /&gt;
&lt;br /&gt;
=== add voicemail ===&lt;br /&gt;
Input-field to create a new Voicemail-system. Besides the normal input-fields, you can:&lt;br /&gt;
* Activate the email notifications&lt;br /&gt;
* Activate a custom voicemail-script&lt;br /&gt;
* (From V14r1 on) Configure the default PIN. If not set (default), 8765 is assumed.&lt;br /&gt;
* Used URL-parameters:&lt;br /&gt;
** &#039;$app&#039;: indicates that it&#039;s an App&lt;br /&gt;
&lt;br /&gt;
=== add group voicemail ===&lt;br /&gt;
Input-field to create a new VoicemailGroup-box. Besides the normal input-fields (see &#039;add voicemail&#039;), you can:&lt;br /&gt;
* Configure the list of users who want to receive an MWI. This is a comma-separated list of SIP names (no numbers allowed). &lt;br /&gt;
* Extra Used URL-parameters:&lt;br /&gt;
** &#039;$m&#039;: comma-separated list of SIP names for MWI&lt;br /&gt;
** &#039;$group&#039;: indicates that it&#039;s a Group Voicemail&lt;br /&gt;
&lt;br /&gt;
== MWI on Phone ==&lt;br /&gt;
http://wiki.innovaphone.com/index.php?title=Howto:Group_Voicemail&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Voicemail XML Script==&lt;br /&gt;
The PBX should be able to load the &amp;lt;code&amp;gt;vm.xml&amp;lt;/code&amp;gt; file from the Voicemail App Service. Therefore the credentials(&#039;&#039;User&#039;&#039;, &#039;&#039;Password&#039;&#039;) under Tab &#039;&#039;Voicemail&#039;&#039;, must match with the credentials configured in the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager (Settings-section).&lt;br /&gt;
Changing these credentials can be done best via the &#039;&#039;AP voicemail_xx&#039;&#039;-plugin of the PBX-Manager, as this plugin will adjust all the necessary things (Voicemail-object and database-record of the Voicemail-instance).&lt;br /&gt;
&lt;br /&gt;
To trace, if PBX can read the Voicemail XML from App Platform, activate the Trace flag on the Voicemail Object, PBX Trace in the Maintenance/Tracing, and make a call to the Voicemail to see if the vm.xml is transmitted correctly.&lt;br /&gt;
&lt;br /&gt;
==App WebSocket==&lt;br /&gt;
The PBX should maintain a permanent WebSocket connection to the Voicemail App Service. On the Voicemail Object, under Tab &#039;&#039;Voicemail&#039;&#039;, check if &#039;&#039;Script URL&#039;&#039; show &#039;&#039;connected&#039;&#039; state. The Voicemail-objects password in the &#039;General&#039;-tab is being used for this and checked against the Voicemail-instances password.&lt;br /&gt;
&lt;br /&gt;
If not, check if the URL is correct and points to the service instance. The PBX should be able to resolve the DNS name and be able to connect to the Voicemail App Service on the App Platform. &lt;br /&gt;
If all OK: re-configure the password on the instance and voicemail-object.&lt;br /&gt;
&lt;br /&gt;
=Known Problems=&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Howto:Group_Voicemail| Group Voicemail]]&lt;br /&gt;
* [[Howto:Howto:Getting_started_with_your_own_PBX_voicemail_script| Getting started with your own PBX voicemail script]]&lt;br /&gt;
* [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode| Use your own voicemail files with the voicemail APP in custom mode]]&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Main_Page&amp;diff=68233</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Main_Page&amp;diff=68233"/>
		<updated>2023-07-25T09:27:26Z</updated>

		<summary type="html">&lt;p&gt;The: /* Latest News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- Message of the day --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remote Support ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://get.anydesk.com/PK8coqHH/AnyDesk.exe Download Anydesk]&lt;br /&gt;
&lt;br /&gt;
== Searching ==&lt;br /&gt;
Searching in wiki works, but is sometimes cumbersome.  However, you can have Google do the job for you.  Try [https://www.google.de/search?q=site%3Ainnovaphone.com+xml+documentation &amp;lt;code&amp;gt;site:innovaphone.com your search terms&amp;lt;/code&amp;gt;] to search the innovaphone sites for matches!&lt;br /&gt;
&lt;br /&gt;
If you still don&#039;t find what you are looking for, [mailto:presales@innovaphone.com drop us a message]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- latest news commented out, may be reactivated once there are new really --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; margin-top:15px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0.5em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- please insert new message ON TOP and remove extraneous (more than 5) old messages --&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;nowiki&amp;gt; ~~~~ is replaced by your name and date automatically &amp;lt;/nowiki&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Latest News ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 11:27, 25 July 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Firmware V13r3 product/13r3/firmware 137863 (sr 7) available | Version 13r3 Service Release 7]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 11:27, 25 July 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Firmware V13r2 product/13r2/firmware 136429 (sr 25) available | Version 13r2 Service Release 25]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:The|The]] ([[User talk:The|talk]]) 11:27, 25 July 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Firmware V12r2 product/12r2/firmware 125872 (sr 63) available | Version 12r2 Service Release 63]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] ([[User talk:Afi|talk]]) 11:11, 2 May 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless_Handset_Firmware_IP73_1008_(4.0.2)_released | Wireless Handset Firmware IP73 1008 (4.0.2)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Smayoral|sma]] 10:29, 27 April 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Firmware V11r2 product/11r2/firmware 113809 (sr 66) available | Version 11r2 Service Release 66]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Cam|Cam]] 16:43, 25 April 2023 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[App Working Beta beta1 available]] is now available from the [http://store.innovaphone.com/release/download.htm download page].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 15:38, 6 February 2023 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless_Handset_Firmware_IP62_3040621_(6.2.7)_released | Wireless Handset Firmware IP62 3040621 (6.2.7)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 13:13, 6 February 2023 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:WinPDM_Software_3130113_%284.1.8%29_released | WinPDM Software 3130113 (4.1.8)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Inno-mst|Inno-mst]] 11:22, 14 April 2022 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Operator9 90246 (hotfix24) available | Operator9 hotfix24]] is now available from [https://store.innovaphone.com/release/download.htm the Software download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 15:05, 11 February 2022 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless_Handset_Firmware_IP64_10313_(2.12.10)/IP65_10118_(2.12.10)_released | Wireless Handset Firmware IP64 10313 (2.12.10)/IP65 10118 (2.12.10)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:kwa|kwa]] 14:00, 16 June 2021 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:iQM_Build_8029100_available | IQM Build 8029100 Hotfix34]] is now available from the [https://store.innovaphone.com/release/download.htm the Software download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 12:46, 16 June 2021 (CEST))&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:TAPI Service Provider 8188 (hotfix21) available|TAPI Service Provider 8188 (hotfix21)]] is now available from [https://store.innovaphone.com/release/download.htm the Software download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Linux_Application_Platform_100271_(sr64)_available | Linux Application Platform V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone_Reporting_100271_(sr64)_available | innovaphone Reporting V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone_Fax_100271_(sr64)_available | innovaphone Fax V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde|Dde]] 13:17, 2 November 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Innovaphone_Exchange_Calendar_Connector_100271_(sr64)_available | innovaphone Exchange Calendar Connector V10 100271 sr64]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 18:21, 12 October 2020 (CEST)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless_Handset_Firmware_IP61_3022811_(4.7.8)/IP63_3022912_(4.7.8)_released | Wireless Handset Firmware IP61 3022811 (4.7.8)/IP63 3022912 (4.7.8)]] is now available from the [https://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Afi|Afi]] 21:30, 27 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Wireless_Handset_Firmware_and_Management_Software_product/9.00/wireless_100037_%28hotfix19%29_available | Wireless Package hotfix 19]] is now available from the [http://download.innovaphone.com/ice/9.00#wireless V9 download area].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:Dde|Dde]] 07:56, 9 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:App_Platform_build_90007_available | App Platform build 90007]] is now available from the [http://store.innovaphone.com/release/download.htm App store].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[[User:kwa|kwa]] 14:00, 02 March 2020 (CET)&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Support:Recording_Build_121100_available | innovaphone Recording SR29 build 121100]] is now available from the [http://download.innovaphone.com/ice/10.00/#recording V10 download area].&lt;br /&gt;
&lt;br /&gt;
== New Articles ==&lt;br /&gt;
&amp;lt;!-- https://www.mediawiki.org/wiki/Extension:Newest_Pages --&amp;gt;&lt;br /&gt;
{{Special:Newestpages/all/20}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; margin-right:10px; margin-top:15px; border:1px solid #58C4C3; background-color:#F4F4F4; padding:0em 1em 0.5em 1em; font-size:1&amp;quot;&amp;gt;&lt;br /&gt;
== More innovaphone Ressources ==&lt;br /&gt;
* [http://www.innovaphone.com Home Page]&lt;br /&gt;
* [http://download.innovaphone.com Download Site ]&lt;br /&gt;
* [http://my.innovaphone.com my.innovaphone ]&lt;br /&gt;
* [http://mantis.innovaphone.com/ Ticketing System ]&lt;br /&gt;
* [[Support:What are the Roadmap Documents? | Roadmaps ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Objects/Voicemail&amp;diff=64824</id>
		<title>Reference13r1:PBX/Objects/Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Objects/Voicemail&amp;diff=64824"/>
		<updated>2023-01-05T13:25:39Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Voicemail object is is a script interpreter. It targets IVR solutions and offers a set of call control mechanisms by means of an innovaphone-proprietary script language.&lt;br /&gt;
The Voicemail object is capable of retrieving script files either from a remote WebDAV server or from the local CompactFlash card. The interpretation starts for calls destined for the configured &#039;&#039;&#039;Number&#039;&#039;&#039; of a Voicemail object.&lt;br /&gt;
&lt;br /&gt;
Innovaphone offers a few localized script files as a separate product - the &#039;&#039;innovaphone Voicemail&#039;&#039;. Those scripts implement an answering machine, including MWI, for every PBX user. See [[Howto:How_to_Configure_the_innovaphone_Voicemail|How to Configure the innovaphone Voicemail]] for further configuration information of that product.&lt;br /&gt;
&lt;br /&gt;
The following specifications are made in the Voicemail section:&lt;br /&gt;
* &#039;&#039;&#039;Script URL:&#039;&#039;&#039; The HTTP URL of the script file that is to be interpreted. URLs towards a script file on the local CompactFlash card contain a box-local IP address and must be entered alike http://127.0.0.1/DRIVE/CF0/vm/de/vm.xml. &#039;&#039;&#039;Hint:&#039;&#039;&#039; Copy the URL into the clipboard by means of &#039;&#039;Diagnostics/CF/Browse CF content&#039;&#039;. Afterwards paste the URL into this edit field. &#039;&#039;&#039;Note:&#039;&#039;&#039; URLs with box-local IP addresses will be processed internally without using the HTTP transport mechanism. I.e. HTTP passwords must not be considered. &lt;br /&gt;
**Since V13 the Voicemail Object also can connect via Websocket instead of HTTP-GET. If the Object should use Websocket you have to add the param &amp;lt;code&amp;gt;$app=on&amp;lt;/code&amp;gt; to the URL.&lt;br /&gt;
* &#039;&#039;&#039;Backup URL&#039;&#039;&#039;:A fallback- or backup script URL can be configured here. If the read operation for the first &#039;&#039;Script URL&#039;&#039; does not succeed within 5s, then the &#039;&#039;Backup URL&#039;&#039; will be tried. The &#039;&#039;Backup URL&#039;&#039; provides a means for an emergency script. Such an emergency script could be used to play an out-of-order announcement.&lt;br /&gt;
* &#039;&#039;&#039;User:&#039;&#039;&#039; authentication (refer to voicemail instance name) for the HTTP request of the v13 voicemail files&lt;br /&gt;
* &#039;&#039;&#039;Password:&#039;&#039;&#039; authentication (refer to the voicemail instance password) for the HTTP request authentication of the v13 voicemail files&lt;br /&gt;
* &#039;&#039;&#039;Encryption Key:&#039;&#039;&#039; encrypt the voicemails in database on app platform - Instance must be restarted for the change to take effect - older voice messages are no longer readable after the change&lt;br /&gt;
* &#039;&#039;&#039;Trace:&#039;&#039;&#039; Enables some trace output. See also the chapter entitled &amp;quot;[[Reference:Administration/Diagnostics/Tracing|Administration/Diagnostics/Tracing]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Pressing on &#039;&#039;OK,Apply,Delete&#039;&#039; causes a disconnection of all voicemail calls being currently active at the affected voicemail object.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
[[Howto:How_to_Configure_the_innovaphone_Voicemail|How to Configure the innovaphone Voicemail]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto:Getting started with your own PBX voicemail script]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: voice mail anrufbeantworter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Objects/Voicemail&amp;diff=64823</id>
		<title>Reference13r1:PBX/Objects/Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Objects/Voicemail&amp;diff=64823"/>
		<updated>2023-01-05T13:24:40Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Voicemail object is is a script interpreter. It targets IVR solutions and offers a set of call control mechanisms by means of an innovaphone-proprietary script language.&lt;br /&gt;
The Voicemail object is capable of retrieving script files either from a remote WebDAV server or from the local CompactFlash card. The interpretation starts for calls destined for the configured &#039;&#039;&#039;Number&#039;&#039;&#039; of a Voicemail object.&lt;br /&gt;
&lt;br /&gt;
Innovaphone offers a few localized script files as a separate product - the &#039;&#039;innovaphone Voicemail&#039;&#039;. Those scripts implement an answering machine, including MWI, for every PBX user. See [[Howto:How_to_Configure_the_innovaphone_Voicemail|How to Configure the innovaphone Voicemail]] for further configuration information of that product.&lt;br /&gt;
&lt;br /&gt;
The following specifications are made in the Voicemail section:&lt;br /&gt;
* &#039;&#039;&#039;Script URL:&#039;&#039;&#039; The HTTP URL of the script file that is to be interpreted. URLs towards a script file on the local CompactFlash card contain a box-local IP address and must be entered alike http://127.0.0.1/DRIVE/CF0/vm/de/vm.xml. &#039;&#039;&#039;Hint:&#039;&#039;&#039; Copy the URL into the clipboard by means of &#039;&#039;Diagnostics/CF/Browse CF content&#039;&#039;. Afterwards paste the URL into this edit field. &#039;&#039;&#039;Note:&#039;&#039;&#039; URLs with box-local IP addresses will be processed internally without using the HTTP transport mechanism. I.e. HTTP passwords must not be considered. &lt;br /&gt;
**Since V13 the Voicemail Object also can connect via Websocket instead of HTTP-GET. If the Object should use Websocket you have to add the param &amp;lt;code&amp;gt;$app=on&amp;lt;/code&amp;gt; to the URL.&lt;br /&gt;
* &#039;&#039;&#039;Backup URL&#039;&#039;&#039;:A fallback- or backup script URL can be configured here. If the read operation for the first &#039;&#039;Script URL&#039;&#039; does not succeed within 5s, then the &#039;&#039;Backup URL&#039;&#039; will be tried. The &#039;&#039;Backup URL&#039;&#039; provides a means for an emergency script. Such an emergency script could be used to play an out-of-order announcement.&lt;br /&gt;
* &#039;&#039;&#039;User:&#039;&#039;&#039; authentication (refer to voicemail instance name) for the HTTP request of the v13 voicemail files&lt;br /&gt;
* &#039;&#039;&#039;Password:&#039;&#039;&#039; authentication (refer to the voicemail instance password) for the HTTP request authentication of the v13 voicemail files&lt;br /&gt;
* &#039;&#039;&#039;Encryption Key:&#039;&#039;&#039; encrypt the voicemails in database on app platform - Instance must be restarted for the change to take effect - older voicemails are not readable after change&lt;br /&gt;
* &#039;&#039;&#039;Trace:&#039;&#039;&#039; Enables some trace output. See also the chapter entitled &amp;quot;[[Reference:Administration/Diagnostics/Tracing|Administration/Diagnostics/Tracing]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Pressing on &#039;&#039;OK,Apply,Delete&#039;&#039; causes a disconnection of all voicemail calls being currently active at the affected voicemail object.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
[[Howto:How_to_Configure_the_innovaphone_Voicemail|How to Configure the innovaphone Voicemail]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Howto:Getting started with your own PBX voicemail script]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: voice mail anrufbeantworter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64640</id>
		<title>Howto13r3:Configure User Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64640"/>
		<updated>2022-12-21T13:32:50Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
V13r3&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;admin account in Azure Portal of Microsoft&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure allow public client flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure delegated permissions (User.Read.All and Presence.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
With these configurations you can configure the Connector for Microsoft365&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tenant ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal Sync to Teams==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add a new app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;In the picture you can see that we have 2 values after that which we can use for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration in PBX Objects==&lt;br /&gt;
For the sync direction from PBX to Teams the app itself needs visibility permissions (presence, on-the-phone) for the users who are should be synced to Teams. The configuration tag is visibility for each user object.&lt;br /&gt;
&lt;br /&gt;
==Configuration in PBX Manager==&lt;br /&gt;
For configuring the app you need the following parameter:&lt;br /&gt;
&lt;br /&gt;
* Name of the master PBX (Not full DNS name, really just only the PBX name)&lt;br /&gt;
* Client ID of the registrated app from the azure portal&lt;br /&gt;
* Tenant ID of your organization, also from the azure portal&lt;br /&gt;
* Credentials for your Microsoft Azure Portal login (User needs a Teams license)&lt;br /&gt;
* Notification uri &amp;quot;https://{your_domain}/{your_tenant}/microsoft365/subscriptions&amp;quot; &lt;br /&gt;
** After successful configuration and subscription the Microsoft services will connect to the specified &#039;&#039;notification uri&#039;&#039; for presence and line state updates.&lt;br /&gt;
** For this to work it is important to make sure that the specified &#039;&#039;notification uri&#039;&#039; is reachable from the Microsoft services, meaning from the public internet.&lt;br /&gt;
** You need to be able to reach your app platform with the specified uri from the public internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64568</id>
		<title>Howto13r3:Configure User Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64568"/>
		<updated>2022-12-13T09:39:25Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still worked on}}&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
V13r3&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;admin account in Azure Portal of Microsoft&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure allow public client flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure delegated permissions (User.Read.All and Presence.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
With these configurations you can configure the Connector for Microsoft365&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tenant ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal Sync to Teams==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add a new app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;In the picture you can see that we have 2 values after that which we can use for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration in PBX Objects==&lt;br /&gt;
For the sync direction from PBX to Teams the app itself needs visibility permissions (presence, on-the-phone) for the users who are should be synced to Teams. The configuration tag is visibility for each user object.&lt;br /&gt;
&lt;br /&gt;
==Configuration in PBX Manager==&lt;br /&gt;
For configuring the app you need the following parameter:&lt;br /&gt;
&lt;br /&gt;
* Name of the master PBX (Not full DNS name, really just only the PBX name)&lt;br /&gt;
* Client ID of the registrated app from the azure portal&lt;br /&gt;
* Tenant ID of your organization, also from the azure portal&lt;br /&gt;
* Credentials for your Microsoft Azure Portal login (User needs a Teams license)&lt;br /&gt;
* Notification uri &amp;quot;https://{your_domain}/{your_tenant}/microsoft365/subscriptions&amp;quot; &lt;br /&gt;
** After successful configuration and subscription the Microsoft services will connect to the specified &#039;&#039;notification uri&#039;&#039; for presence and line state updates.&lt;br /&gt;
** For this to work it is important to make sure that the specified &#039;&#039;notification uri&#039;&#039; is reachable from the Microsoft services, meaning from the public internet.&lt;br /&gt;
** You need to be able to reach your app platform with the specified uri from the public internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64567</id>
		<title>Reference13r3:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64567"/>
		<updated>2022-12-13T09:34:48Z</updated>

		<summary type="html">&lt;p&gt;The: /* Technical Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
{{FIXME|reason=This product is still in progress}}&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r3&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronises Microsoft Teams presences with the innovaphone PBX and back.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* Connector for Microsoft 365 License per user&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Please have a look into our Howto guide for basic configuration aid:&lt;br /&gt;
[[How_to:_Configure_Connector_for_Microsoft365| Howto13r3:Configure Connector for Microsooft365]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Overview ===&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph Api.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made before every presence subscription.&lt;br /&gt;
&lt;br /&gt;
The app synchronises the PBX presence with Teams through the Graph Api. The on-the-phone presence will be renewed every 5 minutes. The other presences have a lifetime of 1 day but the away has a lifetime of 7 days.&lt;br /&gt;
The lifetimes are described [https://learn.microsoft.com/en-us/graph/api/presence-setuserpreferredpresence?view=graph-rest-1.0&amp;amp;tabs=http here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mapping Table ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Master/Slave ====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
&lt;br /&gt;
Only 650 users can be subscribed for the presence subscription.&lt;br /&gt;
&lt;br /&gt;
== Communication User (UserSynctoPbx) ==&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as user for the Connector.&lt;br /&gt;
&lt;br /&gt;
== Subscription Timeout ==&lt;br /&gt;
&lt;br /&gt;
=== Situation ===&lt;br /&gt;
Due to a current limitation in the Graph API it is not possible to cancel or delete an active presence subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the [https://learn.microsoft.com/en-us/graph/api/subscription-delete?view=graph-rest-1.0&amp;amp;tabs=http|documentation of the current Graph API (1.0)] the “Delete subscription” chapter does not include presence subscriptions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also not possible to have multiple subscription in parallel. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make sure to only request a new presence subscription when the old one is not valid anymore, the app will store the state of the presence subscription and the time until it is valid in the database.&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the chapter “Technical Overview” we are creating presence subscriptions with a validity of 10 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
The presence subscription will be renewed as soon as it is no longer valid which will be 10 minutes after initial subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Impact ===&lt;br /&gt;
If settings are changed or the app instance is restarted it will check the corresponding database entry on startup.&amp;lt;br&amp;gt;&lt;br /&gt;
In case the last presence subscription was completed less than 10 minutes ago, there is still an active presence subscription and the app has to wait for it to become invalid. &amp;lt;br&amp;gt;&lt;br /&gt;
Some Changes (e.g., to the “Notification-URL”) will only take effect after a new created subscription. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Beta Version of the Graph API is already providing a function to delete presence subscriptions, so we hope we can improve this behavior in the future.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. Sometimes it needs a little bit time until the states are changed. If the states remain, it is mandatory to enable logs on the app platform and check for more information.&lt;br /&gt;
&lt;br /&gt;
If presence subscription does not work, please check if the configured user has a Microsoft Teams license.&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64566</id>
		<title>Reference13r3:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64566"/>
		<updated>2022-12-13T09:33:22Z</updated>

		<summary type="html">&lt;p&gt;The: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
{{FIXME|reason=This product is still in progress}}&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r3&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronises Microsoft Teams presences with the innovaphone PBX and back.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* Connector for Microsoft 365 License per user&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Please have a look into our Howto guide for basic configuration aid:&lt;br /&gt;
[[How_to:_Configure_Connector_for_Microsoft365| Howto13r3:Configure Connector for Microsooft365]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Overview ===&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph Api.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made before every presence subscription.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mapping Table ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Master/Slave ====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
&lt;br /&gt;
Only 650 users can be subscribed for the presence subscription.&lt;br /&gt;
&lt;br /&gt;
== Communication User (UserSynctoPbx) ==&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as user for the Connector.&lt;br /&gt;
&lt;br /&gt;
== Subscription Timeout ==&lt;br /&gt;
&lt;br /&gt;
=== Situation ===&lt;br /&gt;
Due to a current limitation in the Graph API it is not possible to cancel or delete an active presence subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the [https://learn.microsoft.com/en-us/graph/api/subscription-delete?view=graph-rest-1.0&amp;amp;tabs=http|documentation of the current Graph API (1.0)] the “Delete subscription” chapter does not include presence subscriptions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also not possible to have multiple subscription in parallel. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make sure to only request a new presence subscription when the old one is not valid anymore, the app will store the state of the presence subscription and the time until it is valid in the database.&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the chapter “Technical Overview” we are creating presence subscriptions with a validity of 10 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
The presence subscription will be renewed as soon as it is no longer valid which will be 10 minutes after initial subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Impact ===&lt;br /&gt;
If settings are changed or the app instance is restarted it will check the corresponding database entry on startup.&amp;lt;br&amp;gt;&lt;br /&gt;
In case the last presence subscription was completed less than 10 minutes ago, there is still an active presence subscription and the app has to wait for it to become invalid. &amp;lt;br&amp;gt;&lt;br /&gt;
Some Changes (e.g., to the “Notification-URL”) will only take effect after a new created subscription. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Beta Version of the Graph API is already providing a function to delete presence subscriptions, so we hope we can improve this behavior in the future.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. Sometimes it needs a little bit time until the states are changed. If the states remain, it is mandatory to enable logs on the app platform and check for more information.&lt;br /&gt;
&lt;br /&gt;
If presence subscription does not work, please check if the configured user has a Microsoft Teams license.&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Overview_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64565</id>
		<title>File:Overview Connector for Microsoft365 Sync to Teams.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Overview_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64565"/>
		<updated>2022-12-13T09:30:28Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64564</id>
		<title>File:Authentication Connector for Microsoft365 Sync to Teams.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64564"/>
		<updated>2022-12-13T09:30:10Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64563</id>
		<title>File:APIPermission Connector for Microsoft365 Sync to Teams.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365_Sync_to_Teams.png&amp;diff=64563"/>
		<updated>2022-12-13T09:29:48Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64562</id>
		<title>Howto13r3:Configure User Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=64562"/>
		<updated>2022-12-13T09:29:20Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still worked on}}&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
V13r3&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;admin account in Azure Portal of Microsoft&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|thumb|none|600px|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure allow public client flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure delegated permissions (User.Read.All and Presence.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
With these configurations you can configure the Connector for Microsoft365&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tenant ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
==Configuration in Azure Portal Sync to Teams==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add a new app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;In the picture you can see that we have 2 values after that which we can use for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;-&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure a client secret and save the value for the configuration of the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure application permission (Presence.ReadWrite.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365_Sync_to_Teams.png|thumb|none|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration in PBX Manager==&lt;br /&gt;
For configuring the app you need the following parameter:&lt;br /&gt;
&lt;br /&gt;
* Name of the master PBX (Not full DNS name, really just only the PBX name)&lt;br /&gt;
* Client ID of the registrated app from the azure portal&lt;br /&gt;
* Tenant ID of your organization, also from the azure portal&lt;br /&gt;
* Credentials for your Microsoft Azure Portal login (User needs a Teams license)&lt;br /&gt;
* Notification uri &amp;quot;https://{your_domain}/{your_tenant}/microsoft365/subscriptions&amp;quot; &lt;br /&gt;
** After successful configuration and subscription the Microsoft services will connect to the specified &#039;&#039;notification uri&#039;&#039; for presence and line state updates.&lt;br /&gt;
** For this to work it is important to make sure that the specified &#039;&#039;notification uri&#039;&#039; is reachable from the Microsoft services, meaning from the public internet.&lt;br /&gt;
** You need to be able to reach your app platform with the specified uri from the public internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64550</id>
		<title>Reference13r3:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64550"/>
		<updated>2022-12-12T06:38:02Z</updated>

		<summary type="html">&lt;p&gt;The: /* Known Limitation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
{{FIXME|reason=This product is still in progress}}&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r3&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronises Microsoft Teams presences with the innovaphone PBX (unidirectional).&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* Connector for Microsoft 365 License per user&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Please have a look into our Howto guide for basic configuration aid:&lt;br /&gt;
[[How_to:_Configure_Connector_for_Microsoft365| Howto13r3:Configure Connector for Microsooft365]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Overview ===&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph Api.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made before every presence subscription.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mapping Table ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Master/Slave ====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
&lt;br /&gt;
Only 650 users can be subscribed for the presence subscription.&lt;br /&gt;
&lt;br /&gt;
== Communication User (UserSynctoPbx) ==&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as user for the Connector.&lt;br /&gt;
&lt;br /&gt;
== Subscription Timeout ==&lt;br /&gt;
&lt;br /&gt;
=== Situation ===&lt;br /&gt;
Due to a current limitation in the Graph API it is not possible to cancel or delete an active presence subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
As you can see in the [https://learn.microsoft.com/en-us/graph/api/subscription-delete?view=graph-rest-1.0&amp;amp;tabs=http|documentation of the current Graph API (1.0)] the “Delete subscription” chapter does not include presence subscriptions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is also not possible to have multiple subscription in parallel. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make sure to only request a new presence subscription when the old one is not valid anymore, the app will store the state of the presence subscription and the time until it is valid in the database.&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the chapter “Technical Overview” we are creating presence subscriptions with a validity of 10 minutes.&amp;lt;br&amp;gt;&lt;br /&gt;
The presence subscription will be renewed as soon as it is no longer valid which will be 10 minutes after initial subscription.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Impact ===&lt;br /&gt;
If settings are changed or the app instance is restarted it will check the corresponding database entry on startup.&amp;lt;br&amp;gt;&lt;br /&gt;
In case the last presence subscription was completed less than 10 minutes ago, there is still an active presence subscription and the app has to wait for it to become invalid. &amp;lt;br&amp;gt;&lt;br /&gt;
Some Changes (e.g., to the “Notification-URL”) will only take effect after a new created subscription. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current Beta Version of the Graph API is already providing a function to delete presence subscriptions, so we hope we can improve this behavior in the future.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. Sometimes it needs a little bit time until the states are changed. If the states remain, it is mandatory to enable logs on the app platform and check for more information.&lt;br /&gt;
&lt;br /&gt;
If presence subscription does not work, please check if the configured user has a Microsoft Teams license.&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64057</id>
		<title>Reference13r3:Concept App Service Connector for Microsoft 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_App_Service_Connector_for_Microsoft_365&amp;diff=64057"/>
		<updated>2022-11-08T17:52:45Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
{{FIXME|reason=This product is still in progress}}&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r3&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Connector for Microsoft 365 synchronises Microsoft Teams presences with the innovaphone PBX (unidirectional).&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform&lt;br /&gt;
* App(Connector for Microsoft 365)&lt;br /&gt;
* Connector for Microsoft 365 License per user&lt;br /&gt;
&lt;br /&gt;
== Concept ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Please have a look into our Howto guide for basic configuration aid:&lt;br /&gt;
[[How_to:_Configure_Connector_for_Microsoft365| Howto13r3:Configure Connector for Microsooft365]]&lt;br /&gt;
&lt;br /&gt;
=== Technical Overview ===&lt;br /&gt;
If the Connector for Microsoft 365 app is fully configured, the app connects to Microsoft to obtain a token. With the token, the app gets the teams users (with a Teams license) through the Microsoft Graph Api.&lt;br /&gt;
A presence subscription to Microsoft is started with the licensed users of the PBX to get presence changes in Microsoft Teams for these users. A user subscription is also started to get changes of the users (adding, deleting or update). If a user has changed, the Teams users are retrieved again. If the presence has changed, it is forwarded to the PBX. The presences of Teams are mapped to the presences of the PBX.&lt;br /&gt;
&lt;br /&gt;
* User subscriptions are renewed every 60 minutes.&lt;br /&gt;
* Presence subscriptions are renewed every 10 minutes.&lt;br /&gt;
* License Check is made before every presence subscription.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please be aware:&#039;&#039;&#039; The actual change of presence or line state will be live, the above-mentioned subscriptions are needed to register against the Microsoft API for changes. &lt;br /&gt;
After successful subscription Microsoft will trigger the Connector for Microsoft 365 App every time a presence or line state for a user has changed.&lt;br /&gt;
The subscription will then be renewed in the above-mentioned time interval to receive further live updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Mapping Table ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Teams Presence&lt;br /&gt;
! PBX Presence&lt;br /&gt;
|-&lt;br /&gt;
| Away&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| BeRightBack&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| Busy&lt;br /&gt;
| busy&lt;br /&gt;
|-&lt;br /&gt;
| DoNotDisturb&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| InACall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAMeeting&lt;br /&gt;
| meeting&lt;br /&gt;
|-&lt;br /&gt;
| Inactive&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| PresenceUnknown&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Available&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offline&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| Offwork&lt;br /&gt;
| online&lt;br /&gt;
|-&lt;br /&gt;
| OutOfOffice&lt;br /&gt;
| away&lt;br /&gt;
|-&lt;br /&gt;
| UrgentInterruptionsOnly&lt;br /&gt;
| dnd&lt;br /&gt;
|-&lt;br /&gt;
| Presenting&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|-&lt;br /&gt;
| InAConferenceCall&lt;br /&gt;
| on-the-phone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The value &amp;quot;online&amp;quot; unsets the Teams presence in the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Master/Slave ====&lt;br /&gt;
&lt;br /&gt;
For Master/Slave combination the &amp;quot;Connector for Microsoft 365&amp;quot; App has to be added to the slave (if no full replication is on). The slave websocket connection is needed to display &amp;quot;on-the-phone&amp;quot; presence.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
=Known Limitation=&lt;br /&gt;
Users with MFA (multi-factor-authentication) are not supported as user for the Connector.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
The app itself shows required states with green and red as connections to the Master PBX, Authentication and Presence Subscription to identify if there are problems. Sometimes it needs a little bit time until the states are changed. If the states remain, it is mandatory to enable logs on the app platform and check for more information.&lt;br /&gt;
&lt;br /&gt;
If presence subscription does not work, please check if the configured user has a Microsoft Teams license.&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Overview_Connector_for_Microsoft365.png&amp;diff=63486</id>
		<title>File:Overview Connector for Microsoft365.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Overview_Connector_for_Microsoft365.png&amp;diff=63486"/>
		<updated>2022-09-27T08:57:14Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=63485</id>
		<title>Howto13r3:Configure User Presence Sync by Connector for Microsoft365</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r3:Configure_User_Presence_Sync_by_Connector_for_Microsoft365&amp;diff=63485"/>
		<updated>2022-09-27T08:56:53Z</updated>

		<summary type="html">&lt;p&gt;The: /* More Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
V13r3&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
This article outlines a configuration scheme for Connector for Microsoft365 functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===System Requirements===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;admin account in Azure Portal of Microsoft&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;In the Azure Portal of Microsoft you have to add an app registration&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;You only have to give a name for the app&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Registration_Connector_for_Microsoft365.png|mini|App Registration]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to the authentication in the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You only have to configure allow public client flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Authentication_Connector_for_Microsoft365.png|mini]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Switch to api permissions on the left&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;You have to configure delegated permissions (User.Read.All and Presence.Read.All) as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Grant access to the api permissions, if not possible you have to ask an admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:APIPermission_Connector_for_Microsoft365.png|mini]]&lt;br /&gt;
&lt;br /&gt;
With these configurations you can configure the Connector for Microsoft365&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tenant ID as shown in the picture&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Overview_Connector_for_Microsoft365.png|mini]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365.png&amp;diff=63483</id>
		<title>File:Authentication Connector for Microsoft365.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Authentication_Connector_for_Microsoft365.png&amp;diff=63483"/>
		<updated>2022-09-27T08:51:27Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:App_Registration_Connector_for_Microsoft365.png&amp;diff=63482</id>
		<title>File:App Registration Connector for Microsoft365.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:App_Registration_Connector_for_Microsoft365.png&amp;diff=63482"/>
		<updated>2022-09-27T08:51:10Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365.png&amp;diff=63481</id>
		<title>File:APIPermission Connector for Microsoft365.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:APIPermission_Connector_for_Microsoft365.png&amp;diff=63481"/>
		<updated>2022-09-27T08:50:56Z</updated>

		<summary type="html">&lt;p&gt;The: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>The</name></author>
	</entry>
</feed>