This is the user guide for TTCom, the TeamTalk Commander, also informally referred to as the TeamTalk Console or the TTCom text client. This client is mostly for managerial (not necessarily administrative) functions and is not an audio or video client. TTCom may be of use to those meeting any of these criteria:
This document describes how to install, launch, and use TTCom and its command set. For information on recent updates, or to see a history of TTCom's evolution, see the final "Release History section.
This program is Copyright (C) 2011-2020 by Doug Lee and falls under the GNU General Public License as found in LICENSE.txt
.
iniparse, included in its entirety, comes with its own license (also included).
TTCom is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program as LICENSE.txt
. If not, see
http://www.gnu.org/licenses/.
TTCom should run on any operating system where Python 3.7 or later can be found.
Python (though not necessarily a new enough version) comes by default on at least Linux and MacOS. It can also be installed on Windows, though a stand-alone ttcom.exe
application is provided for Windows users to
avoid the need to install Python.
This author is aware of users having successfully used TTCom in the following environments, run from source unless otherwise indicated:
ttcom.exe
application.
ttcom.exe
or your system already includes an appropriate Python version, this step is not necessary.
ttcom_default.conf
to ttcom.conf
and edit to taste. This is where
servers and per-server behaviors are defined. The autoLogin
parameter
determines which servers connect automatically on TTCom startup.
ttcom.conf
:
[server defaults]
nickname=My Name
If you don't do this, you will be called "TTCom User" everywhere you go.
Of course, change "My Name" above to what you want as a nickname.
silent=1
in
the above section. See ttcom_default.conf
for further ideas.
ttcom.exe
. If running from source (on Windows or anywhere else),
run TTCom by running ttcom.py
through Python 3.7:
python3 ttcom.py
Warning: Just typing "python ttcom.py
" may try to run TTCom through Python 2, which will not work.
If you get errors, make sure you are running Python 3.7 by typing python -V
to check the version number.
The final step above will launch TTCom and connect to all servers with an autoLogin
value above 0.
As an alternative,
you can specify a server or servers on the command line, by their
shortnames from ttcom.conf
, to connect to just those servers:
python3 ttcom.py simon
To start TTCom without connecting to anything, use -n
in place of a server name.
Once TTCom is running and you see a "TTCom>" prompt,
type "?
" or "help
" at the TTCom command prompt to learn what is
possible. You can add a command name for help on that command; e.g.,
"?whoIs
." Case is not important in command names.
If you experience unexpected problems with your TTCom configuration, such as strange errors or updates that seem not to take effect, try typing "lint
" as a command in TTCom. This will scan your configuration file
and report anything that looks odd to TTCom. Each issue found will consist of the ttcom.conf
line number followed by a description of the anomaly.
The number of lines in the file will also be reported; this is primarily aimed at helping detect line ending problems caused by porting configuration files between operating systems.
The lint
command is not guaranteed to catch all possible problems but will catch the following:
For the curious, the name "lint
" is chosen because Lint was a C program checker that reported errors and warnings about C program syntax many years ago, and the term is still in common use in programming circles
for anything that helps verify the correctness of code or file syntax.
The following issues are known and may be fixed in a future version of TTCom:
This is the revision history of TTCom, most recent revision first:
url
command for generating a TT URL for people to click in order to join the current server.
The URL approach will work in many cases but will fail for some due to problems with characters in passwords and possibly other fields.
See also the tt
command for creating a .tt
file that will launch TeamTalk into a particular server.
Both commands also support automatic joining of a channel on connection if desired.
WhoIs
command and to status change events that print asynchronously.
README.txt
file, these release notes, and various other notes are combined and transformed into a more comprehensive user guide,
which itself becomes the main website page for TTCom.
refresh
command when the server has been deleted from the TTCom configuration file.
login
command to log into a disconnected server that uses encryption.
Startup-time login already worked, but manual login without an existing connection did not.
teamtalk
"
and is reported on connect if different.
ttcom.conf
.
SAYPREFIX
, though, rather than TTCOM_SAYPREFIX
.
This feature was accidentally lost during the conversion to Python 3.
imp
library instead of the newer importlib
alternative. This change will only be noticed by users who run TTCom from source.
This is the first public TTCom release targeted at, and requiring, Python 3.7 rather than Python 2.7. The Windows stand-alone .exe will work as before, but running TTCom from source, on any operating system, will now require a
Python 3.7 installation that launches with the "python3
" (not just "python
") command. This approach avoids problems on systems (such as MacOS) where the "python
" command must for now continue to
launch Python 2.x in order to avoid many other problems.
This release is also the first to support professional encrypted (SSL) TeamTalk servers. For these, add the line encrypted=true
to the server's configuration section in ttcom.conf
.
Note that encryption, or SSL support, is not related to the new TeamTalk 5.4 web login system used by the public TeamTalk servers. The web login system is not at this time supported by TTCom.
Important: Install this TTCom into a fresh folder, not over the top of TTCom 2.x, to avoid stray and possibly problematic residual files from the older version. In particular, .pyc files produced by an older TTCom could confuse the new version, as Python 3 handles .pyc files differently.
Other enhancements in this release:
tt
command can make a proper .tt file for an encrypted server.
WhoIs
command:
ttcom_default.conf
is removed for the following reasons:
ttcom_default.conf
as an example server entry, however.
chanid=4
makes TTCom join the channel with chanid 4 on login. Use channel list
to find channel ids. This method has the advantage of working even if a channel or one of its parent shannels is renamed. Alternatively,
channel=/My Space/the Library/
joins the channel with the given exact path. Letter casing in a channel path must match exactly, and the path must both begin and end with a slash. These rules also apply to other TeamTalk clients.
Note that the root channel always has the id 1
and the path of just one slash character.
If the channel requires a password, include another configuration line to specify it:
chanpassword=blah!blah!
channel list
command) now sort case insensitively by channel path, much like the TeamTalk channel trees.
CKick
command for kicking a user from current or specified channel, syntax similar to that of CMsg
.
refresh
command deletes servers from the running list when they have been removed from the config file.
allSum
and shortSum
results end with a total server count then broken down by connection state.
ban list
now uses a three-row format and includes ban type as text (IP address or Username). The other two lines are nickname and channel at ban time.
addresses
command is now just address
.
whoIs
reports IPV6 addresses correctly as does the address
command.
whoIs
and address
commands.
TTCOM_SAYPREFIX
works on MacOS as a place to put Mac-specific voice parameters to apply to all event and trigger announcements.
This feature is included to help those who wish to hear events on a Mac at a personally chosen speech rate, pitch, etc.
This feature is experimental and may change or vanish without notice, especially since it is Mac-specific and relies on MacOS features that may themselves disappear.
Example usage: In Bash or a compatible shell or one of its initialization / startup files, add this line to increase the TTCom voice speed:
export TTCOM_SAYPREFIX="[[rate 450]]"
Of course, a TCP port may still be specified for a server in the configuration file.
UMsg
can send to a userid directly via a number sign; e.g., umsg #232 I got that!
. This was documented but did not work as expected. This allows replying to messages such as described in the previous
item.
UMsg
command for sending user messages has a new -i
option for sending a more private user message to another compatible text client. These messages have the following properties as compared to
normal TeamTalk user messages:
UMsg
command for more information on this option.
Note that nothing in TeamTalk should be considered "private" (partly because nothing is encrypted) and that neither the TTCom author nor the TeamTalk author can guarantee privacy of these new messages or that they will be
handled as expected by different client and server versions.
ttcom.conf
) or without defining servers in it now print more sensible error messages.
refresh
command if no server definitions can be found.
vlist
command now formats and sorts its output more intuitively.
WhoIs
command includes the length of time the current user's status has been in effect.
Note though that these durations reset when TTCom itself logs in and thus will not always reflect actual status lifetimes.
WhoIs
output.
WhoIs
includes the domain address for an IP address that is given as the IPV6 version of an IPV4 address; e.g., "::ffff:192.168.15.124."
refresh
command if a server's autoLogin
value changed from 0
to 1
without other changes for that server.
Note: The syntax of the cmsg
command is changed in this update.
cmsg
, operates by default on the currently joined channel.
The following sequence will thus message the root channel:
join /
cmsg Hello!
A specific channel may be specified with an at sign; e.g., cmsg @blah Hello to blah channel members
.
If TTCom is not in a channel, a channel must of course be specified in this way.
voiceusers
list changes as channel participants are voiced and unvoiced by an admin.
channel list
command).
whoIs
could include a line beginning with a comma.
summary
, shortSummary
, allSummary
, VList
.
This is for speech users, for whom the long ids are distracting and time-consuming to read. Full ids are still printed for the WhoIs
command.
This feature only applies when both server and client versions are 5.3 or later, which means when Facebook ids are actually Facebook logins.
channel
command. So far, the only implemented subcommand is list
, which can list channels with varying detail
and can filter the set of channels listed by many means.
Warning though: There are still problems with this command on servers with non-ASCII characters in channel names.
cmsg
, allow channel matching by specific TeamTalk parameter. One use of this is to
message a channel by its id:
cmsg chanid=5 Hello
account
command:
account add
command to be set to 0 when the user type was given as a number
(1
or 2
).
The following command will list any accounts on a server affected by this bug:
acc li userrights=0
and the following command will set rights for account Doug
to the default values:
acc mod Doug userrights=259591
-p
argument is specified.
account delete
usage help text.
-e
prints all fields except passwords (use -p
to add passwords), even when blank. This is useful for determining
what fields are allowed for an account.
-l
and -e
), fields are sorted by name except for Note
, which is always last.
ttcom_defaults.conf
better documents the format and capabilities of TTCom .conf
files.
python
or !
commands, the name of the TTCom root object is now app
rather than
ttcom
, for consistency with other projects.
Please read this entire section of release notes before upgrading.
This revision includes many fixes, a few new commands and features, and some changes in syntax for existing commands.
This revision also marks the official end of TeamTalk 4 support. This does not mean that TTCom will instantly stop working with TeamTalk 4 servers; it simply means that support for those servers will begin to fail as reasons arise to remove or modify the code that supports them.
New and changed commands and features:
account
.
ban
.
kb
.
help
or ?
followed by the command name. Each of these commands now has
subcommands, for which help is also available.
account add
now does the following sanity checks:
motd
command for displaying the current server's message of the day.
version
command is now about
.
version
without arguments gives the currently selected server's TeamTalk version, and with arguments gives a client's version and client name.
all
and negation via an exclamation mark (!
) if multiple selections are allowed.
Type help selection
or ?selection
for complete help on handling selection lists.
-p
option added to the vlist
command for filtering by packet protocol or voice capability.
admin
for admin users and user
for other users.
Fixes:
op
, intercept
, and subscribe
commands to work on TeamTalk 5 servers. (The no-audio restriction
remains, however, as there is still no support for audio in TTCom.)
summary
command no longer combines multiple instances of the same user in a channel into a single entry.
nick
command is now nickname
, which lets nick
continue working while also letting nickname
work.
join
command.
Channel matching now works thus:
/
always refers to the root channel.
/
must match exactly except for letter casing.
/
is matched against all full channel names (path included).
Server
command should properly honor any quoting on an included command.
autoLogin=1
, the TTCom user may
restart the auto-login behavior by logging in again manually.
tt
command allows a target TeamTalk client version number, such as 5.1, to be specified
before the name of the .tt file to create. This makes it possible to generate a tt file for a client whose
version number differs from that of the current TeamTalk server.
vlist
command that summarizes users on the current server sorted by increasing
version number and then by client name.
say
command on MacOS may work across more non-ASCII character situations.
say
commands are created more securely.
WhoIs
command with no arguments (i.e., a request for
information on this current TTCom user login).
speakEvents
option is supported: Setting it makes TTCom try to speak all events that print
in the TTCom window through the active screen reader.
This currently requires SayTools to be installed on Windows but works natively on MacOS.
To turn this feature on, type opt speakEvents 1
. Use 0
instead of 1
to
turn the feature off. The state of this option is saved across TTCom restarts.
This revision fixes more issues with TeamTalk 5 servers and adds a few enhancements:
version
command reports the running TTCom version and other information.
/
) works as expected.
tt
file should generate TT files compatible with the
TeamTalk server version for which the file is being generated.
ban -d
works.
account
command works on TeamTalk 5 and supports copying user rights from a chosen source
account when creating a new one. To use this feature, specify an account name (or something that matches an
account name) in place of the 1
or 2
normally given as a user type. To use the anonymous
account as the source account for user rights, specify ""
in place of the user type. The user type
will become 1
and the user rights for the new account will duplicate those assigned to the source
account indicated.
account
scenarios; for example,
acc ""
reports the information for the anonymous account instead of displaying a list of all
accounts.
udpport=0
to every ttcom.conf
entry for TeamTalk 5
servers. TTCom no longer transmits a UDP handshake at all. (This was implemented to avoid short Windows XP
client freezes on TeamTalk 4 servers, but Windows XP has long been deprecated by Microsoft.)
statsAdmin
command is now changed simply to stats
, and the old stats
command is gone. Reasons for this include
/
commands sent to a channel..
/stats
visibly into the root channel even if the sending console was not there, which could startle
and confuse users.
This release primarily fixes a number of issues TTCom initially had with TeamTalk 5 servers, caused by changes in the text TeamTalk client/server protocol:
WhoIs
works when TTCom is not logged in as an admin.
Move
, join
, leave
,
cmsg
, and several other commands work as well.
The following commands still do not work completely on TeamTalk 5 servers:
Account
Intercept
and Subscribe
Op
TT
Other changes in this release:
say
command usable in triggers, when used on MacOS,
now uses the afplay
command and a temporary file instead of
piping directly through say
in order to avoid the speech
breakup that occurs often (at least on SnowLeopard) when the `say'
command is used. This change causes a Python warning against use of
tempnam()
on the first say
command call.
This is the initial public release of TTCom and the start of its falling under the GNU Public License (GPL). To learn of TTCom's use through the date of publication, see "All About the TeamTalk Commander." To learn its history prior to publication in more detail, read "TeamTalk Commander (TTCom) Pre-Publication History."
I am publishing TTCom for the following reasons, approximately in this order: