Course12:Basic - PBX - Advanced Object Properties and Behaviour

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.


To begin with

To start this part of the exercise, be sure to load the PBX - Advanced Object Properties and Behaviour start configurations to the devices.

This will add a few users to your PBX on the IP411LEFT and register your phones.

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). This is done in the PBX's PBX / Objects list.

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

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.

Forwarding Loops

It is quite easy to unintentionally configure screenshot.png call forwarding loops. These are detected by the PBX when they are executed (not when they are set) causing the caller to receive busy. No call forwarding is triggered in this situation.

Conditional Forwardings

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


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.

Please configure a call forward unconditional for user John Doe that forwards calls 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 before so that is executed out of working hours only.

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 calls through (that is, from) the trunk object to local extensions whereas call forwarding set on the trunk apply to calls 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.

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 will be forwarded to the switchboard too. This will probably not make the receptionist happy! You should then 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 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 and can be set from the PBX's configuration user interface thus.

However, for end users, it is much more convenient to set them 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 can be set in the Favorite Diversions properties of the phone's Phone / User-1 / Preferences tab.

However, only basic call forwarding settings can be set this way. 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 the phone and cannot be changed or deleted from the phone.

Users can also set non-conditional call forward types from within the UC client myPBX.

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.

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 IP111 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 phone-ui-add-cfk-1

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 call forward combinations as follows:

Target Number
Out of Office

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

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 object in the screenshot.png Response Timeout field of the object's properties (e.g. fish-help.png PBX/Objects/User).

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.

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.

Controlling external Transfers

By default, transfers of external calls to external destinations are not allowed.

This is because such transfers would create calls which impose costs on the owner of the external trunk line. At the same time, as they disappear from the transferrers phone, they cannot be controlled any further.

To allow external call transfers, you need to screenshot.png enable the fish-help.png Enable External Transfer check-mark on the PBX's PBX / Config / General configuration tab.


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 the called party number of a call. They can be made dependant 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.

This can be used for restricting call destinations for PBX objects and to limit call forwards set for an object.

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.

Filters are generally checked at execution time, not at configuration time.

We have an appropriate Boolean object already in our configuration. Please configure a filter that inhibits calls to the trunk line (0) off working hours and assign it 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 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 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.

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:

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).
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 the UC client (myPBX)'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

If the object is of type fish-help.png Gateway or fish-help.png Trunk Line, then calls both from and to this object will be counted extraneous and rejected. This effectively limits the total number of calls at any point in time for the endpoints registered.

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 an 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.

Please note that Twin Phones and Busy On ... Calls cannot be combined!

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 leave the desk while keeping the call).

To practice, set the Twin Phones option for John Doe. We can not test the effect for now, but we will come back to this later.

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 / User Setup / Do not disturb / Out of Office Msg. menu.

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 are searched for a matching number when an incoming call without name identification is received.

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.

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

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).

If the Config Template should be valid on all of your PBXs (if you have more than one), leave PBX and Node empty.

To practice, please create a Config Template PBX object called template-Standard on your PBX / Objects. Be sure to hide it from directory search results. Set a Response Timeout of 5 seconds. Assign this template to user Jane Doe. Finally, set a CFNR with target No 14 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:

diverted call

Managing Phone Configurations

Traditionally, phone configurations used to 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.

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!

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.

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 phone).

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 have configured screenshot.png a Call Forwarding function key on the IP111. Now that we know about phone configurations in PBX Config Template objects, we want to remove this configuration from the phone and re-configure it in our template-Standard Config Template.

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 have a look at Jane Doe's IP240. You see

screenshot.png Function key on IP240

no function key at all smile This is because we only have 7 function keys next to the display on the IP240. Still, the 8th function key is functional. Press the topmost function key in the row on the right side of the phone. You will notice that the phone screenshot.png is indicating changing call forward settings on the display.

Utilizing the Hard-Key LEDs

As we have seen, phones like the IP240 have function keys which are not next to the display and thus cannot show the function key labels. However, if these Keys have LEDs (like with the IP240), we can use those to highlight the current state.

This is done by selecting screenshot.png one of the LED states in the state definitions of the function key.

Change the No CF function key definition in the template and set LED to on for state Out off Office and to blink for state Busy. Press the function key on the IP240 and see how the LED relates to the call forward states.


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.

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 active member in one group and passive member in another. Objects can also be active members of more than one group.


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!

Group Pickup

Active members of a group can pick alerting calls for other members in this group.

There are several ways to do this.

Pickup using the DTMF Object

