/// <summary>
    /// Hang up call
    /// </summary>
    public void Hang()
    {
        if (CallID != 0)
        {
            DataModel model = new DataModel();
            model.Type    = ChatProtocolType.TYPE_IM;
            model.Request = IMProtocol.IM_HANG;

            IMInfo info = new IMInfo();
            info.UserID = UserID;
            info.CallID = CallID;
            info.UserList.AddRange(ChatPeers);

            model.Message = info.ToByteArray();

            ChatNetworkManager.Instance.Send(model);

            //send udp hang
            UdplDataModel udp = new UdplDataModel();
            udp.Request      = UdpRequest.REQUEST_HANG;
            udp.ChatInfoData = model.Message;
            byte[] udpData = UdpMessageCodec.Encode(udp);

            UdpSocketManager.Instance.Send(udpData);

            //stop udp
            ChatDataHandler.Instance.StopChat();

            CallID = 0;
            ChatPeers.Clear();
            isChatting = false;
        }
    }
    void OnHang(DataModel model)
    {
        IMInfo info = IMInfo.Parser.ParseFrom(model.Message);

        print("receive hang:" + info.UserID);
        ChatManager.Instance.OnHang(info);
    }
    protected void GridView_OnSelectedIndexChanged(object sender, EventArgs e)
    {
        pnlDonor.Visible        = true;
        pnlshow.Visible         = true;
        pnlBene.Visible         = false;
        dtinfo.DateSeparator    = "/";
        dtinfo.ShortDatePattern = "dd/MM/yyyy";
        iminfo = new IMInfo();
        string[] strInfo = iminfo.info(GridIM.SelectedRow.Cells[1].Text.ToString());
        lblDIMID.Text     = GridIM.SelectedRow.Cells[1].Text.ToString();
        lblDName.Text     = strInfo[0].ToString();
        lblDAddress1.Text = strInfo[1].ToString();
        lblDAddress2.Text = strInfo[2].ToString();
        lblDCity.Text     = strInfo[3].ToString() + ", " + strInfo[4].ToString() + "-" + strInfo[5].ToString();

        String[] strimac = iminfo.imac(GridIM.SelectedRow.Cells[1].Text.ToString());
        lblDLateFees.Text = strimac[0].ToString().TrimEnd('0').TrimEnd('.');
        lblDAmount.Text   = strimac[1].ToString().TrimEnd('0').TrimEnd('.');
        lblDGAmount.Text  = strimac[2].ToString().TrimEnd('0').TrimEnd('.');

        lblSubDate.Text = GridIM.SelectedRow.Cells[3].Text.ToString();
        lblDDNo.Text    = GridIM.SelectedRow.Cells[4].Text.ToString();
        lblBankNo.Text  = GridIM.SelectedRow.Cells[5].Text.ToString();
        lblAmount.Text  = GridIM.SelectedRow.Cells[2].Text.ToString().TrimEnd('0').TrimEnd('.');
        lblDiaryNo.Text = GridIM.SelectedRow.Cells[7].Text.ToString();
        lblSession.Text = GridIM.SelectedRow.Cells[6].Text.ToString();
    }
    /// <summary>
    /// 挂断
    /// </summary>
    public void Hang()
    {
        if (CallID != 0)
        {
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_HANG_CRES;

            IMInfo info = new IMInfo();
            info.PeerID = ChatPeerID;
            pd.Message  = info.ToByteArray();

            NetWorkManager.Instance.Send(pd);

            //send udp hang
            CallInfo callInfo = new CallInfo();
            callInfo.CallID = CallID;

            UdplDataModel model = new UdplDataModel();
            model.Request      = RequestByte.REQUEST_HANG;
            model.ChatInfoData = callInfo.ToByteArray();
            byte[] data = UdpMessageCodec.Encode(model);

            UdpSocketManager.Instance.Send(UdpMessageCodec.Encode(model));

            //结束udp传输
            ChatDataHandler.Instance.StopChat();

            CallID = 0;
        }
    }
Beispiel #5
0
    protected void btnViewDiary_Click(object sender, EventArgs e)
    {
        con.Close(); con.Open();
        cmd = new SqlCommand("select DiaryEntry.IMID,DiaryEntry.Date,IM.Name,ProjectCount.Session from ProjectCount inner join DiaryEntry on ProjectCount.DairyNo=DiaryEntry.DiaryNo inner join IM on DiaryEntry.IMID=IM.ID and ProjectCount.DairyNo='" + txtDiaryNo.Text.ToString() + "' and (ProjectCount.ProformaARcv!=ProjectCount.ProformaASub or ProjectCount.ProformaBRcv!=ProjectCount.ProformaBSub)", con);
        SqlDataReader reader;

        reader = cmd.ExecuteReader();
        if (reader.Read())
        {
            lblIMID.Text      = reader["IMID"].ToString();
            lblIMName.Text    = reader["Name"].ToString();
            lblDairyDate.Text = Convert.ToDateTime(reader["Date"].ToString()).ToString("dd/MM/yyyy");
            lblSession.Text   = reader["Session"].ToString();
            lblException.Attributes.Add("class", "hide");
            clear(3);
            IMcls             = new IMInfo();
            lblFeemaster.Text = IMcls.imFeeMaster(lblIMID.Text.ToString());
            txtSID.Focus();
        }
        else
        {
            lblException.Text = "Diary Not Found.";
            lblException.Attributes.Add("class", "error");
            clear(1);
        }
        showcount(lblSession.Text, txtDiaryNo.Text, reader);
        reader.Close();
        reader.Dispose();
        con.Close(); con.Dispose();
    }
    /// <summary>
    /// Send audio data
    /// </summary>
    void SendAudio()
    {
        //Get audio data by SDK
        AudioPacket packet = UnityChatSDK.Instance.GetAudio();

        if (packet != null)
        {
            packet.Id = ChatManager.Instance.UserID;
            byte[] audio = GetPbAudioPacket(packet).ToByteArray();

            //UDP Send data to server
            if (audio != null)
            {
                UdplDataModel model = new UdplDataModel();
                model.Request = UdpRequest.REQUEST_AUDIO;

                IMInfo info = new IMInfo();
                info.UserID = ChatManager.Instance.UserID;
                info.CallID = ChatManager.Instance.CallID;
                info.UserList.Add(ChatManager.Instance.ChatPeers);

                model.ChatInfoData = info.ToByteArray();
                model.ChatData     = audio;

                UdpSocketManager.Instance.Send(UdpMessageCodec.Encode(model));
            }
        }
    }
Beispiel #7
0
    /// <summary>
    /// 呼叫
    /// </summary>
    /// <param name="callID">呼叫ID</param>
    /// <param name="type">呼叫类型 1:音频 2:视频</param>
    /// <param name="from">呼叫者 ID</param>
    /// <param name="to">被呼叫者ID </param>
    public void Call(string callID, ChatType type, int from, int to)
    {
        if (CallID == "")
        {
            CallID = callID;
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_CALL_CRE;

            IMInfo info = new IMInfo();
            info.UserName = UserName;
            info.UserID   = UserID;
            info.CallID   = callID;
            info.CallType = (int)type;

            ChatDataHandler.Instance.ChatType = type;

            info.PeerID = to;
            ChatPeerID  = to;

            using (MemoryStream stream = new MemoryStream())
            {
                info.WriteTo(stream);
                pd.Message = stream.ToArray();
            }
            NetWorkManager.Instance.Send(pd);
        }
    }
