コード例 #1
0
 public virtual Task <Message> SendVoiceAsync(VoiceMessage message,
                                              CancellationToken cancellationToken = default)
 {
     return(Client.SendVoiceAsync(message.ChatId, message.InputOnlineFile, message.Caption, message.ParseMode,
                                  message.Duration,
                                  message.DisableNotification, message.ReplyToMessageId, message.ReplyMarkup, cancellationToken));
 }
コード例 #2
0
ファイル: MessageController.cs プロジェクト: linzroe/wechat
        public async Task <HttpResponseMessage> SendVoiceMessage(VoiceMessage voiceMessage)
        {
            ResponseBase <IList <MMPro.MM.UploadVoiceResponse> > response = new ResponseBase <IList <MMPro.MM.UploadVoiceResponse> >();

            try
            {
                IList <MMPro.MM.UploadVoiceResponse> list = new List <MMPro.MM.UploadVoiceResponse>();
                byte[] buffer = await FileStorageHelper.DownloadToBufferAsync(voiceMessage.ObjectName);

                foreach (var item in voiceMessage.ToWxIds)
                {
                    var result = wechat.SendVoiceMessage(voiceMessage.WxId, item, buffer, voiceMessage.FileName.GetVoiceType(), voiceMessage.VoiceSecond * 100);
                    list.Add(result);
                }
                response.Data = list;
            }
            catch (ExpiredException ex)
            {
                response.Success = false;
                response.Code    = "401";
                response.Message = ex.Message;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Code    = "500";
                response.Message = ex.Message;
            }
            return(await response.ToHttpResponseAsync());
        }
コード例 #3
0
        public void SendVoiceMessageCollection_RestClientReturnsNull_ReturnsNull()
        {
            // Arrange
            VoiceMessage           message  = new VoiceMessage("recipients", "body", "accountReference");
            VoiceMessageCollection messages = new VoiceMessageCollection(message);

            string serialisedMessage = "serialisedMessage";

            RestResource resource = new MessageDispatcherResource(serialisedMessage, false);

            RestResponse response = null;

            mockSerialiser
            .Setup(s => s.Serialise(messages))
            .Returns(serialisedMessage);

            mockRestClient
            .Setup(rc => rc.Post(resource))
            .Returns(response);

            // Act
            MessagingResult actualResult = service.SendMessages(messages);

            // Assert
            Assert.IsNull(actualResult);
        }
コード例 #4
0
 /// <summary>
 /// Reply to a message with a voice message
 /// </summary>
 /// <param name="msg">The message to reply to</param>
 /// <param name="data">The voice message data</param>
 /// <param name="onResponse">The response to the message</param>
 public void Reply(Message msg, VoiceMessage data, rs onResponse = null)
 {
     msg.MimeType = "Audio/speex";
     DoMessage(new Message(msg.ReturnAddress,
                           msg.MesgType, DataType.VoiceMessage,
                           data), onResponse);
 }
コード例 #5
0
        private void soundPlayer_PlaybackStopped(object sender, EventArgs e)
        {
            lock (voiceMessageQueue)
            {
                if (voiceMessageQueue.Count > 0) // voicemessage data are in queue
                {
                    VoiceMessage voiceMessage = voiceMessageQueue.Dequeue();

                    executeCodeOnUIThread(() => {
                        showVoiceMessageReceivedBallonTip(voiceMessage);
                        try
                        {
                            soundPlayer.Play(voiceMessage.Data);
                        }
                        catch (Exception ex)
                        {
                            Logger.log.Error(ex);
                            MessageBoxManager.ShowMessageBoxError(ERROR_PLAYING_VOICEMESSAGE_STRING);
                        }
                    });
                }
                else
                {
                    soundPlayer.Stop();
                    soundPlayer = null;
                }
            }
        }
