theLinkBox Command Help

This is the command reference for the theLinkBox repeater controller and linking software theLinkBox a.k.a. TLB. These may be sent to the tlb server via the tlbcmd program or in chat text after authenticating. This document content comes from the tlb README and source files.

Contents

#############
User Commands
#############

A few commands are available to users that are unique to theBridge. Commands are entered on the message line in the same way as a text message, by prepending a '.' (period). Commands are not forwarded to other conference users so they are non-intrusive to normal operations. The command must begin at the first character on the line.

Commands may be abbreviated to the shortest length that is still unique. For example ".stat", ".sta", and ".st" are valid abbreviations for the ".stats" command, but not ".s" since there are two commands that start with the letter 's' (.stats and .sysop).

".about <callsign>"

Show information about specified station, as provided by that station's EchoLink information file.

".help" and ".?"

This command does much as you would guess, it lists the available commands.

".list" (not available on all conferences)

This command lists any bulletins or recorded nets that may be available to be played back.

".lookup <callsign>"

This commands displays the node number, Qth and busy status for a specified station. The station must be online or have been online recently for the information to be available.

".play <bulletin #>", ".stop" (not available on all conferences)

This command starts playing the selected bulletin or recording. Any text messages that were sent during a net are also replayed sent. While you are in playback mode you will not be listed on the station list of theBridge and you will not receive any live conference traffic, voice or text. To end the playback enter the .stop command or simply disconnect.

".showip"

This command dumps the user list with IP addresses. Format: <callsign> <tab> <IP address> <tab> <'S' | 'R' | 'E'><eol> The list is terminate by a blank line. The final character indicates the users protocol, SpeakFreely, RTP, or EchoLink. The callsign field will also contain the user's IP address if the protocol does not provide a callsign.

".stats"

This commands displays interesting (to some) technical statistics about the operation of the conference bridge such as when the maximum number of users were connected.

".lurk" and ".delurk" (not available on all conferences)

The EchoLink system is very different than "real" radio in one important way... everyone knows who is listening. Sometimes you might only want to monitor a channel, but not get involved in a conversation. This is particularly useful for nets when you want to listen, but don't have anything to contribute. The ".lurk" command allow you to suppress the listing of your callsign as an active member of the conference, but you will still be able to listen. You can rejoin the conference at any time by using the ".delurk" command or by simply transmitting.

".uptime"

This command displays the amount of time theBridge has been running since it was loaded. I'll admit it, the primary purpose is for bragging rights... "my conference bridge has been up for ..."

".version"

This command displays the version of theBridge software and the type of operating system it's running on.

".test" (not available on all conferences)

This command causes theBridge to record your next transmission and then play it back to you when you stop transmitting. This allows you to test your setup and adjust audio levels etc without assistance. Audio quality is a very subjective thing, it's always best to hear it yourself.

Note: The UDP protocol used for conferencing is not 100% reliable, the ".test" command will send you the response "Your next transmission will be recorded and played back." to indicate that your command was received. Please do *NOT* make a long test transmission unless you receive the response! Otherwise your test transmission will be sent live over the conference bridge.

##############
Sysop Commands
##############

".sysop <password>"

None of the sysop commands are available until you identify yourself as an sysop by using the .sysop command and supplying the sysop's password. Additionally sysop's are allowed to transmit during the pausetime to give them slightly higher priority on the channel than normal users.

When using this command please *make* sure that you enter the leading '.' and start the command at the beginning of the line, otherwise you may send the sysop's password to everyone logged into the conference!

Once you have logged in successfully you will be greeted with a welcome message. You will remain logged in as an sysop only as long as you are connected to theBridge, if you disconnect you will have to login again.

WARNING: Please do not use a "valuable" password for the administrator password, it is sent in clear text via UDP to the RTP port. i.e. it can be sniffed.

".admins"

This command simply lists the users who are logged in as administrators or sysops. This is a good way of verifying that you are logged in as an sysop before issuing commands. It's also a good way to determine if it's time to change the passwords (grin).

".busy [on | off | status]"

This command controls the conference's busy status. The conference's busy status is listed in the station directory, additionally connection requests from new stations are refused when the conference is busy. The status option allows a conference to indicate that it is busy to the directory servers, but actually continue to accept connections for special purposes.

".connect [-a] [-f] [-m] [-n] [-p <port#>] [-s] [-r] [-7] <callsign/ip addr> [description]"
".disconnect <station> | ALL | LAST | ."

