This started out as a just internal documentation for our admins, but then I figured I need to share this with everyone else as I had a hard time getting all this setup. Plus is best to share information than to withhold it. Your free to email me questions, but like everyone else I have a full time job & family so there may be delays in responses. The DVSwitch group has LOTS of information and everyone is very friendly. Also some background on myself, I am NOT a programmer and never professed to be one. While I am in the Technology field I have VERY VERY limited programing skills. That said I can figure out most things pretty quickly and learned the hblink / dmrlink setup in about 2 days and you can too.
GOAL : Re-Establish our independant DMR Network that is 100% independant of any one network. We love the Brandmeister functionality and feature set, but whenever the Internet connection drops our entire network comes to a screaching halt. We wanted all voice / data traffic to flow between sites EVEN when there was no Internet connection. How do you do this? Well one idea was to re-install our cBridge and setup all the routing between sites again. However, I had heard about this hblink / dmrlink software so I figured I should look into it. It turns out hblink has the ability to inter-connect dStar, Fusion, Allstars and just about anything else you can think of. hblink appears to be a VERY flexible piece of software and it is under ACTIVE development.
Server 1 – CBRIDGE
Server 2 – IPSC Gateway
Server 3 – Routing Gateway
Server 3 – HBP Gateway (Future)
All server mentioned above virtualized using a Proxmox virtual server with failover support. All servers are Ubuntu Server 16.04 LTS fully patched.
5 Motorola repeaters running as masters (IPSC)
5 MMDVM Repeaters running latest firmware / software
All repeaters are interconnected via Highspeed P2P backhaul links. For sites that are not directly connected we use IPSEC connects to connect thm to the core network.
All information provided below was gleaned from the dvswitch forum and also emails back and forth with differnet dvswitch users. Any and ALL support that hsa been provided is greatly appreciated! My appologies if I explain things incorrectly as I’m still learning the entire system.
There are 3 pieces of software you will be using to make everything talk together. I will attempt to walk you through the setup of everything. This is going to require COMMAND LINE INTERFACE (cli) experience. There is NO gui for any of this so if you don’t know how to use the cli in linux then your going to have a tough time. If you post questions in the forum about how to use the cli, you are not going to make any friends and people will most likely ignore your posts.
- HBlink (https://github.com/n0mjs710/HBlink) is the software that work with all the MMDVM devices and is the software that takes care of the HBP (HomeBrew Repeater Protocol) traffic. (https://dvswitch.groups.io/g/main/wiki/HBlink).
- DMRlink (https://github.com/n0mjs710/DMRlink) this handles and understands all the IPSC traffic.
- HBlink3 (https://github.com/n0mjs710/HBlink3) this is the newest version of hblink based on Python 3. Use this EVERYWHERE you can as it is the LTR (long term release) of hblink and is where all the developemnt is happening right now.
- Do base install of Ubuntu 16.04 (Yes, you can run this all on 1 server, but I like to break things up)
- fully patch all systems & get to the cli
The cBridge server is used to pull feeds in from DMR-MARC and other IPSC networks. This server is NOT free and does require a license from Rayfield Communications. (https://rayfield.net/cbridge-demo-license) You can pull all your feeds from Brandmeister I believe using the OpenBridge protocol, but there are some feeds you can only get from a cBridge. Also some people will want to keep all/some of their repeaters connected to the cBridge and then route the IPSC traffic over to the IPSC_Bridge software. This would allow you to do all of your IPSC Management on the cBridge. It’s like they say there is more than one way to skin a cat.
For the purpose of this documentation we will be using the cBridge to ouriginate our own local traffic and push them out to other cBridges and to Brandmeister network. We also pull in DMR-MARC tg’s and feed them down through the system. All of our Motorola repeaters that talk IPSC have been configured as Masters and we peer into them from the DMRlink software.
In our netowrk this server is what we use to translate the IPSC traffic over to HBP traffic so we can do all our routing and management on the HBlink side of things. Every IPSC repeater get’s s “set” of software. For example repeater 1 has to have it’s own configuration files for IPSC_Bridge.py & HB_Bridge.py. Again this is segmented out and the PRO here would be that if you have to restart the IPSC_Bridge sofware you would not take down all the repeaters you would only take that one repeater offline for a few minutes to update the configuration and then restart the software. Also this will give you the ability to route things better later when we get to the routing gateway.
You can call this whatever you want. Some call it a translation server, some call it an IPSC Gateway, some will just call it a server. Again I like to segment things for redundancy and also so that if the entire server was to reboot my entire system would not go down just the services on that server would be offline briefly.
I’ll call this the opensource cBridge. 🙂 It’s basically a conference server where you hook all the audio feeds up together WHEN you want to. In speaking with Cort he recommends that you use hblink3 when possible so the Routing Gateway runs hblink3. There is a 10% – 20% performance increase in processing time I hear and also it’s what is currently being developed by the developers. hblink (the original version) will only be patched for security issues from what I hear. So use hblink3 where ever you can.
My goal was to build an HBP Gateway just like the IPSC Gateway server, but when I started to configure things up I could not figure out how to “BRIDGE” the traffic from the inbound link over to the outbound link to the routing gateway. The only way I could see that you could route traffic on this gateway would be to use rules.py and that looked like a management nightmare so I just hooked my MMDVM’s into the Routing Gateway and it works for now. If I get smarter and figure out a way to easily bridge the traffic I will revisit implmenting this server.
You will need to figure out where you want everything to live. My personal suggestion would be in the /opt folder, but everyone has their own opinion of where software should live. Some like to have everything in their /home/user directory some like to just make a arbitrary folder and store stuff there. Just know where you want everything and keep it there. It will make things easier in the long run. For this documentation everything will be in the /opt folder, but you can use anything.
Software Install – IPSC Gateway
- Install python2.7 and required modules
apt-get insall python-dev python-pip python-twisted -y
- Upgrade pip
pip install –upgrade pip
- Install additional python modules
pip install bitstring bitarray
- Clone & Install DMRUtils
git clone https://github.com/n0mjs710/dmr_utils.git
pip install –upgrade .
- Clone IPSC_Bridge branch of hblink so you can route IPSC traffic to HBP network.
git clone -b IPSC_Bridge https://github.com/n0mjs710/hblink.git
- Clone HB_Bridge branch of hblink so you can bridge HBP <-> IPSC traffic.
git clone -b HB_Bridge https://github.com/n0mjs710/hblink.git
Software Install – Routing Gateway
- Install Python3, pip, twisted
apt-get install python3 python3-dev python3-pip python3-twisted -y
- Upgrade pip
python3 -m pip install –upgrade pip
- Install bitstring & bitarray
python3 -m pip install bitstring bitarray
- Clone hblink3
git clone -b HB_Bridge https://github.com/n0mjs710/hblink3.git
# I moved my hblink3 install to hblink as it’s really hblink
mv hblink3 hblink
So there you have it. We have sucessfuly installed two servers & have the required software installed and ready to go. In part two of this post I will go through the setup of the software of each server. Please feel free to leave your comments below.