Beispiel #8
0
    public void SendPeerMessage(byte[] message, MessageType t)
    {
        byte[] type = new byte[1] {
            (byte)t
        };
        byte[] data = new byte[message.Length + 1];
        Buffer.BlockCopy(type, 0, data, 0, 1);
        Buffer.BlockCopy(message, 0, data, 1, message.Length);

        IMInfo info = new IMInfo();

        info.UserID   = ChatManager.Instance.UserID;
        info.PeerID   = ChatUIManager.Instance.SelectFriendID;
        info.UserName = ChatManager.Instance.UserName;

        info.MessageData = ByteString.CopyFrom(data);

        ProtocolDataModel pd = new ProtocolDataModel();

        pd.Type    = ProtocolType.TYPE_IM;
        pd.Request = IMProtocol.IM_SENMESSAGE_CRES;
        pd.Message = info.ToByteArray();

        NetWorkManager.Instance.Send(pd);
    }
Beispiel #9
0
    internal void OnReceivePeerMessage(ProtocolDataModel pdm)
    {
        IMInfo info = IMInfo.Parser.ParseFrom(pdm.Message);

        MessagePeerName = info.UserName;

        MessageType tyep = (MessageType)info.MessageData[0];

        byte[] data = new byte[info.MessageData.Length - 1];
        Buffer.BlockCopy(info.MessageData.ToByteArray(), 1, data, 0, data.Length);
        switch (tyep)
        {
        case MessageType.Text:
            OnReciveText?.Invoke(data);
            break;

        case MessageType.Pic:
            OnRecivePic?.Invoke(data);
            break;

        case MessageType.Voice:
            OnReciveVoice?.Invoke(data);
            break;

        default:
            break;
        }
    }
Beispiel #10
0
    void OnAccpet(DataModel model)
    {
        IMInfo info = IMInfo.Parser.ParseFrom(model.Message);

        print("receive accept:" + info.UserID);
        ChatManager.Instance.OnAccpet(info);
    }
