Commit Graph

81 Commits

Author SHA1 Message Date
Simon
36e7ed58b9 Override SERVER_ID that is sent for this OBP
Generally, this is used for connecting to non-FreeDMR systems.
Should usually be set to:
OVERRIDE_SERVER_ID: False
** USE WITH CAUTION **
2021-07-20 01:10:20 +01:00
Simon
09a3015f77 Don't error on unresolvable hostname in TARGET_IP
Allow null TARGET_IP - Waits for first keepalive to update - use for
endpoints that are on a dynamic or unknown IP

Support IPv6 for OBP - to listen IPv6 set IP: :: or other valid ipv6 address

IPv6 addresses can be used in TARGET_IP or will be resolved from DNS

Note, might cause confusion if the target has an IPv6 address and we don't
take note of this and specify ipv4 explicitly if needs be.

IPv6 Needs some testing :-)
2021-06-18 01:52:13 +01:00
Simon
902b963e07 Slight fixes to peer logging 2021-06-15 16:15:47 +01:00
Simon
fa20a25852 Add traffic source validation:
Change behaviour of NETWORK_ID in OPENBRIDGE config:

This should be the ID of remote system. If traffic received on this bridge is not shown as
from this ID, it will be disgarded.

Fix reporting of PEER so it actually takes the peer from the incoming connection, not NETWORK_ID:

So, in short:

SERVER_ID in [GLOBAL] - the ID you send to other servers via OBP
NETWORK_ID in OPENBRIDGE - the expected ** remote ** ID for the bridge.
2021-06-15 00:24:49 +01:00
Simon
3385b89bce Add automatic downloading of tgid file from FreeDMR website to use
with HBMonitor etc.
2021-05-31 23:48:05 +01:00
Simon
52da820554 Send SERVER_ID not NETWORK_ID in packets on OBP. 2021-05-30 02:46:52 +01:00
Simon
c20c0f4aec Send contents of numbered AMBE files in language directory.
So, for example, for lang en_GB:

When you manual dial 9991, file en_GB_2/9991.ambe is played
2021-05-24 22:32:54 +01:00
Simon
2ee5af70d6 Treat a DMRD packet as a silent keepalive
This is because the other end may not have enabled ENHANCED_OBP,
DMRD is traffic so the server is up, and not sending to systems
we can receive from can cause weird effects on the network.
2021-05-05 23:28:13 +01:00
Simon
190e17b50e CONFIG not config 2021-05-02 17:11:50 +01:00
Simon
f2c10e0b8a Catch all exceptions in options code 2021-04-29 16:28:57 +01:00
Simon
52ee8ad8ac Revert "Log todying again"
This reverts commit 06dc9fac55.
2021-04-27 19:45:35 +01:00
Simon
06dc9fac55 Log todying again 2021-04-26 23:42:20 +01:00
Simon
aac52a03a5 Try only 4 2021-04-17 15:55:30 +01:00
Simon
f3c0d084bd ok 2021-04-17 15:45:40 +01:00
Simon
cf3a0613ec Add description to log on login of system 2021-04-17 12:49:03 +01:00
Simon
3a1626fde7 Revert "bcka test"
This reverts commit d7bf07c23a.
2021-04-15 18:57:51 +01:00
Simon
d7bf07c23a bcka test 2021-04-15 18:45:36 +01:00
Simon
1b5f3fdcec Acl on TG not iD 2021-04-15 18:15:02 +01:00
Simon
28b183befe Also send BCSQ when a subscriber or TG hits the ACLs 2021-04-15 18:11:22 +01:00
Simon
a8f7ca643d Fix BCKA 2021-04-15 16:12:17 +01:00
Simon
eab8c03cce Tidy up BCSQ logging 2021-04-13 12:12:44 +01:00
Simon
88334eaaf5 Adds support for new Bridge Control OPCODE - BCSQ
BCSQ is Source Quench or Squelch

When a stream id is received from more than one source on a TG
the system sends a BCSQ to all of the non-first systems to ask them
to stop sending this stream ID. This reduces network and CPU load. Also
packets can't loop of they arent even received!

Squashed commit of the following:

commit e5ba9ece5d84e56096c459139fb39eba16249f96
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 23:16:30 2021 +0100

    Tidy up log handling for streams

commit fc1e4bd91f0e576e8c58e84cf4b96f00ce6ec933
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:56:45 2021 +0100

    Fix target port (BCKA)

commit 27e046e5efe744679c7652f65135cf3129481092
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:50:35 2021 +0100

    Handle keyerror

commit 99c660fa813a300940b16e55d840218f1868cadb
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:45:05 2021 +0100

    Stream trimmer for BCSQ

commit 9d6102be13813b27b752192e29e94d5eafbbb934
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 21:32:54 2021 +0100

    Brack

commit 2f8a8cf620153cb0138e970c0dcd85328a47521c
Merge: f77a68a 17b6968
Author: Simon <simon@gb7fr.org.uk>
Date:   Sun Apr 11 22:16:38 2021 +0100

    Merge branch 'master' into bcsq

commit f77a68a96297fe050609b8ee5fb56b0866ec78f4
Merge: 7f4c6f5 9a3e5fb
Author: Simon <simon@gb7fr.org.uk>
Date:   Fri Apr 9 01:39:54 2021 +0100

    Merge branch 'master' into bcsq

commit 7f4c6f5375b589aa78e74f0002448afe95a625a2
Author: Simon <simon@gb7fr.org.uk>
Date:   Thu Apr 8 18:35:08 2021 +0100

    c

commit c0904242e0f532c26e33bdd9cba8d1bea5329abc
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 19:05:40 2021 +0100

    only try to quench the source once

commit 2748d0cf7c5557522a5b2d0d9e3b37e294711910
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:56:05 2021 +0100

    Comment out check for enahnced to tes

commit fa43a09db73862343f0f70a367786c4d77aaf9b9
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:51:19 2021 +0100

    Dst id not tgid

commit f02df6edf10cfa936147b0862671ed949a820785
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:48:44 2021 +0100

    More BCSQ

commit adf3bb4059f0710848f8e3349722141836889c41
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:44:15 2021 +0100

    more BCKA fixes

commit b4dc518d9b74a0d8c83b3b1bb17d7de4d04b9915
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:42:13 2021 +0100

    Fix broken BKCA

commit 637d772dbadb346ad49d5b80d8299c13b0fbfc79
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:38:17 2021 +0100

    More work on BCSQ
2021-04-12 23:28:01 +01:00
Simon
919b7842da Tidy up sockaddr update from keepalives 2021-04-10 01:13:00 +01:00
Simon
cee96e1b96 Fix typo in _config 2021-04-08 18:35:48 +01:00
Simon
94e4d6251c Tidy up BCKA logging 2021-04-04 19:46:42 +01:00
Simon
d2d2317a0b Docker changes source port too 2021-04-04 19:44:44 +01:00
Simon
6b2b39f5e1 Log IP and port for bcka debugging 2021-04-04 19:42:25 +01:00
Simon
7303cdcbc8 HE 2021-04-04 19:23:30 +01:00
Simon
62f0cdc97b Merge branch 'bcka' 2021-04-04 18:42:09 +01:00
Simon
53c1958aec Dynamic IP update:
Using BCKA (Extended OBP KeepAlives):

When an authenticated keepalive is received from a different IP but
on the same port, we update the IP for the OpenBridge. This means, we can
handle dynamic IP seamlessly!
2021-04-04 18:39:16 +01:00
Simon
dda0470ff2 New option - ENHANCED_OBP
Extends OpenBridge protocol

Added authenticated KeepAlives to protocol.
2021-04-04 18:19:28 +01:00
Simon
4fd9ada6da Comment out BCKA loop as I will carry on with this in BCKA branch 2021-04-04 18:02:34 +01:00
Simon
b096d5dfa5 Fix bcka 2021-04-04 17:44:29 +01:00
Simon
56a0ee4dc6 rstrip() 2021-04-03 17:19:24 +01:00
Simon
03b3f78f5d Decode strings 2021-04-03 17:15:23 +01:00
Simon
19965158ae Anothet T 2021-04-03 17:10:24 +01:00
Simon
d0d61e5573 Typo 2021-04-03 17:05:26 +01:00
Simon
deaef627c6 Move SW and PKGID to the right place 2021-04-03 17:04:30 +01:00
Simon
90f01a7751 Report package ID in logs 2021-04-03 16:59:44 +01:00
Simon
0261c04ede When using a GENERATOR config, reset HBP options to default on client logout 2021-03-21 17:22:50 +00:00
Simon
1babf7e18a Add RELAX_CHECKS to OPENBRIDGE definitions
This disables source IP and port checking
to make OBP play nice with Docker.

Note, it *really* is a good idea to use a PASSPHRASE with this!
2021-02-20 22:02:44 +00:00
Simon
e2dfeb15b0 Tidy up OBP HMAC error logging 2021-02-14 19:02:07 +00:00
Simon
fb45584aab Revert "Remove "to" from linked messages so it at least makes sense"
This reverts commit e882b4226b.
2021-02-09 09:37:44 +00:00
Simon
e882b4226b Remove "to" from linked messages so it at least makes sense
for all languages and doesn't cause to - two confusion
2021-02-08 14:41:23 +00:00
root
66cdbce0d0 T 2021-02-08 00:34:53 +00:00
Simon
91fe2e6f9d Get rid of Semaphores completely. 2021-01-27 18:54:31 +00:00
Simon
d3bc7fe5d8 All blocking code removed from main thread
What was I actually thinking ?!?!?
2021-01-27 18:47:55 +00:00
Simon
f8bd5b00df Allow null passphrase for MASTER logins
New config options for this in GLOBAL config section

If pashphrase is null and this option is set, login will always succeed
2021-01-23 11:43:56 +00:00
Simon
f671a9bc51 Gracefuly acknowledge DMRA packets 2021-01-18 14:28:37 +00:00
Simon
7193665086 Delete options on logout, nit just timeout 2021-01-17 20:46:58 +00:00