Course13:IT Advanced - 07 More on advanced PBX object properties and behavior

From innovaphone-wiki

Jump to: navigation, search

This book explains more advanced properties and behaviour of the PBX user object as well as their related function keys. Most of them apply to many of the PBX object types.

Contents

To begin with

To start this part of the exercise, be sure to load the more_pbx_details start configurations to the devices.

This will add a few users to your PBX on the IP411LEFT and register your phones. Be sure to wait for all your phones to screenshot.png be registered before you proceed.

Upgrade

Resetting the whole system has also removed the App platform of your dvl-ckl2.net domain, unfortunately. But never mind, this is quickly resolved by calling the Install again.

screenshot.png However, on the first page, you will notice a difference: Install has determined that you already have a PBX on the box. So it won't go into create-everything-from-scratch mode. This is the same that would happen if you upgrade an existing V12 PBX: Instead of replacing your configuration, it will ask you how to perform an upgrade. You want to select the Upgrade the existing PBX mode for the install. This will upgrade the existing PBX and will install an App platform on the same box.

(Further Hints) The Upgrade the existing PBX with installation of an external App Platform mode will do almost the same thing. However, instead of installing the AP on the same box, it will install it on a separate box. But that's not what we will do here in this course.

Conflicts

When you start Install after choosing the right mode, you will notice screenshot.png an error message.

Install will create a number of objects and if there would be a conflict with an existing object, it will not start. You must first remove or rename (if you need it for later reference) it.

In our case, you can simply remove the existing object and start over again with the Install.

Install parameters


Here are the parameters to provide to the Install (they are the same as shown on the course home page).


Upgrade the existing PBX

turn on












Network settings

leave everything as-is












Display name

Christoph Künkel



Email address

dvl-ckl2@class.local



Account

ckl



Password

ip411



Domain name

should already be fine dvl-ckl2.net      

PBX location name

should already be fine hq




Use DNS to access myApps

turn on




DNS name of this PBX / DNS name of the App Platform

use defaults
   

VM

en



Outside line

0




International prefix

00



National prefix

0



Area code

621




Country code

49












Email account

turn off












Test mode


turn on




Logging in to myApps


When the Install has finished, it will redirect you to the myApps login page. You can use user john.doe with password ip411 to log in.

Add devices to Devices

