Exemple #1
0
 private void DealNMonStartNMonMessage(ReturnMessage retMessage)
 {
     try
     {
         if (retMessage.ListData.Count < 5)
         {
             AppendMessage(string.Format("ReturnMessage param count invalid."));
             return;
         }
         string strMonID          = retMessage.ListData[0];
         string strMonPort        = retMessage.ListData[1];
         string strTransAudioData = retMessage.ListData[2];
         string strAddress        = retMessage.ListData[3];
         string strChanID         = retMessage.ListData[4];
         AppendMessage(string.Format("MonID:{0};MonPort:{1};TransAudioData:{2};Address:{3};ChanID:{4}", strMonID,
                                     strMonPort, strTransAudioData, strAddress, strChanID));
         //strTransAudioData = "0";
         if (strTransAudioData == "0")
         {
             int intMonPort;
             int intChan;
             if (!int.TryParse(strMonPort, out intMonPort) ||
                 !int.TryParse(strChanID, out intChan))
             {
                 AppendMessage(string.Format("MonPort or ChanID invalid."));
                 return;
             }
             if (mNMonCore != null)
             {
                 mNMonCore.StopMon();
                 mNMonCore = null;
             }
             mNMonCore                 = new NMonCore(mNMonItem.MonObject);
             mNMonCore.Debug          += (s, msg) => AppendMessage(string.Format("[NMonCore]\t{0}", msg));
             mNMonCore.IsConnectServer = true;
             mNMonCore.IsDecodeData    = true;
             mNMonCore.IsPlayWave      = true;
             NETMON_PARAM param = new NETMON_PARAM();
             param.Host    = strAddress;
             param.Port    = intMonPort;
             param.Channel = intChan;
             AppendMessage(string.Format("Monitor param \tHost:{0};Port:{1};Chan:{2}", param.Host, param.Port,
                                         param.Channel));
             mNMonCore.StartMon(param);
         }
     }
     catch (Exception ex)
     {
         AppendMessage(ex.Message);
     }
 }
 private void InitNMon(MonitorObject monObj, NETMON_PARAM param)
 {
     try
     {
         if (mNMonCore != null)
         {
             mNMonCore.StopMon();
             mNMonCore = null;
         }
         mNMonCore               = new NMonCore(monObj);
         mNMonCore.Debug        += (s, msg) => OnDebug(LogMode.Debug, string.Format("{0}\t{1}", s, msg));
         mNMonCore.HeadReceived += NMonCore_HeadReceived;
         mNMonCore.DataReceived += NMonCore_DataReceived;
         mNMonCore.IsPlayWave    = false;
         mNMonCore.StartMon(param);
     }
     catch (Exception ex)
     {
         OnDebug(LogMode.Error, string.Format("InitNMon fail.\t{0}", ex.Message));
     }
 }
