Reference16r1:Concept App Service Users

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


The App Services Users is an App Service which can be installed on an innovaphone App Platform. It is used to administrate the users on a innovaphone PBX and also stores additional profile information. It provides Apps for users and for admins for various purposes.

Applies To

  • innovaphone PBX from version 13r1

Technical Overview

Apps

Profile App (innovaphone-profile)

This is an App, where the user can edit his own profile data. Here the personal data, the profile picture, the privacy filters and the call forwarding can be edited. Also leave and join groups is possible from this app. The provisioning of Phones, Softphones and Hostdesking can be done too.

It is possible to configure the mode "account" on the Profile PBX Object. Then if the "account" mode is assigned to an user, no right menu will be displayed and only the account tab will be available for the given user.

Parameters:

Websocket
to establish the connection with the PbxAdminApi
TableUsers
gives access to the replication of users from and to the PBX
Admin
gives access to the PbxAdminApi, needed to get data from the PBX such as the config templates, the DNS name of the PBX, the current domain...
Services
needed to use the Devices API (com.innovaphone.devices), so the phones can be provisioned
Devices-API
gives access to the Devices App, which is needed for the provisioning of phones

Users App (innovaphone-users)

This is an App, where all the users on the App Service Database are displayed (except the ones that have unchecked the Visible attribute on Profile for the current domain).

Users Admin App (innovaphone-usersadmin)

This is the administration app for the App Service. There all the users and unverified users on the current App Service can be managed. The provisioning of Phones, Softphones and Hostdesking can also be done here for several users at once. The configuration parameters can also be set here (i.e. the password policy 1.upper case letters | 2.lower case letters | 3.numeric digits | 4.special characters, SMTP settings, privacy settings...). The verification link will only be valid for 24 hours, after that a new registration must be started.

From V16r1 onwards, valid special characters for passwords are: !@#$%^&*()_-+={}|;:<>/?`

Starting with 16r1 you also can configure OAuth2 Authentications. You can have a look into our HowTo Article for assistance: Howto16r1:Configure OAuth2 E-Mail

Users APIs (innovaphone-usersapis)

This is a hidden App, which provides the Search API (com.innovaphone.search) and the Avatar API (com.innovaphone.avatar). The Search API is used by Phone, Softphone and Chat to search users from the App Service Database. The Avatar API is used by myApps, Phone, Softphone, Chat, Users and Fax to obtain the profile pictures.

Parameters:

Hidden
UsersAPIs must be a hidden App
Websocket
to establish the authentication parameters for the Avatar API (com.innovaphone.avatar)

PBX Manager Plugins

Users

With the Users plugin App objects can be created, edited and deleted for Users, UsersAdmin, UsersAPIs and Profile Apps on the PBX. Some configuration parameters can be edited here too on "Change Configuration". These are:

Which Profile App use as default
if there is more than one Profile App, the one selected here will be linked to the "Edit Profile" button on myApps.
Allow to create a user account using a web registration form
if this option is enable, on myApps Login the link to the registration form will be displayed.
Allow users to reset the password using a web form
if this option is enable, on myApps Login the link to the password forgotten form will be displayed.
Allow users to delete their own accounts
if this option is enable, a "Delete account" button will be displayed on Profile.


Import/Export with CSV/XML on Users Admin App

General

  • Before importing, each user is checked against the existing users. A user is not imported if its ID (cn) or username (h323) already exists, or if its extension conflicts with an existing extension in the same node. This means existing users are not updated by an import.
  • The password is not imported. Imported users get the default import password from the app configuration. In CSV files a password can be given in an optional &pwd column.

CSV

The CSV file uses a semicolon ; as field separator. Quoting is not supported, so values must not contain a semicolon. The file must be UTF-8 with BOM (as written by the export); files without BOM are read as ISO-8859-1.

The first line is the header line. Each column contains a designator which defines the field that the column values are assigned to. The columns can be in any order. The columns &cn, &h323, &e164, &config, &node and &pbx are mandatory in the header, otherwise the import is aborted. Rows without ID or username are skipped.

