Course13:IT Connect - 08.0 Using Templates
Jump to navigation
Jump to search
There are also other versions of this article available:
Course13 (this version) | Course14
How Templates simplify user configuration
The Templates PbxManager Plugin
When we were looking at user administration with UsersAdmin we talked about Templates:
There are a lot of settings for users and we will see a number of them in this course. For now, it is good enough to understand that such settings can be put in a so-called template.
You can then assign a template to a user and the settings in the template will be applied to the user. Also, when you change the template later on, the change will be effective for all users who have the template assigned.
The Install has created two commonly useful templates, Config User and Config Admin (for users with admin rights)
Now its the time to look at these templates in more detail. The tool to do this is the Templates PbxManager plugin. When you open it, it will list the aforementioned templates Config User and Config Admin.
Let's see what is in a template.
Apps
The Apps part of a template define the Apps that are technically available to users who share this template. Technically here means that the App will be listed in the respective users list of all Apps. To really be able to use it, licenses may be required and assigned to the user (depending on the App). This is not done here.
As mentioned before, Install has created the two templates Config User and Config Admin. The Apps assignments in Config User lists all the end-user Apps while the Apps assignments in Config Admin list the administrative Apps.
Where Apps come from
Most of the Apps (such as for example Users, Devices and Files) exist because they are actually installed on your App Platform. You will see them listed in the Apps manager if they are installed.
PBX Apps
Others, however, are provided by the telephone system (such as the PbxManager) and therefore exist even without the App Platform, simply because the telephone system exists.
Again others exist because specific objects exist in the PBX. We have used Time Switches before and also the App that allows end users to manage the state of the time switch. In our case, it was called Business hours. In fact, the PBX will create a separate App for each time switch you create and the name of the App is the name of the time switch.
- Create a new time switch called Christmas
- Edit the Config Admin template to allow access to the new Christmas App
APIs
One interesting but non-obvious type of Apps is those that end with ...Api. These are not Apps with a user interface. Instead, they are APIs exposed by an App that allow other Apps to use their services. For example, when the Waiting Queue PbxManager plugin tries to find the announcement files you have stored in the Files App, it uses the FilesApi which lists all stored and shared files. For an App that uses services (that is, an API) of another App to work, the user that runs the App must have access to the respective Api.
You can try that as follows:
- change the Config Admin template and un-tick the FilesApi check-mark. This template is the one used by your own user and therefore, you are blocking your own access to the FilesApi
- When you now try to select an announcement in the Waiting Queue PbxManager plugin, no announcement files will be listed
- Don't forget to fix the template again!
Inheritance
You might have asked yourself when looking at the Apps settings in the Config Admin and Config User templates: why are the end-user Apps not ticked in the Config Admin template? Does that mean that administrators must not use end-user Apps?
The answer is: not at all. The trick here is that templates can inherit from other templates. In our case, Config Admin inherits from Config User.
This is defined in the Inheritance section of the template settings. A template can inherit settings from up to 4 other templates. However, inheritance is not recursive.
In other words, if template A inherits from template B and template B inherits from template C, A does not inherit from C (but still, B inherits from C). So if a user has template A assigned, the settings from both A and B are effective, but not C. If a user has template B assigned, the settings from both B and C are effective. So if you want a user to receive settings from A, B and C, you must list B and C in the Inheritance section of A and assign A as the user's template.
Create a template that is like the one for normal users (Config User) except that it allows access to the Business hours App:
- Create a new template called Business hours operator
- in the Apps section, tick the Business hours App
- make sure it inherits from Config User
- assign the new template to Mario Rossi
Inheritance Logic
The inheritance logic is quite simple: when a template inherits from another and a value is empty in the inheriting template, the value from the inherited value takes effect.
However, for check-marks, it is a bit different. With a check-mark, there is no way to leave the field "empty". This is why the check-marks for true/false values in a template have 3 options:
- + set the option
- - clear the option
- <empty> leave the option as inherited (or clear it if nothing was inherited)
Function keys
This section allows you to setup the two most basic types of function keys on your phones: Quickdial and Partner.
Layouting phone function keys
Function keys on the phone are available in the phone's so called home screen. This screen has 2 pages which can be switched using the little key on the upper right.
Function keys can be defined in a template and their definition is independent of the actual phone model the user has. Nevertheless, different phone models may have different number and layout of function keys. For example, IP2x2 models may have an extension module installed which offers two additional pages with 16 function keys each. Some older phones however had less function keys. For example, the IP240 had 15 function keys (and also an optional extension module) and the IP110 had only 4.
Therefore, function keys defined in a template are "filled in" to the available physical function keys in a top-to-bottom / left-to-right / page-to-page / phone-to-extension-module fashion. If a specific phone model can not handle the number of defined keys, the remaining ones are simply ignored. The Templates PbxManager plugin has options to display function keys with different layouts so that it is easier for you to determine on which position it is displayed on a real phone.
Quickdial
The Quickdial function key is one of the simplest keys and allows to dial a phone number by pressing a single button. It has only two properties:
- Label
A fixed label that is shown on the phone - Destination
The target that should be called. This can be anything that is callable: - a number (e.g. 0090012345678), no decoration (as in 0 0 (900) 12345678)
- an ID (a.k.a. SIP) of an object in the PBX (e.g. mro which is Mario Rossi's ID)
- a SIP URI which is the ID of an object in a foreign PBX (e.g. ckl@innovaphone.com)
The Quickdial key is usually used for external numbers. For internal numbers, the Partner key is often more popular as it provides a bit more functionality.
In the Config User template, create a Quickdial function key that calls to Mario Rossi:
- start the Templates PbxManager plugin
- select the Config User template
- expand the Function keys area
- switch to the IP11x tab
- add a function key to the lower right edge of the first page
- select Quickdial
- use Mario as Label
- set mro as Destination
- click on Save and OK
Using the new function key, Lisa can now dial quickly to Mario .
Partner
The Partner key is something like an enhanced Quickdial key. It has the same properties (Label and Destination) but it offers slightly more functionality.
To see what the difference is, create a Partner function key that calls yourself (ckl). This is much like before, except that you use the Partner type instead of the Quickdial type and use another label (let's say >ckl). If you now use the new key to call from Lisa to Christoph, it will of course do the call. The interesting part can be seen on Jean's phone: as soon as you have taken Lisa's call, Jean's phone will show the On the phone note for Christoph (>ckl On the phone). This is because a Partner function key can subscribe to the call information of the target user.
As a rule of thumb, you should use the Partner key for real target users in your PBX where it is useful to see their status. For functional numbers (a waiting queue or a voicemail for example) and for external users, you should use a Quickdial key rather.
Pickup
To get the Pickup to work, we first need to look a the concept of Privacy. This is done in the next chapter.
Privacy filter
The amount of information that is available to other users is controlled by the users themselves. There is a Privacy tab in the user's profile settings that allows you to define who has access to which part of your call and presence information.
By default, the privacy settings, allow each user in your PBX to see
- that you exist (Visible)
- whether you run the myApps client or not (Online)
- your presence state (Presence)
- if you are engaged in a phone call (On the phone)
- the presence note you may have set (Presence note)
- the calls you have (Calls)
- the calls you have including the remote party (Calls with Number)
When you look at your own privacy settings in your profile, you see the respective settings under the List of templates privacy filters heading. This is because they are done in one of your templates (its actually part of the Config User template). You can not change these settings directly (as you can not change a template in your own profile editor). But you can create your own settings that override the default ones.
Privacy Scopes
You can specify multiple privacy filter with different scopes. A scope is either
- a user (like ckl@dvl-ckl2.net)
- a PBX, specified by its domain name (like @dvl-ckl2.net)
- a group, specified by its name (like hqswb-0)
- everybody, specified like a PBX but with the domain name left empty (@)
When you add your own privacy filter, it will take precedence over one that was defined in a template.
Note that privacy rights are asymmetrical. The fact that user A has access to information about user B does not imply that user B has access to the same information about user A. Instead, both user A and B need to grant access to their own information (using their own profile, or the administrator does it using templates).
Assume you'd like to grant Mario access to information about the calls you have. You would
- open your own profile in myApps
- switch to the Privacy tab
- add a new Filter for user
- type Mario's ID (mro) as user and select mro@dvl-ckl2.net from the list
- tick the Visible, Online, Presence, On the phone, Presence note and Calls check-mark
- save the new filter
when Lisa calls you now, look at the phone screens of Jean and Mario. When your phone is ringing, Jean's phone does not change while Mario's phone shows the incoming call for you.
If you also tick the Calls with Number check-mark in your privacy filter for Mario, he would even see who calls you.
If you change your presence state or set a presence note for yourself this is shown for both Mario and Jean because the default privacy settings allow access to Presence and Presence note for all users of the PBX (as discussed above).
When you play around with privacy settings and a phone does not behave as expected, simply do a power cycle on the phone. This is the fastest method to refresh the subscription a phone establishes to the PBX to receive the call and presence information.
Call Pickup
When a user receives call information (that is, Calls (or Calls with Number) information) in a subscription made by a function key, the key will show the calls. This is also true for alerting calls.
In this alerting state, when the function key is used, it will not place a call to the target user (this would lead to an unpleasant situation anyway on the target user's phone if two calls ring there at the same time). Instead, it will show the call details along with the option to take the call. In this state, the user of the function key can decide to either take the call (this is known as Call pickup) or to reject it. Note that rejecting the call does not cancel the incoming call for the target user. Instead, it continues to ring on the target phone.
The Templates PbxManager Plugin (contd).
Let us return to the Templates PbxManager Plugin and see what else it does.
The Pickup function key
The Pickup function key also allows users to do call pickup. However, instead of subscribing to the call information for a specific target user it subscribes to the call information for all users in a group. Therefore you would - in addition to the Label - configure the name of a group in the Group field.
Pickup and privacy
For a Pickup key to receive Calls with Number information required to perform a call pickup, the user must have appropriate access rights. In contrast to the Partner key, privacy control is not done using the privacy settings in a user's profile (nor using the privacy settings in the templates). Instead, users have access to other user's call information if they are active member of a group in which the monitored user is also a member (not necessarily an active member).
So like with the privacy settings, access to calls information is asymmetric. If user A is an active member of group G and user B is a non-active user of G, then A receives information about B but B does not receive information about A. If both are active members of G, they mutually have access to their call information.
The active property of a group membership can not be set by the user. Instead, it must be set by the administrator using the Groups PbxManager plugin. As a result, users can not accidentally change the function of a Pickup function key.
Dynamic membership (dynamic-in or dynamic-out) is irrelevant to group pickup. That is, a user's call information can be seen by other active group members even if the user currently has the dynamic-out group membership state.
Create a group called pickup so that all users can pick calls from all users:
- open the Groups PbxManager plugin
- add a new Group with name pickup
- add all users to this group
- make sure all users are static (S) and active (A)
- save the group with OK
Then create a Pickup function key for this group in the Config User template:
- open the Templates PbxManager plugin
- open the Config User template
- expand the Function keys area
- switch to the IP11x tab
- create a new function key above the >ckl key
- select Pickup as key type
- set a Label (e.g. myGroup)
- set Group to pickup
- set 2 as Signal after ... (s)
- save the new key with Save
- save the template with OK
When you now call from Lisa to Mario (13), you will see the myGroup key show this call on Jean's phone. If you press the key, the call will be available for call pickup just like with the Partner key before.
Audible alert
Calls that can be picked are shown in the Pickup key but they are not alerting on the monitoring phone of course. However, as the Signal after ... (s) property is set (as a time in seconds), an audible signal is heard on the monitoring phone after the specified time.
If you did not notice it, call again to Mario and let the call ring. After 2 seconds, you will hear the attention tone.
Phone settings
Call Waiting
Use of Call Waiting often is part of the companies phone policies. If it is ticked in the template, calls received during another call will be shown on the phone display (which is the default which is why it is already ticked in a new template). Also, a tone is inserted into the active call so to attract the user's attention.
If it is not ticked, such calls will be rejected with a user busy cause.
Visual Ringing Indication
When the phone features an LED (and your IP232, IP222, IP112 and IP111 do so), it will light up on an incoming call if the Visual Ringing Indication check-mark is ticked.
Hide own number
If this check-mark is ticked the calling party number is suppressed in outgoing calls.
Settings
The Settings section is basically good to adjust the following two user properties.
The remaining ones (Push and Messages) should not be modified in most scenarios.
Call filter
A call filter imposes limits on which numbers a user can call. For example, if you want to restrict users from doing outbound calls from the PBX to the public network, you would want to disallow all numbers starting with 0 (assuming your trunk line access number is 0).
The following filters are defined by default:
- normal
no restrictions - national
000 not allowed (assuming 0 is your trunk access number and 00 is your international access code) - intern
011 allowed, anything else starting with 0 not allowed. Disallows all external calls (through the trunk) except for emergency numbers (such starting with 11, like 110 or 112) - unknown
0 not allowed. Disallows all external calls
Call Forward filter
This setting is much like the Call filter settings, except that it limits call forwards. So users who have intern set as Call Forward filter, will not be allowed to set a call forward to any external number except for emergency numbers.
Note that this filter is evaluated when the call forward is executed, not when it is set.
Licenses
In your training, you always run the PBX in the so-called test mode. In this mode, all licenses whatsoever are considered available. The only drawback is that you must re-boot the PBX every 8 hours.
In real-life however, this is impractical and (even more important) violates the license agreement. So you will need to
- purchase licenses
- bind them to your PBX device
- upload them to your PBX device
- and assign them to individual users
The last step is done using the Licenses area within the templates. All licenses which have a + sign next to it in a template are assigned to the users for whom the template gets effective (either because it is assigned to them in UsersAdmin or because it is inherited by the assigned template). Those with a - sign get the license removed (if it was assigned by an inherited template) and those with neither + nor - are left as inherited.
The Config User template assigns the most relevant licenses to its users. You can change it (step 4 above), but as said before, here in the training it does not matter.
The other 3 steps (1 - 3 above) are not covered in this book:
- Please refer to the innovaphone Licensing guidelines V13r2 for more details about licensing (step 1 above, available in various languages)
- For step 2 and 3, the
my.innovaphone.com site is used. For more details, see the tutorials onwww.innovaphone.com: myTutorial/ - If you are using rental licenses, see chapter Configuration in
Concept Software Rental
Creating personal function keys on a phone
We have seen how function keys are defined in a template and that they are available on all phones of all users who share this template.
In addition to that it is possible to define individual function keys for users. You do that on the user's phone by pressing (for about 2 seconds) the buttons on the left and right sides of the home screen (or the little + signs on the IP232's touch screen). This brings you in to the function key editor on the phone.
Function keys which have been created this way are stored as part of the user and are only available for the user.
The phone's function key editor allows you to define even more types of function keys. A description of all the types can be found in function keys.
Customization
An interesting possibility here is to customize template function keys for a user. Assume you have defined a Pickup key in a template then you can edit this function key on the user's phone and modify for example the group. This modification is only effective for this particular user and does not disturb the original definition in the template.
Technically speaking, the settings done in the user which differ from those in the template override settings in the template, but only for this user.