TeamTalk 4 .NET DLL  Version 4.5A
Channel Properties

Users are arranged in a tree structure consisting of channels where each channel can hold a number of users. While in a channel users can transmit audio and video to each other as well as sending channel messages. On a server there will always be a root channel which cannot be deleted. More...

Classes

struct  BearWare.Channel
 A struct containing the properties of a channel. More...
 
struct  BearWare.FileTransfer
 A struct containing the properties of a file transfer. More...
 
struct  BearWare.FileInfo
 A struct containing the properties of a file in a BearWare.Channel. More...
 

Enumerations

enum  BearWare.ChannelType : uint {
  BearWare.CHANNEL_DEFAULT = 0x0000, BearWare.CHANNEL_STATIC = 0x0001, BearWare.CHANNEL_SOLO_TRANSMIT = 0x0002, BearWare.CHANNEL_ECHO = 0x0004,
  BearWare.CHANNEL_ECHO_AUDIO = 0x0004, BearWare.CHANNEL_CLASSROOM = 0x0008, BearWare.CHANNEL_ECHO_VIDEO = 0x0010, BearWare.CHANNEL_ECHO_DESKTOP = 0x0020,
  BearWare.CHANNEL_OPERATOR_RECVONLY = 0x0040
}
 The types of channels supported. More...
 
enum  BearWare.FileTransferStatus : uint { BearWare.FILETRANSFER_ERROR = 0, BearWare.FILETRANSFER_STARTED = 1, BearWare.FILETRANSFER_FINISHED = 2 }
 Status of a file transfer. More...
 

Functions

int BearWare.TeamTalk4.GetRootChannelID ()
 Get the root channel's ID. More...
 
int BearWare.TeamTalk4.GetMyChannelID ()
 Get the channel which the local client instance is currently participating in. More...
 
bool BearWare.TeamTalk4.GetChannel (int nChannelID, out Channel lpChannel)
 Get the channel with a specific ID. More...
 
bool BearWare.TeamTalk4.GetChannelPath (int nChannelID, out string szChannelPath)
 Get the channel's path. Channels are separated by '/'. More...
 
int BearWare.TeamTalk4.GetChannelIDFromPath (string szChannelPath)
 Get the channel ID of the supplied path. Channels are separated by '/'. More...
 
bool BearWare.TeamTalk4.GetChannelUsers (int nChannelID, out int[] lpUserIDs)
 Get the IDs of all users in a channel. More...
 
bool BearWare.TeamTalk4.GetChannelFiles (int nChannelID, out FileInfo[] lpFileInfos)
 Get the list of the files in a channel which can be downloaded. More...
 
bool BearWare.TeamTalk4.GetChannelFileInfo (int nChannelID, int nFileID, out FileInfo lpFileInfo)
 Get information about a file which can be downloaded. More...
 
bool BearWare.TeamTalk4.IsChannelOperator (int nUserID, int nChannelID)
 Check whether user is operator of a channel. More...
 
bool BearWare.TeamTalk4.GetServerChannels (out int[] lpChannelIDs)
 Get the IDs of all the channels on the server. More...
 
bool BearWare.TeamTalk4.GetFileTransferInfo (int nTransferID, out FileTransfer lpTransfer)
 Get information about an active file transfer. More...
 
bool BearWare.TeamTalk4.CancelFileTranfer (int nTransferID)
 Cancel an active file transfer. More...
 

Variables

const int BearWare.TeamTalk4.TT_VOICEUSERS_MAX = 16
 
const int BearWare.TeamTalk4.TT_VIDEOUSERS_MAX = 16
 
const int BearWare.TeamTalk4.TT_DESKTOPUSERS_MAX = 16
 
const int BearWare.TeamTalk4.TT_CLASSROOM_FREEFORALL = 0xFFFF
 

Properties

int BearWare.TeamTalk4.ChannelID [get]
 Same as GetMyChannelID(). More...
 

Detailed Description

Users are arranged in a tree structure consisting of channels where each channel can hold a number of users. While in a channel users can transmit audio and video to each other as well as sending channel messages. On a server there will always be a root channel which cannot be deleted.

In other conferencing tools channels are also refered to as "rooms".

Channel Administration

