Reference12r1:PBX/Objects/Waiting Queue

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference9 | Reference10 | Reference11r1 | Reference12r1 (this version)

The Waiting Queue PBX object is used to put calls sent to this object into a queue. While the call is in the queue, it may either remain in alerting state or it be connected with an announcement played. Two announcements can be configured played one after the other, the second is repeated. Calls which are in the queue can be sent to groups of operators configured for the queue. Calls are strictly sent in a first in first out manner to operators. The next call is sent only after the previous call is connected. Destinations can be configured, which can be dialed using DTMF while a call is in the queue and connected.

The Waiting Queue PBX object does not support DTMF tone detection. Only 'telephone-event' (RFC-2833) or DTMF signalling (H.245 User Input Indication / SIP INFO(dtmf-relay)) are supported.



The Long Name, Name Number and Node configuration parameters have the same meaning as for any other object.


Hardware ID, PBX, Send Number, Password, Filter, Diversion Filter and Group Indications are used only for endpoints registered directly to the Waiting Queue object. This maybe useful to set diversions for the Waiting Queue object and such endpoints can be used to make calls and are treated as operators of the Waiting Queue.

CFNR Timeout

The timeout used for call forward no response. See Diversions. Please note that the timeout is limited to 900 seconds.

Max Calls

This configuration parameter can be used to limit the calls in the queue. Calls connected to a operator do not count in this respect anymore.


For announcements the URL and/or Extern Name/no have to be configured. If no Extern Name/no is configured the local HTTP interface is used to retrieve the announcements. The URL has the following format:

addr The IP address of the web server. A DNS name cannot be used here.
filename.$coder The filename of the announcement files including any path. $coder will be replaced by the actual coder used.
coder-list A comma seperated list of all available coder. For each coder in the list the respective announcement file must be available on the server. The available coders are g711a,g711u,g722,g723,g729,opus-nb,opus-wb. Te order of coders is not significant, OPUS_NB will be used as preferred coder (if present)
repeat=true If this is present the announcement will be repeated. If this is used for the 1st Announcement the 2nd Announcement will never be played.
repeat=<n> If this is present the announcement will be repeated another n times.
fallback=true If this is present and the specified announcement file is not available, the built-in MOH pattern will be played.
random=true If this is present, the announcement will be started at a random offset, so each caller will hear it from a different point in time. This works with non-local URLs only though.


If no URL is configured the local HTTP interface plays the built-in music on hold by default.

If an Extern Name/No is configured then no local HTTP interface is used, but a call is sent to the configured Name/No. The URL is sent with this call as user-user-info, so that a remote HTTP interface can use it the same way as the local HTTP interface. As destination of the call any voip endpoint can be used.

1st announcement is played once when the call is connected. When 1st announcement is complete, the 2nd announcement is played repeatedly. If there is no 2nd announcement, the caller will be disconnected when the 1st announcement has completed.

There are 2 pseudo URLs available, TONE and MOH. Such URLs will be interpreted locally and connect to the systems tone and music-on-hold interface, respectively.

TONE as URL will produce a constant tone (often recognized as a dial-tone). You can add a ?tone=ringback which will give you a tone sequence with 1 second tone and 4 seconds silence (this is often recognized as a ring-back tone).

It's possible to define different tones from different countries with a ?tone=ringback&tones=X where X it's a numeric value from 0 to 27, this numeric order match with the list of TONES we can find at the Gateway->Interfaces->TONE, where 2 it's US and 8 it's Swiss for example.

You can also add a ?tone=busy which will give you a busy tone sequence. Notice that the queue is only playing the busy tone, it will not disconnect the call. (To disconnect the call after a while, use the CFNR to a not existing user or to a Disconnect user object, routed to the DISC interface.)

MOH will produce the built-in music-on-hold. Please note that both TONE and MOH never end, so repeat=true is not required and disc=true will have no effect.

V7 hotfix9: At any location inside the URL placeholders can be used, which are replaced by a string defined for the placeholder. The following placeholders are available:

#p Position of this call within the queue. 0 means the next available operator will answer this call.
## Is replaced by #


will be resolved to the files queue_place1.g711a,queue_place2.g711a, queue_place3.g711a...., depended on place in queue. So you have to create one set of prompt files for each queue place.

Recommended solution: Create a welcome prompt in 1st Announcement URL and a queue_place prompt which will be repeated in 2nd Announcement URL. This way every time the 2nd Announcement is repeated it will provide the queue position to the caller.

Max Call/Operator(%)

This configuration parameter allows to limit the number of current calls depending on the number of operator registrations in the primary group. Only the configured percentage of operator registrations are accepted as calls. Calls currently connected to operators do count in this context. For example if 2 operators are registered and the value is set to 150%, the 4th call received will get a busy. Note that only operators in the primary group count for this, this means if there is no primary group configured all calls are rejected with busy if any value is entered here.