コード例 #6
0
        private void handleVoiceMessage(VoiceMessage voiceMessage, TcpClient sender, NetworkMessageReader networkMessageReader)
        {
            if (voiceMessage.Sender.Id.HasValue && existsClientInClientListByTcpClientAndId(sender, voiceMessage.Sender.Id.Value))
            {
                Logger.log.Info($"Voicemessage received from {getServerBroadcastClientByTcpClient(sender)}");

                var clientsToRemove = new List <TcpClient>();

                foreach (ServerBroadcastClient client in clients.Where(client => !client.Client.Id.Value.Equals(voiceMessage.Sender.Id.Value)).ToList())
                {
                    // sendBroadcast
                    try
                    {
                        NetworkMessageWriter messageWriter = new NetworkMessageWriter(client.TcpClient);
                        messageWriter.WriteError += (_ob, _e) => { Logger.log.Error(_e); };
                        messageWriter.WriteAsync(voiceMessage);
                    }
                    catch (Exception ex)
                    {
                        // connection error? client is offline?
                        Logger.log.Error(ex);
                        clientsToRemove.Add(client.TcpClient);
                    }
                }

                removeClientsFromListByTcpClients(clientsToRemove);
            }
        }
コード例 #7
0
ファイル: Test.cs プロジェクト: Vip56/RongCloudNetCore
        public async Task TestPublishVoiceMessage()
        {
            string[]     messageUserIds = { "userId2", "userid3", "userId4" };
            VoiceMessage msg            = new VoiceMessage("hello", "helloExtra", 20L);
            var          result         = await _client.Message.PublishPrivate("userId1", messageUserIds, msg, "thisisapush", "exit", "4", 0, 0, 0);

            Assert.Equal(result.Code, 200);
        }
コード例 #8
0
        public void Operation_Not_Supported()
        {
            //arrange
            var message = new VoiceMessage();

            //act+assert
            Assert.Throws <OperationNotSupportedException>(() => SUT.Send(message));
        }
コード例 #9
0
        public void VoiceFromAddressIsNotModified()
        {
            string       result       = "test";
            VoiceMessage voiceMessage = new VoiceMessage();

            voiceMessage.FromAddress = result;

            Assert.AreEqual(result, voiceMessage.FromAddress);
        }
コード例 #10
0
        public void VoiceVoiceIsNotModified()
        {
            string stringParam = "test";

            byte[]       result       = Encoding.ASCII.GetBytes(stringParam);
            VoiceMessage voiceMessage = new VoiceMessage();

            voiceMessage.Voice = result;

            Assert.AreEqual(result, voiceMessage.Voice);
        }
コード例 #11
0
        static void Main(string[] args)
        {
            VoiceMessage mess1 = new VoiceMessage();

            mess1.Send();

            EmailMessage mess2 = new EmailMessage();

            mess2.Send();
            Console.ReadLine();
        }
コード例 #12
0
        public VoiceMessage SendVoiceMessage(string body, long[] msisdns, VoiceMessageOptionalArguments optionalArguments = null)
        {
            ParameterValidator.IsNotNullOrWhiteSpace(body, "body");
            ParameterValidator.ContainsAtLeast(msisdns, 1, "msisdns");

            var recipients = new Recipients(msisdns);
            var voiceMessage = new VoiceMessage(body, recipients, optionalArguments);
            var voiceMessages = new VoiceMessages(voiceMessage);
            var result = restClient.Create(voiceMessages);

            return result.Object as VoiceMessage;
        }
コード例 #13
0
        public void DeserializeRecipientsAsMsisdnsArray()
        {
            var recipients = new Recipients();
            recipients.AddRecipient(31612345678);

            var voiceMessage = new VoiceMessage("Welcome to MessageBird", recipients);
            var voiceMessages = new VoiceMessages(voiceMessage);

            string serializedMessage = voiceMessages.Serialize();

            voiceMessages.Deserialize(serializedMessage);
        }
        public VoiceMessage SendVoiceMessage(string body, long[] msisdns, VoiceMessageOptionalArguments optionalArguments = null)
        {
            ParameterValidator.IsNotNullOrWhiteSpace(body, "body");
            ParameterValidator.ContainsAtLeast(msisdns, 1, "msisdns");

            var recipients    = new Recipients(msisdns);
            var voiceMessage  = new VoiceMessage(body, recipients, optionalArguments);
            var voiceMessages = new VoiceMessages(voiceMessage);
            var result        = restClient.Create(voiceMessages);

            return(result.Object as VoiceMessage);
        }
コード例 #15
0
 public void SendFrame(byte[] data, int length)
 {
     if (MagicOnionNetwork.IsJoined)
     {
         VoiceMessage message = new VoiceMessage();
         message.SenderActorNumber = MagicOnionNetwork.LocalPlayer.ActorNumber;
         message.SenderPlayerName  = MagicOnionNetwork.LocalPlayer.Name;
         message.EncodedData       = data;
         message.DataLength        = length;
         _voiceChatHubClient.SendMessageExceptSelfAsync(message);
     }
 }
コード例 #16
0
        public void VoiceMessage_DefaultConstructor()
        {
            // Arrange
            var retries  = 1;
            var language = VoiceMessageLanguage.en_GB;

            // Act
            var messageInstance = new VoiceMessage();

            // Assert
            Assert.AreEqual(retries, messageInstance.Retries);
            Assert.AreEqual(language, messageInstance.Language);
        }
コード例 #17
0
        public void DeserializeRecipientsAsMsisdnsArray()
        {
            var recipients = new Recipients();

            recipients.AddRecipient(31612345678);

            var voiceMessage  = new VoiceMessage("Welcome to MessageBird", recipients);
            var voiceMessages = new VoiceMessages(voiceMessage);

            string serializedMessage = voiceMessages.Serialize();

            voiceMessages.Deserialize(serializedMessage);
        }
コード例 #18
0
        public async System.Threading.Tasks.Task <ServiceMessage> InvorkAsync(ServiceMessage message)
        {
            VoiceMessage yaInMsg = new VoiceMessage()
            {
                Id       = message.Id,
                Language = EnumsConvertor.StringToLanguage(message.Language),
                Vioce    = message.Voice
            };
            var yaOutMsg = await _yandexStt.ProcessAsync(yaInMsg);

            message.Text = yaOutMsg.Text;
            return(message);
        }
コード例 #19
0
        /// <summary>
        /// Reply to a message asynchronously with a voice message
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public async Task <Response> Reply(Message msg, VoiceMessage data)
        {
            var tsc = new TaskCompletionSource <Response>();

            Reply(msg, data, (re) =>
            {
                try
                {
                    tsc.TrySetResult(re);
                }
                catch { }
            });
            return(await tsc.Task);
        }
コード例 #20
0
        /// <summary>
        /// Send a group message asynchronously containing image bytes
        /// </summary>
        /// <param name="id"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public async Task <Response> GroupMessage(int id, VoiceMessage data)
        {
            var tcs = new TaskCompletionSource <Response>();

            GroupMessage(id, data, (re) =>
            {
                try
                {
                    tcs.TrySetResult(re);
                }
                catch { }
            });
            return(await tcs.Task);
        }
コード例 #21
0
        void IVoiceChatHubReceiver.OnReceivedMessage(VoiceMessage msg)
        {
            Speaker remoteVoice;

            _remoteVoices.TryGetValue(msg.SenderActorNumber, out remoteVoice);
            if (remoteVoice != null)
            {
                remoteVoice.ReceiveBytes(msg.EncodedData, msg.DataLength);
            }
            else
            {
                InstantiateSpeakerObject(msg.SenderActorNumber, msg.SenderPlayerName);
            }
        }
コード例 #22
0
        public void ReportUrl()
        {
            var recipients = new Recipients();

            recipients.AddRecipient(31612345678);
            var optionalArguments = new VoiceMessageOptionalArguments
            {
                ReportUrl = "https://example.com/voice-status",
            };

            var voiceMessage = new VoiceMessage("Body", recipients, optionalArguments);

            Assert.AreEqual(voiceMessage.ReportUrl, "https://example.com/voice-status");
        }