These commands allow conference rooms to be linked to increase the capacity beyond what is available on a single server. The .connect command will accept either a station callsign, conference ID, or IP address.

Example: .connect -p 2074 -s yourhost.net

The .connect command establishes a permanent connection between until a .disconnect command is entered by an administrator (of either conference). If the connection fails the connect will be reestablished automatically when the path returns.

When theBridge is linked to another theBridge running version 0.33 or later then user's callsign and name will be displayed on the linked conference next to the conference's callsign in the station list.

The .connect command can actually be used to connect to any station it is not restricted to conferences. If a connection is established to an user station he will be able to disconnect using the usual method, this is equivalent to an administrator entering the .disconnect command.

The -a option specifies use ADPCM codec (RTP and Speak Freely protocols only)

The -f option specifies that a connection started in the full duplex mode.

The -m option specifies that a connection started in the .monitor mode. The ".monitor disable" command can be used to set the connection to full transceive.

The -n option specifies a nailed up connection (not disconnected by disconnect all)

The -p option specifies the network port to use.

The -s option specifies that the connnection should be made using the speak freely protocol rather than the default EchoLink protocol. The speak freely protocol is provided for compatability with other applications.

The -r option specifies that the connection should be made using the RTP protocol rather than the default EchoLink protocol. The RTP protocol is the prefered protocol for anything other than EchoLink connections.

The -u option specifies use uLaw codec (RTP and Speak Freely protocols only)

The -7 option specifies use G.726 codec (RTP protocols only)

The "ALL" option to the ".disconnect" command disconnects all users, not just users who were connected to using the ".connect" command.

The "LAST" option to the ".disconnect" just disconnects the last station that connected leaving any other users connected.

The station that's currently talking may be specified by a dot "." character to save typing the entire callsign.

The link command is used to connect nodes (RF ports and VoIP connections) together. Each linkage is bidirectional unless the -m (monitor) switch is used. For example if the system is a remote base and port "440" is it's input and port "144" is the remote 2 meter radio the command ".link -m 440 144" would put the remote base into 2 meter monitor mode. i.e. traffic on 2 meters would be repeated to 440, but traffic on 440 would not be repeated to 2 meters. The command ".link 440 144" would put the remote base into 2 meter transceive.

The -p command line switch specifies a permanent link. Permanent links are not unlinked by .unlink all, .unlink rf, .unlink voip, or .unlink <port> commands. The link can only be removed by an explicit .unlink command that specifies both ports.

The link command can also be used to link VoIP connections to RF ports. For example to link an *EXISTING* VoIP connection from W1AW to the "440" port: .link w1aw 440 (or .link 440 w1aw). VoIP connections are created when a remote node connects to our node or by use of the .connect command.

To generate a list of current port linkages run the .link command without arguments.

The unlink command is (much a you might expect) the reverse of the .link command, it desolves links established with the .link command. The "all" argument removes all links between both ports and VoIP connections. The "rf" argument removes all links between RF ports, but leaves links between ports and Voip connections intact. The "voip" argument removes all links between ports and Voip connects, but leaves links between ports intact. If the argument is a single node name then all links to that node are desolved. Finally specific links can be desolved by specifing both the destination and source names.

.port [<port name>]

The .port command selects the active port for commands such as .id, .say, .tonegen, etc. When run without arguments the .port lists all ports with current port status. For example:

tlb> port
Available ports:
  144 Rx
> 440 Tx
  WR7NV-R
tlb>

This shows that port "144" is receiving a signal and the port "440" is transmitting. Additionally the '>' character displayed in front of the 440 port indicates that it is the port currently selected for control.

".lurk disable" ".lurk enable" ".lurk <callsign>" ".delurk <callsign>"

Lurking is one of my personal favorite capabilities of theBridge, infact it was the first command. However not everyone shares my opinion. The ability to disable lurking has been the most requested feature. The disable option disables (duh!) the ability for stations to "lurk", the enable option restores the capability. By default lurking is enabled. Stations attempting to lurk when lurking is disabled will be sent a messages informing them that the lurking feature has been disabled.

Sysops can set a specified station's lurking mode. This is useful to restore a stations state after theBridge has been (quickly) rebooted.

".message [message text]"

This command may be used by the scripting interface to send text messages to conference users. Unlike the normal EchoLink text mode messages received from the command port are assumed to be commands and need not be prefixed by a period.

Sysops and admins can prevent individual chat message from being sent to normal users by starting the message with a semicolon (';'). Sysops and admins can also prevent individual chat message from being sent to normal users and sysops by starting the message with a comma (','). Neither of these characters have any special significance when sent by a normal user.

".monitor [disable] <callsign>"

This command allows you to put a station in to a talk only mode. This command is basically the opposite of the ".mute" command, the monitored client can talk, but not listen. This is useful in certain (unusual) situations such as the recent shuttle disaster when you want to listen to a conference, but while ensuring local traffic does not interrupt it.

The disable option is used to return a station to full transceive operation.

".mute"
".mute <-p> ."
".mute <callsign> [<callsign> ...]"
".unmute <-p> <callsign> [<callsign...]"

This command allows you to put a station into a listen only mode. This command is particularly useful during nets to prevent repeater IDs, courtesy tones, and confused users from interrupting a net out of turn. The .mute command takes effect immediately and remains in effect as long as the station remains logged in or until it is canceled by the .unmute command.

The "-p" option causes the station to be persistantly muted. Normally, if a muted station disconnects, then connects again, it will no longer be muted. The "-p" option causes the station to be muted presistantly everytime it connects.

The station that's currently talking may be specified by a dot "." character to save typing the entire callsign.

If the .mute command is given without an argument a list of stations that are currently muted is displayed.

".mute -r" ".mute -c" ".mute -u" ".mute -s" ".mute -t" ".mute -a" ".mute -e"
".unmute -r" ".unmute -c" ".unmute -u" ".unmute -s" ".unmute -t" ".unmute -a"
".unmute -e"

These variations of the .mute and .unmute commands affect a group of stations at a time and additionally put the conference into a mode were new connections from stations of that type are automatically muted as well. These commands are primarily of use for controlling large nets such as the N2LEN 9/11 net.

Where the various suffixes mean:

-a: All users (except yourself)
-c: tbd conferences
-e: Echolink conferences
-r: RF users (-R and -L stations)
-s: Sysops and Admins
-t: Station talking
-u: PC users

You can use more than one option in a command so if you want to mute both RF users and PC users, but not conferences and sysops as well as a specific conference you could enter" ".mute -ru *echotest*"

The station that is currently talking are *NOT* muted by these commands unless the "t" flag is included.

These are additive, if you mute conferences in one command and then mute rf users in the next command both remain muted.

".mute chat" ".unmute chat"

This commands allows a sysop to control if text messages are sent to him. The command affects the sysop issuing the command only, text messages continue to be forwarded to other users. This command is useful for net control stations who are trying to read the user list while a lively off topic QSO is going on the background in text mode.

".pausetime" ".pausetime <time constant>"

This command allows the configuration variable PauseTime to be adjusted as needed during normal operation. The PauseTime variable sets the minimum gap between transmissions on the conference. Stations who jump in before the minimum time has elapsed will be sent a warning message and will not be repeated until the minimum pause time has elapsed.

This parameter may help prevent repeater "bouncing" that occurs when multiple repeaters or link stations are logged into a conference room with poor operating parameters. It will also ensure that there's a break between transmissions to allow simplex links to leave the conference.

".play4 [-f] [-i] <filename> [displayed name]"

This command allows a recording file to be played all users. When the file is played for all users an optional description may be entered which will appear on the station list as the "station" talking. If the description is omitted the "station" will be shown as "QST". The timing of the playback is controlled by the same configuration file variables as the .play command.

Normally playback will begin as soon as the conference free (no one is talking), -f and -i flags are used to modify this behavour. The -f flag can be used to force the playback to begin immediately even if someone is talking. The -i flag can be used to force the playback to wait for IdleTimeout seconds of inactivity before the bulletin playback begins.

These flags provide the ability for scripts to do things such as automatically playback a net at a particular while warning any users before hand to allow them time to finish their QSOs. For example a couple of warning anouncements could be played 10 mintutes, 5 minutes and one minute before the net and then the bulletin could be played exactly on time using the -f command.

A less driven conference operator might simply use the -i command to play the bulletin as soon as the conference becomes free after the appointed time. This would allow QSOs to finish naturally before begining a playback.

".play4 -u <user> <filename>"

This variation of play4 command allows a recording to be played for a specifc user.

".users" ".users ?" ".users <-b> <-c> <-t>"

The .users command lists the callsign of all conference users in order of login along with their attributes. This command is particularly useful for net control operators by enabling them to see more stations than will fit in the EchoLink client's info window.

