Exemplo n.º 1
0
        private void sendHard(string message, string slot)
        {
            try
            {
                logTextBox.AppendText("DEBISAHFOIS");
                Dictionary <int, VirtualContainer3> vc3List = new Dictionary <int, VirtualContainer3>();
                VirtualContainer3 msg = new VirtualContainer3(adaptation(), message);
                vc3List.Add(int.Parse(slot), msg);
                STM1          frame = new STM1(adaptation(), vc3List);
                List <string> temp  = new List <string>();
                temp.Add(this.virtualIP);
                Signal signal = new Signal(virtualPort, frame, temp);
                string data   = JMessage.Serialize(JMessage.FromValue(signal));
                writer.Write(data);
                foreach (KeyValuePair <int, VirtualContainer3> v in frame.vc4.vc3List)
                {
                    Log1("OUT", virtualIP, virtualPort.ToString(), v.Key, "VC-3", v.Value.POH.ToString(), v.Value.C3);
                }

                sendingTextBox.Clear();
            }
            catch (Exception e)
            {
                Log2("ERR", "Error sending signal");
            }
        }
Exemplo n.º 2
0
        private void sendSwiched(string message)
        {
            try
            {
                Dictionary <int, VirtualContainer3> vc3List = new Dictionary <int, VirtualContainer3>();
                foreach (int slot in slots)
                {
                    //Log2("DEBUG", "sloty od controla: "+slot);
                    VirtualContainer3 vc3 = new VirtualContainer3(adaptation(), "Slot" + slot + " : " + message);
                    vc3List.Add(slot, vc3);
                }
                STM1 frame = new STM1(adaptation(), vc3List);
                //SYGNAL
                List <string> temp = new List <string>();
                temp.Add(this.virtualIP);
                Signal signal = new Signal(virtualPort, frame, temp);
                string data   = JMessage.Serialize(JMessage.FromValue(signal));
                writer.Write(data);
                foreach (KeyValuePair <int, VirtualContainer3> v in frame.vc4.vc3List)
                {
                    Log1("OUT", virtualIP, virtualPort.ToString(), v.Key, "VC-3", v.Value.POH.ToString(), v.Value.C3);
                }

                sendingTextBox.Clear();
            }
            catch (Exception e)
            {
                Log2("ERR", "Error sending signal");
            }
        }
Exemplo n.º 3
0
        public void sendRelease(int id, string to)
        {
            ControlPacket packet = new ControlPacket(ControlInterface.CALL_RELEASE_IN, ControlPacket.IN_PROGRESS, 0, to, clientWindowHandler.virtualIP, id);
            string        data   = JMessage.Serialize(JMessage.FromValue(packet));

            writer.Write(data);
            clientWindowHandler.Log2("CONTROL", "CPCC -> NCC Send Call Release");
        }
Exemplo n.º 4
0
        public void sendRequest(string clientName, int speed)
        {
            ControlPacket packet = new ControlPacket(ControlInterface.CALL_REQUEST, ControlPacket.IN_PROGRESS, speed, clientName, clientWindowHandler.virtualIP, 0);
            string        data   = JMessage.Serialize(JMessage.FromValue(packet));

            writer.Write(data);
            clientWindowHandler.Log2("CONTROL", " CPCC -> NCC Send Call Request");
        }
Exemplo n.º 5
0
        public void sendInit()
        {
            Address       address = new Address(clientWindowHandler.virtualIP);
            int           cpccID  = address.type + address.domain + address.subnet + address.space;
            ControlPacket packet  = new ControlPacket(ControlInterface.INIT_CPCC_CONNECTION, ControlPacket.IN_PROGRESS, 0, "", clientWindowHandler.virtualIP, cpccID);
            string        data    = JMessage.Serialize(JMessage.FromValue(packet));

            writer.Write(data);
            clientWindowHandler.Log2("CONTROL", "Init CPCC <-> NCC connection");
        }
