Howto12r1:Avoid Multiple Callbacks

From innovaphone wiki
Jump to navigation Jump to search

When you call a group number, several phones or terminals ring at the same time. A similar function can also be created using a queue. If such a group call is not answered, the missed call is displayed on all the terminals. This applies to all types of terminals: an innovaphone IP telephone, an IP DECT telephone, an IP telephone from a third party or an analogue telephone connected via an adapter. Missed calls are also displayed simultaneously in the various myApps clients: the phone app, the softphone app including the mobile client, the RCC app or the switchboard app. If one of these participants calls back, the other members of the group are often unaware of this and call back independently, unaware of the callback that has already taken place. This is not only a waste of time, but also leads to unwanted reactions from the person being called. For example, the caller cannot understand why, after calling a single number, they are now being called back several times and by different people. The problem of multiple callbacks is exacerbated in the age of mobile and distributed workplaces. There are software solutions that try to solve this problem. However, such solutions are difficult or impossible to use in some workplaces and scenarios. For example, physical telephones are not considered at all, and it is impossible to cancel missed calls on an analogue phone. The proposed solution solves this problem, works fully automatically, does not require any user interaction or training and is device independent, i.e. it works with any phone or client. Here is how it works.

Applies to

innovaphone PBX V12 or higher

The feature requires no license.


The user calls the missed call as usual from the callback list of the phone or application. The first user in the group who calls back is immediately connected to the caller. If the called user is busy and is called back again by the same user, this is done immediately. So for the first recalled, everything is as usual. If another (the second and all others) user of the called group calls back a voice announcement "The callback has already been made by the participant" followed by the caller's number and the prompt " Wait to call back anyway". If the participant does not hang up, he will be connected to the caller after two seconds. In this case, he automatically becomes the status of the "first" caller, so he can recall again without a warning (while the other group members now receive a warning).

How it works

The group (or queue) is not called directly, but to reach the group number you must call first a XML. This XML manipulates the number of the caller and adds an prefix. Then writes this number in a file and now connects to the group number (or queue). If this number is now called back from the call list, a reality a second XML is called because of then previously prefix. This 2nd XML checks whether this is the first callback to this number and if so, the call is transfered to the caller immediately, if not, the warning message is played and if the call is up after 2 seconds the connection is made to the destination and the new recaller stored in a file.

Example: The group call number should be "9", actually the number "81" is assigned to the group and the number "9" to the XML. If a call comes from the number "01234" to "9", the XML remembers this number and adds the prefix "88". So the call list doesn't say "01234" but "8801234".

If this number is called, the call comes to the second XML with the number "88". This second XML recognizes "01234" as the called number, saves the phone number of the callback and connects to this number. If a second user calls back the "8801234", the second XML recognizes that a user has already called back and plays the warning.


All files are copied into a myApps directory (Files App). The necessary subdirectories are created automatically. Two VM objects are now created in the PBX, one for incoming calls (IN) and one for callback (OUT). The first receives the number of the group (or the WQ) and the second the desired Prefix. Enter the parameter "$_pbxcoder=g711a" in the URL of the XML. In our previous example, the VM object pointing to the "MMcallbackIN.xml" file would be assigned the number "9" and the VM object pointing to the "MMcallbackOUT.xml" file would be assigned the number "88".

Open now the first XML (“MMcallbackIN.xml”) with a text editor and edit line 5. The number of the group is specified under “value”. (in the example above the "81", i.e. <assign out="$Group" value="81" />).

In line 6, the prefix code is specified (in the example above this is "88", i.e. <assign out="$CBxml" value="88" />).

Note: If the phone number of the caller is transferred from the PBX to the XML without a leading zero (just try it), you can add the trunk access code here, so in the example instead of "88" there would simply be "880".

Country and language customization

The package contains only german language data in dthe .g711a format. Therefore you have to specify the corresponding fixed codec in the URL, e.g. http://xxx.zz.yy.ww/DRIVE/CF0/MCB/MMcallbackOUT.xml?$_pbxcoder=g711a This is only required for "OUT XML" because "IN XML" does not reflect any language data.

If you have to play messages in another language (or the content should be different), proceed as follows:

Create the voice file "Track100.wav" with the content "The callback has already been processed by the subscriber" and the voice file "Track101.wav" with the content "Please Wait to call back anyway.” Then create the files with the announcement zero to nine “0.wav” to “9.wav”.

All of these files are now to be transcoded and imported using the conversion tool from wav to g711. Note: the prompts 0-9 can be found in the voicemail application.

Known Problems / Limitations

• The caller's phone number is changed by the XML, so it is not possible to resolve the external caller's name from a phonebook or it is necessary to save the phone number with and without the area code.

• Only en-bloc dialling is possible, but this is the case anyway when dialling from call lists.

• If a call is answered and called back (e.g. with redial), the mechanism described also takes place. So there is no distinction between missed and answered calls; if a participant who called the group is called back, the other group members receive the warning.