To create a new channel on a server an administrator can call TeamTalk4.DoMakeChannel() whereas a default user (without administrator rights) has to use TeamTalk4.DoJoinChannel() to create a new channel. Using TeamTalk4.DoJoinChannel() creates a dynamic channel which disappears again from the server when the last user leaves the channel. The first user to join a dynamic channel will become operator of the channel, meaning that he can kick user and make other operators as well.

Updating a channel's properties can only be done by administrators and operators of the channel and this is done by using TeamTalk4.DoUpdateChannel().

To remove a channel a user must be administrator and can do so by calling TeamTalk4.DoRemoveChannel().

File Sharing

While in a channel users can upload and download files. To upload a file to a channel the channel needs to have a disk quota. The disk quota is specified by nDiskQuota in the BearWare.Channel-struct. The file being uploaded must have a file size which is less than the disk quota and the sum of sizes of existing files. Once a file is uploaded only administrators, channel operators and the file's owner can delete a file. Note that the file's owner must have an account on the server to delete the file.

Call TeamTalk4.DoSendFile() to upload a file and TeamTalk4.DoRecvFile() to download a file. Only users who have a BearWare.UserAccount on the server are allowed to upload files. There is no limit on the maximum number of file transfers but it is advised to queue file transfers so the file transfers do no affect server performance.

Storing Conversations to Audio Files

In some applications it may be required to be able to save all audio data received by the client instance to disk. This can be archived by calling TeamTalk4.SetUserAudioFolder() which will then save received audio data in the following format: "YYYYMMDD-HHMMSS \#USERID USERNAME.wav". USERNAME is the szUsername from BearWare.User.

To store audio data from outside the local client instance's channel, please read section Spying on Users.

Enumeration Type Documentation

enum BearWare.ChannelType : uint

The types of channels supported.

See Also
Channel
Enumerator
CHANNEL_DEFAULT 

A default channel is a channel which disappears after the last user leaves the channel.

CHANNEL_STATIC 

A channel which persists even when the last user leaves the channel.

CHANNEL_SOLO_TRANSMIT 

Only one user can transmit at a time. Note that this option doesn't apply if clients are running in peer to peer mode.

See Also
TeamTalk4.EnablePeerToPeer()
CHANNEL_ECHO 

Audio transmitted to the channel by the client instance is also sent back and played by the client instance.

CHANNEL_ECHO_AUDIO 

Same as ChannelType CHANNEL_ECHO.

CHANNEL_CLASSROOM 

Voice and video transmission in the channel is controlled by a channel operator (or an administrator). For a user to transmit audio or video to this type of channel the channel operator must add the user's ID to either voiceUsers or videoUsers in the BearWare.Channel struct and call TeamTalk4.DoUpdateChannel().

Note
Requires server version 4.1.0.994 or later.
See Also
TeamTalk4.IsChannelOperator()
UserType USERTYPE_ADMIN
CHANNEL_ECHO_VIDEO 

Video sent to the channel should also be sent back to the local client instance.

CHANNEL_ECHO_DESKTOP 

Desktop session sent to the channel should also be sent back to the local client instance.

CHANNEL_OPERATOR_RECVONLY 

Only channel operators (and administrators) will receive audio/video/desktop transmissions. Default channel users will only see transmissions from operators and/or administrators.

Status of a file transfer.

See Also
OnFileTransfer
Enumerator
FILETRANSFER_ERROR 

Error during file transfer.

FILETRANSFER_STARTED 

File transfer started.

FILETRANSFER_FINISHED 

File transfer finished.

Function Documentation

int BearWare.TeamTalk4.GetRootChannelID ( )

Get the root channel's ID.

Returns
Returns the ID of the root channel. If 0 is returned no root channel exists.
See Also
GetMyChannelID
GetChannelPath
int BearWare.TeamTalk4.GetMyChannelID ( )

Get the channel which the local client instance is currently participating in.

Returns
Returns the ID of the current channel. If 0 is returned the user is not participating in a channel.
bool BearWare.TeamTalk4.GetChannel ( int  nChannelID,
out Channel  lpChannel 
)

Get the channel with a specific ID.