-b - suppresses display of user attributes.
-c - displays the amount of time each user has been connected.
-t - displays time since the user last transmitted.

The meaning of the attribute characters may be display by the ".user ?" command. They are as follows:

Alogged in as an administrator.
aADPCM CODEC
Ba linked theBridge conference.
Ca linked conference other than theBridge.
cchat text suppressed
Fplaying a file (using the .play or .test commands).
fFull duplex connection
KKicked.
Llurker.
Maudio and text are muted.
maudio is muted.
Pa permanent connection (connected by a .connect command).
Rreceive only (monitored).
Slogged in as a sysop.
Tcurrently Talking.
uuLaw CODEC
xnot currently active in the conference.
*using Asterisk protocol.
0using Speak Freely protocol.
1using RTP protocol.
!an old version of theBridge which sent SDES packets containing a private "txt" extension field.

".belchfilter" ".belchfilter <time constant>"

This command allows the configuration variable BelchTime to be adjusted as needed during normal operation. The BelchTime variable sets the minimum transmission time for -R and -L station before their audio is passed.

This parameter may help prevent repeater "bouncing" that occurs when multiple repeaters or link stations are logged into a conference room with poor operating parameters. It can also help prevent repeater "kurchunkers" from upsetting the peace.

######################
Administrator Commands
######################

".admin <password>"

None of the administrator commands are available until you identify yourself as an administrator by using the .admin command and supplying the administrator's password. When using this command please *make* sure that you enter the leading '.' and start the command at the beginning of the line, otherwise you may send the administrator's password to everyone logged into the conference!

Once you have logged in successfully you will be greeted with a welcome message. You will remain logged in as an administrator only as long as you are connected to theBridge, if you disconnect you will have to login again.

An administrator automatically has access to all sysop commands, there is no need to login as a sysop if you are logged in as a administrator.

Sysops are typically net control operators, administrator's are typically node owners.

".allow add <callsign> [<IP Address / hostname>]"

This command adds a new station to the access control list. This command is typically used to add stations to private conferences.

".allow delete <callsign>"

This command removes a station from the access control list.

".allow list"

This command displays the stations that are allowed access by the access control list.

".dns list"

This commands displays the entries in the domain name system (DNS) cache. The DNS system converts hostnames such as nawest.echolink.org into IP addresses.

".dns refresh"

This command forces the contents of the DNS cache to be updated. By default the DNS cache is updated every 15 minutes. Forcing an update can help correct problems caused by hostnames entries in the ACL which are tied to dynamic IP addresses.

".quote <command line>"

The quote command allows a sysop to send a command to all linked conferences. For example a sysop on one conference can mute a station on another conference by entering ".quote .mute w1abc". Note that since the command is set to *all* linked conferences an error message "w1abc not found" will be generated by

".quickexit"

This command caused theBridge to exit without logging out of the EchoLink directory servers. This may be useful when there are communications problems or under other special situations. Normally the ".shutdown" command should be used instead. This command was formally known as .quit, but that caused accidents.

".record <filename>" ".record stop"

This command starts recording all conference bridge traffic to disk for latter playback. Traffic recorded includes all conference audio *and* text messages. Test sessions and commands sent to theBridge are not recorded. The recording file grows at approximately 129000 bytes a minute while someone is talking. The gaps between transmissions are not recorded and do not consume disk space. To end the recording enter ".record stop". Make a note of the filename you use when recording, you will need it later. Recordings are not available for playback by users until you explicitly add them to the list of available bulletins.

".refresh"

This command causes theBridge to download an update to the in memory (and on disk if enabled) station list from the Echolink directory server.

".rehash"

This command causes theBridge to re-read it's configuration file. This allows changes to be made to the configuration without having to restart the server.

".set <variable>" ".set <variable> = <value>"

This command allows the administrator to view and set configuration file variables interactively. Most, but not all, variables may be set by this command. Since the configuration file is not updated by this command any changes will be lost when theBridge is restarted.

".shutdown"

This command causes theBridge to logout of the EchoLink directory servers and then exit.

".list add <filename> <description>"

Once a recording has been made it may be made available for user playback by adding it to the bulletin list. Users select bulletins by description, they never see the filename. This provides the ability to change the file that is played back without changing the description. For example a description of "Last week's net" could be updated weekly to point to a new recording while keeping an archive of older nets.

".list"

