Course10:Basic - PBX - Advanced Object Types

From innovaphone-wiki

Jump to: navigation, search

This book discusses the more advanced PBX object types.


The Trunk Object

The fish-help.png Trunk Line object is typically used to register external interfaces (ISDN,SIP, VoIP-GWs) at the PBX. It therefore often represents the connection of a PBX to the PSTN. Here are some more details.

Handling incoming Calls

Incoming calls will normally be routed to the extension directly (DDI). However, if for some reason the extension is not reached, the fish-help.png Trunk object can be configured to handle this situation.

Dialling the Switchboard

Normally, calling the extension -0 means calling the switchboard. From the PBX's point of view however, dialling -0 means to dial in to the PBX and dial out through the Trunk object again right away (assuming the Trunk object has Number 0).

To handle this situation, configure the number (or Name) of the real switchboard into the Trunk object's Loopback property. Incoming calls that loop back to the trunk right away will be diverted to this number instead. Note that this may be just any PBX object, not only an ordinary fish-help.png User object. In many cases, this will be a fish-help.png Waiting Queue object.

Catching undeliverable Calls

Calls that can't be delivered can be handled by setting the Incomplete, Invalid, Busy and No Answer property.

In many installations, all those properties will be set to the switchboards number.

Manipulating the CGPN

The fish-help.png Trunk allows to define the policy for outgoing numbers (CGPN) globally.

If the Outgoing Calls restricted property is set, all outgoing calls will be sent with the CGPN suppressed (CLIR).

As an alternative, the CGPN can be set to a specific value (such as 0) for all calls by setting the Outgoing Calls CGPN property.

As with the CGPN, the calling name can be suppressed for all outgoing calls by setting the Outgoing Calls No Name property. This is rarely used with straight ISDN trunk lines (as ISDN does not use the Name property anyway), but can be useful when interworking to SIP or QSIG.

Handling outgoing calls

When there is more than one registration on a trunk (as is the case when it is served by more than one interface), it will send outgoing calls to all the registrations in a round-robin fashion.

When a registration reports a fish-help.png local interface problem for such a call, the call is passed to the next available registration. This effectively implements a hunt group.

More esoteric Properties

Partial Rerouting

When an external call comes in through a fish-help.png Trunk object and is routed back through the same Trunk, the PBX will normally create two independent calls (one inbound, one outbound) and loop the media channel back and forth. This is a very common scenario when a call is forwarded to an external destination (such as a cellular phone) by a call forward or an external transfer.

If it is caused by either a CFU or a CFB and the Reroute supported property is set, the Trunk object will try to notify the underlying trunk (e.g. the ISDN interface registered to the Trunk object) to handle this situation directly. On an ISDN line for example, a partial rerouting or deflection is attempted then.

The benefit of this is that the reroute is handled in the central office's switch and you get rid of the 2 B-channels used in this situation otherwise.

For this to work, the underlying fish-help.png route to the physical interface in the gateway layer configuration must have the Interworking property set. This is also the place to decide if either partial rerouting or deflection (Rerouting As Deflection check-mark) shall be used.

Partial Rerouting can be different on BRI and PRI interfaces. As a configuration reference look at our wiki for fish-help.png Partial Rerouting on BRI and fish-help.png Partial Rerouting on PRI interface

This feature can be interworked towards E-DSS1, QSIG and SIP.

Setting the CGPN for diverted Calls

Normally, the PBX would send out a diverted call with the original CGPN. When the Set Calling=Diverting No property is set in the fish-help.png Trunk configuration though, the diverting number is used as CGPN instead.

This is useful if the underlying trunk does not support neither partial rerouting nor clip no screening and a call is diverted externally. In such a case, the diverted call will be sent out with the original CGPN normally (i.e. the original callers number). As this is probably not a number valid for this trunk, the central office's switch may remove this invalid CGPN and replace it with the trunks main number (usually extension 0).

Connecting diverted Calls early

When incoming calls are diverted externally and the destination is slow (e.g. a cellular / GSM phone), the caller might get impatient before the destination finally alerts. Also, when the call to the destination fails and there is a diagnostic in-band message, the original caller will not be able to hear it (as the call is not yet connected).

Setting the Fake Connect on inc. Call property will connect the original call before the diverted call really connects. This will avoid such problems.

The Boolean Object

As already discussed in the PBX - Advanced Object Properties and Behaviour book, a fish-help.png Boolean object can be configured to define generic conditions.

The status of each boolean object can be set depending on time, day of week and date or can be set manually.

Setting it manually (manual override), can be done by either using a fish-help.png Boolean-Object function key or by calling the object and then using DTMF.

If setting it with DTMF is desired, you should provide appropriate

Using the Boolean-Object Function Key

The fish-help.png Boolean Object function key can be defined and used to monitor and set a fish-help.png boolean object conveniently. Monitoring works through group indications.

When the Toggle State property is set, then pressing the function key will toggle through the possible states. Otherwise the function key will work like a Dial function key and initiate a call to the target boolean object and the user can set the state using the object's fish-help.png DTMF codes.

The Call Broadcast Object

The fish-help.png Call Broadcast object can be configured to define an extension that when called distributes the call to a number of other objects that are known to the object by group membership, even if these are busy.

In a way, this is much like having an ordinary fish-help.png User object with multiple endpoints registered. However, with the Call Broadcast object, all called users can have different numbers.

