Howto:External announcement facility

From innovaphone-wiki

Jump to: navigation, search

This xml allows playing a pre-registered audio message to an external announcement facility (PA system).

The played message depends on the number of the caller. Each caller can have a different announcement, but typically users will be divided in zones and all users in a certain zone will start the same announcement.

For example users in the sales area will start an announcement “support request in sales zone area 4”, other user will trigger “please leave section 2” or similar.


Applies To

Tested with innovaphone PBX version 10 or higher

A conference unit is required (no IP302), each announcement occupies up to 3 DSP channels

More Information

All users will call the same number to trigger an announcement.

If the announcement channel is free the caller hears an acceptance tone and then the call will be released.

The announcement itself is played automatically and the user has not to wait.

If a user calls the service and the announcement is busy (there is another announcement playing) the caller will hear the message “channel busy”. In this situation a caller can wait, this message will be repeated until the cannel becomes free. Once free the confirm tone is reproduced, the call released and the messages played on the PA-System.

If a user calls the service and he has not an audio file assigned he will hear the message “no audio” and the call released.

A log directory on the CF will show all announcements done.

Problem details

A user can wait up to 30 second for a channel to become free again, expired that time the call will be released and the user has to try again.

To avoid that two user access the PA unit in the same moment a flag is stored on the CF, until this is present no other user can access; the XML playing the message will delete this flag at the end of the play. If during an announcement the PBX traps after a restart the CF could have such a “dirty” flag file. To avoid this blocking situation the XML check the creation date and time of the flag file, if older than 2 minutes the file will be deleted and normal operation is established again.

Feel free to use this solution as you like. For example it would be a simple start an announcement in function of a dialed number or similar.


There are just a few files to localize (of course your announcement of the zones has to be).

“ChannelBusy.gxxx” contains the message “Channel Busy”

“NoAdio.gxxx” contains the message “no Audio”

This files has to be in any codec format (because the caller can calls this XML with different codec).

All other audio files (the announcements itself) must be only in the g711a format.


The interface to the PA-system is not described; an example is the door interface of an IP21 or a 3rd party netspeaker; so basically any device that answers immediately a call and release if the far party releses.


Extract the ZIP file on your PC and configure first here 2 text files:

“SetupDest.text” contains the number of the PA-System (announcement system)

“SetupConf.txt” contains the number of your conference unit.

Now create a directory on the compact flash of your innovaphone PBX and copy all files in.

Note: If you have to install multiple channel because of multiple announcement systems just create different directories on the CF and relative objects in the PBX.

Note: The XML will create also the directory “TMP” and “PLY” for internal usage.


You have to create 3 Voicemail and one BC conference object in the PBX (and the user to interface the PA system).

Assign each XML to one of those objects, just the XML “SeqAnn” must be called from a user (must have a number). The XML “SeqAnnB” and “SeqAnnC” can just have a name.

Important: Add "$_pbxfwd=true" to the path!


Assign a group to the BCconference object and mark it active (asterisk is shown in PBX Objects list). Assign the same group to the XML object “SeqAnnB” and “SeqAnnC”, but not active.

Important: BCconference Object, table “BC-Conference-Config”, option “Disconnect last remaining user: this flag must be on (marked!).

If anything well configured up to now the call flow will be the following: a user calls the VM-object “SeqAnn” and if the XML found an audio for this user it transfer the call to the BCconference unit and release. Calling the BCconference caused a call to the XML “SeqAnnB” and “SeqAnnC”. One of them will transfer the call to the PA-interface while the other one play the message and release. Being now just the PA-interface the last user, the BCconference release this last connection.

For each user must be created a audio file in the “.g711a” format, those files must be stored in a directory called “AUD”. The filename must be “Trackxx.g711a” where xx is the number of the caller.

Example: "Track24.g711" is the file played if the extension 24 calls the service.

If the same message has to be played for more extension just copy the file and rename it.


The XML create a directory “LOG” where all reproduced files are reported.

Example: “2014_09_23_15_33_Track370.g711A” = at date 2014/09/23 time 15: 33 the file Tack370 was played.

Known Problems


  • Download the complete file package of scripts and files described in this article.

Related Articles




Personal tools