Communication Manager Announcements
Alternate title: an exercise in tedium.
About
Announcements, in Communication Manager (CM) 5 and 6 at least, are simply specially-crafted wav files, stored on NVRAM/flash on either a port-network VAL board or a media-gateway announcement board, which are played back to callers. Announcements do not involve overhead paging, intercom groups, group-paging, or any other type of public communication.
This document is specifically about Aura Communication Manager announcements; it does not address anything about Modular Messaging, Aura Messaging, or any other voicemail or bulletin board system.
Terminology
Announcement: Pre-determined audio (voice or music) that is played to callers.
Integrated announcement: An announcement which is stored as a wav file on an announcement board.
Announcement board: Hardware that holds integrated announcement wav files, and provides ports so that they can be played back to callers.
Audio-group: Functionality such that specific announcements may be administered to a set of announcement boards, rather than one specific announcement board. Permits load balancing, high availability, and potentially reduced trunking/network costs.
Listing announcement boards
CM provides a quick and easy way to see the status of each announcement board, by asking it to display them.
display integrated-annc-boards Page 1 of 13
INTEGRATED ANNOUNCEMENT BOARDS
Brd Tim Num Chk Brd Tim Num Chk
Loc Sfx Rem Rt Annc Sum Loc Sfx Rem Rt Annc Sum
1: 02A05 AP 663 64 71 N/A 16: 023V9 AP 2775 64 1 N/A
2: 003V9 AP 737 64 93 N/A 17: 024V9 AP 2751 64 2 N/A
3: 004V9 AP 2692 64 7 N/A 18: 027V9 AP 2634 64 3 N/A
[... lines omitted for brevity ...]
“Brd Loc” is the board’s physical location identifier (slot number in a port-network, and V9 in a media-gateway).
“Sfx” is the board functionality suffix.
“Tim Rem” is the quantity of remaining seconds that the board is able to physically store at bitrate “Rt”.
“Num Annc” is the quantity of announcements on that board.
Enabling/disabling announcement boards on media-gateways
In order to use a media-gateway announcement board, it must be enabled for use.
Attempting to assign an announcement to an announcement-board that has not been enabled will result in error message "010v9 " is an invalid entry; please press HELP
.
If you don’t know whether or not an announcement-board has been enabled, use display integrated-annc-boards
(as mentioned above).
To enable an announcement board, it’s one simple command:
enable announcement-board 10v9
[... blank lines omitted ...]
Command successfully completed
It’s also safe to attempt to re-enable it while it’s already enabled:
enable announcement-board 10v9
[... blank lines omitted ...]
This announcement board is already active
Of course, you can also disable an announcement-board on a media-gateway. You must disable the announcement-board on a media-gateway immediately before you intend to remove the media-gateway, for example.
==Ensure that you manually re-assign or delete all announcements and files from an announcement-board prior to disabling it, if you do not intend to immediately re-enable it.==
disable announcement-board 10v9
[... blank lines omitted ...]
Command successfully completed
You can confirm that the board is disabled when it disappears from the display integrated-annc-boards
result.
About audio groups
CM implements audio-groups so that a single announcement can be stored on multiple announcement boards. The advantage to this is so that announcements are available in many locations, so calls have less cause to traverse trunks/networks solely in order to play an announcement. It also provides for limited high-availability, in that an announcement-board can be made unavailable temporarily, and announcements assigned to groups that the announcement-board was a member of will still be available.
You can see a list of audio-groups that are administered in your system:
list audio-group
AUDIO GROUPS
Group Name Number of Sources
1 Everywhere 12
2 CRTH 2
Command successfully completed
Adding/changing audio-groups is as simple as adding or removing board locations from the list of audio sources on the “change audio-group” screen. ==Take caution: adding and removing announcement boards from audio-groups does not alter file management in any manner. You MUST manually transfer files such that all announcements that are administered to an audio-group are actually identical, file-wise, among all of the boards in that audio-group.==
change audio-group 2 Page 1 of 5
AUDIO GROUP 2
Group Name: CRTH
AUDIO SOURCE LOCATION
1: 003V9 16: 31: 46: 61: 76:
2: 006V9 17: 32: 47: 62: 77:
3: 18: 33: 48: 63: 78:
4: 19: 34: 49: 64: 79:
5: 20: 35: 50: 65: 80:
6: 21: 36: 51: 66: 81:
7: 22: 37: 52: 67: 82:
8: 23: 38: 53: 68: 83:
9: 24: 39: 54: 69: 84:
10: 25: 40: 55: 70: 85:
11: 26: 41: 56: 71: 86:
12: 27: 42: 57: 72: 87:
13: 28: 43: 58: 73: 88:
14: 29: 44: 59: 74: 89:
15: 30: 45: 60: 75: 90:
Listing integrated announcements on boards
This list could be used to audit the files that are present on a board, as well as the assignment mechanism (if it’s assigned via audio-group, a group number is indicated).
list integrated-annc-boards 6v9 Page 1
INTEGRATED ANNOUNCEMENTS
Board Location: 006V9 Time Remaining at 64Kbps: 2211
Internal Group Announcement Length Size
Number Number Extension Name (Sec) (Kb)
NA 2 6990 0 1 10
NA 2 6991 1 1 8
NA 2 6988 10x10 4 32
[...]
NA 2 3461 vm-transfer 5 40
NA 1 3441 moh_default 17 134
Listing all announcements
list announcement Page 1
ANNOUNCEMENTS/AUDIO SOURCES
Announcement Source Num of
Extension Type Name Pt/Bd/Grp Files
2994 integrated ict-non-incoming G2 2
2995 integrated intercept-forward-part3 G2 2
2996 integrated intercept-forward-part1 G2 2
2997 integrated intercept-part3 G2 2
2998 integrated intercept-part2 G2 2
2999 integrated intercept-part1 G2 2
3000 integrated intercept-centigram G2 2
[...]
press CANCEL to quit -- press NEXT PAGE to continue
Creating an announcement
Take a look at the add announcement screen:
add announcement 1550 Page 1 of 1
ANNOUNCEMENTS/AUDIO SOURCES
Extension: 1550 COR: 1
Annc Name: example-announcement TN: 1
Annc Type: integrated Queue? y
Group/Board: 006v9
Protected? n Rate: 64
The “Extension” field is display-only; it’s calculated based on your add command. Your add command must specify an available extension (just like a station would be assigned); this example uses extension 1550. In reality, I have a large group of extensions set aside for announcement use.
“Annc Name” is the name of the wav file on disk. The maximum length is 27 characters. I recommend making the name all lower-case alphanumeric, and with no spaces or special characters except hyphen and underscore. This name must be unique on a per-board basis, and I very strongly recommend that it be unique system-wide. If you attempt to create an announcement with a conflicting name, you’ll receive the message Announcement name already in use on this board
.
“Annc Type”: There are numerous announcement types available, but I’m only going to pay attention to integrated announcements for purposes of this document. There are three types of integrated announcements: “integrated”, “integ-mus”, and “integ-rep”. “Integrated” announcements are the default and most common type of announcement. “Integ-rep” announcements are identical to “integrated” announcements, with the difference being that the announcement repeats indefinitely, stopping only when the call terminates, a vector causes it to stop, or the caller presses a key during digit collection. “Integ-mus” announcements are strictly for music (on hold or en queue).
“Group/Board”: Enter either the announcement board location or ‘G’ and the audio-group number. ==Take caution: If you assign an announcement to an audio-group, you cannot use a console station to manage the announcement file. You MUST manually transfer files such that all announcements that are administered to an audio-group are actually identical, file-wise, among all of the boards in that audio-group.==
“COR” (Class of Restriction) and “TN” (Tenant) are just that, and you will hopefully already know what values you should use for them.
“Queue” defines how callers are connected to the announcement. The possible values are “y”, “n”, and “b”. When set to “y”, the caller is assigned an audio port, and the announcement is play from the beginning. If no audio ports are available, the caller will queue for the next available port. When set to “n”, the announcement will be played from the beginning, just as it would with “y”, except that if there are no audio ports available, the caller will not enter a queue; the announcement will simply be skipped. When set to “b”, audio ports are multiplexed, and the caller will be joined to a currently playing port for that announcement. This means that the announcement will not necessarily start playing at the beginning – the caller can be joined part-way through.
If your announcement type is “integ-mus”, your queue configuration is forced to “b”. You can choose any queue configuration for “integrated” and “integ-rep” announcements.
“Rate” defines the bitrate for the wav file. Leave it at “64” unless you have very good reason to change it.
Submit the screen; if successful, you’ll see Command successfully completed
. Now you’re ready to either record the announcement (if it’s assigned to a specific board, rather than group) or upload a pre-recorded announcement (regardless).
Recording an announcement
To record an announcement that has been assigned to a specific announcement board (not an audio-group):
- At a station holding console privileges, dial #0.
- When you hear dialtone, dial the extension of the announcement to record.
- You’ll hear dialtone again. Press 1 to begin recording (and then press # when you’re done recording). Press 2 to review the recorded announcement. Press 3 to delete the announcement file. Repeat this step as necessary; you will be returned to this dialtone after each option is complete.
- Hang up when you’re done.
Deleting an announcement
To delete an announcement, simply execute “remove announcement ”:
remove announcement 1550 Page 1 of 1
ANNOUNCEMENTS/AUDIO SOURCES
Extension: 1550 COR: 1
Annc Name: example-announcement TN: 1
Annc Type: integrated Queue? y
Group/Board: 006V9
Protected? n Rate: 64
Submit the screen; if successful, you’ll see Command successfully completed
. Note that this only deletes the announcement translations; the wav files on-disk are not deleted. See the “Deleting a file” section.
Changing an announcement’s group/board
To change which group/board an announcement is assigned to, first copy the announcement file from the source board to the destination board (see separate instructions below), run “change announcement ”, and change the group/board field:
change announcement 1550
ANNOUNCEMENTS/AUDIO SOURCES
Extension: 1550 COR: 1
Annc Name: example-announcement TN: 1
Annc Type: integrated Queue? y
Group/Board: 003V9
Protected? n Rate: 64
(submit)
Changing the board location does not move the announcement file
(submit)
WARNING: Requires announcement file with changed name to play announcement
(submit)
Command successfully completed
You have to submit the screen several times, because it displays warnings indicating that the announcement file will not be moved. Once successful, you’ll see Command successfully completed
. You must have already copied the announcement file to the destination announcement board. If you haven’t, you’ll instead receive this message:
WARNING: Unrecorded announcement selected or board not ready
Moving all of a board’s announcements
If you need to move all of a board’s announcements – say if you’re replacing a VAL board or media gateway, or opening or closing a location – you can use change integ-annc-brd-loc
. You must copy all of the announcement files from the source board to the destination board manually: this command only updates translations; it doesn’t touch the files.
change integ-annc-brd-loc Page 1 of 1
CHANGE INTEGRATED ANNOUNCEMENT TRANSLATIONS
Change all board location translations from board: 2a05 to board: 3v9
Changing board locations using this command will change
all currently administered "from" board locations on the
ANNOUNCEMENTS/AUDIO SOURCES and AUDIO GROUP screens
to the "to" board location
Once this command has completed (it should only take a few seconds), make sure that you call all of the announcements on the destination board to ensure that there is no corruption.
Seeing where an announcement is being used
list usage extension 1550
LIST USAGE REPORT
Used By
Announcement
Vector Vector Number 3
Step 2
Here, you can see that extension 1550 is an announcement, and that announcement is being used in vector 3 at step 2.
Deleting a file
There are two ways to delete a file: either from a station holding console privileges (if the announcement is still administered in CM, and the announcement is administered to a single announcement board rather than an audio-group), and via file transfer.
To delete a file from a station holding console privileges:
- Dial #0.
- When you hear dialtone, dial the extension of the announcement to be deleted.
- You’ll hear dialtone again. Press 3 to delete the announcement file.
- Hang up.
To delete a file via file transfer, see the “Transferring files” section.
Transferring files
How files are transferred depends on the type of announcement board.
Determining your hardware
Use “display integrated-annc-boards”, as mentioned previously, to display a list of your announcement boards. If the board you want to use ends in “V9”, it is a media-gateway (otherwise it’s a circuit pack on a port-network).
To determine the model and IP address of the media-gateway (because you’ll need it later), use “display media-gateway”:
display media-gateway 6 Page 1 of 2
MEDIA GATEWAY 6
Type: g450
[...]
Registered? y
FW Version/HW Vintage: 36 .9 .0 /1
MGP IPV4 Address: 10.2.3.4
[...]
Make a note of the “Type” (in this case ‘g450’) and “MGP IPV4 Address” (in this case ‘10.2.3.4’).
To determine the model of a circuit-pack:
list configuration board 2a05
SYSTEM CONFIGURATION
Board Assigned Ports
Number Board Type Code Vintage u=unassigned t=tti p=psa
02A05 VAL-ANNOUNCEMENT TN2501AP HW16 FW023 01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34
Make a note of the model code (in this case ‘TN2501AP’).
To determine the IP address of a circuit-pack:
display ip-interface 2a05 Page 1 of 2
IP INTERFACES
Type: VAL
Slot: 02A05
Code/Suffix: TN2501
Enable Interface? y
[...]
IPV4 PARAMETERS
Node Name: fcjfsval2a05 IP Address: 10.2.1.5
[...]
Make a note of the IPv4 IP Address (in this case ‘10.2.1.5’).
Transferring files via (S)FTP
To transfer files to/from an announcement board using (S)FTP, you must first enable file transfers for that board:
enable filexfer Page 1 of 1
ENABLE FILE TRANSFER
Login: drew
Password:
Reenter Password:
Secure? n
Board address: 6v9
Command successfully completed
This screen defines the FTP credentials that you’ll use for this board. The login and password defined here is not related to your CM username or password, or any other username or password, in any way.
The “Secure?” field defines whether the file transfer will use SFTP on port 22 (if it’s set to “y”) or FTP on port 21 (if it’s set to “n”). G430/G450 does not support SFTP via this mechanism, so “Secure?” must be set to “n” if you are using that type of announcement board. Circuit-pack TN2501AP does support SFTP, so “Secure?” should be set to “y”. I recommend always attempting to set “Secure?” to “y”; if the hardware doesn’t support SFTP, CM will prevent you from submitting the form.
Now you’re ready to transfer audio files to/from the board. Using your preferred (S)FTP client, open a connection to the IP address you noted earlier, on port 21 for FTP or 22 for SFTP, with the credentials you just defined. Your default remote path will be “/annc”. Filenames must exactly match announcement names, including case sensitivity.
When you’re done transferring files to/from the board, disable access to it:
disable filexfer board 006V9
[... blank lines omitted ...]
Command successfully completed
If you fail to disable file transfer for a specific board, it will remain enabled until the next system reset, board reset, board reseat, firmware update, power cycle, or any other event that interrupts board operation.
G430/G450 via SSH/CLI
G430 and G450 additionally supports announcement file management via command-line.
Open a connection to the desired media-gateway, using your root credentials:
$ ssh root@10.2.3.4
There are numerous commands you can use to manage announcement files from the command line:
# show announcements files
ID File Description Size (Bytes) Date
---- ------------------ ------------------ ------------ -------------------
101 moh_default.wav announcement file 137567 2013-11-20,11:31:48
102 music_general.wav announcement file 137567 2013-11-20,11:31:52
[... many lines removed for brevity ...]
Nv-Ram:
Total bytes used : 5095936
Total bytes free : 17695744
Total bytes capacity (fixed) : 22791680
To rename an existing announcement-file:
# rename announcement-file ?
Rename announcement-file commands:
---------------------------------------------------------------------------
Syntax : rename announcement-file <source-filename> <destination-filename>
<source-filename> : source file name
<destination-filename> : destination file name
To erase an existing announcement-file:
# erase announcement-file ?
Erase announcement-file commands:
---------------------------------------------------------------------------
Syntax : erase announcement-file <source-filename>
<source-filename> : source file name
To download an announcement-file from an FTP server to the integrated announcement board:
# copy ftp announcement-file ?
Copy ftp announcement-file commands:
---------------------------------------------------------------------------
Syntax : copy ftp announcement-file <source-filename> <ip> [<destination-filename>]
<source-filename> : source file name (full path)
<ip> : the ip address of the host
<destination-filename> : destination file name
Examples:
copy ftp announcement-file ann.wav 198.87.134.153 ann1234.wav
copy ftp announcement-file ann.wav 2001:db8::c657:8699 ann1234.wav
copy ftp announcement-file ann.wav my.ftp.server ann1234.wav
To download an announcement-file from an SCP server to the integrated announcement board:
# copy scp announcement-file ?
Copy scp announcement-file commands:
---------------------------------------------------------------------------
Syntax : copy scp announcement-file <source-filename> <ip> [<destination-filename>]
<source-filename> : source file name (full path)
<ip> : the ip address of the host
<destination-filename> : destination file name
Examples:
copy scp announcement-file ann.wav 198.87.134.153 ann1234.wav
copy scp announcement-file ann.wav 2001:db8::c657:8699 ann1234.wav
copy scp announcement-file ann.wav my.scp.server ann1234.wav
To download an announcement-file from a USB flash drive that is currently plugged into the media-gateway:
# copy usb announcement-file ?
Copy usb announcement-file commands:
---------------------------------------------------------------------------
Syntax : copy usb announcement-file <source-usb-device> <source-filename> [<destination-filename>]
<source-usb-device> - source usb-device logical name
<source-filename> - source file name (full path)
<destination-filename> - destination file name
Example: copy usb announcement-file usbdevice0 dir1/a1.wav
To view the status of the ongoing announcement-file download:
# show download announcement-file status
Can not get name of the downloaded file.
Module #9
==============================
Module : 9
Source file : (null)
Destination file :
Host : NULL
Running state : Idle
Failure display : noError
Last warning : noWarnings
Bytes downloaded : 0
The above example is representative of the result you would receive if there is no download in progress.
To upload an announcement-file to an FTP server:
# copy announcement-file ftp ?
Copy announcement-file ftp commands:
---------------------------------------------------------------------------
Syntax : copy announcement-file ftp <source-filename> <ip> [<destination-filename>]
<source-filename> : source file name
<ip> : the ip address of the host
<destination-filename> : destination file name
Examples:
copy announcement-file ftp ann.wav 198.87.134.153 ann1234.wav
copy announcement-file ftp ann.wav 2001:db8::c657:8699 ann1234.wav
copy announcement-file ftp ann.wav my.ftp.server ann1234.wav
To upload an announcement-file to an SCP server:
# copy announcement-file scp ?
Copy announcement-file scp commands:
---------------------------------------------------------------------------
Syntax : copy announcement-file scp <source-filename> <ip> [<destination-filename>]
<source-filename> : source file name
<ip> : the ip address of the host
<destination-filename> : destination file name
Examples:
copy announcement-file scp ann.wav 198.87.134.153 ann1234.wav
copy announcement-file scp ann.wav 2001:db8::c657:8699 ann1234.wav
copy announcement-file scp ann.wav my.scp.server ann1234.wav
To upload an announcement-file to a USB flash drive that is currently plugged into the media-gateway:
# copy announcement-file usb ?
Copy announcement-file usb commands:
---------------------------------------------------------------------------
Syntax : copy announcement-file usb <source-filename> <dest-usb-device> [<destination-filename>]
<source-filename> : source file name
<dest-usb-device> : destination usb-device logical name
<destination-filename> : destination file name
Example: copy announcement-file usb a1.wav usbdevice0 /dir1/a1.wav
To view the status of the ongoing announcement-file upload:
# show upload announcement-file status
Can not get name of the uploaded file.
Module #9
==============================
Module : 9
Source file :
Destination file : (null)
Host : NULL
Running state : Idle
Failure display : noError
Last warning : noWarnings
The above example is representative of the result you would receive if there is no upload in progress.
Converting other audio files into announcements
There’s nothing magical about announcement files - they’re just wav files that have been saved with specific settings:
- CCITT A-Law or CCITT m-Law (mu-Law) companding format (do not use PCM)
- 8-kHz sample rate
- 8-bit resolution (bits per sample)
- Mono (channels = 1)
Many audio manipulation applications are available which are capable of saving compliant files. Two of the most popular are Adobe Audition and Audacity.
Audacity
Steps to transform the audio:
- At the bottom left of the screen, the Project Rate (Hz) is configured. Change it to 8000.
- Tracks -> Stereo Track to Mono (accept defaults)
- Effect -> Truncate Silence (accept defaults)
- Effect -> Compressor (accept defaults)
If you’ll be doing this repeatedly, you can configure a “chain” on the Audacity file menu (Edit Chains) that will cause Audacity to repeat these steps when you tell it to apply the configured chain.
When you use the ‘save’ functionality in Audacity, you’re actually saving a project file, which doesn’t help us at all. What you actually want to do is export the audio using the correct encoding:
- File -> Export Audio
- Format: Other uncompressed files
- Header = WAV (Microsoft)
- Encoding = U-Law