Beispiel #1
0
 public void NewMessage(TextMessage msg)
 {
     User user = new User();
     if (!ttclient.GetUser(msg.nFromUserID, ref user))
         return;
     this.Text = "Message - " + user.szNickname;
     historyTextBox.AppendText("<" + user.szNickname + "> " + msg.szMessage + Environment.NewLine);
 }
 public static extern BearWare.ClientError TTS_SendTextMessage(IntPtr lpTTSInstance, [In] ref BearWare.TextMessage lpTextMessage);
Beispiel #3
0
 void ttclient_OnCmdUserTextMessage(TextMessage textmessage)
 {
     switch (textmessage.nMsgType)
     {
         case TextMsgType.MSGTYPE_USER :
             MessageDlg dlg;
             if (msgdialogs.TryGetValue(textmessage.nFromUserID, out dlg))
             {
                 dlg.NewMessage(textmessage);
                 if (!dlg.Visible)
                     dlg.Show();
             }
             else
             {
                 dlg = new MessageDlg(ttclient, textmessage.nFromUserID);
                 dlg.FormClosed += new FormClosedEventHandler(dlg_MessageDlgClosed);
                 dlg.NewMessage(textmessage);
                 dlg.Show();
                 msgdialogs.Add(textmessage.nFromUserID, dlg);
             }
             break;
         case TextMsgType.MSGTYPE_CHANNEL:
             {
                 User user = new User();
                 if (ttclient.GetUser(textmessage.nFromUserID, ref user))
                     chatTextBox.AppendText("<" + user.szNickname + "> " + textmessage.szMessage + Environment.NewLine);
                 break;
             }
         case TextMsgType.MSGTYPE_BROADCAST:
             {
                 User user = new User();
                 if (ttclient.GetUser(textmessage.nFromUserID, ref user))
                 {
                     MessageBox.Show("Broadcast message from " + user.szNickname + Environment.NewLine +
                                     textmessage.szMessage);
                 }
             }
             break;
         case TextMsgType.MSGTYPE_CUSTOM:
             {
             }
             break;
     }
 }
Beispiel #4
0
 /**
  * @brief Send a text message to either a user or a channel.
  *
  * Can also be a broadcast message which is received by all users
  * on the server. This, however, requires
  * ::USERRIGHT_TEXTMESSAGE_BROADCAST.
  *
  * Possible errors:
  * - #ClientError ::CMDERR_NOT_LOGGEDIN
  * - #ClientError ::CMDERR_NOT_AUTHORIZED
  * - #ClientError ::CMDERR_CHANNEL_NOT_FOUND
  * - #ClientError ::CMDERR_USER_NOT_FOUND
  *
  * @param lpTextMessage A preallocated text-message struct.
  * @return Returns command ID which will be passed in
  * #OnCmdProcessing event when the server is processing the
  * command. -1 is returned in case of error.
  * @see UserRight ::USERRIGHT_TEXTMESSAGE_BROADCAST */
 public int DoTextMessage(TextMessage lpTextMessage)
 {
     return TTDLL.TT_DoTextMessage(m_ttInst, ref lpTextMessage);
 }
Beispiel #5
0
 void ttserver_OnUserTextMessage(ref User lpUser, ref TextMessage lpTextMessage)
 {
     String str = String.Format("User {0} sent text message",
                    lpUser.szUsername);
     Console.WriteLine(str);
 }