If there is a fish-help.png DTMF Features object present in the PBX, any endpoint can initiate a group pickup by dialling the *0# feature code. If there is an alerting call in one of the groups the caller is an active member of, this will be connected to the previously alerting call right away.

It is also possible to pickup a specific call if more than one are currently alerting. This is done by dialling the *0*<user># feature code, where <user> is the extension of the object the call is alerting on (note that those codes can be defined differently, these are the default values).

For innovaphone IP phone users, it is usually better to use the fish-help.png Pickup or fish-help.png Partner function key. The DTMF feature is useful for H.323 devices that do not support call pickup, for SIP devices and for non-IP devices, such as DECT or analogue phones.

  • Create a DTMF Features object in your PBX (do not change the default settings in the Features tab)
  • Create a group group-Team-1 and assign active Membership to John Doe and Richard Roe
  • From Edward Hyde's IP232, call Richard Roe (13). Do not take the call
  • From John Doe's IP111, call *0#. This connects you to Edward Hyde
  • Hang up and call again
  • From Jane Doe's IP240, call *0#. You will get a busy tone and the screenshot.png display says call rejected. This is because Jane Doe has no rights to pick up a call from Richard Roe

Asymmetric Pickup

Group call pickup scenarios can be asymmetric. It is possible to configure a scenario where user A can pick a call from user B but not vice versa.

This is implemented mixing active and passive group assignments. Active members can pick calls from other active or passive members, passive members can not.

We have seen that Jane Doe was not able to pick a call alerting at Richard Roe's phone. This was not particular surprising, as the two were not member of the same group. Let us see how to configure things so that Richard Roe can pick a call alerting at Jane Doe's phone, but not vice versa.

  • add Jane Doe to group group-Team-1 as passive member
  • From Edward Hyde's IP232, call Richard Roe (13). Do not take the call
  • From Jane Doe's IP240, call *0#. You will still get a busy tone and the screenshot.png display says call rejected. This is because Jane Doe has no rights to pick up a call from Richard Roe as she now is in Richard Roe's group, but only as a passive member
  • From Edward Hyde's IP232, call Jane Doe (12) this time. Do not take the call
  • From Richard Roe's IP222, call *0#. You are connected to Edward Hyde. This is because Jane Doe is member of the same group where Richard Roe is an active member

Pickup using the Pickup Function Key

innovaphone phones can do pickups via the fish-help.png Pickup function key. This function key will be idle as long as there is no pick-able call and go to the active state when there is one.

When in active state, the alerting call will be signalled to the user (there are several options available like turning on a LED, issuing an audible alert or hiding the involved party numbers). When the function key is used in active state, the PBX will send the call to be picked to the picking phone too. The user can then examine the detailed call info presented with the new call and decide whether to really pick the call or not. This is in contrast to how the DTMF object works, as this will connect the picked call right away.

For this to work, the picking phone must be aware of all pick-able calls of course. This is done by setting the fish-help.png Group Indications property in the picking users PBX object configuration. This property is set to the name of a group the picking user object is an active member of. The PBX will send call status information for all objects that share the same group memberships (active or passive) to all registered phones of this user.

screenshot.png Group Indications

Group memberships can become quite complex. It is a common configuration mistake to configure a Pickup function key but no appropriate group indications.

Group indications require active group membership. As such, they are costly anyway. However, since group indications are actively sent to all active group members by the PBX, they are even more CPU intensive. So do not use group indications and do not assign active membership if not really required. It is a common mistake to assign active group membership and group indications for all users "just in case they are needed one day". This may result in severe performance issues.

Let us implement the call pickup Scenario using function keys.
  • configure a Pickup function key in the template-Standard template on position 6
  • use No alerting team call as Text for the Idle State
  • use Team call! as Text for the Active State
  • set the LED to flicker for the Active State
  • set Audible Signal after alerting [sec] to 5
  • at the user object of Richard Roe, activate GroupIndications for the group group-Team-1

You will now see the screenshot.png Pickup function key on all the phones.

  • From Edward Hyde's IP232, call Jane Doe (12) this time. Do not take the call
  • You will see the screenshot.png alerting call indicated on Richard Roe's phone
  • Let the call alert a few seconds. After 5 seconds of alerting, a short tone can be heard on the other phone (this is due to the Audible Signal after alerting [sec] configuration in the function key)
  • On Richard Roe's IP222, hit the button next to the 14->12 label
  • The call from Edward Hyde to Jane Doe will now alert at Richard Roe's phone too

Note that when

  • Edward Hyde calls to Richard Roe, this call is not indicated at John Doe's phone (as he is in the same group as active member but missing appropriate group indications)
  • It is also not indicated on Jane Doe's phone (although she has the Pickup function key too), as she is not even active in the same group