コード例 #23
0
        public void SendVoice()
        {
            var expectedJson = GetJsonPayload("/messaging/messagingApi/sendVoice.json");
            var restRequest  = MockRestResponse(expectedJson);

            var now     = DateTime.Now;
            var message = new VoiceMessage()
            {
                CallerPhoneNumber = "1234567890",
                Name         = "test broadcast",
                VoiceFile    = "voice.wav",
                VoiceSource  = "http://yoursite.com/voice.mp3",
                PhoneNumbers = new List <string> {
                    "1234567890", "2345678900", "3456789000"
                },
                Groups = new List <string> {
                    "group1", "group2", "group3"
                },
                StampToSend = now
            };

            var response = Client.MessagingApi.Send(message);
            EzTextingResponse <VoiceMessage> ezResponse = new EzTextingResponse <VoiceMessage>("Success", 201, response);

            Assert.That(Serializer.Serialize(ezResponse), Is.EqualTo(expectedJson));

            Assert.AreEqual(Method.POST, restRequest.Value.Method);
            Assert.IsTrue(restRequest.Value.Parameters.Count > 0);
            var bodyParam = restRequest.Value.Parameters[0];

            Assert.AreEqual(ClientConstants.FormEncodedContentType, bodyParam.ContentType);
            Assert.AreEqual(ParameterType.RequestBody, bodyParam.Type);

            Assert.That(bodyParam.Value, Is.StringContaining("User=login"));
            Assert.That(bodyParam.Value, Is.StringContaining("Password=password"));
            Assert.That(bodyParam.Value, Is.StringContaining("CallerPhonenumber=1234567890"));
            Assert.That(bodyParam.Value, Is.StringContaining("Groups[]=group1"));
            Assert.That(bodyParam.Value, Is.StringContaining("Groups[]=group2"));
            Assert.That(bodyParam.Value, Is.StringContaining("Groups[]=group3"));
            Assert.That(bodyParam.Value, Is.StringContaining("PhoneNumbers[]=1234567890"));
            Assert.That(bodyParam.Value, Is.StringContaining("PhoneNumbers[]=2345678900"));
            Assert.That(bodyParam.Value, Is.StringContaining("PhoneNumbers[]=3456789000"));
            Assert.That(bodyParam.Value, Is.StringContaining("Name=" + "test broadcast".UrlEncode()));
            Assert.That(bodyParam.Value, Is.StringContaining("VoiceFile=voice.wav"));
            Assert.That(bodyParam.Value, Is.StringContaining("VoiceSource="
                                                             + "http://yoursite.com/voice.mp3".UrlEncode()));
            Assert.That(bodyParam.Value, Is.StringContaining("VoiceFile=voice.wav"));
            Assert.That(bodyParam.Value, Is.StringContaining("StampToSend=" + ClientUtils.ToUnixTime(now) / 1000));
        }
コード例 #24
0
ファイル: WechatManager.cs プロジェクト: asmrobot/ZTImage
        /// <summary>
        /// xml字符串解析为消息
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        public PushBase XmlToMessage(string xml)
        {
            XmlUtils deserialize = new XmlUtils(xml);
            string   msgtype     = deserialize.GetValue("/xml/MsgType").ToLower();
            PushBase message     = null;

            switch (msgtype)
            {
            //普通消息
            case "text":
                message = new TextMessage();
                break;

            case "image":
                message = new ImageMessage();
                break;

            case "voice":
                message = new VoiceMessage();
                break;

            case "video":
                message = new VideoMessage();
                break;

            case "shortvideo":
                message = new ShortVideoMessage();
                break;

            case "location":
                message = new LocationMessage();
                break;

            case "link":
                message = new LinkMessage();
                break;

            //事件推送
            case "event":
                message = GetEventModel(deserialize);
                break;

            default:
                return(null);
            }

            deserialize.FillModel(message);
            return(message);
        }