Beispiel #6
0
        public void TestTextMessage()
        {
            const string USERNAME = "******", PASSWORD = "******"; string NICKNAME = "TeamTalk.NET - " + GetCurrentMethod();
            const UserRight USERRIGHTS = UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL | UserRight.USERRIGHT_VIEW_ALL_USERS;
            MakeUserAccount(GetCurrentMethod(), USERNAME, PASSWORD, USERRIGHTS);
            TeamTalk ttclient = NewClientInstance();

            Connect(ttclient);
            Login(ttclient, NICKNAME, USERNAME, PASSWORD);
            int cmdid;

            TTMessage msg = new TTMessage();

            Channel chan = new Channel();
            chan.nParentID = ttclient.GetRootChannelID();
            chan.szName = "my channel";
            chan.szTopic = "a topic";
            chan.nMaxUsers = 128;
            chan.audiocodec.nCodec = Codec.OPUS_CODEC;
            chan.audiocodec.opus.nApplication = OpusConstants.OPUS_APPLICATION_AUDIO;
            chan.audiocodec.opus.nChannels = 1;
            chan.audiocodec.opus.nBitRate = 64000;
            chan.audiocodec.opus.nComplexity = 5;
            chan.audiocodec.opus.nTxIntervalMSec = 20;
            chan.audiocodec.opus.nSampleRate = 48000;
            chan.audiocodec.opus.bDTX = true;
            chan.audiocodec.opus.bFEC = true;
            chan.audiocodec.opus.bVBR = true;
            chan.audiocodec.opus.bVBRConstraint = false;

            TeamTalk ttclient2 = NewClientInstance();
            Connect(ttclient2);
            Login(ttclient2, ADMIN_NICKNAME, ADMIN_USERNAME, ADMIN_PASSWORD);

            //text message
            string newmessage = "this is a new message";
            TextMessage txtmsg = new TextMessage();
            txtmsg.nMsgType = TextMsgType.MSGTYPE_USER;
            txtmsg.szMessage = newmessage;
            txtmsg.nToUserID = 55555;

            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(cmdid > 0, "text msg err issued");
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_ERROR, DEF_WAIT), "invalid userid");

            txtmsg.nToUserID = ttclient2.GetMyUserID();
            
            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(cmdid > 0, "text msg issued");
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "send tx msg to userid");

            Assert.IsTrue(WaitForEvent(ttclient2, ClientEvent.CLIENTEVENT_CMD_USER_TEXTMSG, DEF_WAIT, ref msg), "recv text msg");
            TextMessage recv_txtmsg = (TextMessage)msg.DataToObject();

            Assert.AreEqual(txtmsg.nMsgType, recv_txtmsg.nMsgType);
            Assert.AreEqual(txtmsg.nChannelID, recv_txtmsg.nChannelID);
            Assert.AreEqual(txtmsg.szMessage, recv_txtmsg.szMessage);

            //custom message
            txtmsg.nMsgType = TextMsgType.MSGTYPE_CUSTOM;

            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(cmdid > 0, "custom text msg issued");
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "send custom tx msg to userid");

            Assert.IsTrue(WaitForEvent(ttclient2, ClientEvent.CLIENTEVENT_CMD_USER_TEXTMSG, DEF_WAIT, ref msg), "recv custom text msg");
            recv_txtmsg = (TextMessage)msg.DataToObject();

            Assert.AreEqual(txtmsg.nMsgType, recv_txtmsg.nMsgType);
            Assert.AreEqual(txtmsg.nChannelID, recv_txtmsg.nChannelID);
            Assert.AreEqual(txtmsg.szMessage, recv_txtmsg.szMessage);

            //broadcast
            txtmsg.nMsgType = TextMsgType.MSGTYPE_BROADCAST;
            
            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_ERROR, DEF_WAIT), "no bcast rights");

            cmdid = ttclient2.DoTextMessage(txtmsg);
            Assert.IsTrue(WaitForEvent(ttclient2, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "has bcast rights");

            cmdid = ttclient.DoJoinChannel(chan);
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT, ref msg), "has rights");
            Assert.AreEqual(cmdid, msg.nSource);

            //channel msg
            txtmsg.nMsgType = TextMsgType.MSGTYPE_CHANNEL;
            txtmsg.nChannelID = ttclient.GetRootChannelID();
            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_ERROR, DEF_WAIT), "no chan msg rights");

            txtmsg.nChannelID = ttclient.GetMyChannelID();
            cmdid = ttclient2.DoTextMessage(txtmsg);
            Assert.IsTrue(WaitForEvent(ttclient2, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "has chan msg rights");

            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "own chan msg rights");

            cmdid = ttclient.DoLeaveChannel();
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_SUCCESS, DEF_WAIT), "leave chan");

            //invalid text message
            txtmsg = new TextMessage();
            txtmsg.nMsgType = (TextMsgType)55;
            txtmsg.szMessage = "blahhhhhh";
            txtmsg.nToUserID = 55555;

            cmdid = ttclient.DoTextMessage(txtmsg);
            Assert.IsTrue(cmdid > 0, "text msg issued");
            Assert.IsTrue(WaitForEvent(ttclient, ClientEvent.CLIENTEVENT_CMD_ERROR, DEF_WAIT, ref msg), "protocol error");
            ClientErrorMsg errmsg = (ClientErrorMsg)msg.DataToObject();
            Assert.AreEqual((int)ClientError.CMDERR_INCOMPATIBLE_PROTOCOLS, errmsg.nErrorNo);
        }
Beispiel #7
0
 static void ttclient_OnCmdUserTextMessage(TextMessage textmessage)
 {
     User user = new User(), touser = new User();
     if (!ttclient.GetUser(textmessage.nFromUserID, ref user))
         return;
     ttclient.GetUser(textmessage.nToUserID, ref touser);
     string chanpath = "";
     ttclient.GetChannelPath(textmessage.nChannelID, ref chanpath);
     switch (textmessage.nMsgType)
     {
         case TextMsgType.MSGTYPE_USER :
             Console.WriteLine("Text message from user #{0} {1} to user #{2} {3} content: {4}",
                 user.nUserID, user.szNickname, touser.nUserID, touser.szNickname, textmessage.szMessage);
             break;
         case TextMsgType.MSGTYPE_CHANNEL :
             Console.WriteLine("Text message from user #{0} {1} to channel {2} context: {3}",
                 user.nUserID, user.szNickname, chanpath, textmessage.szMessage);
             break;
         case TextMsgType.MSGTYPE_BROADCAST :
             Console.WriteLine("Text messagr from user #{0} {1} to entire server content: {2}",
                 user.nUserID, user.szNickname, textmessage.szMessage);
             break;
     }
 }