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-2021 by Doug Lee and falls under the GNU General Public License as found in
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
TTCom provides fast ways to accomplish the following tasks for those who are ok with typing (or dictating) commands:
accountcommand and its subcommands.
channelcommand and its subcommands.
filecommand and its subcommands.
TTCom also offers the following features over other TeamTalk clients:
Of course, TTCom also has some disadvantages as compared to other clients:
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.exeor your system already includes an appropriate Python version, this step is not necessary.
ttcom.confand edit to taste. This is where servers and per-server behaviors are defined. The
autoLoginparameter determines which servers connect automatically on TTCom startup.
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=1in the above section. See
ttcom_default.conffor further ideas.
ttcom.exe. If running from source (on Windows or anywhere else), run TTCom by running
ttcom.pythrough Python 3.7:
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 -Vto 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
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,
?" 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.
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.
TTCom includes a
file command with subcommands for each of the following purposes:
Example file transfer command sequence:
The above sequence makes TTCom join a channel whose name contains "lounge," then gets rules.docx from the channel and puts in a local downloads folder. The next command adds to that downloads folder all files in the lounge channel whose names contain "txt." Finally, we upload and then delete rules1.docx from a local documents folder, and leave the channel.
file get rules.docx ~/downloads
file get txt ~/downloads
file send ~/documents/rules1.docx
file delete rules1.docx
To download files, join a channel containing files, then type
file get followed by
*matches all files, while anything else matches files whose names contain what is typed, ignoring case.
~" or "
$HOME" can be used for the current user's home directory.
As a file begins to download, if a file by the same name in the same folder already exists locally, the new download will be locally renamed. The first time this happens, an underscore (
_) and the number
1 will be added to the file's basename (before the dot and extension if any). If that file also already exists, the number will become
2, and so on until an unused name is found. In this way, TTCom
will complete all downloads while being sure not to replace any local file.
A file rename of this sort will be indicated in TTCom by an output line indicating server-side and local names of the file just before the download begins.
A TeamTalk server may occasionally abort a file transfer with the following message before the transfer begins:
The message appears to indicate a temporary server-side inability to start a file download, for reasons unknown. When this occurs, TTCom will print, "File get failed to start, retrying," and will then pause for one second and try the download again. If the download fails four times in a row with the same message, TTCom will stop trying and will print the server's error message in a "ValueError" line. The user must then resume the download by starting with the first unsent file.
error number=3009 message="Server failed to create file"
To upload one or more files, first join the channel to which you want to send.
file send followed by
a specification of which files to upload.. A relative path or a file name or pattern without a path will start from the folder from which TTCom read its configuration file.
The wildcards supported by the local operating system are allowed, as are "
~" or "
$HOME" for the current user's home directory.
If the path is to a folder rather than to one or more files, all files in the folder are considered.
A selector of matching files will appear allowing selection of specific files for upload. Select one or more files as directed. On completion of this selection, a final confirmation will print that indicates the number of files to be sent and the total size of all of the files combined. When this has been confirmed, the uploads will begin to occur one at a time until all have been completed, at which time the TTCom prompt will again appear. During each upload, the remote file name will be shown; and for sufficiently long uploads, a progress percentage will be shown and updated every five seconds.
As a file begins to upload, if a file by the same name in the current channel already exists on the server, the uploaded file will be named with an underscore and a number appended to its basename (before the extension if any) so that the name does not already exist in that channel. TTCom will indicate such a renaming with a line just before the upload begins.
To delete one or more files from a server, join a channel that contains files, then type
file delete followed by
a specification of which files to delete.
* matches all files, while anything else matches files whose names contain what is typed, ignoring case.
A selector of matching files will then appear allowing selection of specific files for deletion.
On completion of this selection, one final confirmation will appear, indicating the number of files about to be deleted.
y to this confirmation will cause all selected files to be deleted from the server.
file get and
file delete commands offer an advanced feature that permits server administrators to list, download, and delete files from a non-current
channel or from multiple channels at once.
The intention of this feature is to make it significantly easier for TeamTalk server administrators to manage the files stored on the server for users to download.
If the file specification for a
file get or
file delete command contains a slash (/), everything before the last slash is a channel specification.
* allows files to come from any channel,
/ uses the root channel, and anything else allows any channel whose name contains what is typed,
ignoring case. As a special case, just prefixing the file specification with a slash will refer to the root channel (this is just a shortcut for "
Example advanced file specifications for download or delete:
rules.txtin the root channel of the server.
rules.txtfiles in all channels whose names contain the word "lounge." (A selector will appear to allow selection of specific "lounge" channels if more than one is available.)
rules.txtfiles on the server. (This will not produce a channel selector but will list all matching files on the server in a single list.)
*/.exemeans all files whose names contain
.exein all channels. Warning: This is not the same as all files with the
.exeextension; a file named
list.of.executives.txtwill also match.
*/*means all files in all channels on the server.
The last of the above specifications provides administrators with a way to list every file available on the server for download.
If there is a channel specification and it matches more than one channel and is not
*, a selector will appear allowing one or more channels to be selected from a list.
If there is no channel specification, the current channel will be assumed.
When using this advanced format for a file specification, it is not necessary to be in a channel. Non admin users will not be able to use this syntax, however, because TeamTalk file servers do not notify non-admin clients of the existence of files, or of additions or deletions, except within the client's current channel.
TTCom provides the following features in its file transfer support beyond those in the regular TeamTalk clients:
Security points worthy of note:
file get command doubles as a lister: Just use "
." for the download folder but then don't download anything.
This TTCom author recommends this approach rather than using
file delete as a lister just because any accidental Enter won't cause as great an increase in user blood pressure.
A server administrator can use the following trick, under Linux or MacOS or Cygwin or anywhere else that Screen or tmux works, to weed out old files across all channels at once:
file delete */*
UMsg command for sending user messages has a
-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:
UMsgcommand for more information on this option.
Note that although these messages are more private in nature than normal TeamTalk messages, this TTCom author is not able to guarantee the privacy of any TeamTalk communication:
This section and its subsections are a reference for TTCom users on parts of the TeamTalk TCP protocol that are exposed directly through TTCom.
This section contains tables of bit flag values used in the raw TeamTalk protocol. In these, the Hex column is the hexadecimal value of the flag. Multiple flags can be expressed in one value by adding these values together, for fields that support multiple flags at once. The Letter column serves to provide a single unique letter for each flag where possible (case matters for these!). The Short Name column provides a one-word name for each flag, and the Description column describes the flag in more detail. The Hex column represents a TeamTalk protocol element and is thus set by TeamTalk itself. The other three columns represent choices made by this TTCom author and are not themselves part of the TeamTalk protocol.
The following table lists the bit flags comprising the set of supported user rights in TeamTalk. Values of the
userrights fields in
whoIs commands are composed of
combinations of these values.
|0x00000001||l||loginMultiple||Can log in multiple times|
|0x00000002||f||findUsers||Can see users in all channels|
|0x00000004||t||tempChannels||Can create temporary channels|
|0x00000008||p||permChannels||Can create/modify all channels|
|0x00000010||B||Broadcast||Can broadcast text messages|
|0x00000020||k||kick||Can kick users off the server|
|0x00000040||b||ban||Can ban users from the server|
|0x00000080||m||move||Can move users between channels|
|0x00000100||o||op||Can make other users channel operators|
|0x00000200||u||upload||Can upload files|
|0x00000400||d||download||Can download files|
|0x00000800||U||UpdateProps||Can update server properties|
|0x00001000||v||voice||Can transmit voice data|
|0x00002000||V||Video||Can transmit video data (webcam)|
|0x00004000||D||Desktop||Can share out the desktop|
|0x00008000||C||ControlDesktop||Can control another user's shared desktop|
|0x00010000||s||streamAudio||Can stream audio files|
|0x00020000||S||StreamVideo||Can stream video files|
|0x00040000||n||nickLocked||Nickname is locked against user changes|
|0x00100000||r||record||Can record audio in all channels|
|0x00200000||h||seeHidden||Can see hidden channels|
The following table lists the bit flags comprising the set of supported subscriptions and intercepts in TeamTalk. Values of the
subpeer fields in the
whoIs command are composed of
combinations of these values.
sublocal represents local subscriptions, specifying which information is wanted by this TTCom instance from the client being queried.
subpeer represents which information is wanted by the queried client from this TTCom instance.
intercept commands modify
sublocal, whereas the queried client's options for subscribing and intercepting will modify
Notes on the below table:
|0x00000001||u||userMsg||user message subscription|
|0x00000002||c||channelMsg||channel message subscription|
|0x00000004||b||broadcast||broadcast message subscription|
|0x00000008||j||bitJ||bit j subscription|
|0x00000100||s||mediaStream||media stream subscription|
|0x00000200||k||bitK||bit k subscription|
|0x00000400||l||bitL||bit l subscription|
|0x00000800||m||bitM||bit m subscription|
|0x00001000||n||bitN||bit n subscription|
|0x00002000||o||bitO||bit o subscription|
|0x00004000||p||bitP||bit p subscription|
|0x00008000||q||bitQ||bit q subscription|
|0x00010000||U||iUserMsg||user message intercept|
|0x00020000||C||iChanMsg||channel message intercept|
|0x00040000||B||iBroadcast||broadcast message intercept|
|0x00080000||J||iBitJ||bit j intercept|
|0x01000000||S||iMediaStream||media stream intercept|
|0x02000000||K||iBitK||bit k intercept|
|0x04000000||L||iBitL||bit l intercept|
|0x08000000||M||iBitM||bit m intercept|
|0x10000000||N||iBitN||bit n intercept|
|0x20000000||O||iBitO||bit o intercept|
|0x40000000||P||iBitP||bit p intercept|
|0x80000000||Q||iBitQ||bit q intercept|
The following issues are known and may be fixed in a future version of TTCom:
Events that print in the TTCom window can break up a command while it is being typed and can also break up the display of file transfer progress. The solution to this problem would require a full-screen interface, which though possible can complicate portability across operating systems and platforms.
Running a time-consuming command on a non-current server, using the
server command or its > equivalent, will temporarily make the target server "current."
If either the previously current server or the target have
silent=1 in effect, this may affect which events are seen in the TTCom window while the command is executing.
This is especially worthy of note for long file transfers started with commands like one of these:
server paul file get war_and_peace.mp3 ~/books
>jolene file send please.mp3
This is the revision history of TTCom, most recent revision first:
Note: This release was initially missing two files required for running TTCom from source. This was corrected on April 9, 2021, without a revision or code change.
ttcommand for creating
.ttfiles allows constructs like
$HOMEas part of file paths.
kickcommand allows a
-coption for kicking from channel instead of server. This duplicates the
cKickcommand but in a way that more easily supports command dictation in place of typing.
WhoIscommand, rather than printing simple integers, prints subscriptions as both hexadecimal numbers and a string of letters indicating what subscriptions and/or intercepts are active. "Local subscriptions" are what this TTCom client subscribes to from the other client, and "peer subscriptions" are what the other client subscribes to from this TTCom instance. There is now also a section in this guide that lists the subscription and intercept values shown by this command.
whoIsalso prints user rights, when available, in both hex and word forms. See the User Rights Values section for further information on user rights. Generally, a user can only see the rights applying directly to that user's current login session; results from
whoIsqueries for other users will not include user rights.
ResourceWarningunder Windows that could occur when a server connection fails.
urlcommand for creating TeamTalk server links.
Updates for improved functionality with TeamTalk 5.7:
account deletecommands include a
--disabledoption to list disabled accounts, much like
--adminalready lists admin accounts. If both admin and disabled accounts are requested at once, only admin accounts will appear.
0for a usertype to create a disabled account, and requires confirmation before creating one disabled account from another, just as for creating one admin account from another.
usertype=0to change an account to disabled. A typical syntax for disabling an account is
account mod Doug usertype=0, and for re-enabling,
account mod Doug usertype=1(or
usertype=2for an admin account).
kickcommands allow multiple-user selection when a user list is presented.
channelcommands use a more robust means of handling quotes and argument separation. Arguments that include spaces still need quotes, but some cases where quotes should not have been required but still were should no longer remain.
-roption for listing accounts organized by user rights instead of alphabetizing by user name. Especially on servers with numerous user accounts, this should facilitate locating users whose rights might not be set as expected or intended.
whoIs, print hexadecimal (hex) instead of decimal rights values. To avoid ambiguity, these values are prefixed with "0x," a common prefix that indicates a hexadecimal value. This change, though perhaps odd to non-programmers, makes it easier to spot changes in rights. For example, the difference between 259591 and 261639 does not immediately look like the addition of exactly one right; but when these are shown as 0x3f607 and 0x3fe07, one who can read hex can more easily determine that the change represents the addition of right 0x800, which is the right to change server properties.
sets standard rights on account
account mod Doug userrights=0x3f607
TeamtalkServerobjects have a
loggedInboolean property that is True only when the server is logged in. For Python triggers in
ttcom_triggers.py, this means that a line like the following can prevent triggers from firing when the server is not logged in:
if not self.server.loggedIn: return
ttcom.conftrigger stop firing when a server is not logged in, append "
_loggedin" to the event or pseudo event name; e.g.,
Make sure, when limiting triggers to occurring only when logged in, that you actually don't want a trigger to activate when you are not logged in. For example, the above trigger on disconnection will fire if the connection drops without first logging you out, but it will not fire if you are logged out first.
match badword.badword=line_loggedin blah
Bug fixes and documentation improvements:
joincommand the fact that channels can be found by property, such as
urlcommand 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
ttcommand for creating a
.ttfile that will launch TeamTalk into a particular server. Both commands also support automatic joining of a channel on connection if desired.
WhoIscommand and to status change events that print asynchronously.
README.txtfile, 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.
refreshcommand when the server has been deleted from the TTCom configuration file.
logincommand 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.
SAYPREFIX, though, rather than
TTCOM_SAYPREFIX. This feature was accidentally lost during the conversion to Python 3.
implibrary instead of the newer
importlibalternative. 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
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:
ttcommand can make a proper .tt file for an encrypted server.
ttcom_default.confis removed for the following reasons:
ttcom_default.confas an example server entry, however.
makes TTCom join the channel with chanid 4 on login. Use
channel listto find channel ids. This method has the advantage of working even if a channel or one of its parent shannels is renamed. Alternatively,
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
channel=/My Space/the Library/
1and the path of just one slash character. If the channel requires a password, include another configuration line to specify it:
channel listcommand) now sort case insensitively by channel path, much like the TeamTalk channel trees.
CKickcommand for kicking a user from current or specified channel, syntax similar to that of
refreshcommand deletes servers from the running list when they have been removed from the config file.
shortSumresults end with a total server count then broken down by connection state.
ban listnow 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.
addressescommand is now just
whoIsreports IPV6 addresses correctly as does the
TTCOM_SAYPREFIXworks 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:
Of course, a TCP port may still be specified for a server in the configuration file.
export TTCOM_SAYPREFIX="[[rate 450]]"
UMsgcan 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.
UMsgcommand for sending user messages has a new
-ioption 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:
UMsgcommand 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.
refreshcommand if no server definitions can be found.
vlistcommand now formats and sorts its output more intuitively.
WhoIscommand 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.
WhoIsincludes 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."
refreshcommand if a server's
autoLoginvalue changed from
1without 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:
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.
voiceuserslist changes as channel participants are voiced and unvoiced by an admin.
whoIscould include a line beginning with a comma.
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
WhoIscommand. This feature only applies when both server and client versions are 5.3 or later, which means when Facebook ids are actually Facebook logins.
channelcommand. 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 addcommand to be set to 0 when the user type was given as a number (
2). The following command will list any accounts on a server affected by this bug:
and the following command will set rights for account
acc li userrights=0
Dougto the default values:
acc mod Doug userrights=259591
-pargument is specified.
account deleteusage help text.
-eprints all fields except passwords (use
-pto add passwords), even when blank. This is useful for determining what fields are allowed for an account.
-e), fields are sorted by name except for
Note, which is always last.
ttcom_defaults.confbetter documents the format and capabilities of TTCom
!commands, the name of the TTCom root object is now
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:
?followed by the command name. Each of these commands now has subcommands, for which help is also available.
account addnow does the following sanity checks:
motdcommand for displaying the current server's message of the day.
versioncommand is now
versionwithout arguments gives the currently selected server's TeamTalk version, and with arguments gives a client's version and client name.
alland negation via an exclamation mark (
!) if multiple selections are allowed. Type
?selectionfor complete help on handling selection lists.
-poption added to the
vlistcommand for filtering by packet protocol or voice capability.
adminfor admin users and
userfor other users.
subscribecommands to work on TeamTalk 5 servers. (The no-audio restriction remains, however, as there is still no support for audio in TTCom.)
summarycommand no longer combines multiple instances of the same user in a channel into a single entry.
nickcommand is now
nickname, which lets
nickcontinue working while also letting
joincommand. 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).
Servercommand 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.
ttcommand 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.
vlistcommand that summarizes users on the current server sorted by increasing version number and then by client name.
saycommand on MacOS may work across more non-ASCII character situations.
saycommands are created more securely.
WhoIscommand with no arguments (i.e., a request for information on this current TTCom user login).
speakEventsoption 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
1to 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:
versioncommand reports the running TTCom version and other information.
/) works as expected.
ttfile should generate TT files compatible with the TeamTalk server version for which the file is being generated.
accountcommand 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
2normally 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
1and the user rights for the new account will duplicate those assigned to the source account indicated.
accountscenarios; for example,
acc ""reports the information for the anonymous account instead of displaying a list of all accounts.
ttcom.confentry 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.)
statsAdmincommand is now changed simply to
stats, and the old
statscommand is gone. Reasons for this include
/commands sent to a channel..
/statsvisibly 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:
WhoIsworks when TTCom is not logged in as an admin.
cmsg, and several other commands work as well.
The following commands still do not work completely on TeamTalk 5 servers:
Other changes in this release:
saycommand usable in triggers, when used on MacOS, now uses the
afplaycommand and a temporary file instead of piping directly through
sayin 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
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: