Channel subscriptions

Normally a user only sees other clients who are in the same channel. Clients joining or leaving other channels or changing status are not displayed. To offer a way to get notifications about clients in other channels, a user can subscribe to other channels.

[Note]Note

A client is automatically subscribed to a joined channel.

To subscribe to a channel call:

unsigned int ts3client_requestChannelSubscribe(serverConnectionHandlerID,  
 channelID,  
 returnCode); 
anyID serverConnectionHandlerID;
anyID channelID;
const char* returnCode;
 

To unsubscribe to a single channel call:

unsigned int ts3client_requestChannelUnsubscribe(serverConnectionHandlerID,  
 channelID,  
 returnCode); 
anyID serverConnectionHandlerID;
anyID channelID;
const char* returnCode;
 

To subscribe to all channels on the server call:

unsigned int ts3client_requestChannelSubscribeAll(serverConnectionHandlerID,  
 returnCode); 
anyID serverConnectionHandlerID;
const char* returnCode;
 

To unsubscribe to all channels on the server call:

unsigned int ts3client_requestChannelUnsubscribeAll(serverConnectionHandlerID,  
 returnCode); 
anyID serverConnectionHandlerID;
const char* returnCode;
 

To check if a channel is currently subscribed, check the flag CHANNEL_FLAG_ARE_SUBSCRIBED with ts3client_getChannelVariableAsInt:

int isSubscribed;

if(ts3client_getChannelVariableAsInt(scHandlerID, channelID, CHANNEL_FLAG_ARE_SUBSCRIBED, &isSubscribed)
   != ERROR_ok) {
    /* Handle error */
}

The following event will be sent for each successfully subscribed channel:

void onChannelSubscribeEvent(serverConnectionHandlerID,  
 channelID); 
anyID serverConnectionHandlerID;
anyID channelID;
 

Provided for convinience, to mark the end of mulitple calls to onChannelSubscribeEvent when subscribing to several channels, this event is called:

void onChannelSubscribeFinishedEvent(serverConnectionHandlerID); 
anyID serverConnectionHandlerID;
 

The following event will be sent for each successfully unsubscribed channel:

void onChannelUnsubscribeEvent(serverConnectionHandlerID,  
 channelID); 
anyID serverConnectionHandlerID;
anyID channelID;
 

Similar like subscribing, this event is a convinience callback to mark the end of multiple calls to onChannelUnsubscribeEvent:

void onChannelUnsubscribeFinishedEvent(serverConnectionHandlerID); 
anyID serverConnectionHandlerID;
 

Once a channel has been subscribed or unsubscribed, the event onClientMoveSubscriptionEvent is sent for each client in the subscribed channel. The event is not to be confused with onClientMoveEvent, which is called for clients actively switching channels.

void onClientMoveSubscriptionEvent(serverConnectionHandlerID,  
 clientID,  
 oldChannelID,  
 newChannelID,  
 visibility); 
anyID serverConnectionHandlerID;
anyID clientID;
anyID oldChannelID;
anyID newChannelID;
int visibility;
 

Parameters