Designator Field Example Remark
&cn ID Mario Rossi Mandatory, must be unique. &n is accepted for older files
&h323 Username mro Mandatory, used as key, must be unique
&pwd Password Optional, not exported. If missing, the default import password is used
&fn First name Mario
&ln Last name Rossi
&e164 Extension 13 Mandatory column, must be unique within the node
&config Config Template Config User Mandatory column
&node Node root Mandatory column
&pbx PBX Name hq Mandatory column
pseudo/&type Executive/Secretary executive Either "executive" (Executive/Secretary object) or "" (empty, normal user)
&dn Display Name Dottore Mario Rossi
&em E-Mail mario.rossi.dvl-ckl2@class.local Must be unique. One address per user
grp/&name Group name group1
grp/&mode Group mode active Either "active" or "" (empty)
grp/&dyn Dynamically in, out or static in Either "in" (user is currently in the group), "out" (user is currently off the group) or "" (empty, user is statically in the group)
grp/&active Group active true Either "true" (active member), "false" (not active member) or "" (empty, same as "false")
device/&hw Hardware Id 0090333e407e
device/&text Name Phone IP112
device/&app App phone
device/&admin PBX Pwd true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&nofilter No IP Filter true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&tls TLS Only true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&nomob No Mobility true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&trusted Reverse Proxy true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&sreg Single Reg. true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&mr Media Relay true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
device/&nosrtp No SRTP true Either "true" (checked), "false" (not checked) or "" (empty, same as false)
gws/&name DECT system dect1
gws/&idle Idle Display Mario
gws/&ipei IPEI 0123456789
gws/&ac AC 1234

Each row holds one group, one device and (from 17) one DECT entry. To import more of them for a user, add further rows with the same username; for these rows only the grp/, device/ and (from 17) gws/ columns are used.

The CSV export writes all columns above except &pwd, but only the first group, device and (from 17) DECT entry of each user. Visibility (allow), call diversions and mobility are only supported with XML.

Example:

&cn;&h323;&e164;&config;&node;&pbx;pseudo/&type;&dn;&em;&fn;&ln;grp/&name;grp/&mode;grp/&dyn;grp/&active;device/&hw;device/&text;device/&app;device/&admin;device/&nofilter;device/&tls;device/&nomob;device/&trusted;gws/&name;gws/&idle;gws/&ipei;gws/&ac
Mario Rossi;mro;13;Config User;root;hq;;Dottore Mario Rossi;mario.rossi.dvl-ckl2@class.local;Mario;Rossi;group1;active;in;true;0090333e407e;Phone IP112;phone;true;;;;;dect1;Mario;0123456789;1234
Boss;boss;14;Config User;root;hq;executive;Boss;;;;;;;;;;;;;;;;;;;;

XML

With the XML format, more complete information about the users can be provided. A user is only imported if it has the attributes h323, node and loc. Objects with a pseudo element other than <pseudo type="executive"/> are skipped.

User

Attribute Field Example Remark
cn ID Mario Rossi Must be unique
guid GUID ac47a659-8a81-4595-9e73-9afba80d9d31 Exported only, ignored on import (a new GUID is created)
h323 Username mro Mandatory, used as key, must be unique
fn First name Mario
ln Last name Rossi
e164 Extension 13 Must be unique within the node
pwd, pwdx Password, encrypted password Exported only, ignored on import
apps-my List of apps attached to homescreen "users,chat,phone" Must be separated by ,
config Config Template ConfigUser
node Node root Mandatory
loc PBX Name master Mandatory
dn Display Name Dottore Mario Rossi
email E-Mail mario.rossi.dvl-ckl2@class.local Must be unique. Multiple addresses must be separated by ;

Pseudo

Optional child element of user.

Attribute Field Example Remark
type Executive/Secretary executive Only "executive" is supported. Users with any other pseudo type are skipped

Device