Beispiel #11
0
 protected void btnOK_Click(object sender, EventArgs e)
 {
     try
     {
         con.Close(); con.Open();
         bool flg = false;
         cmd = new SqlCommand("select IMID,SID,StudentName,Course,Part,InstitutionID,Institution,Status,SynopsisStatus,ApprovalFees,EvalutionFees from Project where SID='" + txtSID.Text.ToString() + "' and Session='" + lblSessionHidden.Text.ToString() + "'", con);
         SqlDataReader reader;
         reader = cmd.ExecuteReader();
         if (reader.Read())
         {
             lblIMID.Text           = reader["IMID"].ToString();
             lblName.Text           = reader["StudentName"].ToString();
             lblCourse.Text         = reader["Course"].ToString();
             lblPart.Text           = reader["Part"].ToString();
             lblStatus.Text         = reader["Status"].ToString();
             lblInsID.Text          = reader["InstitutionID"].ToString();
             lblInsName.Text        = reader["Institution"].ToString();
             lblApprovalFees.Text   = reader["ApprovalFees"].ToString().TrimEnd('0').TrimEnd('.');
             lblEvaluationFees.Text = reader["EvalutionFees"].ToString().TrimEnd('0').TrimEnd('.');
             lblException.Text      = "";
             flg = true;
         }
         else
         {
             lblException.Text = "Student Membership Not Found.";
             ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('Student Membership Not Found.')", true);
             flg = false;
         }
         reader.Close();
         if (flg == true)
         {
             cmd    = new SqlCommand("select * from IMAC where IMID='" + lblIMID.Text + "'", con);
             reader = cmd.ExecuteReader();
             if (reader.Read())
             {
                 lblToAmount.Text   = reader["Total"].ToString().TrimEnd('0').TrimEnd('.');
                 lblDuesAmount.Text = reader["Credit"].ToString().TrimEnd('0').TrimEnd('.');
                 lblBooksAmt.Text   = reader["IMTotal"].ToString().TrimEnd('0').TrimEnd('.');
                 lblProspectus.Text = reader["Prospectus"].ToString().TrimEnd('0').TrimEnd('.');
                 lblProjectAmt.Text = reader["Project"].ToString().TrimEnd('0').TrimEnd('.');
             }
             reader.Close();
             reader.Dispose();
             iminfo          = new IMInfo();
             lblFeeType.Text = iminfo.imFeeMaster(lblIMID.Text.ToString());
         }
     }
     catch (SqlException ex)
     {
         ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('Error!!!, Student Membership Not Found.')", true);
     }
     finally
     {
         con.Close();
         con.Dispose();
         ddlProforma.Focus();
     }
 }
 //on user accept the call
 public void OnAccpet(IMInfo info)
 {
     if (isChatting)
     {
         ChatUIManager.Instance.OnPeerAccept();
         ChatUIManager.Instance.OnPeerJoin(info.UserID);
     }
 }
 public void OnCall(IMInfo info)
 {
     isChatting = false;
     ChatPeers.Clear();
     ChatPeers.AddRange(info.UserList);
     CallID = info.CallID;
     ChatUIManager.Instance.OnPeerCall((ChatType)info.Type);
 }
    private void showdiary()
    {
        pnlDepartment.Visible = false;
        pnlVisiblefls();
        con.Close(); con.Open();
        cmd = new SqlCommand("select * from DiaryEntry where DiaryNo='" + txtDiaryNo.Text.ToString() + "' and ExamSession='" + lblHiddenSeason.Text.ToString() + "'", con);
        SqlDataReader reader;

        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            diarytype         = reader["MemberType"].ToString();
            lblRemark.Text    = reader["Remark"].ToString();
            lblIMID.Text      = reader["MembershipNo"].ToString();
            lblIMName.Text    = reader["Name"].ToString();
            lblSubDate.Text   = Convert.ToDateTime(reader["Date"].ToString()).ToString("dd/MM/yyyy");
            lblIMAddress.Text = reader["Address1"].ToString() + "\n" + reader["Address2"].ToString();
            lblIMCity.Text    = reader["City"].ToString() + "\n Phone No:" + reader["Phone"].ToString();
            txtPEmpName.Text  = diarytype;
        }
        reader.Close();
        if (diarytype == "IM")
        {
            IMInfo infos = new IMInfo();
            iminfos = infos.info(lblIMID.Text.ToString());
            if (iminfos[0].ToString() != null | iminfos[0].ToString() != "null")
            {
                lblIMName.Text    = iminfos[0].ToString();
                lblIMAddress.Text = iminfos[1].ToString() + "\n" + iminfos[2].ToString();
                lblIMCity.Text    = iminfos[3].ToString() + ", " + iminfos[4].ToString() + "-" + iminfos[5].ToString();
            }
        }
        else if (diarytype == "Other")
        {
            lblIMName.Text.ToString();
            lblIMID.Text               = "";
            pnlToFrom.Visible          = true;
            tblEmpNameAcademic.Visible = true; pnlDepartment.Visible = true;
        }
        else if (diarytype == "Student")
        {
            cmd    = new SqlCommand("select Name,PAddress,PAddress2,PCity,PState,Phone,Mobile from Student where SID='" + lblIMID.Text.ToString() + "'", con);
            reader = cmd.ExecuteReader();
            if (reader.Read())
            {
                lblIMName.Text    = reader["Name"].ToString();
                lblIMAddress.Text = reader["PAddress"].ToString() + "\n" + reader["PAddress2"].ToString();
                lblIMCity.Text    = reader["PCity"].ToString() + ", " + reader["PState"].ToString() + " Contact: " + reader["Mobile"].ToString();
            }
            reader.Close();
        }
        con.Close();
    }
    /// <summary>
    /// Send audio data
    /// </summary>
    void SendAudio()
    {
        //Get audio data by SDK
        AudioPacket packet = UnityChatSDK.Instance.GetAudio();

        if (packet != null)
        {
            packet.Id = ChatManager.Instance.UserID;
            byte[] audio = GetPbAudioPacket(packet).ToByteArray();

            switch (NetType)
            {
            case NetType.UdpStream:
                //UDP Send data to server
                if (audio != null)
                {
                    UdplDataModel model = new UdplDataModel();
                    model.Request = UdpRequest.REQUEST_AUDIO;

                    IMInfo info = new IMInfo();
                    info.UserID = ChatManager.Instance.UserID;
                    info.CallID = ChatManager.Instance.CallID;
                    info.UserList.Add(ChatManager.Instance.ChatPeers);

                    model.ChatInfoData = info.ToByteArray();
                    model.ChatData     = audio;

                    UdpSocketManager.Instance.Send(UdpMessageCodec.Encode(model));
                }
                break;

            case NetType.TcpStream:

                if (audio != null)
                {
                    DataModel model = new DataModel();
                    model.Type    = ChatProtocolType.TYPE_CHATDATA;
                    model.Request = ChatDataProtocol.CHAT_AUDIO;
                    model.Message = audio;
                    ChatNetworkManager.Instance.Send(model);
                }

                break;

            default:
                break;
            }
        }
    }
 internal void OnlineUserChanged()
 {
     for (int i = 0; i < ChatPeers.Count; i++)
     {
         UserInfo info = OnlineUserList.Find((UserInfo user) => { return(user.UserID == ChatPeers[i].UserID); });
         if (info == null)
         {
             Debug.Log("OnPeerOffline: uid = " + ChatPeers[i].UserID);
             IMInfo im = new IMInfo();
             im.UserID = ChatPeers[i].UserID;
             //User offline, hang up
             OnHang(im);
         }
     }
 }