When in logged in as an administrator the .list command shows the filename corresponding to the description at the beginning of the line. This is useful for those of us with short memories when using the next command.

".list delete <filename>"

As you might expect this removes a bulletin from the list.

".kick <callsign>"

This command terminates a users connection immediately. This command is useful when you want to disconnect a station completely. For example a link or repeater station has been connected to the conference for a long period of time and appears to be unattended and a long net is about to start on the conference. It might be considered a courtesy to dump such connections rather than sending tons of undesired traffic out on the airwaves. The .kick command has no lasting effect, the kicked station is free to reconnect immediately after being kicked. In our example this would indicate an active interest in the net from someone associated with the link or repeater.

".ban add <callsign> [IP Address/HostName]"

If the previous commands were insufficient to correct a problem then the .ban command can be used to add a station to the banned list. Unlike the previous commands the banned list is persistent across connections as well as system reboots. A banned station cannot even connect to theBridge. Note: Stations are banned independently of station type, i.e. if W1AW is banned (what not a league supporter?); W1AW-L and W1AW-R are also banned.

Additionally stations may be banned by *both* callsign and IP address if desired. Unlike earlier versions of the bridge version 0.41 and later do not automatically ban stations by IP address, unless it is specified by the administrator when the station is banned.

".ban list"

This lists the current rogues' gallery of banned stations.

".ban delete <callsign>"

Well they finally fixed their repeater, it's about time! This command removes a station from the banned list.

".info [Info field text]"

The .info command displays and modifies the info (location, Qth) string sent to the directory server. If an argument is not specified the .info command simply displays the current info string. When an argument is given the current info string is replaced with the argument and the directory server is updated with the new string. The new string is *NOT* persistent, if tbd is restarted the info string will return to the value specified in tbd.conf.

###############
Script Commands
###############

".chat [on | off]"

The .chat command controls the chat mode of the command inteface. When the chat mode is off messages sent to the command port are assumed to be commands for theBridge and incoming text messages are not forwarded to the command port. When chat mode is on messages sent to the command part are forwarded as text message unless preceeded with ".." to indiate they are commands for the local system. When chat mode is on text messages received from the net are forwarded to the command port with an result code of TBD_CHAT_TEXT. See SCRIPTING.txt for more details.

NB: Although the .chat mode feature is still supported it is depreciated. Version 0.84 and later of theBridge provides a separate port for text messages to replace the .chat mode.


###############
TLB README
###############

########
Commands
########

Since thelinkbox is based on thebridge conference server all of the command for thebridge are also available on thelinkbox. Please see the Command section in the documentation for thebridge (README.tbd) for details.

A few commands are unique to thelinkbox, only those commands are documented here. Most commands are applied to the current port which is selected by setting the port. (.port 2).

".dtmfdecode <command>"

The .dtmfdecode command allows a specified command to be interpreted as if it were entered by the RF user.

".id"

The .id command forces the nodes ID to be sent.

The link command is used to connect nodes (RF ports and VoIP connections) together. Each linkage is bidirectional unless the -m (monitor) switch is used. For example if the system is a remote base and port "440" is it's input and port "144" is the remote 2 meter radio the command ".link -m 440 144" would put the remote base into 2 meter monitor mode. i.e. traffic on 2 meters would be repeated to 440, but traffic on 440 would not be repeated to 2 meters. The command ".link 440 144" would put the remote base into 2 meter transceive.

The -p command line switch specifies a permanent link. Permanent links are not unlinked by .unlink all, .unlink rf, .unlink voip, or .unlink <port> commands. The link can only be removed by an explicit .unlink command that specifies both ports.

The link command can also be used to link VoIP connections to RF ports. For example to link an *EXISTING* VoIP connection from W1AW to the "440" port: .link w1aw 440 (or .link 440 w1aw). VoIP connections are created when a remote node connects to our node or by use of the .connect command.

".link"

To generate a list of current port linkages run the .link command without arguments.

The unlink command is (much a you might expect) the reverse of the .link command, it desolves links established with the .link command. The "all" argument removes all links between both ports and VoIP connections. The "rf" argument removes all links between RF ports, but leaves links between ports and Voip connections intact. The "voip" argument removes all links between ports and Voip connects, but leaves links between ports intact. If the argument is a single node name then all links to that node are desolved. Finally specific links can be desolved by specifing both the destination and source names.

".pcm record <test point>"
".pcm close <test point>"
".pcm ?"

