Tail Messages
Tail messages are short audio files that are periodically played when a user un-keys (at the "tail" of their transmission). Tail messages can be "squashed" if a user keys up over them. There are two methods that can be configured to setup the playing of tail messages, as shown below.
Standard Tail Message Configuration
tailmessagelist=
Found in rpt.conf
This option allows a comma-separated list of audio files to be specified for the tail message function. The tail messages will rotate from one to the next until the end of the list is reached, at which point the first message in the list will be selected. If no absolute path name is specified, the directory /usr/share/asterisk/sounds/en will be searched for the sound file. The file extension should be omitted.
Sample:
tailmessagelist = welcome,clubmeeting,wx ; rotate 3 tail messages
Tail messages can be "squashed" if a user keys up over them.
File Extensions
Audio files must have extension .gsm, .ulaw, .pcm, or .wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All audio files should be sampled at 8KHz mono.
See the Sound Files page for more information.
Alternate Tail Message Configuration
An extension TAIL can be added to the extensions.conf file under the context [telemetry] or the context defined in telemetry parameter found in rpt.conf. This allows full control of messages via the dialplan.
Note
If the TAIL extension exists, values in tailmessagelist are ignored.
Note
[globals] context and global variables are required to "remember" values across dialplan executions.
Sample #1 - perform same rotating message list as "standard"
[globals]
TAILFILEINDEX=0
[telemetry]
exten => TAIL,1,Set(TAILFILES=custom/yourtailmsg,/tmp/yourothertailmsg) ; add , separated tail files to play
same => n,Set(index=$[${GLOBAL(TAILFILEINDEX)} % ${FIELDQTY(TAILFILES,\,)} + 1])
same => n,Set(file=${CUT(TAILFILES,\,,${index})})
same => n,Playback(${file})
same => n,Set(GLOBAL(TAILFILEINDEX)=$[${TAILFILEINDEX} + 1])
same => n,Hangup()
Sample #2 - rotating message + weather and traffic
[globals]
TAILFILEINDEX=0
[telemetry]
; Say message file
exten => TAIL,1,Set(TAILFILES=custom/yourtailmsg,/tmp/yourothertailmsg) ; add , separated tail files to play
same => n,Set(index=$[${GLOBAL(TAILFILEINDEX)} % ${FIELDQTY(TAILFILES,\,)} + 1])
same => n,Set(file=${CUT(TAILFILES,\,,${index})})
same => n,Playback(${file})
;after playing the tail message, play a weather announcement
same => n,Playback(/tmp/current-weather)
;after playing the weather announcement, play a traffic announcement
same => n,Playback(/tmp/current-traffic)
same => n,Set(GLOBAL(TAILFILEINDEX)=$[${TAILFILEINDEX} + 1])
same => n,Hangup()
Options Common to Both Tail Message Methods
Note
"File Extensions"
ID recording files must have extension .gsm, .ulaw, .pcm, or .wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz mono.
See the Sound Files page for more information.
tailmessagetime=
Found in rpt.conf
This option sets the amount of time in milliseconds between tail messages. Tail Messages are played when a user unkeys on the node input at the point where the hang timer expires, and after the courtesy tone is sent.
Sample:
tailmessagetime = 900000 ; 15 minutes between tail messages
The maximum value is 200000000ms (55.5555 hours).
tailsquashedtime=
Found in rpt.conf
If a tail message is "squashed" by a user keying up over the top of it, a separate time value can be loaded to make the tail message be retried at a shorter time interval than the standard tailmessagetime= option. The tailsquashedtime= option takes a value in milliseconds.
Sample:
tailsquashedtime = 300000 ; 5 minutes
telemetry=
Found in rpt.conf
This option allows you to override the stanza name used for the telemetry stanza in rpt.conf. Telemetry definitions define courtesy tone parameters, and tones sent when certain actions take place on the node.
Sample:
telemetry = telemetry ; name telemetry to 'telemetry'
[telemetry]
...
The default is to have telemetry= point to a stanza called telemetry, and have a common set of commands for all nodes. However, you can have it point to another named stanza, see Settings to Name Other Stanzas for more information.
See the Telemetry Stanza for more information on the options that can be configured.