protected void FireUserPacket(Packet pkt, System.Net.IPEndPoint ep) { if (this.GotUserPacket != null) { PacketEventArgs e = new PacketEventArgs(pkt, ep); this.GotUserPacket(this, e); } UserPacket upkt = (UserPacket)pkt; RadioID to = upkt.Destination; if (activeCalls.ContainsKey(to)) { //Console.WriteLine("Appending to active call..."); activeCalls[to].AppendPkt(upkt); } else { //Console.WriteLine("Creating new call..."); if (upkt.PacketType == PacketType.GroupDataCall || upkt.PacketType == PacketType.PrivateDataCall) { activeCalls[to] = new DataCall(upkt); } else { activeCalls[to] = new AudioCall(upkt); } } if (activeCalls[to].IsEnded) { this.GotUserCall?.Invoke(this, new CallEventArgs(activeCalls[to])); activeCalls.Remove(to); } }
private void RestClient_GotUserPacket(object sender, PacketEventArgs e) { if (e.packet.ID.Equals(this.myID)) { //Ignore my own packets... return; } UserPacket upkt = (UserPacket)e.packet; RadioID to = upkt.Destination; if (activeCalls.ContainsKey(to)) { //Console.WriteLine("Appending to active call..."); activeCalls[to].AppendPkt(upkt); } else { //Console.WriteLine("Creating new call..."); if (upkt.PacketType == PacketType.GroupDataCall || upkt.PacketType == PacketType.PrivateDataCall) { activeCalls[to] = new DataCall(upkt); } else { activeCalls[to] = new AudioCall(upkt); } } if (activeCalls[to].IsEnded) { this.GotRestCall?.Invoke(this, new CallEventArgs(activeCalls[to])); activeCalls.Remove(to); } }