The .pcm command allows raw PCM data from various points in the signal path for the current port to be saved to disk. This command is primarily an debug aid. When the .pcm command is run with a "?" argument a list of available test points is displayed.

".script <path>"

The .script command allows any program or script to be executed. This command is only available for use by the DTMF command parser. This provides a very powerful way to extend the functionality of thelinkbox by the addition of user programs.

".sendbeacon [-a] [-x]"

The .sendbeacon command is used to send an AX25 broadcast packet or an update to the APRS-IS system.

The -x switch (the default if no switch is specified) sends an AX25 broadcast packet to the selected port. The contents of the packet are defined by the port's Ax25BeaconPath, Ax25BeaconText, and Ax25BeaconAPRS configuration variables. The beacon can also be sent automatically by setting the port's Ax25BeaconInterval variable. Automatic beacons sent when Ax25BeaconInterval expires are only sent when there is no other activity on the transmitter and it will not cause the transmitter to keyup. In other words automatic beacons are sent at the end of the transmitter's hangtime just before the transmitter would have been unkeyed.

The -a switch forces an status update to be sent to the APRS-IS system if APRS-IS support is enabled.

".shutup"

The .shutup command kills any announcements for the RF user that are queued.

".say [-c] [-s] <text phrase>"
".say [-c] <wavefile>"

The .say command generates audio for the currently selected port. If thelinkbox has been configured to use an external voice synthesizer then any text phrase is may be used. If the linkbox is not configured to use a voice synthesizer then thelinkbox attempts to find prerecorded PCM audio files containing audio matching the requested phrase.

The -c option specifies to wait for an TBD_SAY_COMPLETE to be returned before exiting.

The -s option specifies that the <text phrase> should be treated as a callsign i.e. spelled out rather than spoken.

".sweep <frequency>"
".sweep <frequency> <end frequency>"
".sweep <frequency> <end frequency> <sweep time>"
".sweep <frequency> <end frequency> <sweep time> <number of sweeps>"
".sweep <frequency> <end frequency> <sweep time> <number of sweeps> <level>"

The .sweep command is used to generate an audio test tone or audio frequency sweep for testing transmit level on an RF port. The level is the maximum value of the generated PCM wave so it has the range of 0 to 32768. We (the VoIP community) badly need to coordinate on what constitutes 100% modulation. If there is a standard I'm unaware of it.

.tonegen [ID <id> ] [TF1 <freq> [EF1 <freq>]] [TL <level>] [TF2 <freq>] [TL2 <level>] DUR <duration> [RPT <count>] : ...

.tonegen [ID <id> ] [TF1 <freq>] [TL <level>] [WPM <speed> ] CW <cw message>:

.tonegen [ID <id> ] [TL <row level>] [TL2 <column level> ] [DUR <active time>] [PAUSE <pause time>] DTMF <dtmf buttons> :

.tonegen [ID <id> ] FILE <path to file>:

.tonegen [ID <id> ] AX25 <packet data>:

.tonegen #<id>

.tongen !<id>

ID <number>Assign a reference number the tone for future reference.
TF1 <freq>Set Tone 1 frequency, 0 = no tone
EF1 <freq>Set Tone 1 end frequency for sweeps (starts at TF1)
TL <level>Set Tone 1 and 2 level
TF2 <freq>Set Tone 2 frequency, 0 = no tone
TL2 <level>Set Tone 2 level
DUR <duration>duration of tone segment or the DTMF digit active time in milliseconds.
PAUSE <time>The amount of silence in milliseconds between DTMF digits.
WPM <speed>Set speed of CW message in words per minute.
CW <cw msg>Send specified message in morse code at speed specified by WPM using a tone frequency specified by TF1 and tone level specified by TL.
DTMF <dtmf>Send DTMF tones <dtmf> with tone level specified by TL and TL2, active duration specified by DUR and interadigit time specified by PAUSE. If DUR is not specified the active duration is defined by the configuration file variable DtmfEncodeDuration. If PAUSE is not specified the intradigit time is defined by the configuration file variable DtmfEncodePause.
#<id>Play saved ToneSpec <id> which was previously stored by the tonespec configuration variable.
!<id>Cancel ToneSpec <id> if it is running
FILE pathTone segment is contents of specified 8 Khz wav file.
RPT <count>repeat pattern from the beginning or last rpt count times.