Furthermore, diversions set on the called users are normally not executed! You can change this by setting the Execute Group Member Diversions property.

It is possible to set CFU, CFNR and CFB.

Users can register with the Call Broadcast object. However, this is not a recommended scenario.

Round Robin Mode

Setting the Round Robin Timeout[s] property will turn on a different call distribution method. Calls will not be sent to all group users. Instead, users will be called sequentially until a user takes the call.

The Waiting Queue Object

The fish-help.png Waiting Queue is one of the most powerful PBX objects.

Incoming calls are put in the objects queue. They will stay in alerting mode until the time set in the Alert Timeout property has elapsed. The call will then connect and an announcement (as defined in the 1st Announcement and 2nd Announcement) is played. If the Alert Timeout property is left empty, no announcement is played and the call stays connected.

Any PBX user objects known to the waiting queue via the group mechanism are considered operators (a.k.a agents) for the queue. When an incoming call is queued, un-busy operators will be searched and the call will be sent to all of them.

When the Call busy Operators property is set, even busy operators are called.

When the CFU disables Operator property is set, operators that have a CFU will not be treated as operators (assuming they are not available and have thus set a CFU to e.g. their cellular phone).

An endpoint can register with a waiting queue object directly. Such endpoints are treated as operators and will be able to set call forwards for the Waiting Queue object itself conveniently (e.g. using functions keys).

Waiting Queue operators must be User objects. It is for example not possible to use a fish-help.png Call Broadcast object as operator. Also, no call forwards set for operators are honoured. Finally, fish-help.png fork destinations set for operators are not evaluated.


As described before the Waiting Queue will usually connect incoming calls, play an announcement to the waiting caller and signal the waiting call to the subscribed operators.

The announcement to use by the Waiting Queue is specified by an URL and retrieved via HTTP from a Web server (e.g. CF card). By using additionally parameters in the URL, the way of playing the announcement can be changed. For example you can use this option to play a different announcement file depending on the position of the user in the queue. As always, have a look at the wiki for a current fish-help.png view of possible parameters.

Multi-Level and Round-Robin Mode


When a number of operators shall service the waiting queue and there is a number of extra operators which should only take calls when all regular operators are busy, the multi-level mode can be used.

To enable this, you need to have all operators in the group the waiting queue object is active in (as usual). In addition, you need an extra group where only the regular (or primary) operators and the waiting queue are members in. This group is set in the Primary Group property. When the primary operators do not take a call within the time set in the Primary Group Timeout property, all operators are alerted.

In addition, a load factor can be defined in the Max Call/Operator(%) property. This defines the number of concurrent calls a queue can take (including the calls currently handled by the primary operators) in relation to the number of primary operators. A value between 100% and 150% is a good starter. This calculation is made each time a call comes in.

Round Robin

As with the broadcast object, the waiting queue can be set into round-robin mode by setting the Round Robin Timeout property.

Using the Join Group Function Key

When operators shall be assigned dynamically, the fish-help.png Join Group function key can be used.

You would use set the Group Identification property to the name of the primary or secondary group used by the waiting queue.

For the Join Group function key to work, the user must have the group assigned as either dynamic-in or dynamic-out (as opposed to static)!

2-Stage Dialling

The Waiting Queue object can be used to implement 2-stage dialling in the PBX. 2-stage dialling allows people to call the Waiting Queue and control the call flow via DTMF tones while the announcement is played.

An example would be a central waiting queue announcing incoming callers that they called the company headquarters. Afterwards the caller can specify by pressing 1, 2 or some other digit the department to be connected to (i.e. welcome at innovaphone. Press 1 for the sales department ...).

Therefore the main function for 2-stage dialling is the mapping of DTMF tones to numbers. This screenshot.bmp can be done in the fish-help.png Maps section of the Waiting Queue object. Note that the numbers in the Dest. No column do not need to be complete. If further digits are required to complete the call, the user can dial those using DTMF tones.

Advanced ACD Functions

The fish-help.png waiting queue supports a number of configuration options which are used in ACD style configurations, like the aforementioned Max Call/Operator property. In addition to this, there is a new powerful ACD feature available with V9 configured using the Presence Disables Operator and Set Operator Presence properties.

Presence Disables Operator will inhibit calls from the waiting queue to an operator as long as there is a presence state known (more precisely, as long as an activity is set for the tel: device presence). This way, an operator can effectively remove himself from the set of available operators by setting an activity (e.g. using a fish-help.png presence function key or fish-help.png myPBX).

Moreover, an operator can be removed from the list of available operators automatically by setting his presence activity to Busy as soon as he accepts a call from the waiting queue. This is done if the Set Operator Presence check-mark is checked.

Finally, the presence activity can be cleared automatically after a timeout by setting the Clear after property to a number of seconds so the operator has to accept calls again.

The EXTERN Object

The EXTERN object is not really an object. Instead, it is a property in the PBX's PBX / Config / General configuration tab called fish-help.png Route Root-Node External Calls to. This is sort of a catch-all function that allows calls to objects which are unknown to the PBX to be sent to a fall-back destination. A similar function has been shown with the Invalid property of the Trunk Line object. However, this is valid for calls coming in through the trunk only.

The catch-all target's Long Name must be set in the Route Root-Node External Calls property. Very often, a fish-help.png Gateway object is used to send such calls through the relay layer to a trunk line or a connected legacy PBX.

The Route PBX-Node External Calls to property applies to multi-site installations only and is not covered thus in this course.
Personal tools