If you now start Devices and switch to the Devices tab, you will see that almost all of your devices are listed but all except the AP and your IP411LEFT are shown with such a screenshot.png strange exclamation mark. This indicates that these devices have connected to your Devices instance (because they have it screenshot.png configured as Devices App URL in General/Devices-Registration (moodle was nice enough to configure this for you smile).

Of course, Devices won't accept these devices as it has no knowledge whatsoever about them. Could be an enemy device attempting an attack by illegitimately joining your domain. So what you have to do is to explicitly and manually join them to your domain (you have already seen this in topic 2).

You can do this right away:
  • select your IP111 (the Edit area will open)
  • click in to the Domain field (a list of domains will pop up - you only have one, dvl-ckl2.net)
  • select this domain and then click OK
You approved the device and screenshot.png the exclamation mark is gone. You can now access the Admin UI tab for example and manage the device from within the Devices App.

Setting the categories

But there is still one thing to do: setting the category.

To set the category for the newly joined device:
  • switch to the Categories area
  • click in to the Category name field (a screenshot.png list of available categories which have been created by the Install will pop up)
  • select hq IP Phone (as your IP111 is an IP phone)
  • click on the + sign next to the drop-down field (admittedly, this is not obvious: if you fail to do this, your category setting won't be store)
Of course you need to join all the other phones too, use the same category.

But what about adding the remaining IP811 to our installation?

Although we don't need to use it in this book, we can try adding it as an exercise. You should know how to proceed by now, do ya?

Adding the IP811

Right, you knew how to do it, no?

And you probably already did so:
  • moodle did not set the Devices App URL in General / Devices-Registration, so you need to do it (the URL to use is wss://apps.dvl-ckl2.net/dvl-ckl2.net/devices/sysclients as we already discussed in the Adding your devices to "Devices" part of Setting up the Application Platform
  • you then can join it to your domain and
  • finally assign an appropriate category to the IP811 (yes, hq Gateway is a good idea)

And what about the IP411RIGHT?
Well, the IP411RIGHT is more like an infrastructure device in the course. It provides vital functions like DHCP and DNS server, possibly also the VPN tunnel. So if there is no apparent need, we better don't touch it at all.
     

Basic PBX functions

In the remainder of this book, we will look in to some basic PBX functions related to normal extensions (that is, PBX objects of type User).

In the next book then, we'll look in to how additional PBX objects can be used to extend functionality.

Call Forwardings

The innovaphone PBX supports a number of fish-help.png call forwarding types. Call forwarding destinations screenshot.png can be configured using its extension (No, the Number field in the destinations object properties) or its name (Name, the Name field in the destinations object properties). Be sure not to use the target's Long Name instead of the Name!

This can be done by the administrator in the PBX's PBX / Objects list.

Btw: call diversion and call forwarding are often used as synonyms.

End-users can do it in their own Profile App in the screenshot.png Call diversions section. When a user turns off one of the diversions it will be removed from the PBX configuration. However, the Users App service (which implements the Profile App) will still have it stored, so the user can conveniently restore it by simply moving the switch back.

Calls to Objects with no Endpoint registered to


An innovaphone PBX has all the call forwarding types known from legacy PBX systems. A special case though is a call to an object where there is no endpoint registered at all for. This situation triggers the CFNR.

Rejecting Calls


Users can reject alerting calls on the phone (depending on the phone e.g. using the screenshot.png reject symbol or by pressing the disconnect key). This will trigger a CFB.




In your PBX, you will find a User object called Henry Jekyll, with no phone registered to it.
Please
  • configure a call forward for this user to John Doe as long as there is no phone registered with Henry Jekyll
  • from Jane Doe's IP112 call Henry (15)
    John's phone should ring

Once you have done the test, you can register the analog phone with Henry Jekyll's user. We have prepared the interface registration on the IP411LEFT's TEL1 interface:
  • open the TEL1 settings on Gateway / Interfaces
  • clear the Disable check-mark
  • the TEL1 interface (and hence the analog phone) will now register with Henry
  • if you call Henry (15) again, the analog phone will ring instead of John's phone

Forwarding Loops

It is quite easy to unintentionally configure screenshot.png call forwarding loops. Such a loop is detected by the PBX when they are executed (not when they are set) causing the caller to receive a busy message.

A special case is a CFU directly to yourself. This will be ignored on execution time.

Forwardings based on presence

The PBX also has a mode where call forwarding is turned on and off depending on the user's presence state (as seen and set in myApps):
  • a CFB is triggered whenever the user's presence state is busy or do not disturb
  • a CFNR is triggered whenever the user's presence state is Away
This mode can be enabled
An interesting case is the Standard button which appears as soon as the user has moved the switch to the on or off position: by clicking on it, the explicit configuration for the user is removed and reset to the configuration as inherited from the user's configuration template.

Conditional Forwardings

fish-help.png Call Forwarding can be made depending on some properties of the call to be forwarded.

CGPN


screenshot.png When an Only or Only Not rule is configured for a call forwarding, the call is only forwarded if the start of its source number matches the rule's No entry (or the calling name, which is the calling objects Name property value, entirely matches the rule's Name entry).

The calling number provided with the call as well as all the diverting numbers are matched against the rule's No.

Internal / External Calls


Although external calls could be matched as Only From 0, calling numbers are not always safe. External calls can be matched better using the Ext. / Int. switch.

How to match the from property

When matching names or numbers set in the from field of a CFx, you can select if the rule shall be executed only if the original caller (Clid) or one of the (up to 2) forwarders (Fwd) or both match.

(Further Hints) Consider the following call forward screenshot.png settings for John (14):
  • a CFU to Jane (12) for all calls originated by Edward (11)
  • a CFU to Richard (13) for all calls diverted by Edward (11)
and a call forward set for Edward (11):
  • a CFU to John (14)
Forwarding a direct call
A call screenshot.png from Edward (11) to John (14) will end up at screenshot.png Jane (12):
  • call from Edward (11) arrives at John with Clid 11 and Fwd <empty>
  • so the call originator (Clid) condition 11 matches and the CFU to Jane (12) is executed

Forwarding a forwarded call
However, a call screenshot.png from Jane (12) to Edward (11) ends up at screenshot.png Richard (13):
  • call from Jane (12) arrives at Edward (11) with Clid 12 and Fwd <empty>
  • Edward, having an unconditional CFU to John (14) forwards the call to John
  • call arrives at John with Clid 12 and Fwd 11
  • so the call originator (Clid) condition 11 does not match and the CFU to Jane (12) is not executed
  • but the call forwarder (Fwd) condition (11) matches and the CFU to Richard (13) is executed



Please configure a call forward unconditional for user John Doe that forwards calls coming either directly or indirectly from Richard Roe to Edward Hyde (and no other calls).

Dynamic Conditions

Call forwards can be made screenshot.png dependant on dynamic conditions (e.g. the time of day). This is done by selecting a condition object (a.k.a. as fish-help.png boolean object) for the Bool property of the call forward setting.

The call forward is triggered only if the condition described in the boolean object is met (or is not met, if the Not check mark is ticked too).


You will find a screenshot.png sample boolean object called if-Working hours in your start configuration on the PBX / Objects. This object is configured so that it is "true" during working hours.

Please modify the CFU you created for John Doe in the last step so that it is executed out of working hours only.


As you probably recall from your IT Connect training, Boolean objects can also be edited in myApps. Logged in as John Doe, you will find screenshot.png the Business hours App. But unfortunately, there is no if-Working hours App available !?

Fix the system configuration so that the if-Working hours App is available to all administrators and on John Doe's home screen!

(Further Hints) The if-Working hours object resembles the Business hours object that was created by the Install. However, it is a bit more powerful (you may want to compare them both in the advanced UI and in the Time switches PbxManager plugin). In the remainder of this course, we'll use the if-Working hours object so you might remove the Business hours objectso as not to get confused. But it is not mandatory as you can have as many Boolean objects as you want!

Implicit Forwarding

Various screenshot.png implicit Call Forwarding are set in the fish-help.png Trunk object configuration. Those apply to incoming calls through the trunk to a destination where the call forwarding condition is met.

This is a convenient way to configure the handling of standard call forwarding situations such as CFB (Busy) and CFNR (No Answer) globally. In addition, special situations like calls to incomplete (Incomplete), wrong (Invalid) extensions or calls which were rejected by the user after alert (Rejected) can be handled. If you use the Name field to specify the target here, it must correspond to the Name property of the target object.

Most of those implicit forwards are of course optional, the PBX works fine without setting those. However, one of them, Loopback, you will want to consider for sure! This setting handles external calls to an extension which is the access code for your trunk (most often 0). This is most often used to call the switchboard (e.g. +49 7031 73009 - 0). If you don't set this, external callers will be able to call in to your PBX and straight call out to the trunk again. This way, you will bear the cost!

Note that implicit forwarding settings apply to incoming calls to local extensions whereas call forwarding set on the trunk apply to outgoing calls to the trunk!

In your IT Connect training, you have already seen these same settings in the screenshot.png PbxManager's Trunks plug-in. So you need to use the advanced UI for this only if you need to use one of the more exotic options to the trunk.


In your configuration, you will see a Trunk Line PBX object called Trunk. Please configure this trunk so that incoming calls from extern through this trunk
  • which are not answered
  • as well as those which call out to an external number again

will be delivered to the user Edward Hyde.



(Further Hints) All these target settings are available both in the Trunks PbxManager plugin and the advanced UI (in the Trunk tab of the PBX Trunk object editor).

Disabling Forwarding


Any call forwarding can be disabled explicitly by screenshot.png configuring a minus (-) as call forwarding destination No. This does make sense for CFNR and CFB only.

This will also disable implicit forwardings imposed by the Trunk line object.

This feature is essential on fax lines when you set Busy (CFB) or No Answer (CFNR) globally on the trunk line. If for example, such calls are forwarded to the switchboard, an incoming fax to a busy fax device would be forwarded to the switchboard too. This will probably not make the receptionist happy! You should therefore disable call forwards of both types for the fax line.



In you configuration, you will find a PBX object called Facsimile which is intended to be used as a fax device. Please make sure that calls to this extension are not forwarded when the fax is busy or does not answer.


Object Specific Handling of Call Forwarding

Call Forwarding might be handled specially by objects of a certain object type.

For example, a fish-help.png CFB set on a trunk (remember: call forwards set on a trunk will be evaluated when you call to the trunk, that is, for outgoing calls) will not trigger when the trunk already has an active call as a CFB on an user object would. Instead, it is triggered when the object called through the trunk (usually an external number) is busy. You should refer to the Call Diversions section for the respective objects for details (see fish-help.png PBX/Objects for a list of all object descriptions).

Setting Call Forwarding on the Phone

Call Forwarding information is stored in the PBX (well, actually active call forwardings are stored there. User specific defaults for forwards currently turned off are stored in the User's App service database) and can be set by administrators from the PBX's configuration user interface thus.

However, for end users, it is much more convenient to set them either from the Profile App in myapps (we have seen this before) or directly from the phone. As H.323/H.450 defines a standard to communicate call forwarding settings between an endpoint and the PBX, H.323 based devices can be used for this. innovaphone phones allow end-users to do this through the Call Settings page in the telephony app:

screenshot.png Setting call forwards on the phone



To configure a diversion, press long on the respective button. This opens the edit field. Once configured, you activate/deactivate this diversion with a short press.

fish-help.png Default forward destinations for use on phones can be set in the Favorite Diversions properties of the phone's Phone / User-1 / Preferences tab. As these phone settings are drawn from the screenshot.png respective user's (in this case John Doe) Phone settings and those in turn are inherited from the user's Config Template (Config Admin in this case) and this ultimately inherits from Config User, you can easily deploy defaults for all of your users.

As said before, call forwards are stored and executed in the PBX. For this, a protocol is needed to send the call forward settings to the PBX form the phone (H.323) or myApps (WebSocket). In SIP, there is no such protocol available and some SIP endpoints will instead perform limited call forwarding procedures autonomously. Setting the PBX's call forwarding settings from these phones is not possible thus. Note that it works however the other way round: call forwards set in the PBX are also functional when using SIP phones.



Administrative call forwards

However, only basic call forwarding settings can be set both this way and in the Profile App. Conditional forwarding properties can not. As they can't be set, they are not shown on the phone either. This is why such call forwarding settings are referred to as administrational call forwards sometimes. When set in the PBX, they are not shown on to the end-user and cannot be changed or deleted by the user.


Call Forward related Function Key

innovaphone phones feature a fish-help.png function key type fish-help.png Call-Forwarding. This function key provides a very convenient way of switching between a pre-defined set of call forwards (such as e.g. in-office, on-the road etc.).

This feature is not available when the phone is registered via SIP.

To add a Call Forwarding function key, you would open Phone / User-1 / Function-Keys on the admin UI. In the Add Key section you enter a key number (functions keys are number column-wise in the phone UI), select Call Forwarding from the Type drop-down and click on Add.

screenshot.png Setting up a call forward function key

You can define up to 4 independent screenshot.png forward settings of call forward destinations (CFU (Always), CFB (Busy) and CFNR (No Response)). The user can toggle through the defined combinations using the function key. The current state is shown to the user by labelling the function key with the respective Text value.

The current status of the call forward setting is retrieved from the PBX and matched to the defined sets. If none matches, the idle state is assumed.


To practice, define a Call Forwarding function key #8 on the IP111 with 2 separate call forward settings to toggle through as follows:

Text
Type
Target Number
Out of Office
CFU
11
Busy
CFNR
13

When no call forward is active, No CF shall be displayed.

Deploying CF function keys
Like before with the call forward default settings, these function key setting are part of the Phone configuration which can be inherited from a template.

There are 2 interesting options for administrators:
  • Disable Modification on Phone can be used so that end-users can not modify the function key's settings. This is useful when you want to enforce a certain policy
  • Apply 'Always' Setting Only can be used so that end-users can only toggle through the CFU settings. This is useful if you need to enforce a uniform policy for CFNR or CFB (to voicemail for example) but let end-users have the freedom to forward to individual destinations when they leave the office for example

The CFNR Timeout

The general timeout for the CFNR function is set in the screenshot.png Response Timeout fish-help.png property in the PBX / Config / General tab of the PBX.

If not set, the timeout is set to 15 seconds. It can be overridden for each individual PBX object (e.g. fish-help.png PBX/Objects/User) in the screenshot.png Response Timeout field of the object's properties.

Limiting Call Forwarding

Call forwarding can be limited by screenshot.png setting the Diversion Filter in the object's properties (see fish-help.png PBX/Objects/User and fish-help.png PBX/Objects/Config Template for a list of properties).

You will learn how to set up filter in one of the next chapters. The filter is evaluated on call forward time, not on call forwarding setup time.

This allows for example to disable costly call forwards to external recipients (such as mobile phones).



Call Transfers

In contrast to call forwarding, call transfers are initiated by the end user on a call by call basis. A transfer can be initiated in alerting and connected state, both blind transfer and consultation transfer is available, as well as call deflection.

Blind Transfer



A blind transfer can be initiated by one of the menu buttons which appear during an alerting or connected call:

screenshot.png phone-blind-transfer



The first step can also be done by hitting the ''redial'' key on the phone.

The call is redirected to the new destination right away and thus disappears from the transferring phone.

Consultation Transfer



For a consultation transfer (which is available for a connected call only), the call is put on hold, a new call is placed to the intended destination. The 2 calls are then transferred by either putting the receiver on hook (transfer by on-hook can be disabled by setting the No Call Transfer on Hook-On property in the Phone / Preferences tab of the phone) or via the R / 4 fish-help.png R-key sequence or by using a fish-help.png Transfer function key (function keys can be defined in the Phone / User-1 / Function-Keys tab.

When a consultation transfer is initiated while the consultation call is still in alerting state (called party has not yet picked up), it is sometimes referred to as semi-blind transfer or semi-attended transfer.

The Redirect Function Key

The fish-help.png Redirect function key essentially performs a blind transfer of an alerting call, much like pressing the redial key would do. This is also known as call deflection or call redirection.

By default, when there is an active (connected) call when the function key is pressed, the redirection is performed on the first waiting call. This is convenient to get rid of call waiting on a call-by-call basis (as opposed to setting a CFB).

If the Redirect Active Call property is set in the function key configuration, the active call is redirected instead.


The Recall Timer

When a blind transfer or semi-blind transfer or call redirection is attempted but there is no response to it, the call can be transferred back to the original transferrer. This feature needs to be enabled by screenshot.png setting the fish-help.png Recall Timeout property in the PBX / Config / General tab of the PBX.



To practice, configure your PBX so that blind transfers will re-call after 10 seconds.

(Further Hints) The Install does not set this property.

Filter

Filter provide a generic and flexible means to define fish-help.png call filters. They are configured in the PBX's PBX / Config / Filter configuration tab.

A filter defines a set of number prefixes which are matched against a called party number. This can be used for restricting call destinations for PBX objects (usually Users) and to limit call forwards set for an object. Each such rule can yield ok (in which case the call is allowed) or nok (in which case it is rejected).

This can be done by defining one or more of such fish-help.png Call-Filter rules in PBX / Config / Filter and assigning those filters to individual users. By default, only the unknown filter is defined. It is used by the legacy unknown registration mechanism (ZAD which we talked about earlier).

The Install would add screenshot.png three more useful filters: normal, national and intern. The normal filter is intended as a standard for users with unrestricted call permissions. The latter two are, as their names suggests, for users which are not allowed to do long-distance calls or external calls at all.

Filter Number
Next
Effect
normal
empty
empty
A "do nothing rule". All called numbers are allowed
unknown
0
nok
In our installation, 0 is the number that to access the trunk line. The rule disallows all calls which start with this number
national
000 nok In our installation, 0 is the number that to access the trunk line.
00 is the national prefix (as we have defined it in PBX/Config/General). So numbers beginning with 000 are international calls (which are not allowed for the national filter)
intern
011
ok
when the intern filter is applied, no call to the trunk line is allowed. However, all the emergency numbers starting with 11 (like 110, 112 etc.) are exempted.

0
nok
All remaining numbers which start with 0 are disallowed for the intern filter


(Further Hints) If you are wondering: you also could have used ok as Next for the normal filter.

Filters are generally checked at execution time, not at configuration time (so for a diversion filter, the diversion can be set although it is not allowed by the filter).


(Further Hints) You apply the filters in screenshot.png the User tab of the PBX User object for each user individually.

However, both filter settings (Filter and Diversion Filter) are inherited from Config Template objects for the user, so you can set them also in screenshot.png the Templates PbxManager plugin. This is usually more convenient as the setting most often is set uniformly as a policy for groups of users. And handling this situation is exactly what configuration templates are made for.

Conditional filters

Filters can be made dependent on the current status of a boolean object at match time. If one of the numbers matches the head of the called number, the filter is applied to the call.



For example, you would define a filter that screenshot.png disallows calls to the local trunk line on non-business hours and screenshot.png apply it as Filter setting to individual PBX objects to make sure users need to place external calls through the switchboard then.

Another use of filters is for the prevention of call forwards. You would screenshot.png apply the same filter as Diversion Filter to make sure external call forwards are disallowed outside of business hours.




We have an appropriate Boolean object already in our configuration (if-Working hours). Please configure a filter that inhibits calls to the trunk line (0) off working hours and assign it specifically to John Doe.

Multiple Filter Conditions

The filter we have configured in the previous chapter has a significant drawback: it inhibits all calls to extern. What if a user need to call the fire brigade off working hours? We clearly must enhance the filter to allow for some exceptional numbers.

This can be done by specifying more than one condition. All conditions of a single filter are checked until one is found that matches and specifies nok or ok in the Next column. If no condition matches, the call is allowed.

To fix the problem, we can create a list of conditions where the most significant appears first and so forth.



We can fix our fire brigade problem by specifying a condition that allows calls to emergency numbers like the fire brigade (112 in Germany) before the more generic rule that inhibits 0.
Please enhance our filter accordingly!



Chaining Filters

Filters can be chained so that similar patterns do not need to be specified multiple times.

The idea is to specify another filter in the Next column instead of allowing (ok) or disallowing (nok) the call. If such a condition matches, the matching part of the number is removed (for the purpose of further checking) and the chained filter is applied on the remaining number.

See fish-help.png restricted external calls via different trunk numbers and different number formats in the wiki for an elaborate example.

Disallowing incoming external Calls

Filters are applied to the called party number, so they control whom a given user object can call. To control who may call a certain user, appropriate filter would need to be set for all potential callers.

A common case of restricting incoming calls is to disallow direct calls to an extension from external. This can be achieved by simply screenshot.png setting the fish-help.png Reject ext. Calls check mark on the User object (or a template that the user inherits from).

Note that in this case neither CFNR nor CFB are triggered, but CFU is honoured. Also the rejected call will trigger the fish-help.png Invalid destination property defined screenshot.png in the Trunk Line object.

Filters on Trunk Objects


As with other objects, it is possible to screenshot.png set a Filter for a Trunk object too. Although the tool tip suggests that this affects outgoing calls, it actually is applied on incoming calls. This is because from the PBX's perspective, an incoming call is an outgoing call from the trunk to another PBX object. So the filter works like for any other PBX object in fact.

Manipulating the Number sent

When an endpoint registers to an user object and then places a call, the call will normally convey the user objects Number property as CGPN.

Changing the CGPN


It is possible to change the CGPN by setting the fish-help.png Send Number property of the calling object.

In a help desk scenario, you may want to set the Send Number property to the help desk number for all agents to make sure individual extensions are not sent to called customers.

Suppressing the CGPN


As an alternative, a call can be initiated with the calling line id explicitly suppressed (CLIR). This must be done by the calling endpoint (i.e. the phone). There are several options to do this.
Setting the User Default

Users can set their CLIR preference in the telephony app on hard-phones:

screenshot.png Setting CLIR



The available options are Always (CLIR on), Never (CLIR off) and Once (CLIR on for next call).

This is also available in the Phone / User-1 / Preferences tab's Hide own Number property (of course, only CLIR on/off is available there).

(Further Hints) As you already know, such preferences can be set on the phone or in the Phone config of the user (that is, in the PBX User object). As the Phone config is inherited from the template, you can also set it in an appropriate template.

(Further Hints) When you redial a number from your phone's call list, the CLIR setting of that original call is used again, even if the Hide own number function has been deactivated in the meantime.

Using a Function Key

An equivalent setting can be done by configuring a fish-help.png Hide Own Number function key in the phone's Phone / User-1 / Function-Keys tab. When the key is in the Active state, calls will have their CGPN suppressed.

No CLIR on Internal calls

Sometimes you want to suppress the CGPN only for external calls. Internally however, the CGPN should be shown. This can be done by using CLIR (with one of the methods described above) and screenshot.png set the fish-help.png No CLIR on Internal calls property in PBX / Config / General.

NB: it is possible to change CLIR on outgoing external calls from "unknown" to a fixed extension. This allows you to configure CLIR for certain users (with or without No CLIR on Internal calls property in the PBX) so that these users will signal a fixed extension (e.g. -0) externally. We will not do exercise it in this course, if you are interested, see Number In in fish-help.png Gateway/CGPN-Maps.




To practice, change the Hide own number setting on John Doe's phone to Always (when John is calling, "unknown" should be displayed as calling party at the receiving end).

Then configure the PBX so that John is shown as CGPN again when he calls internally.

Limit the Number of concurrent calls

The Busy On ... Calls property allows to reject calls to the object when there are already as much calls in this direction active for this object (counting all calls from all endpoints registered with this object) as configured for this property. Setting it to 1 for example will make sure no additional call is sent to an endpoint registered with this PBX (user) object, as long as there is already one. However, such an endpoint can still place multiple concurrent outgoing calls.

This is useful to cope with devices that do not handle call waiting situations gracefully.

Please note that when Busy On ... Calls is set to 1, there will be no call waiting situation on the user's device, as the extraneous calls are never sent to the device. As a result, such calls will also not be listed in the devices call list (although they will be listed in myApps's call list)! It is thus generally not recommended to use this setting for users with innovaphone telephones. They should rather be handled using the phone's call waiting configuration (see next chapter).

Gateways and Trunks


For objects of type fish-help.png Gateway or fish-help.png Trunk Line, the property is called Max Calls. In contrast to the Busy On ... Calls property, calls both from and to the object will be counted as extraneous and rejected. This effectively limits the total number of calls to and from the object (as opposed to only the calls to the object).

Call Waiting

When a call is signalled to an endpoint and there is already an active call, then this is referred to as call waiting. The handling of such a situation depends on the endpoint used.

The fish-help.png Call Waiting property in the phone's Phone / User-1 / Preferences screenshot.png settings defines how an innovaphone phone handles this situation. When set to disabled, a user busy will be signalled to the caller. When set to one of the enabled modes, alerting is signalled to the caller and the call is presented to the phones user. The default tone option will alert the user every so often with a call waiting tone. The beep once option will alert the user with a call waiting tone only once, whereas the silent option will play no call waiting tone at all.

The fish-help.png Call Waiting function key allows the user to turn call waiting on and off conveniently. Call waiting is turned off in idle state.

Twin Phones

Sometimes, multiple phones are registered to a single user object, for example when a user has both a fixed line and a mobile (DECT, Wifi) phone sharing the same number. In this scenario, additional incoming calls should be signalled to the active phone only, as otherwise the phone the user is currently not using would ring. Setting Busy On ... Calls doesn't help really as it would inhibit the call waiting to the currently active phone.

To handle this scenario, screenshot.png set the fish-help.png Twin Phones property in the user's object properties. If so, additional calls are signalled to the currently busy phones only, leaving it to this phone to handle the call waiting situation.

(Further Hints) Note that you can't use Busy On ... Calls if Twin Phones is checked in a User object. So if you try to set it for e.g. John Doe, you will note that it is silently discarded when you hit Apply.

Twin Phones is checked in the Config User template which is inherited by the Config Admin template which is used as Config Template in John Doe's User record. Although the Install has ticked it in the Config User template, you can not modify it using the Templates PbxManager plugin. This is because there are only very few situations where it is advisable to turn it off for a user. If need be, you can overwrite it in the User record directly or you can edit the template using the advanced UI.

Transfer between Twin Phones


When a twin phone calls its own extension, the call is not sent to the calling phone but to all others registered to the object. This allows a user to transfer a call from one of his twin phones to another (e.g. from the fixed line phone to the DECT phone to leave the desk while keeping the call).


Do not Disturb

An innovaphone phone can be brought into do not disturb mode (DnD) by either pressing the micro off key on the phone in idle mode or using the fish-help.png Do not Disturb function key.

In DnD mode, the phone will not ring on incoming calls. There are screenshot.png various modes available, either in the Action area of the Do not Disturb function key configuration or in the fish-help.png Do Not Disturb area of the phone's Phone / User-1 / Preferences settings.

The modes include the option to send an absent message to callers while the phone is in DnD mode. This message can also be defined via the phone's Menu / Settings / Account Settings / Do not disturb / Out of Office Msg. menu.

(Further Hints) The DnD state (as indicated by the screenshot.png crossed bell in the phone UI) can be activated both on the phone as described and by changing screenshot.png the presence in myApps to Do not disturb. Please note though that you need to turn it off on both ends if you have turned it on on both sides before. screenshot.png The presence note is also shared between phone and myApps.

Hiding an Object from the PBX Directory

When an object is created in the PBX, its properties are available from the PBX via LDAP. Phones will take advantage of this and include the new object in their so-called PBX Directory.

Directories are used whenever an outgoing call is initiated with a name dialled instead of a number. Even more, the directories may be searched for a matching number when an incoming call without name identification is received (depending on the Disable Phonenumber Look-up setting).

Sometimes however, the object information should rather be hidden to other users so that they cannot locate the object via the directory. In this case, screenshot.png set the Hide from LDAP object property in the PBX object you want to hide from the directory.




You have a PBX object in your configuration that is called Facsimile. The Facsimile has Number 9, so you will see it in the search result list when you simply press the 9 key on the phone (or you long-press 3 three times to get an f).

You may consider it useless to call the fax from a phone, so let us exclude it from the phone's directory search result !

(Further Hints) Note that the Hide from LDAP property is also honored by the com.innovaphone.search API provider implemented in the Users App service. However, since Users will only replicate PBX User and Executive objects anyway, PBX objects with other types can't be seen in Users. Furthermore, Users requires an screenshot.png appropriate Visibility configuration for users to be seen. The LDAP directory however does not.

The latter is the reason why you can't see the Facsimile object in Users even if Hide from LDAP is not ticked in the object.

Applying basic Properties to a Number of Objects

When many objects share similar properties, a fish-help.png Config Template object can be screenshot.png created and screenshot.png applied to other PBX objects. These objects will then share the settings present in the template, unless they are not explicitly overridden in the receiving object.

A template can screenshot.png reference another template. Note that this cannot be nested (that is, the referenced template must not in turn reference a 3rd template).

Some but not all of the properties that can be inherited from a Confg Template object can be edited in the Templates PbxManager plugin.

If the Config Template should be valid on all of your PBXs (if you have more than one), leave PBX and Node empty (this is actually how the Install created the Config User and Config Admin templates - as it is a very rare situation that you don't want to make a template available in all PBXs).



To practice, please create a Config Template PBX object called Config Standard on your PBX / Objects that has the properties of the Config User template and adds some more. Be sure to hide it from directory search results. Set a Response Timeout of 5 seconds (you will note that this is an option which is not available in the Templates PbxManager plugin). Assign this template to user Jane Doe. Finally, set a CFNR with target No 11 for Jane Doe.

From Richard Roe's phone, call 12 and wait 6 seconds. See what happens!

The call should be forwarded to Edward Hyde after exactly 5 seconds. Notice the display on Edward Hyde's phone, it indicates that Richard Roe originally called Jane Doe:

screenshot.png 
diverted call


Managing Phone Configurations

Phone configurations can be stored on the respective phones directly. This can be done in the phone's registration specific settings, for example Phone / User-1 / Preferences.

While this is easy and convenient, it turns out to be a problem when many phones need to be managed. Often, similar settings shall be applied to several phones, which is difficult and error prone to do. Also, when a phone is replaced, its configuration needs to be restored from a recent backup.

This is why the user-specific part of the phone configuration can be stored in the PBX. To screenshot.png enable this feature, tick the fish-help.png Store Phone Config check-mark in the user object's User configuration tab (as the Install has done when creating the Config User template).

You will find a link in the Phone column of the PBX's PBX / Objects tab (it is called either + if there is no config yet or config). The UI opened when you click on this column looks exactly like the UI the phone provides to set phone-local configuration. However, it will set the phone configuration as part of the PBX's User object. This configuration is then used by all (innovaphone) phones which register with this User object!

(Further Hints) If you configure phone-related settings both in the PBX and on the phone directly, the settings on the phone will override the settings received from the PBX. If the Store Phone Config check-mark is ticked in the respective PBX User object, changes done on the phone will be replicated back to the User object in the PBX.

When you need to set these options for many users (which is very likely!), you can set them in a Config Template object rather and assign it to the users. We'll look at this in the next chapter.

Cleaning up existing Phone Configurations



When you set the Store Phone Config check-mark, normally, any existing configuration on a phone is retrieved and saved in the PBX's phone configuration. This ensures that existing configurations on the phone are not lost. The phone configuration is cleared then (so that all configuration is now stored on the PBX).

However, it is possible to discard any configuration present on the phone. See the fish-help.png Store Phone Config and Discard Config on Phone properties for more details.


Using Templates for Phone Configurations

Phone configurations can also be stored in fish-help.png configuration templates. If a configuration template screenshot.png includes a phone configuration and this template is screenshot.png assigned to a PBX object, the object will inherit the phone configuration from the template too.

If the object itself has a phone configuration stored in the PBX, the template's and the object's configuration are merged and then applied to the actual phone.




We already configured screenshot.png a Call Forwarding function key on the IP111. Since the IP111 is registered with John Doe and John Doe has the Store Phone Config check-mark set (which actually was inherited from the Config User template), the function key setting was already replicated back to John Doe's Phone configuration in the PBX.

Now that we know about phone configurations in PBX Config Template and User objects, we want to remove this configuration from the User object and re-configure it in our Config User template so that it is available for all users.

So please

Have a look at Edward Hyde's home screen on the IP232 (you may need to switch to the home screen by touching the home symbol):

screenshot.png Function key on IP232

You see the the No CF function key on the screen's lower right, as we have assigned it to Key (that is, position) 8. Touch on the function key and see screenshot.png how the call forwarding state is indicated.

Now if you also had an fish-help.png old IP240, you'd see

screenshot.png Function key on IP240

no function key displayed at all smile This is because we only have 7 function keys next to the display on the IP240. Function screenshot.png key 8 on an IP240 refers to the topmost function key in the row on the right side of the phone.

All defined function key settings are assigned to all the available function keys on a specific phone model.

Groups

fish-help.png Groups can be created by screenshot.png assigning group names to PBX objects. If a group already exists (that is, if it has already been assigned), it can be screenshot.png selected from a drop down menu.

(Further Hints) You cannot set groups for users in UsersAdmin.

What a group is


A group defines a set of PBX objects that in some way belong together. This is used a lot in the PBX, for example to define call pickup groups. The administrator would assign group membership to all team members and then allow pickup for this group.

Group membership alone does not do anything, neither passive nor active membership. However, groups are used to configure various other features.

A single object may belong to many groups.

Inner Group Relationships



Not all group members are the same, as group membership can be active or passive.

When a group member is active, it can somehow be viewed as a group leader. In our call pickup example, active members of the group can pick calls from passive members - but not the other way round.

There can be more than one active member in a group. In fact, all members of a group can be active. In our pickup example that would mean that all group members can pick calls from all other group members.

Objects can be an active member in one group and a passive member in another. Objects can also be active members of more than one group.

Limitations


Groups are limited to 2000 members. Groups are known to a single PBX only. If another PBX has a group even with the same name, it is a different group.

Group names can be chosen freely. However, for better manageability, we recommend to use group names that clearly indicate that the name is for a group (such as group-pickup-team1 for example).

While it is possible to use the Name of existing PBX objects as a group name, it is not recommended!

Defining groups is costly. The PBX needs to track record of all group memberships and thus consumes internal memory (RAM). So do not assign users to groups unless it is really necessary!

Active group membership is even more costly, as it requires the PBX to check group members in many situations and thus consumes CPU cycles! So do not assign users active group membership unless it is really necessary!

The Partner Function Key

The fish-help.png Partner function key allows to pick alerting calls from other users. Normally, each partner function key is explicitly bound to one other PBX object (the partner object). The partner object must be configured in the Partner Identification properties of the screenshot.png function key definition.

Subscriptions


The Partner key uses a mechanism known as subscription to obtain the partner's call information. In addition to that, it can optionally also subscribe for Presence information. This is controlled by ticking (or un-ticking) the Subscribe for Dialog Info and Subscribe for Presence check-marks.

Still, the subscribing user must be entitled to the information. Otherwise, the subscription will not receive any information.

Groups

When the subscribing user is an active member in the same group as the subscribed-to user, subscription rights are granted.
Visibility

Users can define visibility rights which are screenshot.png listed in the Visibility column in the PBX's object list.

The following are available for visibility right entries:
  • the screenshot.png the Group check-mark is ticked and Name is a group name:
    Each active member of the group is granted visibility
  • otherwise the Name in the entry is an @ followed by a domain name (e.g. @dvl-ckl2.net) an:
    Users from that domain are granted visibility. The domain of a PBX user is the value of the System Name property in PBX / Config - if the Use as Domain check-mark is ticked
  • otherwise the Name in the entry is a single @:
    This is a catch-all and is effective if no other entry matches
  • the Name in the entry is the Name of another user (name or name@domain):
    this particular user is granted visibility
The following visibility option are available:
  • Online: see if the user has a myApps client running
  • Presence: see presence activity
  • Presence note: see the presence note
  • On the phone: see if the user has an active phone call
  • Calls: see call information without peers
  • Calls with numbers: see also call peers (in addition the Calls information)
  • Visible: see that the user exists (e.g. find it in the Users App)
Calls or Calls with numbers is required to perform a call pickup, On the phone is not enough!

Operation


When a call alerts at the partner object, the function key will signal it and pressing the key will have this call alert on the users phone. Depending on the various check-marks in the definition, the behavior of the function key can be modified.

The Hide calling Party in alerting State, Hide calling Party in ringback State and Show connected Party in busy State control the display of calling/called party information.

The Do not pick up an alerting Call disables the call pickup function.

However, the Partner function key can do much more as we will see in the next chapters.




Partner function keys seem to be a useful thing to have and we should provide them for all of our users. A straight forward approach is to configure it in a template.

There is only one problem: when we do this in a template, then every user that inherits the template has a Partner function key, which is good. But they all will share the same configuration and thus will have the same partner! This does not sound that useful.

This is the point to play around a bit with template inheritance. As we said before, settings in a template can be overridden on a per-user level by specifying the same settings (but with different values) in the user object.

We can take advantage of this to resolve our Partner key issue:
  • screenshot.png Add a Partner function key to template Config User at position 4
  • set Text for the Idle State to Partner #1
  • tick the Subscribe for Dialog Info, Subscribe for Presence and Show connected Party in busy State check-marks

At this point, the Partner #1 key appears on all the phones. However, they are still not functional as we have not defined any Partner Identification.

  • open John Doe's phone configuration from the PBX's object list
  • you see the screenshot.png Partner #1 key definition, which is inherited from the template
  • open the definition and type Richard as Text in the Idle State and richard.roe as Name in the Partner Identification
  • from Edward Hyde's phone, call Richard Roe (13), do not take the call

You expected to see Edward's call to Richard so you can pick it? Not so!

To understand the reason why the alerting call is not shown on John's partner key, we need to have a look at screenshot.png Richard's Visibility settings:
  • there are no settings specifically set for him
  • he inherits visibility settings from the Config User template
  • in these settings, On the phone is granted to everyone in the system (@dvl-ckl2.net) but Calls and Calls with Number are not
As we have discussed above, either Calls or Calls with Number is required for the pickup to work.

So to fix it:
  • screenshot.png tick the Calls with Number check-mark in the Config User template's Visibility settings
  • power cycle John Doe's IP111 (this is the fastest way to re-do the partner key subscription smile)
  • call again from Edward to Richard (13), dont' take the call

At this point, you will see the call screenshot.png indicated on John Doe's phone and you can pick it.

Pretty neat already, however, do we still need to configure all the Partner Identification in to all those user objects? Sounds like an administrators nightmare!

But there is a fairly reasonable alternative:
  • on Jane Doe's IP112 press and hold the function key next to the Partner #1 label
  • the function key editor opens
  • press the screenshot.png key on the right side of the Text: field
  • enter johnny into the Text: field
  • enter 14 (John Doe's Number) into the Number: field (you need to scroll down a bit)
  • save your settings
  • the function key label now has changed to johnny

Jane could have done that herself smile

  • from Edward Hyde's phone, call John Doe (14)
At this point, the alerting call will be screenshot.png indicated on Jane Doe's display.

Monitoring the Partner's Busy State

As we have seen, when the Partner key is configured correctly, it will not only show alerting calls that may be picked up. It will also show active (that is, connected) calls along with the connected parties number (depending on key configuration, the Show connected party in busy state property must be set in the Partner function key properties).

Monitoring the Partner's Presence State

The Partner key can also display the fish-help.png presence information of your partner. For this to work, you need to switch on the fish-help.png Subscribe for Presence check-mark in the function key definition.

Busy vs. Presence State


A user's presence state is different from his busy state. The busy state includes phone usage information only, that is, if the user has a call, if it is alerting or connected, which numbers are involved. The presence state instead only has a condensed notion of the user's phone activity (the so-called on-the-phone state element). However, in addition to that, further information such as an activity (available, away, busy, do not disturb), a user defined note or the general ability to receive instant messages may be included in the presence state. In fact, presence states can be utterly complex, but most software currently available will only make use of the elements mentioned.

In the PBX, the users fish-help.png presence state can be edited in the Presence column of the PBX / Objects list.

The end user can also edit it directly by pressing the button next to the presence state screenshot.png shown on the upper left egde of the phone's home screen.

Also, end users can of course set their presence in myApps. However, please note that myApps limits the possible activities to Available, Away, Busy and Do not disturb. All other activities are treated as Away.

Group pickup

Like for monitoring a partner, a Partner key can also be used for monitoring groups. You would simply
  • configure the name of the group, prefixed with a dot (.) as Name in the Partner Identification section. The dot indicates to the PBX that the Name is a group and not a user
  • select Default as Partner Type
  • tick Subscribe for Dialog Info to obtain the call information for the group
Subscribing to a group is like subscribing to all the users that belong to the group. So with this configuration, you can pick calls from each user in the group with a single function key.


Let us implement a call pickup scenario using the Partner function key.
  • put Jane Doe, John Doe and Richard Roe in to group group-Team-2. Make sure Richard Roe is an active member
  • open Richard Roe's phone configuration from the PBX's object list
  • we will screenshot.png open the Partner #1 key, which is inherited from the template
  • screenshot.png open the configuration and type Group Pickup as Text in the Idle State and .group-Team-2 as Name in the Partner Identification

(Further Hints) If you configure the same partner key for the group group-Team-2 on Jane Doe's user object, the pickup will not work. The reason is that the group member must be active to be able to pick the call.

Calling the Partner and Intrusion

When there is no alerting call for the partner object, pressing the Partner function key will initiate a call to the partner.

The function key can be configured such that when the partner is already engaged in a conversation, the call is initiated as an intrusion call. An intrusion call connects immediately and creates an implicit 3 way conference between the active call before the intrusion and the intrusion call. The intruder is then part of the intruded call.

The partner function key is configured for intrusion, by screenshot.png setting the Perform Intrusion if Partner is busy check-mark.

Intrusion must also be enabled on the intruding phone by screenshot.png setting the Enable Call Intrusion option in the phones Phone / User-1 / Preferences settings. Of course, as with all such options, this can also be set in the PBX user object's phone configuration or in an inherited template.

By default, both parties of the original call will hear an intrusion tone. This can be disabled though screenshot.png using the No Local Intrusion Tone property in the Phone / Preferences configuration tab of the respective phones.

The Partner function key can be configured such that the call is silently intruded to. Instead of creating a 3 way conference, this intrusion type will create a uni-directional channel from the intruded phone to the intruder. The intruder will not be heard by the original call parties and no intrusion tone is sent. This type of intrusion is configured by screenshot.png selecting Silent Monitoring as the value for the Type property in the Partner fish-help.png function key configuration properties.




Let us configure call intrusion for Jane Doe to John Doe.
  • enable call intrusion for Jane Doe's phone (tick Enable Call Intrusion)
  • configure call intrusion on Jane Doe's Partner function key in conference mode (tick Perform Intrusion if Partner is busy and select Type Conference)
  • From John Doe's IP111, call Edward Hyde (11), take the call
  • The call is indicated at Jane Doe's function key
  • Press the Partner function key on Jane Doe's IP112

Jane breaks into John's call and the intrusion is screenshot.png indicated on Jane's display. Both John and Edward hear the local intrusion tone.

Note that when Jane talks, both John and Edward will hear her. When you change the Type setting in Jane's function key definition to Silent Monitoring and intrude the next call, Jane will not be heard by neither John nor Edward.

The Dial Function Key

The fish-help.png Dial function key defines a quick dial key to a fixed destination number. By default, when a call is present, the previously active call is put on hold and a new call to the destination is created (this is like the Partner function key behaves in this situation).

However, when the Send in Active Call property is set in the function key configuration, no new call will be created in this case. The digits from its Number property are sent within the current call instead. If the call was already connected, the digits are sent as DTMF. If not, the digits are sent like single digits sent in overlapped dialling mode.

When no call is present, and the Prepare property is set in the function key configuration, the phone will go into the prepared dialing mode just like as if you had dialed the digits of the destination number on the phone's keypad. You then have the chance to edit the number before you go off hook and initiate the call.



We decide to provide a Dial function key for all users which calls to the fire brigade! As you already guessed, we will put this into the template we already have:
  • Add screenshot.png a Dial function key to the Config User template on position (Key) #3
  • Set the Text to Fire Alarm
  • Set the Number to 0112 (0 will be our trunk line access code, 112 is the fire brigade (at least in Germany))
All users now can quickly issue an alarm, even from within a call.

Announcement Calls

When the fish-help.png Announcement property is set in the screenshot.png function key configuration, the call will be sent as an announcement call. Such a call will be connected right away. There is no need for the recipient to go off hook for this. Instead, the phone goes into hands-free mode.

For this to work, announcement calls must be screenshot.png enabled in the fish-help.png  Outgoing: Allow property of the Announcement Calls.

The destination phone may choose to reject any incoming announcement call for a given registration by screenshot.png setting the Reject property in the Announcement Calls / Incoming section. Also, by setting the Reject if Busy property announcement calls are only rejected when the phone already is busy with another call.

By default, the announcement call is connected and the destination phone's microphone is turned off. This way, silent surveillance of a room is inhibited. If surveillance is desired, the destination phone needs to screenshot.png set the Micro On property.

A phone can be configured to accept any call as an announcement call, even those that have not been initiated as such. This can be done by setting the Treat Incoming as Announcement property for this phone.

Unless the Reject if Busy property is set, any announcement call takes precedence over currently active calls (except if the currently active call is an announcement call too). That is, any currently active call on the destination phone when an announcement call comes in is put on hold and the connected announcement will become the active call.




Edward Hyde is Jane Doe's secretary. This is why she needs to be able to perform announcement calls to him. As he often works a little off his phone, he wants to be able to talk to Jane Doe right away in such calls, without going off-hook. However, Jane should not disturb Edward when he already is engaged in a call.
Personal tools