Beispiel #17
0
    private void PeerCall(ProtocolDataModel pdm)
    {
        IMInfo info = IMInfo.Parser.ParseFrom(pdm.Message);

        ChatManager.Instance.InviteCome   = true;
        ChatManager.Instance.ChatPeerName = info.UserName;
        ChatManager.Instance.ChatPeerID   = info.UserID;
        ChatManager.Instance.CallID       = info.CallID;

        int type = info.CallType;

        ChatDataHandler.Instance.ChatType = (ChatType)type;

        print("Receive call:" + info.UserName + ",CallID:" + info.CallID);
    }
Beispiel #18
0
    private void peerCall(ProtocolDataModel pdm)
    {
        IMInfo info = ProtobufCodec.DeSerialize <IMInfo>(pdm.Message);

        ChatManager._instance.InviteCome   = true;
        ChatManager._instance.ChatPeerName = info.UserName;
        ChatManager._instance.ChatPeerID   = info.UserID;
        ChatManager._instance.CallID       = info.CallID;

        int type = info.CallType;

        ChatDataHandler.Instance.chatType = type == 1 ? ChatType.Audio : ChatType.AV;

        print("收到通话邀请:" + info.UserName + ",CallID:" + info.CallID);
    }
    /// <summary>
    /// Send video data
    /// </summary>
    IEnumerator SendVideo()
    {
        //Get video data by SDK
        VideoPacket packet = UnityChatSDK.Instance.GetVideo();

        if (UnityChatSDK.Instance.EnableSync)
        {
            if (packet != null)
            {
                videoPacketQueue.Enqueue(packet);
            }

            if (videoPacketQueue.Count >= UnityChatSDK.Instance.Framerate / UnityChatSDK.Instance.AudioSample)
            {
                packet = videoPacketQueue.Dequeue();
            }
            else
            {
                yield return(null);
            }
        }

        if (packet != null)
        {
            packet.Id = ChatManager.Instance.UserID;
            byte[] video = GetPbVideoPacket(packet).ToByteArray();

            udpPacketIndex++;
            List <UdpPacket> list = UdpPacketSpliter.Split(udpPacketIndex, video, ChunkLength);

            UdplDataModel model = new UdplDataModel();
            model.Request = UdpRequest.REQUEST_VIDEO;
            IMInfo info = new IMInfo();
            info.UserID = ChatManager.Instance.UserID;
            info.CallID = ChatManager.Instance.CallID;
            info.UserList.Add(ChatManager.Instance.ChatPeers);
            model.ChatInfoData = info.ToByteArray();

            for (int i = 0; i < list.Count; i++)
            {
                model.ChatData = UdpPacketEncode(list[i]);
                UdpSocketManager.Instance.Send(UdpMessageCodec.Encode(model));
                yield return(new WaitForSeconds(0.01f));
            }
        }
    }
    internal void OnHang(IMInfo info)
    {
        //on user hangs up, remove the video panel
        UserInfo user = ChatPeers.Find((UserInfo u) => { return(u.UserID == info.UserID); });

        if (user != null)
        {
            print("user leave:" + user.UserID + "," + user.UserName);
            ChatPeers.Remove(user);
            ChatUIManager.Instance.OnUserLeave(user.UserID);
        }
        //if the current number of calls ==1,just left yourself
        if (ChatPeers.Count == 1)
        {
            ChatUIManager.Instance.Hang();
        }
    }