コード例 #25
0
        public void BuildMessage_VoiceJSON_TelegramVoiceMessage()
        {
            var expected = new VoiceMessage
            {
                From  = _user,
                Voice = _voice
            };

            AttachGeneralProperties(expected);
            var actual           = MessageBuilder.BuildMessage <VoiceMessage>(_messageToken);
            var compareLogic     = new CompareLogic(_config);
            var comparisonResult = compareLogic.Compare(expected, actual);

            Assert.IsTrue(comparisonResult.AreEqual, comparisonResult.DifferencesString);
        }
コード例 #26
0
        private void showVoiceMessageReceivedBallonTip(VoiceMessage voiceMessage)
        {
            disposeVoiceMessageReceivedBallonTip();

            // new balloon ...
            voiceMessageReceivedBallonTip = new NotifyIcon();
            voiceMessageReceivedBallonTip.BalloonTipClosed  += VoiceMessageReceivedBallonTip_BalloonTipClosed;
            voiceMessageReceivedBallonTip.BalloonTipClicked += VoiceMessageReceivedBallonTip_BalloonTipClosed;
            voiceMessageReceivedBallonTip.Icon    = Properties.Resources.appIcon;
            voiceMessageReceivedBallonTip.Visible = true;

            var message = $"Von {voiceMessage.Sender.Name} empfangen";

            voiceMessageReceivedBallonTip.ShowBalloonTip(2000, "Broadcast", message, ToolTipIcon.Info);
        }
コード例 #27
0
        public void SendScheduledMessages_WithVoiceMessage_ReturnsBatchIdResult()
        {
            // Arrange
            DateTime timestamp = DateTime.UtcNow;

            VoiceMessage           message  = new VoiceMessage("recipients", "body", "accountReference");
            VoiceMessageCollection messages = new VoiceMessageCollection(message)
            {
                SendAt = timestamp
            };

            string serialisedMessage = "serialisedMessage";

            RestResource resource = new MessageDispatcherResource(serialisedMessage, false);

            RestResponse response = new RestResponse()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = "serialisedResponse"
            };

            MessagingResult expectedResult = new MessagingResult()
            {
                BatchId    = Guid.NewGuid(),
                MessageIds = new List <ResourceLink>()
            };

            mockSerialiser
            .Setup(s => s.Serialise(messages))
            .Returns(serialisedMessage);

            mockRestClient
            .Setup(rc => rc.Post(resource))
            .Returns(response);

            mockSerialiser
            .Setup(s => s.Deserialise <MessagingResult>(response.Content))
            .Returns(expectedResult);

            // Act
            MessagingResult actualResult = service.SendScheduledMessages(messages, timestamp);

            // Assert
            Assert.IsNotNull(actualResult);
            Assert.AreEqual(expectedResult.BatchId, actualResult.BatchId);
            Assert.AreEqual(0, actualResult.MessageIds.Count());
        }
        public void SendVoice()
        {
            var msg = new VoiceMessage
            {
                Name = "voice broadcast",
                CallerPhoneNumber = "2132212384",
                VoiceSource       = "https://eztxting.s3.amazonaws.com/188814/mms/train_1449507791.mp3",
                PhoneNumbers      = new List <string> {
                    "2132212384", "2132212384"
                },
                StampToSend = DateTime.Now.AddMinutes(5)
            };

            var response = Client.MessagingApi.Send(msg);

            Console.WriteLine("send voice message response: " + response);
        }
コード例 #29
0
        void ReceiveData(object sender, HoldingVariable e)
        {
            if (connected == false)
            {
                return;
            }

            Test   data = null;
            string temp = "";

            if (e.File.Length == 0)
            {
                temp = string.Format("{0} by user {1}: {2}", e.Time, e.Name, e.Message);
                data = new NormalMessage()
                {
                    SpecialMessage = "Normal", Name = temp
                };
            }
            else if (e.FileName.Contains(".exe"))
            {
                file = e.File;
                temp = string.Format("{0} {1} send file {2} with message {3}", e.Time, e.Name, e.FileName, e.Message);
                data = new GotFile()
                {
                    SpecialMessage = "File", Name = temp, File = e.File
                };
            }
            else if (e.FileName.Contains("sound"))
            {
                file = e.File;
                temp = string.Format("{0} {1} send voice message {2} with message {3}", e.Time, e.Name, e.FileName, e.Message);
                data = new VoiceMessage()
                {
                    SpecialMessage = "Voice", Name = temp, File = e.File
                };
            }

            // Update list from another thread
            OutputMessage.Dispatcher.BeginInvoke(new Action(delegate()
            {
                // Insert item on top of the list
                lock (_lock)
                    OutputMessage.Items.Insert(0, data);
            }));
        }
コード例 #30
0
        public void VoiceMessageCollection_DefaultDIConstructor_WithNullMessage()
        {
            // Arrange
            VoiceMessage message = null;

            // Act
            try
            {
                var messageInstances = new VoiceMessageCollection(message);

                Assert.Fail();
            }
            // Assert
            catch (ArgumentNullException ex)
            {
                Assert.AreEqual("message", ex.ParamName);
            }
        }
コード例 #31
0
        public async System.Threading.Tasks.Task <VoiceMessage> ProcessAsync(TextMessage message)
        {
            switch (message.Language)
            {
            case Core.Enums.Language.English:
                this._language = SynthesisLanguage.English;
                break;

            case Core.Enums.Language.Russian:
                this._language = SynthesisLanguage.Russian;
                break;

            default:
                throw new Exceptions.InvalidMessageException(message.Id, "Invalid Language: " + message.Language.ToString());
            }
            var apiSetttings = new SpeechKitClientOptions($"{YandexCompmnentConfig.YandexSpeechApiKey}", "MashaWebApi", Guid.Empty, "server");

            using (var client = new SpeechKitClient(apiSetttings))
            {
                var options = new SynthesisOptions(message.Text, YandexCompmnentConfig.Speed)
                {
                    AudioFormat = SynthesisAudioFormat.Wav,
                    Language    = _language,
                    Emotion     = Emotion.Good,
                    Quality     = SynthesisQuality.High,
                    Speaker     = Speaker.Omazh
                };

                using (var textToSpechResult = await client.TextToSpeechAsync(options, cancellationToken).ConfigureAwait(false))
                {
                    if (textToSpechResult.TransportStatus != TransportStatus.Ok || textToSpechResult.ResponseCode != HttpStatusCode.OK)
                    {
                        throw new Exception("YandexSpeechKit error: " + textToSpechResult.ResponseCode.ToString());
                    }
                    VoiceMessage result = new VoiceMessage
                    {
                        Id       = message.Id,
                        Language = message.Language,
                        Vioce    = textToSpechResult.Result.ToByteArray()
                    };
                    return(result);
                }
            }
        }
コード例 #32
0
        public void VoiceMessageCollection_ConstructorWithVoiceMessage()
        {
            // Arrange
            var recipients       = "recipients";
            var body             = "body";
            var accountReference = "accountReference";
            var retries          = 1;
            var language         = VoiceMessageLanguage.en_GB;

            var message = new VoiceMessage(recipients, body, accountReference);

            // Act
            var messagesInstance = new VoiceMessageCollection(message);

            // Assert
            Assert.AreEqual(message, messagesInstance.Items.ElementAt(0));
            Assert.AreEqual(language, messagesInstance.Language);
            Assert.AreEqual(retries, messagesInstance.Retries);
        }
