Welcome to DVSwitch
DVSwitch is a set of tools and programs related to provisioning and operating Amateur Radio digital voice networks.
Purpose
The purpose of DVSwitch is as follows:
1) Allows “local” networking during an outage of the regional national/international network server.
2) Allows a local network operator to “blend” upstream feeds from different Networks (capital N on purpose). These Networks can’t get their act together and learn how to play nice with each other (everyone guilty as far as we are concerned). They may not like people doing this, but the solution is to grow up and work with each other, and not keep trying to force people to take sides.
3) Allows local segregation of localized traffic with more flexibility.
4) Allows experimentation with linking and how it’s done (part 97 specifies experimentation and advancement of the radio art are a core part of amateur radio).
1) Allows “local” networking during an outage of the regional national/international network server.
2) Allows a local network operator to “blend” upstream feeds from different Networks (capital N on purpose). These Networks can’t get their act together and learn how to play nice with each other (everyone guilty as far as we are concerned). They may not like people doing this, but the solution is to grow up and work with each other, and not keep trying to force people to take sides.
3) Allows local segregation of localized traffic with more flexibility.
4) Allows experimentation with linking and how it’s done (part 97 specifies experimentation and advancement of the radio art are a core part of amateur radio).
Mission Statement/Position
Our stated position is:
WHEREAS the Networks continue to be largely islands and are not working together to create a unified network of Networks.
WHEREAS no firm reason has been given by any of the Networks why a *competent* local network operator cannot make this work effectively.
(US ONLY)
WHEREAS 47 CFR 97 (Amateur Radio Service) specifies that a core component of amateur radio is experimentation and advancement of the radio art [97.1(b)].
BE IT RESOLVED the core group of US amateur radio operators and experimenters organized around the DVSwitch project, and in the spirit of USA 47 CFR 97 and its intentions, support the *responsible* and *thoughtful* use of digital voice networking tools to create localized networks that will interconnect to the national/international Networks, and will support users of its tools in order to do this in the most effective and sustainable way possible.
WHEREAS the Networks continue to be largely islands and are not working together to create a unified network of Networks.
WHEREAS no firm reason has been given by any of the Networks why a *competent* local network operator cannot make this work effectively.
(US ONLY)
WHEREAS 47 CFR 97 (Amateur Radio Service) specifies that a core component of amateur radio is experimentation and advancement of the radio art [97.1(b)].
BE IT RESOLVED the core group of US amateur radio operators and experimenters organized around the DVSwitch project, and in the spirit of USA 47 CFR 97 and its intentions, support the *responsible* and *thoughtful* use of digital voice networking tools to create localized networks that will interconnect to the national/international Networks, and will support users of its tools in order to do this in the most effective and sustainable way possible.
Re: confbridge_rules.py error
#dmrlink
Doug Kingston
I don't have the file to look at, but I would check the previous line for a syntax error that isn't detected until this line.
|
|
confbridge_rules.py error
#dmrlink
ai6bx
I have dmrlink up and running and then added a few other peers to my dmrlink.cfg file. I then did a copy/paste of existing lines in my confbridge_rules file and changed the system names to match the new entries in dmrlink.cfg. I am now getting syntax error messages as follows. I have looked at the lines very closely and don't see anything off. I have also tried re-writing my hand with the same results. I am open to suggestions or is it not a syntax error and something not linking from another file?
root@AI6BX-DMR:~# systemctl status dmrlink
● dmrlink.service - Controls when dmrlink starts
Loaded: loaded (/lib/systemd/system/dmrlink.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-11-25 21:34:11 PST; 12min ago
Process: 476 ExecStart=/opt/DMRlink/confbridge.py (code=exited, status=1/FAILURE)
Main PID: 476 (code=exited, status=1/FAILURE)
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: bridge_file = import_module(_confbridge_rules)
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: __import__(name)
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: File "/opt/DMRlink/confbridge_rules.py", line 55
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: {'SYSTEM': 'CARLSBAD', 'TS': 1, 'TGID': 156, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [2,], 'OFF': [9,10]
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: ^
Nov 25 21:34:11 AI6BX-DMR confbridge.py[476]: SyntaxError: invalid syntax
Nov 25 21:34:11 AI6BX-DMR systemd[1]: dmrlink.service: Main process exited, code=exited, status=1/FAILURE
Nov 25 21:34:11 AI6BX-DMR systemd[1]: dmrlink.service: Unit entered failed state.
Nov 25 21:34:11 AI6BX-DMR systemd[1]: dmrlink.service: Failed with result 'exit-code'. If I comment out this line, it gives me the same error on the next pasted line. Here is what I get when I try to start the script: root@AI6BX-DMR:~# cd /opt/DMRlink
root@AI6BX-DMR:/opt/DMRlink# python confbridge.py
INFO 2019-11-25 21:47:48,327 DMRlink 'dmrlink.py' (c) 2013 - 2015 N0MJS & the K0USY Group - SYSTEM STARTING...
INFO 2019-11-25 21:47:48,328 ID ALIAS MAPPER: 'peer_ids.json' is current, not downloaded
INFO 2019-11-25 21:47:48,328 ID ALIAS MAPPER: 'subscriber_ids.json' is current, not downloaded
INFO 2019-11-25 21:47:48,458 ID ALIAS MAPPER: peer_ids dictionary is available
INFO 2019-11-25 21:47:50,254 ID ALIAS MAPPER: subscriber_ids dictionary is available
INFO 2019-11-25 21:47:50,256 (DANIEL) IPSC Instance Created: 734562, :62044
INFO 2019-11-25 21:47:50,257 (B2V) IPSC Instance Created: 734561, :62040
INFO 2019-11-25 21:47:50,257 (RIFFBRIDGE) IPSC Instance Created: 12345, :50009
INFO 2019-11-25 21:47:50,258 (RIFFBRIDGE) Registering with the Master: 47.180.30.199:7000
INFO 2019-11-25 21:47:50,258 (SNOW) IPSC Instance Created: 734563, :62043
INFO 2019-11-25 21:47:50,258 (CARLSBAD) IPSC Instance Created: 734566, :62042
INFO 2019-11-25 21:47:50,259 (RIFFNET) IPSC Instance Created: 54321, :62031
Traceback (most recent call last):
File "confbridge.py", line 499, in <module>
CONFIG_DICT = make_bridge_config('confbridge_rules')
File "confbridge.py", line 122, in make_bridge_config
bridge_file = import_module(_confbridge_rules)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/opt/DMRlink/confbridge_rules.py", line 55
{'SYSTEM': 'CARLSBAD', 'TS': 1, 'TGID': 156, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [2,], 'OFF': [9,10], 'RESET': []},
^
SyntaxError: invalid syntax
root@AI6BX-DMR:/opt/DMRlink#
|
|
Re: Switch Between BM and TGIF
when you send a macro from DVSM, DMR, YSF, *13 *99 etc, you should
see it in the AB log.
toggle quoted messageShow quoted text
On 11/25/19 10:59 PM, Tom Corcoran
wrote:
here is dump of analog log
|
|
Re: Switch Between BM and TGIF
here is dump of analog log
-- Tom VE3NY
|
|
Re: Switch Between BM and TGIF
Also, did you restart Analog_Bridge?
toggle quoted messageShow quoted text
On 11/25/19 10:52 PM, Tom Corcoran
wrote:
Hmmm...
|
|
Re: Switch Between BM and TGIF
And... What does Analog_Bridge.log tell you?
toggle quoted messageShow quoted text
On 11/25/19 10:52 PM, Tom Corcoran
wrote:
Hmmm...
|
|
Re: Switch Between BM and TGIF
Hmmm...
added last two lines to dvsm.ini and dialed *13 and *14 ... no change in network. DMR = /opt/Analog_Bridge/analog_bridge.sh dmr.ini
DSTAR = /opt/Analog_Bridge/analog_bridge.sh dstar.ini
NXDN = /opt/Analog_Bridge/analog_bridge.sh nxdn.ini
P25 = /opt/Analog_Bridge/analog_bridge.sh p25.ini
YSF = /opt/Analog_Bridge/analog_bridge.sh ysf.ini
13 = /opt/MMDVM_Bridge/TGIF_Chng.sh
14 = /opt/MMDVM_Bridge/BM_Chng.sh
drawing blanks. please remind me where analog log is located.... tnx ...Tom VE3NY
|
|
Re: Disconnection after 45 seconds
Mike,
toggle quoted messageShow quoted text
Check to verify battery optimization is off for the DVSM app on your Android device. Steve N4IRS
On 11/25/19 7:21 PM, VK4SED wrote:
Hello All,
|
|
Re: Disconnection after 45 seconds
Hello All,
I am having a similar problem, where after about 2 mins or so the DVSwitch mobile app running on an Android mobile device just hangs up on all modes, Eg NXDN, P25, YSF etc, whilst connected on a cellular connection, when a push the "Register" button I get USRP :REG OK notification again, and the connection continues for about another 2 minutes or so, unless I am in a QSO where the app does not hang up. If I run the same android device and app on my home wifi connection I don't get disconnected. I've also tried connecting using another phone's wifi hotspot on a cellular connection and get the same result . The equipment I am using is a RPi 3b only running DVSwitch2 with updated scripts and binaries connected thru my homes 5G wifi connection to my router the 1 away to a stable 90Gbs cable connection. However, on IAX2 connection to an Allstar node I remain connected. Any suggestions VK4SED Mike
|
|
Re: Switch Between BM and TGIF
It will be
toggle quoted messageShow quoted text
13 = /full/path/to/your/script.sh 45 = /full/path/to/your/stuff.sh Then dial *13 or *45 Watch the Analog_Bridge log for what is happening.
On 11/25/19 4:59 PM, Tom Corcoran
wrote:
I have tried both
|
|
Re: Switch Between BM and TGIF
I have tried both
13 = BM_Chng.sh 24 = TGIF_Chng.sh and *13#BM_Chng.sh *24#TGIF_Chng.sh dialed with *13 and *24 no change in state. I'm pretty sure that the scripts are correct since I can make the network change using the command line to invoke the scripts. -- Tom VE3NY
|
|
Re: Switch Between BM and TGIF
You will need to use numbers. Example:
13=your bm script
24=your TGIF script.
Then to trigger, dial ,*13 or *24
From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Tom Corcoran <tcorcoran@...>
Sent: Monday, November 25, 2019 4:00:06 PM To: main@DVSwitch.groups.io <main@DVSwitch.groups.io> Subject: Re: [DVSwitch] Switch Between BM and TGIF Here's what I've added to dvsm.ini
DMR = /opt/Analog_Bridge/analog_bridge.sh dmr.ini
DSTAR = /opt/Analog_Bridge/analog_bridge.sh dstar.ini
NXDN = /opt/Analog_Bridge/analog_bridge.sh nxdn.ini
P25 = /opt/Analog_Bridge/analog_bridge.sh p25.ini
YSF = /opt/Analog_Bridge/analog_bridge.sh ysf.ini
TGIF = /opt/Analog_Bridge/TGIF_Chng.sh ; added new
BM = /opt/Analog_Bridge/BM_Chng.sh ; added new
Look correct? If so, should I expect to see the TGIF and BM options displayed in "Mode Select"? If not, where/how to I invoke processes? tnx ... Tom VE3NY
|
|
Re: Switch Between BM and TGIF
Here's what I've added to dvsm.ini
DMR = /opt/Analog_Bridge/analog_bridge.sh dmr.ini
DSTAR = /opt/Analog_Bridge/analog_bridge.sh dstar.ini
NXDN = /opt/Analog_Bridge/analog_bridge.sh nxdn.ini
P25 = /opt/Analog_Bridge/analog_bridge.sh p25.ini
YSF = /opt/Analog_Bridge/analog_bridge.sh ysf.ini
TGIF = /opt/Analog_Bridge/TGIF_Chng.sh ; added new
BM = /opt/Analog_Bridge/BM_Chng.sh ; added new
Look correct? If so, should I expect to see the TGIF and BM options displayed in "Mode Select"? If not, where/how to I invoke processes? tnx ... Tom VE3NY
|
|
Re: using output of MMDVM_Bridge as telemetry for ASL
Patrick Perdue
Cool, that's the piece I was missing. I think I can handle the rest.
toggle quoted messageShow quoted text
Thanks.
On 11/25/2019 3:17 PM, Steve N4IRS wrote:
I won't get into most of what you asked since it's not written in stone how to do what you want to but...
|
|
Re: using output of MMDVM_Bridge as telemetry for ASL
I won't get into most of what you asked since it's not written in stone how to do what you want to but...
toggle quoted messageShow quoted text
To trigger on key or unkey, look at event <https://wiki.allstarlink.org/wiki/Event_Management> 73, Steve N4IRS
On 11/25/19 3:03 PM, Patrick Perdue wrote:
Hi:
|
|
using output of MMDVM_Bridge as telemetry for ASL
Patrick Perdue
Hi:
Let me explain what this is all about. I have ASL running on a VPS, with MMDVM_Bridge and Analog_Bridge parked on a private ASL node connected to the publicly accessible node. This public node also has a pair of streams -- one to my personal Icecast server, the other to Broadcastify. I have enabled telemetry on the public node, so that anyone listening to the stream gets courtesy tones and connect/disconnect messages. These, of course, don't propogate to DMR and D-STAR, because that's just a terrible idea. Here's what I want to do next. It would be nice if the ASL node could announce the call sign of anyone who keys up on DMR, but, say, only once per hour. Otherwise, quick keys and QSOs would be really, really annoying. There is a script from HamVoIP which can be used to easily speak call signs, and I have replaced the sound pack with a much faster, more efficient set, so it takes about 70% less time to get through a call sign than with Allison. My thought was to try and write something that would grep a relevant line from MMDVM_Bridge.log for a pattern, store the last call sign as a variable, look for that call sign in a file that would be deleted once an hour. If that call exists in the file, do nothing. Otherwise, pass the call sign as an argument to the speaktext script, then append it to the end of the file so that it isn't spoken again until the file is flushed. The one thing I am unsure of is how to make this script fire at the right point in time. I want to run this script, ideally, after someone keys or unkeys, which ever would work out best. Failing that, configure Asterisk to use the tailmessage at a very short interval, pointing it at a specific file which is deleted after being played, and running the script in a loop in the background, with checks for the existence of files so it doesn't do unnecessary stuff, using /tmp so as to avoid lots of disk reads and writes. I doubt anyone has done this before, but mostly what I'm looking for is best practices, and if this is even feasible, or if I'm going about this all the wrong way.
|
|
Re: Switch Between BM and TGIF
No,
toggle quoted messageShow quoted text
You want to look in dvsm.ini You don't HAVE to use a separate include file. It's about the contents of dvsm.ini Steve
On 11/25/2019 2:01 PM, Tom Corcoran
wrote:
|
|
Re: Switch Between BM and TGIF
Hello Steve,
This is the way the top of the Analog_Bridge.ini file looks now. Correct? If so, I'm not sure what to do next to invoke the procedure. I've used the format suggested by N8ACL. I thought I would be doing something with the BM_chng.sh and TGIF_chng.sh files?? include = dvsm.ini include = asl.ini
include = MMDVM_Bridge_TGIF.ini
include = MMDVM_Bridge_BM.ini
Tom VE3NY
|
|
ai6bx
I want to link multiple Moto DMR repeaters to dmrlink and bridge to HBlink and an existing Moto DMR repeater functioning as a master for another small network. thus far, a single Moto DMR will communicate both ways with the Moto master and its linked repeaters but a second Moto DMR connected to my dmrlink will not communicate with the first. Do I need a separate entry for each moto dmr I wish to link?
|
|
Re: IPSC-bridge Dmrlink and HBlink3: help for how to
#dmrlink
#best_practices
#hblink
ai6bx
I have my network running... almost. I scrapped the whole thing and started by loading dmrlink and IPSC_bridge. I got things working there with a Moto 8300 linking through to a Motorola Master with 7 other repeaters connected to it so assumed all was good. I then set up my HBliink and have a few hotspots linking through it. I then set a second Moto 8300 repeater connecting to DMRlink which works except it is not linking to the first repeater. Each can talk into all the others on the Moto Master but the two will not connect to each other. I also do not have a successful link between the dmrlink and HBlink3 system. I am guessing I am missing a bridge profile or something. Baby steps. I will keep hammering at it and hope someone who has "been here done this" my offer up a few tips.
|
|