Results 16 to 30 of 110
-
13-08-2010, 20:51 #16
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
New Version 0.27.19.0
Due to the recent beta27 release I've created a new release of the library. You can download it here:
http://ts3querylib.codeplex.com/releases/view/50542
Changes:
- Added methods "CopyChannelGroup" and "OverwriteChannelGroup" to class "QueryRunner" (beta 26 change)
- Added methods "CopyServerGroup" and "OverwriteServerGroup" to class "QueryRunner" (beta 26 change)
- Added property "ClientCountry" to class "ClientInfoResponse" (beta 26 change)
- Added property "ClientIP" to class "ClientInfoResponse" (beta 26 change)
- Added property "IsChannelCommand" to class "ClientListEntry" (beta 26 change)
- Added parameter "onlyOfflineServers" to method "GetServerList" of class "QueryRunner" (beta 26 change)
- Fixed wrong references in silverlight project. Referencing the silverlight library in a silverlight project does work now.
Please report bugs and feel free to criticize me
SCO
-
15-08-2010, 16:23 #17
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
Hi! I'm very sorry if this is the wrong thread to ask, but I have troubles even with the basic function of the TS3Query library, connection to TS server. Even the simplest code as:
ends with thrown "host actively refused connection" error in the Connect method:Code:SyncTcpDispatcher std = new SyncTcpDispatcher("85.236.109.28", 10877); std.Connect();
Ten times I checked the IP and port and I am very sure they exist, TS3 client connects without problems. Please, can you tell me what I'm doing wrong? I tried even the example code, where the first method called to establish connection is Login(name, pass), but the error is still the same.Code:in TS3QueryLib.Core.SyncTcpDispatcher.Connect() in C:\Projects\CodePlex\tfs02\TS3QueryLib\Main\TS3QueryLib.Core.Silverlight\SyncTcpDispatcher.cs:line 86
Thanks for any response.
-
15-08-2010, 21:03 #18
-= TeamSpeak Lover =-
- Join Date
- Jan 2010
- Location
- Germany
- Posts
- 29
Did you try this example? -> http://ts3querylib.codeplex.com/wikipage?title=ConnectToServer&referringTitle=Docu mentation
edit:
Oh wait... is it possible that you used the library within a Silverlight project? Or maybe it's just a firewall issue? Are you sure it's the right port? You need to use the queryport not the port of a virtualserver.
Could be anything, but the exception says that you can't establish a socket connection to the server.Last edited by Insel; 15-08-2010 at 21:17.
-
15-08-2010, 21:45 #19
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
Well, all right, please forgive me my previous question. Naturally the port needs to be query port and not client port. Uhm, my bad.

PS: But maybe, if you have a few minutes, I need for now just 1 thing, to see who is talking. can you pls push me in the right direction, items to search for in the quite huge library? Thanks a lot, also for previous answer!!!
-
16-08-2010, 07:54 #20
-= TeamSpeak Lover =-
- Join Date
- Jan 2010
- Location
- Germany
- Posts
- 29
-
16-08-2010, 08:13 #21
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
ListResponse<ClientListEntry> clientListResponse = queryRunner.GetClientList(true);
if (clientListResponse.IsErroneous)
throw new InvalidOperationException(string.Format("Could not get the list of clients. Reason: {0}", clientListResponse.ErrorMessage));
List<ClientListEntry> talkingClients = clientListResponse.Values.FindAll(c => c.IsClientTalking == true);
Console.WriteLine("Talking clients:");
foreach (ClientListEntry clientListEntry in talkingClients)
{
Console.WriteLine("- {0}", clientListEntry.Nickname);
}
-
16-08-2010, 09:23 #22
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
Thanks a lot! A little explanation: I was asked to extend somehow a little application I made to support TS3, to show on screen who is currently talking. There was something similar for TS2, but that is almost 3 years old now and unuseable. So I guessed this TS3Query library may have an "event" that could notify me when someone starts talking.
Looking a bit closer to the available things, it seems now certain things can be reported as events (e.g. sending text), but this speaking state must be sort of "polled", checked, probably in regular intervals. But if there are in the end 20 query connections to TS3 and each is asking for clients state every second... Uhm, that would be quite a lot of traffic.
-
16-08-2010, 10:35 #23
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
As far as I know there is no event (notification) that tells you that someone started/stopped talking. So your only chance is regularly polling.