Alert Timeout

The timeout (in seconds) after which the Waiting Queue connects incoming calls. If no timeout is configured the Waiting Queue will never connect. If a timeout of 0 is configured the Waiting Queue connects right away.

Round Robin Timeout

If a Round Robin Timeout is configured the call is not sent to all members of the primary group, it starts with one only. After the round robin timeout has expired, the call is sent to all members of the primary group. The operator which is selected for the first call changes every call. (Round robin manner like a static list so all are used)

If the Speedup if more calls waiting checkmark is set, the round robin timeout will be removed as soon as a second ringing call exist and all members of the primary group will be signalled.

If the Call longest idle checkmark is set, the next operator to be called is based on which one has the longest idle time of an answered call distributed over the waiting queue.

Primary Group/Timeout

The call is sent to this group first, either to all members at the same time, or in a round robin manner. After the configured Primary Group Timeout expires the call is sent to all operators. If Primary group operators are busy the call is immediately sent to Secondary Groups members. Operators are all members of groups in which the Waiting Queue object itself is active member. The operators do not need to be active members of these groups. If Primary Group Timeout is empty, the call is sent to primary and secondary group immediately.

CFNR on no Operators

If this option is configured, calls are rejected with No User Responding if there is no operator. If a CFNR is configured at the Waiting Queue, it is executed in this case.

Support for RTP-DTMF

If the announcement interface for a Waiting queue is not the PBX internal one and the calling endpoint can only do RTP-DTMF, the announcement interface receives the RTP-DTMF and not the waiting queue. When this checkmark is set, the uui-dtmf=on argument to the URL is added, which tells the announcement interface to send back the received DTMF as USER-INFO.

This feature is needed for a Hosting Scenario where the PBX is located in a private network and the Media interface on a different system in the public network.

Operator connect for SOAP

On the SOAP/TAPI interface a call to a waiting queue is normally indicated as connected as soon it is connected signalingwise, this means it is indicated as connected if an announcement is played. This behaviour can be changed so that it is indicated connected only after an operator has accepted the call by setting this checkmark. This also will affect the PBX CDRs state accordingly.

Call busy Operators

Normally an operator who is already engaged in a Waiting Object call is not called again. If this checkmark is set, calls are delivered to these (busy) operators as well.

CFU disables Operator

If this checkmark is set a operator which has a CFU set is not called.

Execute Operator CFB/CFNR

If this checkmark is set, CFB or CFNR is executed for calls sent thru the Waiting Queue to operator phones otherwise these CFB/CFNR are ignored for such calls. Note: Only CFB/CFNR configured by the operator will be executed. Administrative CFx will be ignored (e.g. call forwardings using Bool or Only/Only Not parameters).

No Mobility for Operators

If this checkmark is set, mobility for operators is not executed.

Announcement w/o Connect

If this checkmark is set, no connect is sent on incoming calls to play the announcements. This feature allows to provide free-of-charge waiting queues. For this to work, the carrier has to support early media (and not all do, for example German Telekom is known to not support this feature as of December 2012 on ISDN lines). On TE ISDN interfaces the Annex-N option has to be enabled for this.

Presence Disables Operator

If this checkmark is set, no calls are sent to an operator with presence information set.

Set Operator Presence

If this checkmark is set the presence of an operator is set to busy whenever the operator accepts a call. A timeout can be set after which this presence information is cleared again after the call release.

DTMF destinations

A list of DTMF destinations can be configured. Any DTMF digits dialed after the call is connected to an announcement is matched to this list. If a match is found the call is sent to Dest. No/Dest. Name. If no Dest. No/Dest. Name is configured more DTMF digits may be dialed for the final destination. If the destination of the call is not an endpoint, but a gateway (Trunk object, Gateway object, Voicemail object), the call is sent only after a timeout of 4s after the last digit is dialed.

A '.' entered as DTMF map will catch all DTMF digits dialled after this map and append them at the end of Dest. No.


DTMF	  Dest. No      Description
55.       11            if the DTMF sequence "55222" is dialled, the destination number is "11222"
.        <empty>        the dialled DTMF sequence is passed completely to the destination

A '~' character before the DTMF destination indicates that no ct_complete shall be generated. This means the dialed DTMF destination does not show up in the redial list of the phone.

Call Forwarding

Call Forwarding can be used with the Waiting Queue object and can be set/reset by endpoints registered to the Waiting Queue object itself.

CFU Executed as usual
CFB Executed if the Busy on ... calls condition or the Max Call/Operator(%) condition applies.
CFNR Executed if the CFNR timeout expires and no operator has accepted the call, even if the call is connected to an announcement or if the first announcement ends and no second announcement is configured.