diff --git a/.gitignore b/.gitignore index 949061f..b081193 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,9 @@ reflector/urfd.* urfd inicheck dbutil +.devcontainer/ +/test_urfd.ini +/staging_urfd.ini +/pr_comment_nng.md +/pr_body_fix.md +/staging/ diff --git a/docs/nng.md b/docs/nng.md index b669a8e..9c078ac 100644 --- a/docs/nng.md +++ b/docs/nng.md @@ -118,7 +118,8 @@ Triggered when the reflector "hears" an active transmission. This event is sent "ur": "CQCQCQ", "rpt1": "GB3NB", "rpt2": "XLX123 A", - "module": "A" + "module": "A", + "protocol": "M17" } ``` diff --git a/mrefd-temp b/mrefd-temp new file mode 160000 index 0000000..fbf88f1 --- /dev/null +++ b/mrefd-temp @@ -0,0 +1 @@ +Subproject commit fbf88f1e7f347f78a501b906fe814aa9c11bcd9f diff --git a/reflector/BMProtocol.cpp b/reflector/BMProtocol.cpp index 3f211b8..92942d1 100644 --- a/reflector/BMProtocol.cpp +++ b/reflector/BMProtocol.cpp @@ -368,7 +368,7 @@ void CBMProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, c // release g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, peer); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, peer, EProtocol::bm); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/DCSProtocol.cpp b/reflector/DCSProtocol.cpp index 29dc576..0ea47f4 100644 --- a/reflector/DCSProtocol.cpp +++ b/reflector/DCSProtocol.cpp @@ -208,7 +208,7 @@ void CDcsProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::dcs); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/DExtraProtocol.cpp b/reflector/DExtraProtocol.cpp index 88ed7ef..c698b26 100644 --- a/reflector/DExtraProtocol.cpp +++ b/reflector/DExtraProtocol.cpp @@ -351,7 +351,7 @@ void CDextraProtocol::OnDvHeaderPacketIn(std::unique_ptr &Heade g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::dextra); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/DMRMMDVMProtocol.cpp b/reflector/DMRMMDVMProtocol.cpp index 5f10ba7..f2b201e 100644 --- a/reflector/DMRMMDVMProtocol.cpp +++ b/reflector/DMRMMDVMProtocol.cpp @@ -335,7 +335,7 @@ void CDmrmmdvmProtocol::OnDvHeaderPacketIn(std::unique_ptr &Hea // update last heard if ( lastheard ) { - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::dmrmmdvm); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/DMRPlusProtocol.cpp b/reflector/DMRPlusProtocol.cpp index fefc957..d257eb9 100644 --- a/reflector/DMRPlusProtocol.cpp +++ b/reflector/DMRPlusProtocol.cpp @@ -208,7 +208,7 @@ void CDmrplusProtocol::OnDvHeaderPacketIn(std::unique_ptr &Head // release g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::dmrplus); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/DPlusProtocol.cpp b/reflector/DPlusProtocol.cpp index 14682fe..24b819d 100644 --- a/reflector/DPlusProtocol.cpp +++ b/reflector/DPlusProtocol.cpp @@ -213,7 +213,7 @@ void CDplusProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::dplus); g_Reflector.ReleaseUsers(); } else diff --git a/reflector/G3Protocol.cpp b/reflector/G3Protocol.cpp index 8d5e24b..97c5b47 100644 --- a/reflector/G3Protocol.cpp +++ b/reflector/G3Protocol.cpp @@ -570,7 +570,7 @@ void CG3Protocol::OnDvHeaderPacketIn(std::unique_ptr &Header, c } // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::g3); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/ImrsProtocol.cpp b/reflector/ImrsProtocol.cpp index c47154d..5434131 100644 --- a/reflector/ImrsProtocol.cpp +++ b/reflector/ImrsProtocol.cpp @@ -153,7 +153,7 @@ void CImrsProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, if (Header) { - g_Reflector.GetUsers()->Hearing(Header->GetMyCallsign(), Header->GetRpt1Callsign(), Header->GetRpt2Callsign()); + g_Reflector.GetUsers()->Hearing(Header->GetMyCallsign(), Header->GetRpt1Callsign(), Header->GetRpt2Callsign(), EProtocol::imrs); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/M17Protocol.cpp b/reflector/M17Protocol.cpp index 9da0223..15b6954 100644 --- a/reflector/M17Protocol.cpp +++ b/reflector/M17Protocol.cpp @@ -290,7 +290,7 @@ void CM17Protocol::OnDvHeaderPacketIn(std::unique_ptr &Header, g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::m17); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/NXDNProtocol.cpp b/reflector/NXDNProtocol.cpp index e5d2b0e..7c7b832 100644 --- a/reflector/NXDNProtocol.cpp +++ b/reflector/NXDNProtocol.cpp @@ -235,7 +235,7 @@ void CNXDNProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, // update last heard if ( g_Reflector.IsValidModule(rpt2.GetCSModule()) ) { - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::nxdn); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/P25Protocol.cpp b/reflector/P25Protocol.cpp index 0c52204..919fc66 100644 --- a/reflector/P25Protocol.cpp +++ b/reflector/P25Protocol.cpp @@ -219,7 +219,7 @@ void CP25Protocol::OnDvHeaderPacketIn(std::unique_ptr &Header, g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::p25); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/URFProtocol.cpp b/reflector/URFProtocol.cpp index 6a5bf3f..e9d7fcb 100644 --- a/reflector/URFProtocol.cpp +++ b/reflector/URFProtocol.cpp @@ -411,7 +411,7 @@ void CURFProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, // release g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, peer); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, peer, EProtocol::urf); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/USRPProtocol.cpp b/reflector/USRPProtocol.cpp index fe794ae..4fa58c2 100644 --- a/reflector/USRPProtocol.cpp +++ b/reflector/USRPProtocol.cpp @@ -225,7 +225,7 @@ void CUSRPProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, g_Reflector.ReleaseClients(); // update last heard - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::usrp); g_Reflector.ReleaseUsers(); } } diff --git a/reflector/Users.cpp b/reflector/Users.cpp index 2d655d6..1284d7a 100644 --- a/reflector/Users.cpp +++ b/reflector/Users.cpp @@ -44,12 +44,12 @@ void CUsers::AddUser(const CUser &user) //////////////////////////////////////////////////////////////////////////////////////// // operation -void CUsers::Hearing(const CCallsign &my, const CCallsign &rpt1, const CCallsign &rpt2) +void CUsers::Hearing(const CCallsign &my, const CCallsign &rpt1, const CCallsign &rpt2, EProtocol protocol) { - Hearing(my, rpt1, rpt2, g_Reflector.GetCallsign()); + Hearing(my, rpt1, rpt2, g_Reflector.GetCallsign(), protocol); } -void CUsers::Hearing(const CCallsign &my, const CCallsign &rpt1, const CCallsign &rpt2, const CCallsign &xlx) +void CUsers::Hearing(const CCallsign &my, const CCallsign &rpt1, const CCallsign &rpt2, const CCallsign &xlx, EProtocol protocol) { CUser heard(my, rpt1, rpt2, xlx); @@ -73,5 +73,6 @@ void CUsers::Hearing(const CCallsign &my, const CCallsign &rpt1, const CCallsign event["rpt1"] = rpt2.GetCS(); event["rpt2"] = xlx.GetCS(); event["module"] = std::string(1, xlx.GetCSModule()); + event["protocol"] = g_GateKeeper.ProtocolName(protocol); g_NNGPublisher.Publish(event); } diff --git a/reflector/Users.h b/reflector/Users.h index da8a680..0873317 100644 --- a/reflector/Users.h +++ b/reflector/Users.h @@ -47,8 +47,8 @@ public: std::list::const_iterator cend() { return m_Users.cend(); } // operation - void Hearing(const CCallsign &, const CCallsign &, const CCallsign &); - void Hearing(const CCallsign &, const CCallsign &, const CCallsign &, const CCallsign &); + void Hearing(const CCallsign &, const CCallsign &, const CCallsign &, EProtocol protocol = EProtocol::none); + void Hearing(const CCallsign &, const CCallsign &, const CCallsign &, const CCallsign &, EProtocol protocol); protected: // data diff --git a/reflector/YSFProtocol.cpp b/reflector/YSFProtocol.cpp index 4c8e6ab..420aa93 100644 --- a/reflector/YSFProtocol.cpp +++ b/reflector/YSFProtocol.cpp @@ -304,7 +304,7 @@ void CYsfProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, // update last heard if ( g_Reflector.IsValidModule(rpt2.GetCSModule()) ) { - g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2); + g_Reflector.GetUsers()->Hearing(my, rpt1, rpt2, EProtocol::ysf); g_Reflector.ReleaseUsers(); } }