コード例 #33
0
        public void DeserializeAndSerialize()
        {
            const string JsonResultFromCreateVoiceMessageExample = @"{
              'id':'955c3130353eb3dcd090294a42643365',
              'href':'https:\/\/rest.messagebird.com\/voicemessages\/955c3130353eb3dcd090294a42643365',
              'body':'This is a test message. The message is converted to speech and the recipient is called on his mobile.',
              'reference':null,
              'language':'en-gb',
              'voice':'female',
              'repeat':1,
              'ifMachine':'continue',
              'scheduledDatetime':null,
              'createdDatetime':'2014-08-13T10:28:29+00:00',
              'recipients':{
            'totalCount':1,
            'totalSentCount':1,
            'totalDeliveredCount':0,
            'totalDeliveryFailedCount':0,
            'items':[
              {
            'recipient':31612345678,
            'status':'calling',
            'statusDatetime':'2014-08-13T10:28:29+00:00'
              }
            ]
              }
            }";
            var recipients = new Recipients();
            var voiceMessage = new VoiceMessage("", recipients);
            var voiceMessages = new VoiceMessages(voiceMessage);
            voiceMessages.Deserialize(JsonResultFromCreateVoiceMessageExample);

            var voiceMessageResult = voiceMessages.Object as VoiceMessage;

            string voiceMessageResultString = voiceMessageResult.ToString();

            JsonConvert.DeserializeObject<VoiceMessage>(voiceMessageResultString); // check if Deserialize/Serialize cycle works.
        }
コード例 #34
0
ファイル: VoiceMessageDAO.cs プロジェクト: tamerlan/Mimimi
 public abstract int Insert(VoiceMessage voiceMessage);
コード例 #35
0
 // For non-data messages, msgBytes is null, and byteCount is zero
 public void SendAllocMessage(byte voiceNumber, VoiceOpcode opcode, long oid)
 {
     allocsSentCounter.Inc();
     // Put the header plus the bytes into one array
     byte msgSize = voiceMsgSize[(int)opcode];
     IncSeqNum();
     VoiceMessage msg = new VoiceMessage(msgSize, sequenceNumber, opcode, voiceNumber, oid);
     voiceMgr.SendMessageToServer(msg.Bytes);
 }
コード例 #36
0
 protected void SendAggregatedDataMessage(byte voiceNumber, List<byte[]> dataFrames)
 {
     int totalLen = voiceMsgSize[(int)VoiceOpcode.AggregatedData];
     foreach (byte[] dataFrame in dataFrames)
         totalLen += dataFrame.Length + 1;
     IncSeqNum();
     VoiceMessage msg = new VoiceMessage(totalLen, sequenceNumber, VoiceOpcode.AggregatedData, voiceNumber);
     msg.WriteByte((byte)dataFrames.Count);
     foreach (byte[] dataFrame in dataFrames)
         msg.WriteSubDataFrame(dataFrame);
     voiceMgr.SendMessageToServer(msg.Bytes);
     aggregatedDataSentCounter.Inc();
     // Increment the sequence number such that every
     // aggregated voice frame gets it's own sequence
     // number.
     IncSeqNum(dataFrames.Count - 1);
 }
コード例 #37
0
 // For non-data messages, msgBytes is null, and byteCount is zero
 protected void SendMessage(byte voiceNumber, VoiceOpcode opcode, byte[] msgBytes, int byteCount)
 {
     // Put the header plus the bytes into one array
     int headerSize = voiceMsgSize[(int)opcode];
     byte length = (byte)(headerSize + byteCount);
     IncSeqNum();
     VoiceMessage msg = new VoiceMessage(length, sequenceNumber, opcode, (byte)voiceNumber);
     if (byteCount > 0)
         msg.WriteBytes(msgBytes, byteCount);
     voiceMgr.SendMessageToServer(msg.Bytes);
 }
コード例 #38
0
 public void SendDeallocMessage(byte voiceNumber)
 {
     deallocsSentCounter.Inc();
     if (usingDataFrameAggregation)
         dataFrameAggregator.ForceSendingDataFrames();
     byte msgSize = voiceMsgSize[(int)VoiceOpcode.Deallocate];
     IncSeqNum();
     VoiceMessage msg = new VoiceMessage(msgSize, sequenceNumber, VoiceOpcode.Deallocate, voiceNumber);
     voiceMgr.SendMessageToServer(msg.Bytes);
 }
コード例 #39
0
ファイル: VoiceMessageDAO.cs プロジェクト: tamerlan/Mimimi
 public abstract void Update(VoiceMessage voiceMessage);
コード例 #40
0
 public VoiceMessages(VoiceMessage voiceMessage) :
     base("voicemessages", voiceMessage)
 {
     Object = voiceMessage;
 }