SCO
-
16-08-2010, 13:11 #24
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
OK, big thanks for all the suggestions! I'll see if the polling idea is workable. Currently I'm struggling a bit with receiving any notifications (text, leave), but it is just probably a matter of what I'm listening to and where... Thanks again!
-
17-08-2010, 11:48 #25
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
So I tried the polling, it works good in essence. The real big problem is that isClientTalking is, it seems, never set to true. When watching response text, I see for example this:
There's nothing about actual talking taking place, I can't find any appropriate item in the TS3 Query manual. Am I again doing something wrong? It seems the property is bound to client_flag_talking, but there is no such item mentioned in documentation?Code:clid=3 cid=4700 client_database_id=10653 client_nickname=Framaris client_ type=0 client_away=0 client_away_message client_input_muted=0 client_output_mute d=0 client_input_hardware=1 client_output_hardware=1 client_input_deactivated=0 client_talk_power=75 client_is_talker=0 client_is_priority_speaker=0 client_is_r ecording=0 client_is_channel_commander=0 client_unique_identifier=8\/kPBl\/6Wt4g Xua7lEGS9yhlKn8= client_servergroups=897 client_channel_group_id=1089 client_ver sion=3.0.0-beta26\s[Build:\s12040] client_platform=Windows client_idle_time=823 client_icon_id=0
Well, if in fact it is not possible to recognize via query interface that someone is talking, is there an other way to make the info available? Or could we possibly ask TS3 developers to include the flag and maybe also add notifications about someone started and stopped to talk? I do not know anything about TS3 community/development relations, but maybe...
-
17-08-2010, 17:53 #26
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
Strange, will have a look at it..
-
17-08-2010, 18:11 #27
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
Mhh I've checked the code and whats sent to the query port is:
clientlist -uid -away -voice -groups -info -times -icon
The option "-voice" is the important part
But the response no longer includes the flag "client_flag_talking"
Maybe it got accidentally lost in a new release of TS3 Server?!?!
I would suggest you to ask the TS3 Devs if it was an accident or planned.
SCO
-
18-08-2010, 00:43 #28
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
Actually, when used just with the -voice part the clientlist command returns a client_flag_talking value. But test show it is always zero... Uhm...
-
19-08-2010, 12:27 #29
-= TeamSpeak User =-
- Join Date
- Aug 2010
- Location
- Prague, CZ
- Posts
- 13
Hi again. It seems that currently we can't do much concerning detection of talking clients through server query port. There's no notification available and regular polling also does not seem to work, because the appropriate flag is always 0/false.

But please allow me to ask about one other thing. I'm somehow not able to listen to simple events, such as clients joining a TS3 server. Below is the simplified form of code I'm using, but in fact the event (printing newly connected name) is never raised. Please, what did I miss this time?
Code:static void TeamSpeak3Start() { std = new SyncTcpDispatcher("91.121.67.XXX", 10011); // get dispatcher qrn = new QueryRunner(std); // get runner qrn.SelectVirtualServerByPort(YYYY); //connect and use a server qrn.RegisterForNotifications(ServerNotifyRegisterEvent.Server); // register for server events qrn.Notifications.ClientJoined += new EventHandler<ClientJoinedEventArgs>(queryRunner_ClientJoined); // listen to clients joining } static void queryRunner_ClientJoined(object sender, ClientJoinedEventArgs e) { System.Console.WriteLine(e.Nickname); // simply print joiner name }
-
19-08-2010, 12:45 #30
-= TeamSpeak Addict =-
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 115
The SyncTcpDispatcher does not support those events. As the name suggest it's the synchronous version of the dispatcher.
To use those events you have to use the AsyncTcpDispatcher. An example of how to use it can be found here:
http://ts3querylib.codeplex.com/Sour.../59138#1119306
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Similar Threads
-
BUG? Repeated query client connect/diconnect
By HHD_HELLBOUND in forum Bug ReportsReplies: 5Last Post: 09-02-2012, 08:04 -
[Solved] Normal user ban others?
By Morfi in forum Server SupportReplies: 21Last Post: 23-03-2010, 15:13 -
Beta 15 Crashing?
By MaXXimus in forum Linux / FreeBSDReplies: 4Last Post: 25-01-2010, 11:52 -
Query Port connection returns "ERROR: invalid id"
By Polecr0c in forum [TeamSpeak 2] Server SupportReplies: 2Last Post: 11-05-2006, 09:05


Reply With Quote