The Partner Function Key

The fish-help.png Partner function key allows to pick calls quite similar to the Pickup function key. However, it does not perform a group pick up. Instead, 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.

Group Indications

Just like with the Pickup function key, the phone with the function key must receive the partner user's call state information in order to work properly.

One option to do this is like before with the Pickup function key: The user that has the Partner key defined on his phone has a proper fish-help.png Group Indications setting.


There is however a second option to obtain the partner's call information. This is called subscription. In this mode, the phone that has the function key subscribes for so-called Dialog Info regarding the partner. No group indications need to be sent from the PBX to the user's phone.

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


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

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

The following screenshot.png modes are available for visibility right entries:
  • the Name in the entry is a group name and the Group check-mark is ticked. Each active member of the group is granted visibility
  • the Name in the entry is an @ followed by a domain name (e.g. Users from that domain is 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
  • the Name in the entry is the Name of another user
  • the Name in the entry is a single @. This is a catch-all and is effective if not other entry matches

Group memberships can be set by the administrator only. Visibility rights can be set by the users themselves (using the myPBX UC client)!


    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 just like with the Pickup key. Depending on the various check-makers in the definition, the behaviour 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 template-Standard 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 Jane as Text in the Idle State and jane.doe as Name in the Partner Identification
    • from Edward Hyde's phone, call Jane Doe (12)

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

    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!
    • on Jane Doe's IP240 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 Number: field
    • enter 11 (John Doe's Number) into the Number: field and johnny into the Text: field
    • hit the menu key (on the right of the 6 key)
    • the function key label now has changed to johnny

    Jane could have done that herself smile

    • from Edward Hyde's phone, call John Doe (11)

    At this point, Jane Doe's partner function key does not change at all. This is because she has no rights to see John Doe's dialog info. Fortunately, we can fix that easily.

    • open the visibility rights settings for the template template-Standard. You can do this by screenshot.png clicking on the little + in the Visibility column
    • add an entry for and tick all the checkmarks (except the Group one)
    • power cycle Jane Doe's IP240 (this is the fastest way to re-do the partner key subscription smile)
    • from Edward Hyde's phone, call John Doe (11)

    At this point, the alerting call will be screenshot.png indicated on Jane Doe's IP240 display.

      Monitoring the Partner's Busy State

      When the fish-help.png Partner key is configured correctly, it will not only show alerting calls that may be picked up. It will also show active 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 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 (lunch, meeting, vacation...), 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 (using the phone's screenshot.png User Setup / Presence menu on the IP240 or by pressing the presence state screenshot.png shown on the upper left egde of the phone's home screen on newer phones such IP111, IP222 and IP232).

      Presence during Alert

      The presence state of a user can also be sent along with the Alert signal. So if a user calls another user and the called user has a presence set and the calling user has rights to see the called user's presence information, it will be displayed to the calling user.

      This however is only done if the screenshot.png Presence with Alert check-mark is ticked in the PBX configuration.

      Obtaining States

      The presence state is always retrieved using subscriptions. the busy state can be retrieved via subscriptions (this is known as dialog info) or sent via group indications.

      There is however another huge difference between the two methods. Group indications are sent proactively to interested parties. This is controlled by the group configuration discussed before.

      Subscriptions however are requested by interested parties. So when a Partner function key has the Subscribe for Presence check-mark set, it will send a request to that effect to the target user's PBX. There is no need to touch the PBX configuration for this to work. The only thing to make sure is that the requesting user has the fish-help.png right to see the target user's presence state. This is configured in the Access column of the PBX's PBX / Objects list.

      Also, as the requesting party sends a request to the target users PBX, obtaining the presence status works cross-PBX (although in this course you will not deal with multi-PBX configurations). Group indications are sent only between users registered with the same PBX!

      For all these reasons, subscriptions are the recommended way to obtain status information. Group indications should be avoided where possible (currently, only the group call pickup function and the Park function key still require group indications).

      Using Dialog Info as an Alternative to Group Indications

      Requesting the Dialog Info from the partner object is an alternative method to obtain the remote users busy state. As with presence info, this information is not sent proactively from the partner object to the requesting user like group indications are. Instead, the user (in fact, the phone) interested in the partner object's busy state send a dialog info subscribe request to the partner object's PBX. It will then receive the information as responses to the request. Again, as for requesting the presence state, this does not require group indications to be configured. Instead, the partner object must fish-help.png allow the requesting user to obtain dialog info. This is configured in the Access column of the PBX's PBX / Objects list.

      Dialog Info is used to obtain the partner object's busy state when the Subscribe for Dialog Info check-mark is ticked in the the fish-help.png Partner function key definition. If so, no group indications are required or used any more for this function.

      We recommend to use subscriptions instead of active group membership and group indications whenever possible!

      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 (14), go off-hook on the IP232
      • The call is indicated at Jane Doe's function key
      • Press the Partner function key on Jane Doe's IP240

      Jane breaks into John's call and the intrusion is screenshot.png indicated on the IP240'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 dialling mode just like as if you had dialled 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 guest, we will put this into the template we already have defined.
      • Add screenshot.png a Dial function key to the template-Standard 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.

      Call Parking

      Calls can be parked. When a call is parked, it is disassociated from the object it has been active on when parked and is placed in to a special area on the park destination object, occupying a numerical park position (starting from 0). The call will disappear from the requesting phone and the remote end will hear music on hold.

      Parked calls differ from held calls in that they disappear from the callers phone completely as long as they are parked. Also, other users can un-park the parked call which then looks much like a call pick-up. This allows calls to be moved between users without a call being made between source and destination (in fact, the source doesn't even need to be able to call the destination).

      When no park position is specified during park or un-park, the park area is treated like a queue.

      Park using the DTMF Object

      If there is an fish-help.png DTMF Features object present in the PBX, any endpoint can initiate a park to its own PBX object(that is, park the call on its own extension) by dialling the *16<position> feature code, where <position> is a one-digit park position from 0 to 9. Likewise, feature code #16<position> will un-park the parked call. The un-parked call will be connected to the caller right away.

      If the call is to be parked to another PBX object, feature code *17<position><target># and #17<position><target># will do.

      Like with all DTMF Features object features, this will work with just any phone.

      As we already have created a DTMF Features object, we can just try this right away.
      • from Jane Doe's IP240 call John Doe (11) and go off-hook at the IP111
      • on the IP240, press the R key which gives you a new call appearance
      • type *160

      At this point, the call to John Doe is parked on Jane Doe's extension, position 0 (if the IP240 shows Error while Calling, just ignore this and hang up).

      • go on-hook on the IP240. John Doe still hears music on hold
      • on the IP240 now call #160

      At this point, you are connected to John Doe again. You have parked and unparked a call.

      We can now try to unpark a call from a foreign extension.
      • from Jane Doe's IP240 call John Doe (11) and go off-hook at the IP111
      • park the call like before at Janes phone by using R-key and *160
      • Hang up at Jane
      • on Richard Roe's IP222, call #17012#

      At this point, Richard Roe is connected to John Doe. He has unparked a foreign call!

      The Park Function Key

      The fish-help.png Park function key allows a user to park the current call to a specific extension. Such calls can then be un-parked later on using the same function key, as the function key also monitors the park position for parked calls. The extension the call is being parked to is set in the screenshot.png Number or Name property of the Park Destination area in the function key's configuration.

      The Audible Signal after Parking [sec] is used to generate an audible alert on the phone when there is a parked call in the monitored park position for a long time.

      Unparking only works if a Position in the Park Destination is specified.

      Any un-parked call will appear as an alerting call (just like when picking a call) on the callers phone. However, if you decide not to un-park the call by pressing the disconnect key, the parked call will be disconnected and the previously parked party will see a user busy indication.

      The Park function key will work only if the user receives group indications from the object the calls are parked to (that is, the object defined by the properties in the Park Destination area of the function keys configuration).

      As we have seen before, parking with DTMF feature codes is possible but ugly. We provide a Park function key for Jane Doe to simplify this.
      • screenshot.png Add a Park function key labelled Call Stock on position (Key) #5 for Jane Doe. Set the Park Destination to her own extension and Position 0. To make sure she is reminded when a call is parked there, set the Audible Signal after Parking [sec] property to 10
      • To make sure her phone receives group indications, create a group called jane-doe-personal-park and screenshot.png assign herself as an active member to this group
      • set her Group Indications to this group
      At this point, you will see a Park function key on Jane Doe's IP240.
      • From John Doe's IP111 call Jane Doe (12)
      • Go off-hook on the IP240
      • Press the Call Stock function key
      • You will see a Call Cleared message on the display. Hang up
      • after 10 seconds, you will hear an audible alarm on the IP240, indicating that there is a parked call
      • the IP240's Call Stock function key will screenshot.png show the parked call
      • press the the Call Stock function key again

      At this point, the IP240 will screenshot.png show an incoming call. Go off-hook and you are connected to John Doe again.

      Personal tools