TeamTalk 5 .NET DLL  Version 5.11A
Channel Properties

This section explains the concept of channels where users can interact. 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.RemoteFile
 A struct containing the properties of a file in a BearWare.Channel. More...
 

Enumerations

enum class  BearWare.ChannelType : uint {
  BearWare.CHANNEL_DEFAULT = 0x0000 , BearWare.CHANNEL_PERMANENT = 0x0001 , BearWare.CHANNEL_SOLO_TRANSMIT = 0x0002 , BearWare.CHANNEL_CLASSROOM = 0x0004 ,
  BearWare.CHANNEL_OPERATOR_RECVONLY = 0x0008 , BearWare.CHANNEL_NO_VOICEACTIVATION = 0x0010 , BearWare.CHANNEL_NO_RECORDING = 0x0020 , BearWare.CHANNEL_HIDDEN = 0x0040
}
 The types of channels supported. More...
 
enum class  BearWare.FileTransferStatus : uint { BearWare.FILETRANSFER_CLOSED = 0 , BearWare.FILETRANSFER_ERROR = 1 , BearWare.FILETRANSFER_ACTIVE = 2 , BearWare.FILETRANSFER_FINISHED = 3 }
 Status of a file transfer. More...
 

Functions

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

Variables

const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_MAX = 128
 The maximum number of users allowed to transmit when a BearWare.Channel is configured with ChannelType.CHANNEL_CLASSROOM. More...
 
const int BearWare.TeamTalkBase.TT_CLASSROOM_FREEFORALL = 0xFFF
 
const int BearWare.TeamTalkBase.TT_CLASSROOM_USERID_INDEX = 0
 
const int BearWare.TeamTalkBase.TT_CLASSROOM_STREAMTYPE_INDEX = 1
 
const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_FREEFORALL = 0xFFF
 
const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_USERID_INDEX = 0
 
const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_STREAMTYPE_INDEX = 1
 
const int BearWare.TeamTalkBase.TT_TRANSMITQUEUE_MAX = 16
 

Properties

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

Detailed Description

This section explains the concept of channels where users can interact.

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".

Sections:

Channel Administration

To create a new channel on a server requires UserRight.USERRIGHT_MODIFY_CHANNELS or UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL.

With UserRight.USERRIGHT_MODIFY_CHANNELS the method TeamTalkBase.DoMakeChannel() can be used to create a new channel and any existing channel can be updated using TeamTalkBase.DoUpdateChannel() and removed by calling TeamTalkBase.DoRemoveChannel(). Basically UserRight.USERRIGHT_MODIFY_CHANNELS gives unrestricted access to all channels on the server. Also seeing passwords of all channels on the server.

With UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL the user can only create temporary channels which disappear when the last user leaves the channel. A temporary channel must be created by calling TeamTalkBase.DoJoinChannel(). Once a user has created a temporary channel and joined it he becomes operator of the channel which means that he can update the channel's properties at any given time.

File Sharing

While in a channel users can upload and download files if the UserRight.USERRIGHT_UPLOAD_FILES and UserRight.USERRIGHT_DOWNLOAD_FILES are enabled. 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 channel operators and the file's owner can delete a file.

Call TeamTalkBase.DoSendFile() to upload a file and TeamTalkBase.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 TeamTalkBase.SetUserMediaStorageDir() 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

◆ ChannelType

enum BearWare.ChannelType : uint
strong

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_PERMANENT 

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

CHANNEL_SOLO_TRANSMIT 

Only one user can transmit at a time.

CHANNEL_CLASSROOM 

Voice and video transmission in the channel is controlled by a channel operator.

For a user to transmit audio or video to this type of channel the channel operator must add the user's ID to transmitUsers in the BearWare.Channel struct and call TeamTalkBase.DoUpdateChannel().

See also
TeamTalkBase.IsChannelOperator
UserType.USERTYPE_ADMIN
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.

CHANNEL_NO_VOICEACTIVATION 

Don't allow voice transmission if it's trigged by voice activation.

See also
TeamTalkBase.EnableVoiceActivation()
CHANNEL_NO_RECORDING 

Don't allow recording to files in the channel.

CHANNEL_HIDDEN 

Hidden channel which can only be seen with UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS.

Definition at line 2530 of file TeamTalk.cs.

◆ FileTransferStatus

enum BearWare.FileTransferStatus : uint
strong

Status of a file transfer.

See also
OnFileTransfer
Enumerator
FILETRANSFER_CLOSED 

brief Invalid transfer.

FILETRANSFER_ERROR 

Error during file transfer.

FILETRANSFER_ACTIVE 

File transfer active.

FILETRANSFER_FINISHED 

File transfer finished.

Definition at line 2759 of file TeamTalk.cs.

Function Documentation

◆ GetRootChannelID()

int BearWare.TeamTalkBase.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

Definition at line 7532 of file TeamTalk.cs.

◆ GetMyChannelID()

int BearWare.TeamTalkBase.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.

