TTConv, the TeamTalk Configuration File Converter
Doug Lee
Last Revised May, 2024

This utility is designed to help with the following tasks:

TTConv is a console application and can be run either with command-line options or without arguments in an interactive mode. At this time, the interactive mode is only for migration of servers from the Classic client to the Qt client; the other uses require command-line arguments.

TTConv is Copyright (c) 2013-2024 by Doug Lee and is covered by the GNU AFFERO GENERAL PUBLIC LICENSE, version 3. A copy of this license is also included as file copying.txt. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the full license for details. iniparse, included in its entirety, comes with its own license (also included).

Table of Contents

System Requirements

On Windows, users can run the executable (.exe) version of this utility. Those wishing to run this utility from source on Windows must first download and install a version of Python 3.7 or later.

On MacOS, Linux, and other Python-supporting platforms, make sure to run this utility via Python 3.7 or later.

Installation and Launch Instructions

To install and launch this utility:

  1. Download the TTConv zip file, and extract the zip's contents into a location of your choosing. Alternatively, on Windows, simply download the Windows executable and place it in a location of your choosing.
  2. Run the utility from its extracted or downloaded location. Do not try to run the utility from inside the Zip file. On Windows, run ttconv.exe. On other operating systems, or on Windows with Python 3.7 or later installed, run ttconv.py via the correct Python command.

TTConv Usage

This document will use the command ttconv to indicate launching TTConv. If you are using the Windows executable, it might be necessary to type the full path to TTConv, such as c:\TTConv\ttconv.exe instead. To run TTConv from source, on Windows after installing Python 3.7 or later or on any other operating system, it will more likely be necessary to type something like python c:\TTConv\ttconv.py or python3 c:\TTConv\ttconv.py.

Migrating From the Classic Client To the Qt Client

For the most common interactive use, migrating from Classic to Qt, TTConv is designed not to require being launched from within a shell window (e.g., cmd on Windows). This is why TTConv will often stop before closing with a message like "Press Enter to exit." This facilitates use of TTConv via a Windows or similar shortcut or from Windows Explorer or similar.

If run without command-line arguments, TTConv will currently assume that a Classic-to-QT migration is wanted and will analyze files accordingly. If items are found to migrate, TTConv will offer to convert them. Otherwise it will report finding nothing and prompt to exit.

Before proceeding, TTConv will ask whether you wish to migrate a portable TeamTalk instance. Most users will probably answer no (n) to this question and migrate an installed TeamTalk instance. If you do wish to migrate a portable copy, answer yes (y) and then, when prompted, enter the path to the folder containing the portable TeamTalk files.

When TTConv finds entries in the TeamTalk 5 Qt client .ini file, it will indicate this and will prompt for permission to replace those entries. This will happen if you have previously migrated or if you have already added servers to the Qt client. The number of servers found in the Qt file should help in choosing whether to proceed with the current migration.

Creating an HTML Version of a Set of Servers

TTConv is capable of making an HTML file in which servers appear as links. This can be especially useful for phone users who also use a file sharing service, such as Dropbox, to pass files between Mac or Windows and a phone.

Warning: As currently written, TTConv does not pause after messages before exiting when used in this mode. This contrasts with TTConv's behavior when used to migrate servers from the Classic client to the Qt client. Rationale: Whereas migration from the Classic client to the Qt client is likely to be a one-time or at least infrequent event, creation/updating of an HTML version of a TeamTalk server list can remain perpetually useful as the server list evolves. The expected usage, therefore, is via a shortcut, written once and run as needed.

To create an HTML version of a set of servers, type a command line that includes an indication of which servers to use and where to store the resulting HTML file. An example:

c:\ttconv\ttconv.exe .ini c:\Dropbox\tt.htm
In this example:

To facilitate running the above HTML generation periodically after TeamTalk servers are added, modified, etc., make a Desktop shortcut whose "Target" field is a command such as the one in the preceding example. It is likely even possible to run such updates on a schedule in the background, though means of setting this up fall beyond the scope of this documentation.

Updating Secondary TeamTalk Configuration Profile Server Lists

Some TeamTalk users maintain secondary configuration profiles, such as for different sound setups. As the primary server list evolves, keeping secondary profile server lists up to date can become laborious. TTConv can help with this by transferring the primary server list to a secondary profile with a single command.

As with creating HTML server lists, the expected usage of this profile server list copying feature is periodic; therefore, there is no pause after messages in this mode of operation. A Windows shortcut for this purpose may very well prove very effective. Example:

c:\ttconv\ttconv.exe .ini .ini.1
If multiple secondary profiles must periodically be updated, create one shortcut for each, or create a .bat, .cmd, or similar script file that updates them all, then make a shortcut that runs that file. An example .bat or .cmd file of this sort:
@echo off c:\ttconv\ttconv.exe .ini .ini.1 c:\ttconv\ttconv.exe .ini .ini.2 c:\ttconv\ttconv.exe .ini .ini.3
Note that each secondary profile should already exist, having been created by TeamTalk itself prior to being updated by this utility. TTConv should not be used to create secondary profiles because this would not include required information that TeamTalk needs.

Creating .tt Files For a Set of Servers

TTConv can populate a folder with a set of .tt files, one per server in a server or latest-hosts list. TeamTalk can then be launched directly into a server, and possibly channel, by activating a .tt file, such as by clicking or pressing Enter on it from Windows Explorer or activating it from the Finder in MacOS. .tt files may also work to launch TeamTalk on other platforms.

Warning: As currently written, TTConv does not pause after messages before exiting when used in this mode. See the similar warning and rationale in the previous section regarding the creation of HTML server lists.

To create a set of .tt files from a server list, type a command line that includes an indication of which servers to use and where to store the resulting .tt files. An example:

c:\ttconv\ttconv.exe .ini c:\Dropbox\ttfiles/.tt
In this example:

Warning: TTConv does not check whether the given folder is empty and does not check for pre-existing .tt files within it. Consequences:

Known Issues

Issues shown in this section may be fixed in future TTConv versions.

Alternate TeamTalk configuration profiles are not yet supported during a migration from the Classic client to the Qt client. They may of course be handled via individual TTConv runs with command lines that request copying of specific server lists among specific files.

The support for generating .tt files is perhaps less than ideal, in that it provides no simple means to keep a folder precisely synchronized with a TeamTalk configuration file. Because the HTML approach fills the needs previously filled by .tt files, however, this author does not predict this shortcoming to be a significant problem.

Revision History

Here is the revision history of TTConv, most recent entry first: Note that the revision numbers are artificially high because this project began as part of another much older one.

Revision 1270, May 17, 2024

Revision 1267, January 12, 2024

Revision 1260, June 23, 2023

Revision 1258, May 15, 2023

3 older revisions back through July 4, 2021

Revision 1256, January 1, 2023

Revision 1255, December 5, 2021

Revision 1232, July 4, 2021

First public release. This release was published very rapidly to coincide with the unexpected timing of the initial TeamTalk 5.8.0 Qt release. Various older versions existed, back through February, 2013; but all were considered experimental and not formally released. The original provisional name for the utility was IXConv. Work on this incarnation began on February 5, 2013, as part of this author's experimentation with non-Classic Windows and MacOS TeamTalk clients.