The .tonegen command is used to generate tones for various purposes such as courtesy tones, command acknowledgements, invalid command indication, timeouts, DTMF cover tones, busy tones, dial tones, etc.

Tone specifications can be stored for future use by providing an ID field and assigning them to the ToneSpec configuration file variable. Stored tones can be played back by referencing the ID for example .tonegen #123. Additionally many internal events may automatically trigger tones which are assigned to the event. Tones that are assigned IDs may also be cancelled before they complete by referencing the ID. For example ".tonegen !123".

Tone specifications are made of one or more segments which are played in order. Multiple segments are separated by ':'. Each tone segment must have an "DUR", "DTMF", "FILE", "CW" or AX25 field, all other fields are optional.

Tone segments may be repeated a specified number of times by the use of the RPT specification. When encountered in a tonespec the RTP field will cause the tone generation to repeat from the beginning or after the end of the previous RPT sequence for the specified number of times.

Tone frequencies are set to zero after each segment is generated, but tone levels are only changed when explicitly modified.

In a DTMF string one or more '+' character may be used to extend the duration of the next digit. For example +++*1234 = generates a '*' digit with 4 times the normal duration and before generating 1234 with the normal timings. The default DTMF digit timings are defines by the DtmfEncodeDuration and DtmfEncodePause configuration variables. The default timings may be overidden by specifying a DUR and/or PAUSE in the tone spec.

For the AX25 "tone" <packet data> is text used to generated a 1200 baud AFSK AX.25 UI frame in the following format:

<From Callsign> ">" <To Callsign> [,<Digitpeater Callsign>] " " <packet text>

For example:

W1AW>QST Code practice tonight at 11:00 on 146.52. The TL parameter may be used to adjust the amplitude of the generated AFSK tones. By default the tone level is set by the port configuration variable Ax25ToneLevel of the currently selected port.

For the AX25 "tone" <packet data> is text used to generated a 1200 baud AFSK AX.25 UI frame in the following format:

<From Callsign> ">" <To Callsign> [,<Digitpeater Callsign>] " " <packet text>

For example:

W1AW>QST Code practice tonight at 11:00 on 146.52. The TL parameter may be used to adjust the amplitude of the generated AFSK tones. By default the tone level is set by the port configuration variable Ax25ToneLevel of the currently selected port.

.port [<port name>]

The .port command selects the active port for commands such as .id, .say, .tonegen, etc. When run without arguments the .port lists all ports with current port status. For example:

tlb> port
Available ports:
  144 Rx
> 440 Tx
  WR7NV-R
tlb>

This shows that port "144" is receiving a signal and the port "440" is transmitting. Additionally the '>' character displayed in front of the 440 port indicates that it is the port currently selected for control.

.rxfrequency <frequency>

This command sets the frequency of the receiver of the selected port if frequency control is supported by the hardware. The frequency is specified in Mhz (146.52).

.txoffset <transmitter offset from receiver frequency>

This command sets the transmitter's frequency in relationship to the receiver's frequency. The offset is specified in Mhz (-.600). Changing .rxfrequency does not effect the transmitter offset.

.rxtone <ctcss tone frequency>
.rxtone search
.rxtone any

This command sets the CTCSS tone of the receiver of the selected port if CTCSS tone control is supported by the hardware. The frequency is specified in hz (131.8), a tone frequency of 0.0 selects carrier squelch.

If the port is configured to use the internal software CTCSS decoder rxtone may be set to "search" to have the CTCSS decoder determine the CTCSS tone in use by a channel by monitoring. When a CTCSS tone is decoded the decoder exits search mode and begins decoding only the tone that was found. If thelinkbox is configured with an EventScript a "ctcss_decode" event is generated.

If the port is configured to use the internal software CTCSS decoder rxtone may be set to "any" to have the CTCSS decoder decode for any CTCSS standard CTCSS tone. This mode is primarily for testing.

.txtone <ctcss tone frequency>

This command sets the transmitter's CTCSS tone on the selected port if CTCSS tone control is supported by the hardware. The frequency is specified in hz (131.8), a tone frequency of 0.0 disables CTCSS generation.

.frequency [<rx frequency> [,<tx offset> [,<tx tone> [,<rx tone>]]]]

This command allows all parameters of the selected port to be set in one command. If no arguments are specified the current values are displayed if available. If the transmitter offset is not specified it defaults to 0 (simplex). If the transmitter tone is not specified it defaults to disabled. If the receiver tone is not specified it defaults to carrier squelch.