Reference13r1:Concept App Service Devices: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
No edit summary
Line 30: Line 30:


=== Domains ===
=== Domains ===
In a hosted environment, it might be needed to add multiple domains to the Devices App.<br>
In a hosted environment, it might be needed to add multiple domains to the Devices App.<br>
After the initial installation of Devices through Install, you have administrative rights and can add more domains.  
After the initial installation of Devices through Install, you have administrative rights and can add more domains.  
Line 41: Line 42:
==== Assign rights to other domains ====
==== Assign rights to other domains ====
Domains can gain access to other domains by configuring these access rights in the Devices App.
Domains can gain access to other domains by configuring these access rights in the Devices App.
==== Deploy passwords ====
You can check the checkmark '''Deploy the domain password on all devices''' inside the domain settings.<br>
This will set the domain password on all devices which belong to the domain.<br>
This will also set the manager password and the SSH passwords of App Platforms.
  After eachs reconnect of a client, the password will be deployed again.


=== Device connections ===
=== Device connections ===

Revision as of 07:58, 18 July 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 communicate 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.

Deploy passwords

You can check the checkmark Deploy the domain password on all devices inside the domain settings.
This will set the domain password on all devices which belong to the domain.
This will also set the manager password and the SSH passwords of App Platforms.

 After eachs reconnect of a client, the password will be deployed again.

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.

Devices Registrations

See Devices Registration

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.

  • on a gateway/phone add a trace flag to the UP1 and HTTPCLIENT0 module
  • on an App Platform, enable the App and HTTP Client trace flag on the manager

innovaphone myApps

The path to the App Store and the used innovaphone myApps version 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.

  • on a gateway/phone add a trace flag to the UP1 and HTTPCLIENT0
  • on an App Platform, enable the App and HTTP Client trace flag on the manager

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

Rental program and Payment method

innovaphone uses iSCs (innovaphone Service Credits) as a currency to pay for the flexible rental programme. The iSCs are bound on a customer specific account. As soon as a software license is rented and goes into operation, the corresponding iSCs value is debited form the corresponding customer account.

innovaphone Service Credit (iSC)

iSCs can be ordered via the innovaphone sales channel and are managed through the myApps Plattform. Delivered in form of an activation key, iSCs are loaded through the Devices App to a specific customer account. The customer account is logically connected to the my.innovaphone license portal. The rental licenses however, are managed exclusively via the Devices App. An direct access to the customer account in my.innovaphone is not necessary!

iSCs are not bound to specific software licenses or devices, but to a customer account. Existing iSC balances can therefore be used flexibly, by the same customer, to rent other licenses or services (e.g. also to rent hardware).

The rental programm is operational, as long as a positive iSC balence is available on the customer account. The rental does terminate immideatly when the iSCs balance becomes zero. A negative iSC babance is not accepted.

Starting 7 weeks before a customer will run out of iSCs, a weekly Alert email will remind the administrator to recharge the customer accont with iSCs.

Software rental

Software rental can be done for innovaphone Cloud installations or for software, which operates on the customer premisis. This could eventually be customer owned hardware or a privat virtual machine, managed by the customer.

Hardware licenses

Hardware licenses have to be bound on the specific device in my.innovaphone itself and currently can't be handled within the Devices App itself. So you also need to download the licenses from my.innovaphone and upload them on the device with the already known methods.

innovaphone Cloud

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

Email expiry notifications

You will receive an email notification if the rental of a project expires. This notification will be sent seven weeks before the expiry and then once a week until the rental expires.
You can configure one or more email recipients in the domain settings.
If no email address is configured, the email address of the logged in user account is used.

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!

Usage

You have to add (use the + symbol) a PBX and select all licenses you want to rent.
Use the apply button to really bind these licenses. Without usage of the apply button, you can just see a precalculation of the iSCs/month and the rental end date, but nothing is really charged from your balance.

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"
       }
   ]

}

Sample software.json

{

   "software": [
       {
           "id": "myappsandroid",
           "folder": "myappsandroid",
           "binary": "myapps.apk",
           "versions": [
               { "id": "13r1", "build": "131705", "label": "dvl" }
           ],
           "manufacturer": "innovaphone",
           "title": "myApps Android",
           "description": "myApps for Android"
       },
       {
           "id": "myappswindows",
           "folder": "myappswindows",
           "binary": "myAppsSetup.msi",
           "versions": [
               { "id": "13r1", "build": "131705", "label": "dvl" }
           ],
           "manufacturer": "innovaphone",
           "title": "myApps Windows",
           "description": "myApps for Windows"
       }
   ]

}

Related Articles