Definition at line 7542 of file TeamTalk.cs.

◆ GetChannel()

bool BearWare.TeamTalkBase.GetChannel ( int  nChannelID,
ref 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.

Definition at line 7557 of file TeamTalk.cs.

◆ GetChannelPath()

bool BearWare.TeamTalkBase.GetChannelPath ( int  nChannelID,
ref 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.

Definition at line 7567 of file TeamTalk.cs.

◆ GetChannelIDFromPath()

int BearWare.TeamTalkBase.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.

Definition at line 7582 of file TeamTalk.cs.

◆ GetChannelUsers()

bool BearWare.TeamTalkBase.GetChannelUsers ( int  nChannelID,
out User[]  lpUsers 
)

Get the IDs of all users in a channel.

Parameters
nChannelIDThe channel's ID.
lpUsersAn output array of User which will receive the users in the channel.
See also
BearWare.User
GetChannel

Definition at line 7594 of file TeamTalk.cs.

◆ GetChannelFiles()

bool BearWare.TeamTalkBase.GetChannelFiles ( int  nChannelID,
out RemoteFile[]  lpRemoteFiles 
)

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

Parameters
nChannelIDThe ID of the channel to extract the files from.
lpRemoteFilesA array of BearWare.RemoteFile which will receive file information.
See also
TeamTalkBase.GetChannelFile

Definition at line 7611 of file TeamTalk.cs.

◆ GetChannelFile()

bool BearWare.TeamTalkBase.GetChannelFile ( int  nChannelID,
int  nFileID,
ref RemoteFile  lpRemoteFile 
)

Get information about a file which can be downloaded.

Parameters
nChannelIDThe ID of the channel to extract the file from.
nFileIDThe ID of the file.
lpRemoteFileA preallocated struct which will receive file information.

Definition at line 7627 of file TeamTalk.cs.

◆ IsChannelOperator()

bool BearWare.TeamTalkBase.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.

Definition at line 7637 of file TeamTalk.cs.

◆ GetServerChannels()

bool BearWare.TeamTalkBase.GetServerChannels ( out Channel[]  lpChannels)

Get all the channels on the server.

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

See also
TeamTalkBase.GetServerUsers()

Definition at line 7647 of file TeamTalk.cs.

◆ GetFileTransferInfo()

bool BearWare.TeamTalkBase.GetFileTransferInfo ( int  nTransferID,
ref FileTransfer  lpFileTransfer 
)

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.
lpFileTransferA preallocated struct which will receive the file transfer information.
See also
CancelFileTransfer

Definition at line 8079 of file TeamTalk.cs.

◆ CancelFileTranfer()

bool BearWare.TeamTalkBase.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.

Definition at line 8092 of file TeamTalk.cs.

Variable Documentation

◆ TT_TRANSMITUSERS_MAX

const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_MAX = 128
static

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

Definition at line 4197 of file TeamTalk.cs.

◆ TT_CLASSROOM_FREEFORALL

const int BearWare.TeamTalkBase.TT_CLASSROOM_FREEFORALL = 0xFFF
static

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

Definition at line 4206 of file TeamTalk.cs.

◆ TT_CLASSROOM_USERID_INDEX

const int BearWare.TeamTalkBase.TT_CLASSROOM_USERID_INDEX = 0
static

User ID index in transmitUsers of BearWare.Channel

Definition at line 4210 of file TeamTalk.cs.

◆ TT_CLASSROOM_STREAMTYPE_INDEX

const int BearWare.TeamTalkBase.TT_CLASSROOM_STREAMTYPE_INDEX = 1
static

StreamType index in transmitUsers of BearWare.Channel

Definition at line 4214 of file TeamTalk.cs.

◆ TT_TRANSMITUSERS_FREEFORALL

const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_FREEFORALL = 0xFFF
static

Same as TT_CLASSROOM_FREEFORALL

Definition at line 4218 of file TeamTalk.cs.

◆ TT_TRANSMITUSERS_USERID_INDEX

const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_USERID_INDEX = 0
static

Same as TT_CLASSROOM_USERID_INDEX

Definition at line 4222 of file TeamTalk.cs.

◆ TT_TRANSMITUSERS_STREAMTYPE_INDEX

const int BearWare.TeamTalkBase.TT_TRANSMITUSERS_STREAMTYPE_INDEX = 1
static

Same as TT_CLASSROOM_STREAMTYPE_INDEX

Definition at line 4226 of file TeamTalk.cs.

◆ TT_TRANSMITQUEUE_MAX

const int BearWare.TeamTalkBase.TT_TRANSMITQUEUE_MAX = 16
static

The maximum number of users in the BearWare.Channel transmit queue when channel is configured with BearWare.ChannelType.CHANNEL_SOLO_TRANSMIT

Definition at line 4270 of file TeamTalk.cs.

Properties

◆ ChannelID

int BearWare.TeamTalkBase.ChannelID
get

Same as GetMyChannelID().

Definition at line 7549 of file TeamTalk.cs.