The innovaphone PBX allows the integration of Apps into the innovaphone myApps client. An App consists of an App Service from which the App is loaded and executed in the innovaphone myApps client as a Web application inside an iframe. The App Service may be the PBX itself, an AppService running on an innovaphone App Platform, or any other webserver.
The PBX controls which user may use which App. This is the main mechanism for assigning rights to users.
So called App Objects are used in the PBX include Apps into the PBX. The main configuration items in an App Object are the link to an App Service and the password, which acts as a shared secret between the PBX and the App Service, so that the PBX can authenticate the user for the App Service.
There is the generic App Object, which can be used for any App without special integration into the PBX. Some services of the PBX use external App Services (e.g. Push). For these services, some special App Objects are available.
- innovaphone PBX from version 13r1
App Objects Parameters
App Objects use a common set of parameters to link an App into the PBX. Not all App Objects use all these parameters
- Description, Long Name, Name
- Same meaning as for all objects
- This is the shared secret between the PBX and the App Service. It allows the PBX to authenticate users for the App Service. If an App Service provides a PBX Manager Plugin for configuration, this password is typically set by the Plugin as a random string. Manual configuration of ths password should only done, if there is no other way.
- The link to the App Service. This should be configured without filename extension. A postfix of .htm is added to the URL to load the App code as Web application. A postfix of .png is added to load the icon to be displayed in myApps. A size of 100px x 100px is recommended for the icon to have a nice display on 4K monitors.
- Icon URL
- Optional link to an App Icon. If not configured the App URL is used for the Icon as well, by just loading a .png file with the same name as the .htm for the App code.
- A comma seperated list of Modes can be configured here. The modes can be used App specific to switch on different modes for functionality which only should be available for some users. Different rights levels can be implemented with this. For each mode configured here an entry shows up in the Apps section in the form of <app>~<mode>. By checking such an entry the user has access to this mode. (To App developers: If there are multiple modes checked, all these modes are added to the appobj property, seperated by ~, for example myapp~admin~debug).
- If the App uses Service Licenses, the number of licenses to be used by this service can be configured here. The PBX then tries to acquire licenses of the type Service(<name of the App>)
- Plain website
- Indicates that this App service is a website, which does not make use of the authentication provided by the PBX. No App icon can be displayed for this kind of Apps.
- Apps marked as hidden are not displayed in the myApps client. This kind of Apps is used to provide APIs for other Apps and are loaded automatically when the API is used.
- If set, the App Object establishes a Websocket connection to the App Service. This way the App Service itself can make use of APIs provided by the PBX.
For each API an App Services wants to use the correspondig flag must be set in the App object to grant access to the API. The available APIs are
- Allows to register an endpoint using the innovaphone Json signaling protocol. Apps like Softphones can use this API
- Allows an App to insert itself into the signaling path to a registered endpoint. Apps, which control registered phones and may want to add additional media for calls of endpoints can use this API
- Access to saved chat messages
- This API publishes the table "users". This can be used to replicate the PBX users
- Create/Update/Delete Users and other PBX config itemss
- User level access to the PBX, with functions like presence monitoring
- API which is used to get access to APIs provided by other App Services
- Remote Call Control. The functionality including message names and parameters is based on the SOAP API
There are different objects, which are used as App Objects. A generic one and some for special purposes.
The App object is the generic mechanism to include an App in innovaphone myApps.
An App object, which is used to load the hidden App from a App Platform Manager, which provides the APIs which are needed to configure an AP and load PBX Manager Plugins from the AP
An special App object, which connects to a push service. The PBX uses this to deliver push notifications to smartphones. Any user, which wants to make use of the Push service, needs to have the push object configured as push property.
Executes voicemail scripts and loads the visual voicemail App from a voicemail App Service
Does the call signaling to FAX interfaces and load the Fax App from a fax App Service
PBX Manager Plugins
If an app plugin creates the first object or, if only one exists and it is edited, the plugin creates a new password and sets it both in this object and in the app instance. If further objects are created or edited, it is checked if another object with valid login information exists, and if so, this password is used. If not, a new password is created and configured in both sides; in this case the other existing objects aren't changed and must be saved again to set the same password.
The App Platforms plugin creates the AP object for a foreign AP, which may offer cloud services (e.g. the Push service from innovaphone). It generates an account on the App Platform with a random password and configures the AP object for this account.
The account must be confirmed with a link sent by email. With the email verification it is possible to reconnect to an existing account, even if the password got lost and the account cannot be used by anyone not having access to this email address
You can configure an LDAP login inside the PBX Manager Plugin of the Contacts App.