All About the TeamTalk Commander
Note: This is now a historical document and has not been updated since late 2014 to keep up
with continuing TTCom development.
See the official TTCom page at https://www.dlee.org/ttcom/ for
up-to-date information.
This page is here to answer questions about the TeamTalk
Commander (TTCom), sometimes informally called the TeamTalk Console,
so people who see it will know why it
floats around. This page may be revised as necessary if any changes
occur in TTCom's features and functions.
Page content last updated December 20, 2014.
TTCom is released under the GNU Public License as of September 7,
2014; see
https://www.dlee.org/ttcom/
Table of Contents
TTCom is an interactive, console-mode (i.e., command-line-interface)
program I (Doug Lee) wrote and maintain that connects to several TeamTalk
servers at once and performs various functions as described in the next
section. It is a text-only program; that is, it contains no means at all
of processing audio or video, incoming or outgoing. It generally does not join
any channel, although it can do so under manual control. It can send and
receive text messages and perform other non-audio/video functions depending
on the rights granted to it by each server.
The author of TeamTalk itself provides a "TeamTalk PHP Admin" program on
the main TeamTalk download site
that provides many of the same features provided by TTCom, but with a
numeric-menu interface rather than a set of text commands.
TTCom provides both automatic and interactivve functions. The
automatic functions are designed as services to the TeamTalk
community, and the manual functions are designed to mirror the actions
allowed by regular TeamTalk clients. This section consists of
descriptions of both function types. This is not necessarily an
exhaustive indication of the functions provided by TTCom, as the code
changes from time to time as needed.
This subsection is meant to summarize what appears in the following
two subsections, for convenience and example.
This summary is probably not exhaustive but is meant to be as close as
possible to this.
Since its launch in late 2011, the TTCom service has been used to do
the following:
- Warn users when someone joins a channel with a TeamTalk client too
old or too new to handle audio on a particular server.
- Issue warnings when someone attempts to join a channel without
being seen by using an old TeamTalk server bug.
- Issue a warning when someone, using another console like
home-grown TeamTalk client, does something that freezes Windows XP
users' computers for a few seconds, so the problem can be handled.
- Help identify users who insist on causing problems on TeamTalk
across a long period of time and/or on multiple servers.
- Translate text messages sent to channels into synthetic speech
when a user is unable to transmit audio. (This must be done directly
by the TTCom author and requires TTCom to join the channel in question
as any other client would have to do.)
- Permit server administrators to "page" the TeamTalk author for
assistance with server problems, usually by sending a broadcast text
message to the server.
- Alert the TTCom author to immediate threats to a TeamTalk server,
such as mass deletion of channels or accounts by unauthorized persons,
as they are occurring.
- On one or two occasions, provide a TeamTalk server owner with an
indication of which user accounts have or have not been used in a
designated period of time, such as six months, to facilitate cleanup
of TeamTalk configuration files. (It is commonly believed that large
user lists slow connections to TeamTalk servers.)
- Help move a large number of users at once from one channel to
another, as this is slow to accomplish in the normal accessible
TeamTalk client. (The TTCom author must be present, must perform this
function manually, and must be an administrator on the server.)
- On at least one occasion, assist server administrators in repelling users who insist on
causing problems on a server, consistent with the policies of the
server in question. (Again, this requires the TTCom author to be
present and an administrator on the server.)
Details on many of these functions appear in the next two subsections.
If a user joins a channel using a client that is too old or too
new to transmit and receive audio on the channel's server, TTCom will
notify the channel that the user needs to update his or her TeamTalk
version. This helps users understand why their audio isn't working in
such cases.
If a user or bot logs into a server in a way that freezes users of
TeamTalk on Windows XP, TTCom sends the author a notification of this.
The author can then work with the user who caused the XP client stall
to rectify the situation. To date, this feature has actually been used
exclusively to help Chris Nestrud, author of
the TeamTalk Server List
page that lists active servers and users, prevent his page update code
from stalling XP users occasionally.
Note that the notification is sent to the TTCom author and not to the
offending user or bot, because in most cases such a notification to
the offending user or bot would go completely unnoticed. Sending a
notification to the server users on every such occasion would prove
more of a nuissance than the original problem.
If a user attempts to log in and join a channel without being
seen, TTCom also notifies its author of this. A technique for joining
channels invisibly was discovered sometime in 2012.
Though the TeamTalk bug exploited by this trick is fixed in modern
versions of TeamTalk, this notification remains in case anyone runs
sufficiently old code to allow such invisible channel participation.
TTCom logs what is sent to it via TCP by the servers to which it connects.
The purpose of this logging is to facilitate identification of people
who persist in causing problems over an extended period of time and/or
across multiple TeamTalk servers.
A full description of what TeamTalk servers send via TCP to clients is
beyond the scope of this document, but in brief, the following items
are sent and thus logged:
- User logins and logouts.
- Channel joins and leaves.
- Channel creations and removals.
- Server policy changes such as MOTD updates, changes in global user
rights, etc.
- User status changes such as changes between Online and Away.
- Broadcast text messages sent to all clients at once, including message
content. (Broadcast messages are sometimes sent by server
administrators to announce scheduled server maintenance, changes in
server policies, etc.)
- User text messages sent directly to TTCom itself.
Depending on which event from the above list is being received, the
following information may also appear with the event:
- The numeric userid assigned to the related user(these can be seen
in TeamTalk clients in the info pages for users and in the user list
accessed with Ctrl+Shift+U).
- The IP address of the user when available (this also appears in
user info pages for server administrators).
- The user's nickname, online/away status, authenticated username if
any, and channel name if any.
- The date and time of the event and an indication of which server
it came from.
The following are not logged or received with events:
- User passwords.
- Any audio, video, or shared desktop data.
- Text messages to channels or other users.
- Any personally identifying information (PII) that indicates a
user's real identity, precise physical location, address, phone
numbers, etc. These are generally not available in TeamTalk itself.
TTCom provides a command-line interface for performing many non-audio/video
tasks in TeamTalk. These are generally the same functions allowed by
the TeamTalk author's PHP Admin program.
On any server, the author can use TTCom to
- Join, leave, and text within a channel, as can be done with a
regular TeamTalk client, except that there is no audio support in
TTCom.
- Text with individual users via private messages.
- Change TTCom's nickname or online status (rarely done).
TTCom is subject to the same rules as are regular TeamTalk clients,
however. In particular, there is no way for TTCom to show a user or
channel message from another user that a regular TeamTalk client could
not also show.
On servers where TTCom is granted admin rights, it may
- Move users among channels, singly or in groups all at once.
(The classic TeamTalk client does not provide a way to move users en
mass unfortunately, though the regular (non-classic) client might
allow this via mouse operations.)
- Send broadcast messages (regular clients also have a command for
doing this).
- Intercept user activities as regular clients can, though it is
impossible for TTCom to handle audio or video. If TTCom is used to
intercept text messages, the same notification of this action is sent
to the intercepted user's client as would be sent when a regular TeamTalk
client does this.
- List and modify bans and user accounts.
As stated before, TTCom has no support for audio or video at all, and
no solution to this shortcoming is planned as it would cost
considerable time and money to implement.
At this writing, TTCom is not able to send or receive files, though
this feature could be written.
From time to time, users express concern that TTCom may be used to
evesdrop on conversations. Since TTCom contains no audio or video
support, and since its ability to see text messages is governed by the
same server-side rules enforced for all TeamTalk clients, this is not
possible even from a technical standpoint. Administrators of a server
can intercept private and channel text messages with either TTCom or a
regular client, but for a TTCom user to see channel messages
otherwise, it must join the channel and be seen just like any other
client; and TTCom, without administrative intercept, can never see a
private text message not sent directly to it. TeamTalk servers provide
no means for any client to circumvent these restrictions.
Ideas, but not code, exist as follows:
- A TeamTalk nickname registration service that would allow people
to register a nickname for exclusive use on one or more servers,
similarly to how the NickServe bot works in Internet Relay Chat (IRC).
This would require a fair amount of work to implement but is
technically feasible.
- Support for uploading and/or downloading files to/from channels,
as can be done by regular clients. This feature seems rarely needed,
however, and is thus not likely to happen soon.
- Alerts for people who join and leave a channel many times in rapid
succession, as this is disruptive to conversations
and serves no other purpose.
- Automated barring of proxy services from joining TeamTalk servers.
This would be an opt-in service chosen individually by server owners
and would require the TTCom author to be an administrator on all servers
using the service. It would also require the TTCom author to pay for a
subscription to one or more lists of known proxy server addresses. This
is feasible but so far not necessary. Provided sufficiently accurate
and maintained proxy lists, this feature would likely not be very
difficult to implement.
TTCom is released under the GNU Public License as of September 7,
2014.
The official home page for TTCom is
https://www.dlee.org/ttcom/
At this writing (May 24, 2014), the TTCom author is aware of a few
other TTCom-like projects in progress or completed:
- Of course, and as mentioned earlier, the TeamTalk author has
posted a PHP program for administrating TeamTalk servers that does
many things TTCom does. This is an open-source example of how it is
done. To this author's knowledge, no other open-source examples of
this type of program currently exist.
- In order to provide his
TeamTalk Server List
page that lists active servers and users,
Chris Nestrud runs a querying process that periodically collects
lists of logged-in users and active channels from many public TeamTalk
servers.
- A logging process runs on and is maintained by the owner of the
Edified Access Radio server to facilitate dealing with troublemakers
that occasionally appear on the server.
- The Grenade Radio server runs a process that allows MOO game
players to query who is logged into that server, including those who
are not in a channel.
- Two other private sites (to this author's knowledge) run privately
developed monitoring processes similar to TTCom but restricted to
their individual private servers.
As with TTCom, these processes can be detected via standard TeamTalk
clients by their appearance in the user list displayed by the
Ctrl+Shift+U command.
See the author's contact page at https://www.dlee.org/contact/ for
contact information.