Exemplo n.º 6
0
 private void initManagmentConnection(Object managementPort)
 {
     try
     {
         managmentClient = new TcpClient("127.0.0.1", (int)managementPort);
         BinaryReader reader = new BinaryReader(managmentClient.GetStream());
         BinaryWriter writer = new BinaryWriter(managmentClient.GetStream());
         while (true)
         {
             string   received_data   = reader.ReadString();
             JMessage received_object = JMessage.Deserialize(received_data);
             if (received_object.Type == typeof(Management.ManagmentProtocol))
             {
                 Management.ManagmentProtocol management_packet = received_object.Value.ToObject <Management.ManagmentProtocol>();
                 if (management_packet.State == Management.ManagmentProtocol.WHOIS)
                 {
                     Management.ManagmentProtocol packet_to_management = new Management.ManagmentProtocol();
                     packet_to_management.Name = virtualIP;
                     String send_object = JMessage.Serialize(JMessage.FromValue(packet_to_management));
                     writer.Write(send_object);
                 }
                 else if (management_packet.State == Management.ManagmentProtocol.POSSIBLEDESITATIONS)
                 {
                     foreach (var c in management_packet.PossibleDestinations)
                     {
                         if (!c.Key.Equals(virtualIP))
                         {
                             comboBox1.Items.Add(c.Key);
                         }
                     }
                 }
             }
             else
             {
                 Log2("ERR", "Received unknown data type from management");
             }
         }
     }
     catch (Exception e)
     {
         //debug
         // Console.WriteLine(e.Message);
         Log2("ERR", "Could not connect on management interface");
         Thread.Sleep(4000);
         Environment.Exit(0);
     }
 }
Exemplo n.º 7
0
        private void sendPeriodically(int period, string message)
        {
            Thread myThread = new Thread(async delegate()
            {
                bool isVc3 = false;
                Signal signal;
                STM1 frame;

                string data;
                Dictionary <int, VirtualContainer3> vc3List = new Dictionary <int, VirtualContainer3>();
                foreach (int slot in slots)
                {
                    VirtualContainer3 vc3 = new VirtualContainer3(adaptation(), "Slot" + slot + " :" + message);
                    vc3List.Add(slot, vc3);
                }
                frame = new STM1(adaptation(), vc3List);
                //SYGNAL
                List <string> temp = new List <string>();
                temp.Add(this.virtualIP);
                signal = new Signal(virtualPort, frame, temp);
                data   = JMessage.Serialize(JMessage.FromValue(signal));



                while (cyclic_sending)
                {
                    try
                    {
                        writer.Write(data);
                        foreach (KeyValuePair <int, VirtualContainer3> v in frame.vc4.vc3List)
                        {
                            Log1("OUT", virtualIP, virtualPort.ToString(), v.Key, "VC-3", v.Value.POH.ToString(), v.Value.C3);
                        }

                        await Task.Delay(TimeSpan.FromMilliseconds(period));
                    }
                    catch (Exception e)
                    {
                        Log2("ERR", "Error sending signal: ");
                        break;
                    }
                }
            });

            myThread.Start();
        }
