I've got a DMRLink bridge that I wanted to add an MMDVM too, so setup HBLink and confirm it worked with the MMDVM OK, then configured IPSC_Bridge, and HB_Bridge, all worked OK and using bridge rules I could pass group voice between the 2 without issue.
Today I wanted to add a second MMDVM, so edited the hblink.cfg file to add a second repeater, ran hblink.py to confirm all was OK, then started HB_Bridge, which died due to the UDP socket already being in use.
load config file config.file
Traceback (most recent call last):
File "./HB_Bridge.py", line 237, in <module>
systems[system] = HB_BRIDGE(system, CONFIG, logger)
File "./HB_Bridge.py", line 101, in __init__
self.hb_ambe = AMBE_HB(self, _name, _config, _logger, self._ambeRxPort)
File "/opt/HBlink/dmr_utils/ambe_bridge.py", line 381, in __init__
AMBE_BASE.__init__(self, _parent, _name, _config, _logger, _port)
File "/opt/HBlink/dmr_utils/ambe_bridge.py", line 187, in __init__
self.udp_port = reactor.listenUDP(self._ambeRxPort, UDP_IMPORT(self.import_datagramReceived))
File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 374, in listenUDP
File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 175, in startListening
File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 195, in _bindSocket
raise error.CannotListenError(self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on any:31003: [Errno 98] Address already in use.
This threw me a little, and so I thought I'd re-used a port number by accident, but reading the error a little closer, so it was the 31003 port, which is what I use for pushing AMBE from HB to IPSC, but I didn't have another instance of HB_Bridge running, after some head scratching I edited my hblink.cfg file to comment out the original of the two repeater instances, and all went back to working, so both my repeater configs where OK.
Thinking a bit more, it must be that each instance will need to have it's own pair of HB to IPSC files, as otherwise the AMBE packets could all just hit the other partner from both HB repeaters at the same time, if they happen to be talking at the same time?
So the question is, do I need to setup an additional set of IPSC_Bridge and HB_Bridge files for each additional HB repeater I with to add into DMRLink, or am I missing something where there is a way for the tuple of repeater source ID, Slot, TG to be sent through along with AMBE audio to the partners and so multiple HB's can talk to multiple IPSC/DMRLink?