Reference13r1:Concept App Service Devices: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
Line 83: Line 83:


====innovaphone myApps====
====innovaphone myApps====
The used innovaphone myApps version is updated to the version of the gateway on gateways with an enabled PBX after a successfull update.<br>
The used innovaphone myApps version and the path to the App Store is updated to the version of the gateway on gateways with an enabled PBX after a successfull update.<br>
This configuration can be found [http://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Config/myApps here]
This configuration can be found [http://wiki.innovaphone.com/index.php?title=Reference13r1:PBX/Config/myApps here]



Revision as of 16:29, 18 March 2019


The App Service Devices is an App Service which can be installed on an innovaphone App Platform. It is used to administrate the innovaphone devices which belong to the whole installation.

Applies To

  • innovaphone PBX from version 13r1

Apps

innovaphone-devices

This is the standard UI App for Devices.

innovaphone-devices-api

This is a hidden App, which provides the Devices API (com.innovaphone.devices). This API can be used to find and communitate with devices which are registered to the Devices App.

Parameters:

Hidden
DevicesApi must be a hidden App
Websocket
to get the URL of the Devices App itself which is used for provisioning

PBX Manager Plugins

Devices

With the Devices plugin App objects can be created, edited and deleted for Devices and the Devices API on the PBX.

Concepts

All innovaphone hard phones and gateways starting from version 13r1 can establish a registration inside the Devices App and therefor administrative tasks can be performed through the App.

Domains

In a hosted environment, it might be needed to add multiple domains to the Devices App.
After the initial installation of Devices through Install, you have administrative rights and can add more domains.

Administrative rights

You have administrative rights if the configured PBX App object for Devices uses the password of the instance which is configured in the Manager App and the PBX uses the same domain as this instance.

Domain local rights

You have just rights to a certain domain if the configured PBX App object for Devices uses the domain password which can be configured in Devices for each domain and the PBX uses the same domain name as configured in Devices.

Assign rights to other domains

Domains can gain access to other domains by configuring these access rights in the Devices App.

Device connections

The Devices registration is done through a websocket connection to the webserver of the App Platform and the Devices instance (standard HTTP/s port).
The URL used can be configured manually under Devices Registration or through a new provisioning mechanism.

A binary protocol is used to transfer information between the device and the devices App. The MAC address is the unique key to identify a device.

If a device is added to a domain in Devices, the device gets a unique random password. Without such a password, a device shows up as unassigned in the Devices app. This is also the case after a long reset or when the device lost its configuration.

In such a case, the device has to be manually added again to a domain or it has to be provisioned again.

Provisioning

Devices can be added by provisioning (both phones and gateways). The standard online provisioning looks like this:

  • a user or administrator creates a provisioning code in the Devices or Users App (this stores the Devices URL on the provisioning server side)
  • a device with 13r1 or newer is connected to the network after a long reset
  • the provisioning code has to be entered within one hour (after one hour, the Update URL isn't polled anymore)
  • the device sends this code to config.innovaphone.com and retrieves the Devices URL
  • the device connects to the Devices URL and is added to the domain where the code has been created

There is also an offline provisioning mode.

Updates

The Devices App can be used to rollout updates.

JSON files

The update files have to be acccessible on a webserver without authentication and two json files are used to describe the used firmware and apps.
You can either use the standard innovaphone App Store for these files or your own local webserver.

Update jobs

You can configure several update jobs with different categories to organize your updates.
Update jobs are always sequentially processed and inside one update job, just 20 devices are updated at the same time.

Device update check after the update job has been already executed

If a device goes online, the newest suitable update job is searched for this device (depending on the categories).
If an update job is found, the update is just performed, if there has been no successfull update for this device in this job before and the version does not match (simply string compare).

Update errors

If an update fails, the Devices App shows an error. You may have to enable further tracing on the updated device itself to find out the reason of the failure.

innovaphone myApps

The used innovaphone myApps version and the path to the App Store is updated to the version of the gateway on gateways with an enabled PBX after a successfull update.
This configuration can be found here

Backups

The Devices App can be used to backup the configuration and data of Apps and devices.

Webserver requirements

Backups are stored on a webserver with or without Digest/Basic authentication and with the webdav PUT method.

Backup jobs

Backup jobs are executed sequentially. Inside one backup job, just 20 backups are performed at the same time.

Phones or gateways

The configuration file is stored. Therefor the Devices App tells the device to store the configuration with a !mod cmd UP0 /sync prot URL.

Apps on an App Platform

The databases of all existing instances and the manager are stored.
Each installed App Service can have multiple instances and each App instance has its own database.
A database contains both configuration and data of an App instance!
The manager database contains the webserver certificate and further manager related configuration settings.

The Devices App establishes a websocket connection to the manager and tells the manager where to store the backups.
The manager on the backuped App Platform itself performs the HTTP requests to store the files.

Backup errors

If a backup fails, the Devices App shows an error. You may have to enable further tracing on the backuped device itself to find out the reason of the failure.

Restore

Phones or gateways

Just as always under [Upload Config].

Apps

The App Service itself has to be installed on the App Platform prior restoring of a single instance.
The restoring is done in the Manager App on the App Platform itself.
The intance settings, the configuration and data are restored in a single process.

Device Configurations

Software rental

Software rental can be done for innovaphone Cloud installations or inside an own intallation without the cloud.

innovaphone Cloud

Inside the innovaphone Cloud, you just have to upload your activation keys with iSCs to add licenses to one or more gateways.

Own installation

Inside your own installation, you have to register a new my.innovaphone account or you can use an existing account inside the Devices App.
One domain inside Devices belongs to one project inside your my.innovaphone company, so you can handle multiple domains with one my.innovaphone account.

Technical aspects

A new rental expiration date is calculated on each license or balance change in the domain.
So after each change new licenses with a new date are transfered to the gateways and also stored in the Devices App itself.
If the rental expires, the gateway reboots and the licenses are not available anymore.
The licenses are also transfered after each reconnect of a gateway to the Devices App.

For license and balance changes, the Devices App must be online and have access to my.innovaphone.com!

Appendix

Sample firmware.json

{

 "devices": [
   { "id": "IP0010", "versions": [ "13r1" ] },
   { "id": "IP0011", "versions": [ "13r1" ] },
   { "id": "IP101", "versions": [ "13r1" ] },
   { "id": "IP102", "versions": [ "13r1" ] },
   { "id": "IP1060", "versions": [ "13r1" ] },
   { "id": "IP110", "versions": [ "13r1" ] },
   { "id": "IP110A", "versions": [ "13r1" ] },
   { "id": "IP111", "versions": [ "13r1" ] },
   { "id": "IP112", "versions": [ "13r1" ] },
   { "id": "IP1130", "versions": [ "13r1" ] },
   { "id": "IP1260", "versions": [ "13r1" ] },
   { "id": "IP150", "versions": [ "13r1" ] },
   { "id": "IP2000", "versions": [ "13r1" ] },
   { "id": "IP200A", "versions": [ "13r1" ] },
   { "id": "IP22", "versions": [ "13r1" ] },
   { "id": "IP222", "versions": [ "13r1" ] },
   { "id": "IP230", "versions": [ "13r1" ] },
   { "id": "IP232", "versions": [ "13r1" ] },
   { "id": "IP24", "versions": [ "13r1" ] },
   { "id": "IP240", "versions": [ "13r1" ] },
   { "id": "IP241", "versions": [ "13r1" ] },
   { "id": "IP29", "versions": [ "13r1" ] },
   { "id": "IP3010", "versions": [ "13r1" ] },
   { "id": "IP3011", "versions": [ "13r1" ] },
   { "id": "IP302", "versions": [ "13r1" ] },
   { "id": "IP305", "versions": [ "13r1" ] },
   { "id": "IP311", "versions": [ "13r1" ] },
   { "id": "IP411", "versions": [ "13r1" ] },
   { "id": "IP6000", "versions": [ "13r1" ] },
   { "id": "IP6010", "versions": [ "13r1" ] },
   { "id": "IP800", "versions": [ "13r1" ] },
   { "id": "IP810", "versions": [ "13r1" ] },
   { "id": "IP811", "versions": [ "13r1" ] },
   { "id": "IPVA", "versions": [ "13r1" ] }
 ],
 "versions": [
   { "id": "13r1", "build": "131705", "text": "13r1 dvl [131705]", "wiki": "" }
 ]

}

Sample apps.json

{

   "apps": [
       {
           "id": "apidemo",
           "folder": "apidemo",
           "binary": "apidemo",
           "versions": [
               { "id": "13r1", "build": "131705", "label": "dvl" }
           ],
           "manufacturer": "innovaphone",
           "title": "Apidemo",
           "description": "The Apidemo"
       },
       {
           "id": "appstore",
           "folder": "appstore",
           "binary": "appstore",
           "versions": [
               { "id": "13r1", "build": "131705", "label": "dvl" }
           ],
           "manufacturer": "innovaphone",
           "title": "AppStore",
           "description": "AppStore"
       }
   ]

}