Attribute Field Example Remark
hw Hardware ID SwPh_mro_60929ce7
text Name Softphone
app App softphone
admin PBX Pwd true Either "true" (checked) or not present (not checked)
no-filter No IP Filter true Either "true" (checked) or not present (not checked)
tls TLS only true Either "true" (checked) or not present (not checked)
no-mob No Mobility true Either "true" (checked) or not present (not checked)
trusted Reverse Proxy true Either "true" (checked) or not present (not checked)
sreg Single Reg. true Either "true" (checked) or not present (not checked)
mr Media Relay true Either "true" (checked) or not present (not checked)
nosrtp No SRTP true Either "true" (checked) or not present (not checked)

Allow

Attribute Field Example Remark
name Name of the visibility filter @test1.com
grp Name is a group true Either "true" (name is a group) or not present
_online Online true Inverted: "true" means online is NOT checked, not present means online is checked
visible Visible true Either "true" (checked) or not present (not checked)
presence Presence true Either "true" (checked) or not present (not checked)
otf On the phone true Either "true" (checked) or not present (not checked)
note Presence note true Either "true" (checked) or not present (not checked)
dialog Calls true Either "true" (checked) or not present (not checked)
ids Calls with Number true Either "true" (checked) or not present (not checked)

Grp

Attribute Field Example Remark
name Name of the group grp1
mode Active active Either "active" (checked) or not present (not checked)
dyn Dynamically in, out or static in Either "in" (dynamically in), "out" (dynamically out) or not present (static)
active Active true Either "true" (checked) or not present (not checked)

Cd

Attribute / Element Field Example Remark
type Call diversion type cfu Either "cfu" (always), "cfb" (busy) or "cfnr" (no response)
precedence Precedence true Either "true" (checked) or not present (not checked)
bool Boolean booltest
bool-not Not true Either "true" (checked) or not present (not checked)
<ep> Name/Number to forward the call <ep e164="1234"/> Mandatory child element with attribute e164 or h323
<src> Filters applied <src type="do"><ep e164="789" ext="true" fwd="clid"/></src> Optional child element

Fork

Attribute Field Example Remark
hw Hardware ID Smartphone
bool Boolean booltest
bool-not Not true Either "true" (checked) or not present (not checked)
e164 Number 1234
h323 Name user0
mobility Mobility object Mobility
delay Delay 30
min Min-Alert 10
max Max-Alert 20
cw Call-Waiting true Either "true" (checked) or not present (not checked)
off Disable true Either "true" (checked) or not present (not checked)

Gws

DECT configuration of the user. Only available from version 17; not exported by 16r1 or lower.

Attribute Field Example Remark
name DECT system dect1
idle Idle Display Mario
ipei IPEI 0123456789
ac AC 1234

Example

<?xml version="1.0" encoding="utf-8"?>
<info>
	<user cn="Mario Rossi" guid="ac47a659-8a81-4595-9e73-9afba80d9d31" h323="mro" fn="Mario" ln="Rossi" e164="13" pwd="********" pwdx="...87" 
apps-my="users,chat,phone,dev%3ASwPh_mro_60929ce7" email="mario.rossi.dvl-ckl2@class.local" node="root" loc="master" config="ConfigUser">
		<device hw="SwPh_mro_60929ce7" text="Softphone" app="softphone" admin="true" no-filter="true" tls="true" no-mob="true" trusted="true"/>
		<allow name="@test1.com" visible="true" presence="true" otf="true" note="true" dialog="true"/>
		<allow name="department" grp="true" visible="true" _online="true" dialog="true" ids="true"/>
		<grp name="grp1" mode="active" dyn="in"/>
		<grp name="grp2"/>
		<cd type="cfu" bool="booltest">
			<ep e164="1234"/>
			<src type="do"><ep e164="789" ext="true" fwd="clid"/></src>
		</cd>
		<cd type="cfb">
			<ep h323="user0"/>
		</cd>
		<fork hw="Smartphone" e164="1234" bool="booltest" mobility="Mobility" delay="20" min="20" max="20"/>
		<gws name="dect1" idle="Mario" ipei="0123456789" ac="1234"/> 
	</user>
	<user cn="Boss" h323="boss" e164="14" node="root" loc="master">
		<pseudo type="executive"/>
	</user>
</info>