ALLSTAR TONES

Most amateur radio operators that have used a repeater know what courtesy tones are, it is the tone that you
hear when a transmission is ended. A courtesy tone serves several purposes in both the repeater and Allstar
communities. It tells other users that a transmission has ended and it encourages users to wait at the end of a
transmission before keying up. Thus like its name implies it makes for a courteous break between
transmissions which is especially desirable on Allstar to allow others to break in and additional time for
distant repeaters and nodes to reset their timers. Most repeaters and Allstar nodes have timeouts which are
not reset until the tone is heard.
It is desirable to use courtesy tones in Allstar whether you are using a simplex or duplex node. In the case of
a simplex node a user would have no knowledge they actually reached your node without the response the
courtesy tone gives. If you are using Allstar to control a repeater it would be only natural to use a courtesy
tone but in some cases where a separate repeater controller is used the courtesy tone can be turned off.

The Allstar courtesy tones are defined in /etc/asterisk/rpt.conf in the [telemetry] section and the actual
operation is mapped to the tone functions in the individual node sections of that file. Multiple nodes on a
server can have different tone mappings.
Courtesy tones in Allstar can be turned off on a per node basis by placing the following command in each
nodes definitions at the beginning of the rpt.conf file.
nounkeyct=1
The default if this statement is not present, commented out, or =0 is to allow courtesy tones.
Courtesy tones can be defined as a tone or series of tones, a CW string, or an audio file. Remember that
those on your repeater or node are the only users that will hear your courtesy tone. Courtesy tones do not
propagate onto the network. You also do not want to make a courtesy tone too long in duration. For instance
you would not want it to be your CW ID!
Defining a tone group
Tones are defined in the telemetry section of rpt.conf. Each tone group is defined as a ctX= Where X is an
integer. As many tone as you want can be defined but only those that are mapped in the node section of
rpt.conf are used. Also note that if a courtesy tone is not mapped the default program tones, described below,
are used.
A tone group (ctX=) is a set of 4 comma separated integers defining a tone and formatted as follows:
(frequency1,frequency2,duration,amplitude)
Frequency1 and frequency2 must be a number between 0 and 3000. These specify the tone frequency in Hz.
Duration is the tone on time in milliseconds. Amplitude is the relative volume level of the tone or tones. This
can be from 0 to 8192.
A tone group consisting of zeroes for amplitude and frequency will be sent as a silent period.
Page 1 of 4 Allstar Courtesy Tone howto – WA3DSP – 05/01/20
A single frequency tone can be sent by setting frequency2 to zero.
Multiple definitions can be made each enclosed in parenthesis to define more complex tones.
Note: There must be no spaces between the commas, numbers, or the parenthesis.
When no telemetry definitions are defined in the rpt.conf telemetry section the default program tones are
used. This often leads to confusion when a user says they undefined the tone and it still exists, in that case
the defaults are used. The default tones are –
ct1 – (350,0,100,3072)(500,0,100,3072)(660,0,100,3072)
ct2 – (660,880,150,3072)
ct3 – (440,0,150,3072)
ct4 – (550,0,150,3072)
ct5 – (660,0,150,3072)
ct6 – (880,0,150,3072)
ct7 – (660,440,150,3072)
ct8 – (700,1100,150,3072)
ranger – (1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)
(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,150,0)
remotemon – (1600,0,75,2048)
remotetx – (2000,0,75,2048)(0,0,75,0)(1600,0,75,2048)
cmdmode – (900,904,200,2048)
functcomplete – (1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)
remcomplete – (650,0,100,2048)(0,0,100,0)(650,0,100,2048)(0,0,100,0)(650,0,100,2048)
pfxtone – (350,440,30000,3072)
Here is what the stock BBB and RPi2 telemetry definitions in rpt.conf look like –
[telemetry]
ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)
ct2=|t(660,880,150,2048)
ct3=|t(440,0,150,4096)
ct4=|t(550,0,150,2048)
ct5=|t(660,0,150,2048)
ct6=|t(880,0,150,2048)
ct7=|t(660,440,150,2048)
ct8=|t(700,1100,150,512) ; 2048 amplitude
remotetx=|t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000);
remotemon=|t(1209,0,50,2048)
cmdmode=|t(900,903,200,2048)
functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)
patchup=rpt/callproceeding
patchdown=rpt/callterminated
As an example ct8, which is linked to linkunkeyct and is the tone you hear when a user on a connected
Page 2 of 4 Allstar Courtesy Tone howto – WA3DSP – 05/01/20
network drops carrier, consists of a tone of 700 hertz followed by a tone of 1100 hertz both with a duration
of 150 milliseconds at an amplitude of 512. This is a reduced level from the commented 2048 to make the
tones less obtrusive.
These tones are mapped in each node section of rpt.conf. In the stock configs they are mapped in this way –
unlinkedct=ct2 ; Sent when not connected to another node
remotect=ct3 ; Sent when remote base connected
linkunkeyct=ct8 ; sent when a network user unkeys
So when you are not connected to any other node you would hear the ct2 defined tone and when connected
the ct8 tone when a remote user drops.
Custom tone examples
Here are some example tones that can be defined (courtesy of W2YMM) –
ctX=|t(0,0,640,0)(330,0,50,2048)(495,0,50,2048)(660,0,50,2048) ; YELLOW JACKET
ctX=|t(800,0,100,2048)(800,0,100,2048)(540,0,100,2048) ; SHOOTING STAR
ctX=|t(500,0,100,2048)(500,0,100,2048)(750,0,100,2048) ; COMET
ctX=|t(750,0,125,2048)(808,0,80,2048)(880,1200,80,2048) ; STARDUST
ctX=|t(0,0,640,0)(660,0,50,2048)(500,0,50,2048)(385,0,50,2048) ; HORNET
ctX=|t(1000,0,20,2048)(800,0,20,2048)(600,0,20,2048) ; TUMBLE WEED
ctX=|t(0,0,640,0)(660,0,100,2048)(500,0,100,2048)(385,0,100,2048) ; WASP
ctX=|t(1500,0,20,2048)(1250,0,20,2048)(1000,0,20,2048)(750,0,20,2048)(500,0,20,2048)(2550,0,20,2048);
CHIRPCHOMP
ctX=|t(1000,800,50,2048)(800,0,50,2048)(600,0,50,2048)(1500,0,50,2048) ; MOONBOUNCE
ctX=|t(500,700,100,2048) ; UONK
ctX=|t(1000,0,100,2048) ; BEEP
ctX=|t(440,0,100,2048) ; BOOP
ctX=|t(840,500,100,2048) ; BLOOP
ctX=|t(1000,0,50,2048)(750,0,50,2048)(500,0,50,2048) ; DESCENDING
ctX=|t(500,0,50,2048)(750,0,50,2048)(1000,0,50,2048) ; ASCENDING
ctX=|t(1760,0,30,2048)(0,0,30,0)(1760,0,30,2048)(0,0,30,0)(1760,0,30,2048) ; NEXTEL
ctX=|t(2450,0,200,2048) or ctX=|t(2500,0,100,2048) ; NASA OVER
ctX=|t(2175,0,200,2048)(1950,0,175,2048) ; MOTOROLA TONE REMOTE 1
ctX=|t(2175,0,75,2048)(1950,0,50,2048) ; MOTOROLA TONE REMOTE SHORT
ctX=|t(0,0,640,0)(660,880,100,2048) ; PIANO CHORD
As you can see each definition has a name which roughly describes what it sounds like. Feel free to
experiment and add your own definitions or change these to suit your needs.
To use a tone just copy the entire line into the telemetry section of your rpt.conf and change the ‘X’ in ctX to
the number you want to replace commenting out any former definitions for that tone.
Note that the mapping of remotetx sets the tone you hear when you unkey locally on a connected network
and linkunkeyct is what you hear when a network user unkeys. This is confusing because when you change
linkunkeyct you will only hear the change if someone outside of your node unkeys. Test this with another
Page 3 of 4 Allstar Courtesy Tone howto – WA3DSP – 05/01/20
network user or another node within your LAN.
When you modify the rpt.conf file you must either reread the configuration or restart Allstar.
To reread rpt.conf –
asterisk -rvvv
CLI>rpt reload
CLI>exit
or to restart Allstar at the Linux prompt –
astres.sh
CW courtesy tone
A courtesy tone can also be defined as a CW character or characters. The one that would often be used is a
“K” for end of transmission. To define CE character(s) use the I prefix –
ct8=|iK
This would send the CW “K” dah-dit-dah at the end of a network connected transmission.
Voice courtesy tone
To send a voice file as a courtesy tone use this syntax –
ct8=|/etc/asterisk/local/ct-unkey
This would send the audio file ct-unkey in /etc/asterisk/local at the end of a network connected transmission.
The audio file would be named the format it is filename.ul, gsm, etc. but the extent is never used when
specifying the file.
For detailed information on creating audio files for Allstar see the TTS audio howto at hamvoip.org
When using any of these courtesy tone definitions you should not make the length any longer than
necessary. This would delay the transmitter from unkeying and on a simplex node it would delay your
ability to transmit until it was finishe

Share with