Beispiel #21
0
    /// <summary>
    /// 挂断
    /// </summary>
    public void Hang()
    {
        if (CallID != "")
        {
            CallID = "";
            checkConnect();
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_HANG_CRES;

            IMInfo info = new IMInfo();
            info.PeerID = ChatPeerID;
            pd.Message  = ProtobufCodec.Serialize(info);
            NetWorkManager.Instance.Send(pd);
            //结束udp传输
            ChatDataHandler.Instance.StopChat();
        }
    }
    /// <summary>
    /// 接听
    /// </summary>
    public void Accept()
    {
        ProtocolDataModel pd = new ProtocolDataModel();

        pd.Type    = ProtocolType.TYPE_IM;
        pd.Request = IMProtocol.IM_ACCEPT_CRES;

        IMInfo info = new IMInfo();

        info.UserName = UserName;
        info.UserID   = UserID;
        info.PeerID   = ChatPeerID;
        //info.CallType = type;
        pd.Message = info.ToByteArray();
        NetWorkManager.Instance.Send(pd);

        //开始udp传输
        ChatDataHandler.Instance.StartChat();
    }
    /// <summary>
    /// Accept call invitation
    /// </summary>
    public void Accept(int userId, List <UserInfo> peerId)
    {
        DataModel model = new DataModel();

        model.Type    = ChatProtocolType.TYPE_IM;
        model.Request = IMProtocol.IM_ACCEPT;

        IMInfo info = new IMInfo();

        info.UserID = userId;
        info.UserList.AddRange(peerId);

        model.Message = info.ToByteArray();

        ChatNetworkManager.Instance.Send(model);

        //Start udp transmission
        ChatDataHandler.Instance.StartChat();
    }
Beispiel #24
0
    //发送udp心跳包
    IEnumerator SendHeart()
    {
        print("start heart...");
        while (isRunning)
        {
            yield return(new WaitForSeconds(0.5f));

            IMInfo info = new IMInfo();
            info.UserID = ChatManager.Instance.UserID;
            info.CallID = ChatManager.Instance.CallID;

            UdplDataModel model = new UdplDataModel();
            model.ChatInfoData = info.ToByteArray();
            model.Request      = UdpRequest.REQUEST_HEART;

            byte[] data = UdpMessageCodec.Encode(model);
            Send(data);
        }
        print("stop heart...");
    }
    public void Call(long callID, ChatType type, int userId, List <UserInfo> peerId)
    {
        if (CallID == 0)
        {
            isChatting = true;
            CallID     = callID;
            DataModel model = new DataModel();
            model.Type    = ChatProtocolType.TYPE_IM;
            model.Request = IMProtocol.IM_CALL;

            IMInfo info = new IMInfo();
            info.CallID = callID;
            info.Type   = (int)type;
            info.UserID = userId;
            info.UserList.AddRange(peerId);

            model.Message = info.ToByteArray();
            ChatNetworkManager.Instance.Send(model);
        }
    }