Exemplo n.º 8
0
        private void callThread()
        {
            writer = new BinaryWriter(connection.GetStream());
            reader = new BinaryReader(connection.GetStream());

            while (true)
            {
                try
                {
                    string   received_data   = reader.ReadString();
                    JMessage received_object = JMessage.Deserialize(received_data);
                    if (received_object.Type == typeof(ControlPacket))
                    {
                        ControlPacket packet = received_object.Value.ToObject <ControlPacket>();
                        if (packet.virtualInterface == ControlInterface.CALL_ACCEPT)
                        {
                            if (packet.state == ControlPacket.ACCEPT)
                            {
                                clientWindowHandler.addToConnectionCombobox(packet.RequestID, packet.destinationIdentifier);
                                clientWindowHandler.slots.Clear();
                                if (packet.Vc11 != 0)
                                {
                                    clientWindowHandler.slots.Add(11);
                                }
                                if (packet.Vc12 != 0)
                                {
                                    clientWindowHandler.slots.Add(12);
                                }
                                if (packet.Vc13 != 0)
                                {
                                    clientWindowHandler.slots.Add(13);
                                }

                                clientWindowHandler.Log2("CONTROL", "CPCC <- NCC Call Request Accepted");
                            }
                            else
                            {
                                clientWindowHandler.Log2("CONTROL", "CPCC <- NCC Call Request Rejected");
                            }
                        }
                        else if (packet.virtualInterface == ControlInterface.INIT_CPCC_CONNECTION_CONFIRM)
                        {
                            clientWindowHandler.Log2("CONTROL", "CPCC <-> NCC connection established");
                        }
                        else if (packet.virtualInterface == ControlInterface.CALL_INDICATION_CPCC)
                        {
                            clientWindowHandler.Log2("CPCC <- NCC", "Receive Call Indication");
                            ControlPacket packetToNCC = new ControlPacket(ControlInterface.CALL_INDICATION_CPCC_ACCEPT, packet.state, packet.speed, packet.destinationIdentifier, packet.originIdentifier, packet.RequestID);
                            packetToNCC.Vc11 = packet.Vc11;
                            packetToNCC.Vc12 = packet.Vc12;
                            packetToNCC.Vc13 = packet.Vc13;
                            string data = JMessage.Serialize(JMessage.FromValue(packetToNCC));
                            writer.Write(data);
                            clientWindowHandler.Log2("CPCC -> NCC", "Send Call Indication Confirmation");
                        }
                    }
                    else
                    {
                        clientWindowHandler.Log2("CONTROL", "Wrong control packet format");
                    }
                }
                catch (IOException e)
                {
                    clientWindowHandler.Log2("CONTROL", "CPCC <-> NCC Connection closed");
                    break;
                }
            }
        }
Exemplo n.º 9
0
        private void ListenThread(Object client)
        {
            TcpClient    clienttmp = (TcpClient)client;
            BinaryReader reader    = new BinaryReader(clienttmp.GetStream());

            writer = new BinaryWriter(clienttmp.GetStream());
            while (true)
            {
                string   received_data   = reader.ReadString();
                JMessage received_object = JMessage.Deserialize(received_data);
                if (received_object.Type == typeof(Signal))
                {
                    Signal received_signal = received_object.Value.ToObject <Signal>();
                    if (received_signal.stm1 != null)
                    {
                        STM1 received_frame = received_signal.stm1;
                        if (received_frame.vc4.vc3List.Count > 0)
                        {
                            slots.Clear();
                            foreach (KeyValuePair <int, VirtualContainer3> v in received_frame.vc4.vc3List)
                            {
                                receivedTextBox.AppendText(DateTime.Now.ToLongTimeString() + " : " + v.Value.C3);
                                receivedTextBox.AppendText(Environment.NewLine);
                                Log1("IN", virtualIP, received_signal.port.ToString(), v.Key, "VC-3", v.Value.POH.ToString(), v.Value.C3);
                                slots.Add(v.Key);
                            }
                        }
                        else
                        {
                            receivedTextBox.AppendText(DateTime.Now.ToLongTimeString() + " : " + received_frame.vc4.C4);
                            receivedTextBox.AppendText(Environment.NewLine);
                            Log1("IN", virtualIP, received_signal.port.ToString(), 1, "VC-4", received_frame.vc4.POH.ToString(), received_frame.vc4.C4);
                        }

                        logTextBox.AppendText(Environment.NewLine);
                        logTextBox.Paste("Path: \n");
                        foreach (var log in received_signal.path)
                        {
                            logTextBox.Paste(log + " -> ");
                        }
                        logTextBox.Paste(this.virtualIP);
                    }
                    else if (received_signal.lrmProtocol != null)
                    {
                        string   lrmProtocol = received_signal.lrmProtocol;
                        int      port        = received_signal.port;
                        string[] temp        = lrmProtocol.Split(' ');
                        if (temp[0] == "whoyouare")
                        {
                            string message = "iam " + this.virtualIP;
                            Signal signal  = new Signal(port, message);
                            string data    = JMessage.Serialize(JMessage.FromValue(signal));
                            writer.Write(data);
                        }
                    }
                }
                else
                {
                    Log2("ERR", "Received unknown data type from client");
                }
            }

            // reader.Close();
        }