Parameters
nChannelIDThe ID of the channel to get information about.
lpChannelA preallocated struct which will receive the channel's properties.
Returns
FALSE if unable to retrieve channel otherwise TRUE.
bool BearWare.TeamTalk4.GetChannelPath ( int  nChannelID,
out string  szChannelPath 
)

Get the channel's path. Channels are separated by '/'.

Parameters
nChannelIDThe channel's ID.
szChannelPathWill receive the channel's path.
Returns
Returns TRUE if channel exists.
int BearWare.TeamTalk4.GetChannelIDFromPath ( string  szChannelPath)

Get the channel ID of the supplied path. Channels are separated by '/'.

Parameters
szChannelPathWill receive the channel's path.
Returns
The channel's ID or 0 on error.
bool BearWare.TeamTalk4.GetChannelUsers ( int  nChannelID,
out int[]  lpUserIDs 
)

Get the IDs of all users in a channel.

Parameters
nChannelIDThe channel's ID.
lpUserIDsAn output array of integer which will receive the user IDs of the users in the channel.
See Also
BearWare.User
GetChannel
bool BearWare.TeamTalk4.GetChannelFiles ( int  nChannelID,
out FileInfo[]  lpFileInfos 
)

Get the list of the files in a channel which can be downloaded.

Parameters
nChannelIDThe ID of the channel to extract the files from.
lpFileInfosAn output array which will receive the file IDs.
See Also
GetChannelFileInfo
bool BearWare.TeamTalk4.GetChannelFileInfo ( int  nChannelID,
int  nFileID,
out FileInfo  lpFileInfo 
)

Get information about a file which can be downloaded.

Typically this is called after receiving OnCmdFileNew.

Parameters
nChannelIDThe ID of the channel to extract the file from.
nFileIDThe ID of the file.
lpFileInfoA preallocated struct which will receive file information.
bool BearWare.TeamTalk4.IsChannelOperator ( int  nUserID,
int  nChannelID 
)

Check whether user is operator of a channel.

Parameters
nUserIDthe ID of the user to check.
nChannelIDthe ID of the channel to check whether user is operator of.
bool BearWare.TeamTalk4.GetServerChannels ( out int[]  lpChannelIDs)

Get the IDs of all the channels on the server.

Use TT_GetChannel() to get more information about each of the channels.

See Also
TeamTalk4.GetServerUsers()
bool BearWare.TeamTalk4.GetFileTransferInfo ( int  nTransferID,
out FileTransfer  lpTransfer 
)

Get information about an active file transfer.

An active file transfer is one which has been posted through the event OnFileTransfer.

Parameters
nTransferIDThe ID of the file transfer to investigate. Transfer ID is passed by OnFileTransfer.
lpTransferA preallocated struct which will receive the file transfer information.
See Also
CancelFileTransfer
bool BearWare.TeamTalk4.CancelFileTranfer ( int  nTransferID)

Cancel an active file transfer.

An active file transfer is one which has been post through the event OnFileTransfer.

Parameters
nTransferIDThe ID of the file transfer to investigate. Transfer ID is passed by OnFileTransfer.

Variable Documentation

const int BearWare.TeamTalk4.TT_VOICEUSERS_MAX = 16

The maximum number of users allowed to transmit audio when a BearWare.Channel is configured with ChannelType CHANNEL_CLASSROOM.

const int BearWare.TeamTalk4.TT_VIDEOUSERS_MAX = 16

The maximum number of users allowed to transmit video when a BearWare.Channel is configured with ChannelType CHANNEL_CLASSROOM.

const int BearWare.TeamTalk4.TT_DESKTOPUSERS_MAX = 16

The maximum number of users allowed to transmit when a BearWare.Channel is configured with ChannelType CHANNEL_CLASSROOM.

const int BearWare.TeamTalk4.TT_CLASSROOM_FREEFORALL = 0xFFFF

If a BearWare.Channel is configured with ChannelType CHANNEL_CLASSROOM then only users certain user IDs are allowed to transmit. If, however, TT_CLASSROOM_FREEFORALL is put in either voiceUsers, videoUsers and desktopUsers then everyone in the channel are allowed to transmit.

Properties

int BearWare.TeamTalk4.ChannelID
get

Same as GetMyChannelID().