HB_Bridge 1 to 1 relationship


Peter M0NWI
 

All,


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.


root@www:/opt/HBlink# ./HB_Bridge.py
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
    p.startListening()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 175, in startListening
    self._bindSocket()
  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?


73,

Peter


Steve N4IRS
 

Peter,
I assume you have the HB_Bridge side configured as a Server. You should be able to connect the second MMDVM to the same IPO/Port as the first, without adding a second Server stanza.

Steve

On 3/27/2018 11:57 AM, Peter M0NWI wrote:

All,


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.


root@www:/opt/HBlink# ./HB_Bridge.py
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
    p.startListening()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 175, in startListening
    self._bindSocket()
  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?


73,

Peter



Peter M0NWI
 

Hi Steve,


Ah, that might be my issue then, I've one configured as a Master, and another as a client to connect out to another bridge using the MMDVM protocol.


I'd wondered if I just needed one repeater setup for MMDVM and it would handle multiple clients, unlike DMRLink where we need one entry per repeater.


Any thoughts on if 2 repeaters due to the mixed modes could be made to work, or am I best to have 2 sets of files?


73,

Peter



From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Steve N4IRS <szingman@...>
Sent: 27 March 2018 17:04
To: main@DVSwitch.groups.io
Subject: Re: [DVSwitch] HB_Bridge 1 to 1 relationship
 
Peter,
I assume you have the HB_Bridge side configured as a Server. You should be able to connect the second MMDVM to the same IPO/Port as the first, without adding a second Server stanza.

Steve

On 3/27/2018 11:57 AM, Peter M0NWI wrote:

All,


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.


root@www:/opt/HBlink# ./HB_Bridge.py
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
    p.startListening()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 175, in startListening
    self._bindSocket()
  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?


73,

Peter