Exemple #3
0
 void BtnStartMon_Click(object sender, RoutedEventArgs e)
 {
     if (!CheckInput())
     {
         return;
     }
     SubDebug(string.Format("Start monitor start."));
     if (TxtChannel0.Text != string.Empty)
     {
         //Create NetMonitor object,can simply create it like:
         //VLNMonCore core=new VLNMonCore()
         //if need't any particular settings
         NETMON_PARAM param = new NETMON_PARAM();
         param.Host    = TxtVoiceIp.Text;
         param.Port    = int.Parse(TxtMonitorPort.Text);
         param.Channel = int.Parse(TxtChannel0.Text);
         string   str  = "VLNMon0";
         NMonCore core = new NMonCore(str);
         core.Debug          += Core_Debug;
         core.HeadReceived   += Core_HeadReceived;
         core.DataReceived   += Core_DataReceived;
         core.IsConnectServer = CbConnectVoice.IsChecked == true;
         //core.IsConnectServer = false;
         core.IsDecodeData = CbDecodeData.IsChecked == true;
         //core.IsDecodeData = false;
         core.IsPlayWave = CbPlayWave.IsChecked == true;
         //core.IsPlayWave = true;
         core.IsSourceWaveWriteFile = CbWriteSrcFile.IsChecked == true;
         core.IsPcmWaveWriteFile    = CbWritePcmFile.IsChecked == true;
         core.WaveDirectory         = TxtWaveDir.Text;
         if (RbRight0.IsChecked == true)
         {
             core.Volume = 5;
         }
         else if (RbLeft0.IsChecked == true)
         {
             core.Volume = 3;
         }
         else
         {
             core.Volume = 1;
         }
         mVLNMonCores.Add(str, core);
         core.StartMon(param);
     }
     if (TxtChannel1.Text != string.Empty)
     {
         NETMON_PARAM param = new NETMON_PARAM();
         param.Host    = TxtVoiceIp.Text;
         param.Port    = int.Parse(TxtMonitorPort.Text);
         param.Channel = int.Parse(TxtChannel1.Text);
         string   str  = "VLNMon1";
         NMonCore core = new NMonCore(str);
         core.Debug          += Core_Debug;
         core.HeadReceived   += Core_HeadReceived;
         core.DataReceived   += Core_DataReceived;
         core.IsConnectServer = CbConnectVoice.IsChecked == true;
         core.IsDecodeData    = CbDecodeData.IsChecked == true;
         core.IsPlayWave      = CbPlayWave.IsChecked == true;
         //core.IsPlayWave = false;
         core.IsSourceWaveWriteFile = CbWriteSrcFile.IsChecked == true;
         core.IsPcmWaveWriteFile    = CbWritePcmFile.IsChecked == true;
         core.WaveDirectory         = TxtWaveDir.Text;
         if (RbRight1.IsChecked == true)
         {
             core.Volume = 5;
         }
         else if (RbLeft1.IsChecked == true)
         {
             core.Volume = 3;
         }
         else
         {
             core.Volume = 1;
         }
         mVLNMonCores.Add(str, core);
         core.StartMon(param);
     }
 }
Exemple #4
0
        private void DealStartNMonMessage(ReturnMessage retMessage)
        {
            try
            {
                if (retMessage.ListData == null || retMessage.ListData.Count < 1)
                {
                    CurrentApp.WriteLog("DealStartNMon", string.Format("ListData is null or count invalid"));
                    return;
                }
                string strMonID = retMessage.ListData[0];
                if (strMonID != mMonitorObject.MonID)
                {
                    CurrentApp.WriteLog("DealStartNMon", string.Format("MonID invalid"));
                    return;
                }
                string strNMonPort        = "0";
                string strIsTransAudioS04 = "1";
                if (retMessage.ListData.Count > 1)
                {
                    strNMonPort = retMessage.ListData[1];
                }
                if (retMessage.ListData.Count > 2)
                {
                    strIsTransAudioS04 = retMessage.ListData[2];
                }
                mIsTransAudioS04 = strIsTransAudioS04 == "1";
                if (!mIsTransAudioS04)
                {
                    if (!int.TryParse(strNMonPort, out mNMonPort))
                    {
                        CurrentApp.WriteLog("DealStartNMon", string.Format("NMon port invalid.\t{0}", strNMonPort));
                        return;
                    }
                    if (mNMonCore != null)
                    {
                        mNMonCore.StopMon();
                        mNMonCore = null;
                    }
                    mNMonCore        = new NMonCore(mMonitorObject);
                    mNMonCore.Debug += (s, msg) =>
                    {
                        CurrentApp.WriteLog("NMonCore", msg);
                    };
                    mNMonCore.IsConnectServer = true;
                    mNMonCore.IsDecodeData    = true;
                    mNMonCore.IsPlayWave      = true;
                    mNMonCore.HeadReceived   += (s, head) =>
                    {
                        if (mMonitorItem != null)
                        {
                            mMonitorItem.VoiceFormat = head.format;
                        }
                    };
                    string       strHost = mMonitorObject.Other03;
                    int          monPort = mNMonPort;
                    int          channel = int.Parse(mMonitorObject.Other01);
                    NETMON_PARAM param   = new NETMON_PARAM();
                    param.Host    = strHost;
                    param.Port    = monPort;
                    param.Channel = channel;
                    CurrentApp.WriteLog("DealStartNMon",
                                        string.Format("Monitor param \tHost:{0} \tPort:{1} \tChannel:{2}", strHost, monPort, channel));

                    mNMonCore.StartMon(param);
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }
        private void DoStartNMonMessage(RequestMessage request)
        {
            ReturnMessage retMessage = new ReturnMessage();

            retMessage.Result    = true;
            retMessage.SessionID = SessionID;
            retMessage.Code      = 0;
            try
            {
                if (request.ListData == null ||
                    request.ListData.Count < 1)
                {
                    SendErrorMessage(request.Command, Defines.RET_PARAM_INVALID,
                                     string.Format("ListData is null or count invalid"));
                    return;
                }
                string strMonID = request.ListData[0];
                LogDebugMessage(request.Command,
                                string.Format("MonID:{0};", strMonID));
                if (mMonType != MonType.NMon)
                {
                    SendErrorMessage(request.Command, Defines.RET_CHECK_FAIL,
                                     string.Format("MonType invalid.\t{0}", mMonType));
                    return;
                }
                MonitorObject monObj = mListMonObjects.FirstOrDefault(o => o.MonID == strMonID);
                if (monObj == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_NOT_EXIST,
                                     string.Format("Monitor object not in the monitor list"));
                    return;
                }
                string strExt = monObj.Name;
                if (ListExtensionInfos == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_OBJECT_NULL,
                                     string.Format("ListExtensionInfos is null"));
                    return;
                }
                var extInfo = ListExtensionInfos.FirstOrDefault(e => e.Extension == strExt);
                if (extInfo == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_NOT_EXIST,
                                     string.Format("ExtInfo not exist.\t{0}", strExt));
                    return;
                }
                if (ListResourceInfos == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_OBJECT_NULL,
                                     string.Format("ListResourceInfos is null"));
                    return;
                }
                VoiceChanInfo chanInfo = null;
                for (int i = 0; i < ListResourceInfos.Count; i++)
                {
                    var resource = ListResourceInfos[i];
                    chanInfo = resource as VoiceChanInfo;
                    if (chanInfo == null)
                    {
                        continue;
                    }
                    if (chanInfo.Extension != strExt)
                    {
                        continue;
                    }
                    break;
                }
                if (chanInfo == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_NOT_EXIST,
                                     string.Format("VoiceChanInfo not exist.\t{0}", strExt));
                    return;
                }
                int  chanID     = chanInfo.ID;
                long voiceObjID = chanInfo.ParentObjID;
                var  voiceInfo  = ListResourceInfos.FirstOrDefault(r => r.ObjID == voiceObjID) as VoiceServerInfo;
                if (voiceInfo == null)
                {
                    SendErrorMessage(request.Command, Defines.RET_NOT_EXIST,
                                     string.Format("VoiceInfo not exist.\t{0}", voiceObjID));
                    return;
                }
                int    monPort          = voiceInfo.NMonPort;
                string address          = voiceInfo.HostAddress;
                bool   isTransAudioData = true;
                if (ConfigInfo != null)
                {
                    var setting =
                        ConfigInfo.ListSettings.FirstOrDefault(s => s.Key == Service10Consts.GS_KEY_S10_TRANSAUDIODATA);
                    if (setting != null)
                    {
                        if (setting.Value == "0")
                        {
                            isTransAudioData = false;
                        }
                    }
                }
                retMessage.Command = (int)Service10Command.ResStartNMon;
                retMessage.ListData.Add(strMonID);
                retMessage.ListData.Add(monPort.ToString());
                retMessage.ListData.Add(isTransAudioData ? "1" : "0");
                retMessage.ListData.Add(address);
                retMessage.ListData.Add(chanID.ToString());
                SendMessage(retMessage);
                if (isTransAudioData)
                {
                    //启动NMonCore进行网络监听
                    NETMON_PARAM param = new NETMON_PARAM();
                    param.Host    = voiceInfo.HostAddress;
                    param.Port    = voiceInfo.NMonPort;
                    param.Channel = chanID;
                    InitNMon(monObj, param);
                }
            }
            catch (Exception ex)
            {
                SendErrorMessage(request.Command, Defines.RET_FAIL, ex.Message);
            }
        }