private void CmdSendReceiver() { try { InterceptRequest req = new InterceptRequest() { cmd = 0, extnum = string.Empty }; InterceptResponse res; int count = 0; while (IsSockCmdSrvStarted) { byte[] bytes = util.ObjectToByteArray(req); count = 0; count = sockCmdSrv.ReceiveFrom(bytes, SocketFlags.None, ref remoteepCmd); if (count == 0) return; req = util.ByteArrayToObject<InterceptRequest>(bytes); switch (req.cmd) { #if false case 1: // 내선 전화 상태 요청 __res = new InterceptResponse() { cmd = __req.cmd, result = 1, innertels = _innertelstatus }; //__bytes = util.GetBytes(__res); __bytes = util.ObjectToByteArray(__res); __count = _sockCmdSrv.SendTo(__bytes, _remoteepCmd); break; #endif case 2: // RTP Redirect 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteepCmd); break; case 3: // RTP Redirect 해제 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteepCmd); break; case 4: // 파일 Stream 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteep); break; case 5: // 파일 Down 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteep); break; } } } catch (SocketException se) { throw se; } }
private void CmdSendReceiver() { try { InterceptRequest req = new InterceptRequest() { cmd = 0, extnum = string.Empty }; InterceptResponse res; int count = 0; while (IsSockCmdSrvStarted) { byte[] bytes = util.ObjectToByteArray(req); count = 0; count = sockCmdSrv.ReceiveFrom(bytes, SocketFlags.None, ref remoteepCmd); if (count == 0) { return; } req = util.ByteArrayToObject <InterceptRequest>(bytes); switch (req.cmd) { #if false case 1: // 내선 전화 상태 요청 __res = new InterceptResponse() { cmd = __req.cmd, result = 1, innertels = _innertelstatus }; //__bytes = util.GetBytes(__res); __bytes = util.ObjectToByteArray(__res); __count = _sockCmdSrv.SendTo(__bytes, _remoteepCmd); break; #endif case 2: // RTP Redirect 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteepCmd); break; case 3: // RTP Redirect 해제 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteepCmd); break; case 4: // 파일 Stream 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteep); break; case 5: // 파일 Down 요청 res = new InterceptResponse() { cmd = req.cmd, result = 1 }; bytes = util.ObjectToByteArray(res); count = sockCmdSrv.SendTo(bytes, remoteep); break; } } } catch (SocketException se) { throw se; } }
private void RtpRedirectSendReceiver() { try { InterceptRequest req; int count = 0; while (IsSockInterceptorStarted) { req = new InterceptRequest() { cmd = 0, extnum = "0000" }; byte[] bytes = util.ObjectToByteArray(req); count = 0; count = sockRTPSrv.ReceiveFrom(bytes, SocketFlags.None, ref remoteepRedirect); if (count == 0) return; req = util.ByteArrayToObject<InterceptRequest>(bytes); InterceptorClient tmpObj = null; int idx = 0; switch (req.cmd) { case 2: // RTP 클라이언트 등록 요청 var tmpList = rtpRedirectClientList.Where(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); if (tmpList.Count() == 0) { lock (rtpRedirectClientList) { rtpRedirectClientList.Add(new InterceptorClient() { ClientIPEP = (IPEndPoint)remoteep, ClientRegdate = DateTime.Now, ReqtelNum = req.extnum }); } } else { lock (rtpRedirectClientList) { tmpObj = rtpRedirectClientList.FirstOrDefault(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); idx = rtpRedirectClientList.IndexOf(tmpObj); rtpRedirectClientList[idx].ClientRegdate = DateTime.Now; rtpRedirectClientList[idx].ReqtelNum = req.extnum; } } break; case 3: // RTP 클라이언트 등록 해제 요청 tmpObj = rtpRedirectClientList.FirstOrDefault(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); lock (rtpRedirectClientList) { rtpRedirectClientList.Remove(tmpObj); } break; } } } catch (SocketException e) { throw e; } }
private void RtpRedirectSendReceiver() { try { InterceptRequest req; int count = 0; while (IsSockInterceptorStarted) { req = new InterceptRequest() { cmd = 0, extnum = "0000" }; byte[] bytes = util.ObjectToByteArray(req); count = 0; count = sockRTPSrv.ReceiveFrom(bytes, SocketFlags.None, ref remoteepRedirect); if (count == 0) { return; } req = util.ByteArrayToObject <InterceptRequest>(bytes); InterceptorClient tmpObj = null; int idx = 0; switch (req.cmd) { case 2: // RTP 클라이언트 등록 요청 var tmpList = rtpRedirectClientList.Where(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); if (tmpList.Count() == 0) { lock (rtpRedirectClientList) { rtpRedirectClientList.Add(new InterceptorClient() { ClientIPEP = (IPEndPoint)remoteep, ClientRegdate = DateTime.Now, ReqtelNum = req.extnum }); } } else { lock (rtpRedirectClientList) { tmpObj = rtpRedirectClientList.FirstOrDefault(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); idx = rtpRedirectClientList.IndexOf(tmpObj); rtpRedirectClientList[idx].ClientRegdate = DateTime.Now; rtpRedirectClientList[idx].ReqtelNum = req.extnum; } } break; case 3: // RTP 클라이언트 등록 해제 요청 tmpObj = rtpRedirectClientList.FirstOrDefault(x => x.ClientIPEP.Address == ((IPEndPoint)remoteep).Address); lock (rtpRedirectClientList) { rtpRedirectClientList.Remove(tmpObj); } break; } } } catch (SocketException e) { throw e; } }