Beispiel #26
0
    /// <summary>
    /// 挂断
    /// </summary>
    public void Hang()
    {
        if (CallID != "")
        {
            CallID = "";
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_HANG_CRES;

            IMInfo info = new IMInfo();
            info.PeerID = ChatPeerID;
            using (MemoryStream stream = new MemoryStream())
            {
                info.WriteTo(stream);
                pd.Message = stream.ToArray();
            }
            NetWorkManager.Instance.Send(pd);
            //结束udp传输
            ChatDataHandler.Instance.StopChat();
        }
    }
    protected void txtBIM_ONTextChanged(object sender, EventArgs e)
    {
        pnlBene.Visible = true;
        iminfo          = new IMInfo();
        if (iminfo.isIMHave(txtBIM.Text.ToString()))
        {
            string[] strinfo = iminfo.info(txtBIM.Text.ToString());
            lblBName.Text     = strinfo[0].ToString();
            lblBAddress.Text  = strinfo[1].ToString();
            lblBAddress2.Text = strinfo[2].ToString();
            lblBcity.Text     = strinfo[3].ToString() + ", " + strinfo[4].ToString() + "-" + strinfo[5].ToString();

            string[] strimac = iminfo.imac(txtBIM.Text.ToString());
            lblBLate.Text    = strimac[0].ToString();
            lblBTotal.Text   = strimac[1].ToString();
            lblBGAmount.Text = strimac[2].ToString();
        }
        else
        {
            txtBIM.Text = "Invalid IMID.";
        }
    }
    /// <summary>
    /// 呼叫
    /// </summary>
    /// <param name="callID">呼叫ID</param>
    /// <param name="type">呼叫类型 1:音频 2:视频</param>
    /// <param name="from">呼叫者 ID</param>
    /// <param name="to">被呼叫者ID </param>
    public void Call(long callID, ChatType type, int from, int to)
    {
        if (CallID == 0)
        {
            CallID = callID;
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_CALL_CRE;

            IMInfo info = new IMInfo();
            info.UserName = UserName;
            info.UserID   = UserID;
            info.CallID   = callID;
            info.CallType = (int)type;

            ChatDataHandler.Instance.ChatType = type;

            info.PeerID = to;
            ChatPeerID  = to;
            pd.Message  = info.ToByteArray();
            NetWorkManager.Instance.Send(pd);
        }
    }
Beispiel #29
0
    /// <summary>
    /// 接听
    /// </summary>
    public void Accept()
    {
        ProtocolDataModel pd = new ProtocolDataModel();

        pd.Type    = ProtocolType.TYPE_IM;
        pd.Request = IMProtocol.IM_ACCEPT_CRES;

        IMInfo info = new IMInfo();

        info.UserName = UserName;
        info.UserID   = UserID;
        info.PeerID   = ChatPeerID;
        //info.CallType = type;
        using (MemoryStream stream = new MemoryStream())
        {
            info.WriteTo(stream);
            pd.Message = stream.ToArray();
        }
        NetWorkManager.Instance.Send(pd);

        //开始udp传输
        ChatDataHandler.Instance.StartChat();
    }
Beispiel #30
0
    /// <summary>
    /// 呼叫
    /// </summary>
    /// <param name="callID">呼叫ID</param>
    /// <param name="type">呼叫类型 1:音频 2:视频</param>
    /// <param name="from">呼叫者 ID</param>
    /// <param name="to">被呼叫者ID </param>
    public void Call(string callID, int type, int from, int to)
    {
        if (CallID == "")
        {
            CallID = callID;
            checkConnect();
            ProtocolDataModel pd = new ProtocolDataModel();
            pd.Type    = ProtocolType.TYPE_IM;
            pd.Request = IMProtocol.IM_CALL_CRE;

            IMInfo info = new IMInfo();
            info.UserName = UserName;
            info.UserID   = UserID;
            info.CallID   = callID;

            info.CallType = type;
            ChatDataHandler.Instance.chatType = type == 1 ? ChatType.Audio : ChatType.AV;

            info.PeerID = to;
            ChatPeerID  = to;
            pd.Message  = ProtobufCodec.Serialize(info);
            NetWorkManager.Instance.Send(pd);
        }
    }