Forum

Results 1 to 12 of 12
  1. #1
    Join Date
    April 2014
    Posts
    14

    Client in multiple channels feasible?

    I have a use case which requires clients to have rules on who they can speak to or listen to in a chatroom.

    Example:

    In a classroom there's many students and a teacher, a situation has occurred where the teacher wants to speak to 3 students, but each student can "only" communicate directly to the teacher;

    • The teacher speaks to all students in the channel
    • The students can speak to the teacher
    • But; the students "cannot" hear each other.


    At the moment the only way I see this could be done is with a client in multiple channels.

    Such as; 1 channel for all 4 people to listen to the teacher (students muted),
    and the teacher being in a separate channel for each student (teacher muted in each channel).


    Is there any practical solution for this? also is having a client in multiple channels even possible?


    Thanks.

  2. #2
    Join Date
    January 2010
    Location
    El Prat de Llobregat (Barcelona, Spain)
    Posts
    2,698
    Quote Originally Posted by Greyze View Post
    Example:

    In a classroom there's many students and a teacher, a situation has occurred where the teacher wants to speak to 3 students, but each student can "only" communicate directly to the teacher;

    • The teacher speaks to all students in the channel
    • The students can speak to the teacher
    • But; the students "cannot" hear each other.
    For example:

    Teacher and students in a moderated channel.
    Teacher has talk power but students have to ask for it.
    Each student can talk to the teacher whispering him.

    Students ask the teacher for talking him using the private chat.

    In case, a student can talk to the rest if the teacher gives him talk power.
    ---

  3. #3
    Join Date
    May 2007
    Location
    Eastern NC
    Posts
    1,799
    Using whispers from teacher to several students and from the students to the teach is just asking for upset/frustrated teachers and students. First, the students not hearing each other will likely all talk at once to the teacher. Second, you complicated the client settings for every user having to set up whispers to a user or the channel. All in the same moderated channel with the teacher as CA is the cleaned option. All you have to do is teach the students how to use the request talk power and put a note in the request as to the question they have. Teacher can grant them talk power if needed or answer the question and reject talk power. Then all the students benefit from hearing the question and answer.

  4. #4
    Join Date
    April 2014
    Posts
    14
    I like your suggestions! just need a bit more detail for now. I've looked through the SDK documentation and i can't seem to find information about permissions/administration powers etc.

    Am I right in believing that there are no permission tools built into the SDK? every client can call all functions? such as kicking and moving other clients. And; if I want such permissions its something I implement myself?
    To continue on this moderated channel idea, muting is obviously needed but the SDK seems to only indicate a local mute feature; as in a client can mute another client, and that only affect said client, the rest of the server will hear that person just fine.

    edit:

    Yes it seems there is no muting feature in the SDK compared to client moving and kicking. So to actually mute the students but not the teacher, is the only solution to this is;

    teacher and students: get list of clients in channel
    teacher locally mutes all students
    students locally mute eachother except teacher

    Unmuting example----

    Teacher locally unmutes 1 student
    all other students must locally unmute said student

    ---

    Surely this idea is.. silly? with a class of 10-15 students this basic operation could be dozens of calls compared to just having a single function call exactly like move and kick client; 1 function call mutes clients on the server side, so no other clients in the server will hear that person.

    Please tell me if I have this whole idea wrong
    Last edited by Greyze; April 23rd, 2014 at 11:18 AM.

  5. #5
    Join Date
    May 2007
    Location
    Eastern NC
    Posts
    1,799
    Look at the permissions for needed talk power and also functions to grant/revoke talk power

  6. #6
    Join Date
    April 2014
    Posts
    14
    Can you please point out the function names, or where in the SDK documentation it discusses permissions? I can't see any functionality in the SDK that has details on permissions, or muting clients appropriately.

  7. #7
    Join Date
    September 2012
    Posts
    6,079
    The SDK provides the basic technology of TeamSpeak, it is not a full fledged client or server as we offer with the regular Server / Client downloads.
    There is no permission system in the SDK, if you want something like permissions, you're right in that you'd have to implement it yourself.

    Each client can call pretty much every function (e.g. moving, kicking) but, as far as I know right now, the server can disable certain functions to prevent clients from calling them.
    This usually is no problem since client often don't even see any User interface and everything is pretty much automated. Because there is no user interface there is usually no way for a client to initiate a kick (unless the application being created provides one) and as such it is fine to allow them to call those functions. If the application provides a way to kick / move other clients then it is the application that needs to make sure the user is allowed said action.

    In theory you should be able to use whisper lists for this, that are automatically maintained by your code. The Teacher whispers to all of them (or just sends to the channel if they are all in the same channel) and each client automatically whispers to the teacher. Personally haven't been doing much work with the SDK so I'm not sure but it should be possible this way.
    When sending PMs please make sure to include a reference link to the thread in question in the body of your message.

  8. #8
    Join Date
    April 2014
    Posts
    14
    Thanks for the reply, you answered a lot of questions for me!

    One last thing, is there any decent solution for muting clients?

    the client functions that move/kick specific users is perfect, but I don't see a mute.
    At the moment it's as I said above; to have my "admin" mute a person in the channel means that every single client will have to call the mute function: "ts3client_requestMuteClients" because that's a local function, not applied to the server.

  9. #9
    Join Date
    September 2012
    Posts
    6,079
    so you want a specific user ("admin") to decide that another client should no longer be transmitting voice data?
    When sending PMs please make sure to include a reference link to the thread in question in the body of your message.

  10. #10
    Join Date
    April 2014
    Posts
    14
    Basically yes.

    PotaBlavas post, his example is perfect for my situation.
    Teacher and students in a moderated channel.
    Teacher has talk power but students have to ask for it.
    Each student can talk to the teacher whispering him.
    The whole students making requests etc. is completely fine on my part. But I expected a function in the SDK to stop a clients voice from transmitting.

  11. #11
    Join Date
    September 2012
    Posts
    6,079
    one way I can think of right now would be to (ab)use the chat for that, to send a specific message for example "/command mute id=5" (where 5 is the clientID). You could then have the client catch that type of messages and do a specific set of actions on the client side instead of displaying that message. You should check if the client sending the message is allowed to mute the client. To mute you can use ts3client_setClientSelfVariableAsInt and set the INPUT_MUTED to 1, followed by a call to ts3client_flushClientSelfUpdates to tell the server about the changes.
    When sending PMs please make sure to include a reference link to the thread in question in the body of your message.

  12. #12
    Join Date
    April 2014
    Posts
    14
    Excellent idea, it seems like every issue I had has now been resolved!

    Thanks for the input everyone.

    I don't know if you take suggestions, but can I request for the next TS SDK update could you make a function to mute a client? similar to the functions you have like;
    ts3client_requestClientMove, ts3client_requestClientKickFromServer, etc

    I think it would be great for an "admin" to have the ability to do ts3client_requestClientMute(), just to make it a little easier

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [Rejected] Connecting to multiple channels and having multiple PTT's
    By Ziffnabb in forum Suggestions and Feedback
    Replies: 3
    Last Post: July 7th, 2012, 12:45 AM
  2. Multiple Server Groups For Multiple Server Channels
    By Goldfox in forum Permission System
    Replies: 1
    Last Post: October 18th, 2011, 04:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •