removed Xid.dat idea

pull/4/head
Tom Early 8 years ago
parent 20e92e5d35
commit 524af5b5c5

@ -1,6 +1,6 @@
/* /*
* Copyright (C) 2010, 2011, 2012 by Scott Lawson KI4LKF * Copyright (C) 2010, 2011, 2012 by Scott Lawson KI4LKF
* addition Copyright (C) 2015 by Thomas A. Early N7TAE * addition Copyright (C) 2018 by Thomas A. Early N7TAE
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -288,7 +288,7 @@ Note: MAXIMUM dtmf sequence is up to 32 dtmf tones.
What dtmf tones are being decoded and processed What dtmf tones are being decoded and processed
----------------------------------------------- -----------------------------------------------
To link to an XRF reflector: Example: #02102 To link to an XRF reflector: Example: B02102
That says: link to XRF021 module B. So, we use the # dtmf key That says: link to XRF021 module B. So, we use the # dtmf key
to mean that we're interested in linking to an XRF reflector. The to mean that we're interested in linking to an XRF reflector. The
last two digits are the remote module 01 thru 05 (which is last two digits are the remote module 01 thru 05 (which is
@ -306,12 +306,12 @@ to mean that we're interested in linking to a REF reflector. The
last two digits are the remote module 01 thru 05 (which is last two digits are the remote module 01 thru 05 (which is
translated to A thru E). translated to A thru E).
To unlink (from any reflector xrf or ref): 73 To unlink (from any reflector xrf or ref): #
To get the "link status": 99 To get the "link status": 0 or 00
Note: Note:
You can extend the shell ascript to do more things. like force You can extend the shell script to do more things. like force
your repeater to ID itself. Any YRCALL command that can be executed your repeater to ID itself. Any YRCALL command that can be executed
by g2link_test, can be added to the shell script. Basically, the by g2link_test, can be added to the shell script. Basically, the
Linux shell script proc_QnetGateway_dtmfs.sh converts the decoded Linux shell script proc_QnetGateway_dtmfs.sh converts the decoded
@ -341,7 +341,7 @@ change these files, unless you want to have your own personal voice
played over RF. These dat files were created using a computer and they played over RF. These dat files were created using a computer and they
are NOT anyone's voice. are NOT anyone's voice.
The only dat file that you should really change is id.dat. The file The only dat file most hams will need to change is id.dat. The file
id.dat contains the audio "UNLINKED" and nothing else. When the gateway id.dat contains the audio "UNLINKED" and nothing else. When the gateway
is not linked and the RF user sets YRCALL=_______I to request the is not linked and the RF user sets YRCALL=_______I to request the
status of the link, the file id.dat will be played back over RF. But status of the link, the file id.dat will be played back over RF. But
@ -353,23 +353,9 @@ the audio: "This is repeater ...". A simple way to create your own
recorded "repeater identification file" id.dat is to use your Dstar HT recorded "repeater identification file" id.dat is to use your Dstar HT
and set YRCALL command: YRCALL=______S0 and key up your repeater. and set YRCALL command: YRCALL=______S0 and key up your repeater.
Start talking, and the gateway will record your audio into the file Start talking, and the gateway will record your audio into the file
x_voicemail.dat where x is one of A.B or C. Now copy that file into x_voicemail.dat where x is one of A.B or C. Now copy that file:
id.dat. sudo cp -f /tmp/C_voicemail.dat /usr/local/etc/it.dat
Open the file QnetLink.cfg:
You can add as many lines to gwys.txt, if you know of any other
reflectors that you want to be able to connect to. REF reflectors
use port 20001(for USER connections), DCS reflectors use port
30051 and XRF reflectors use either 30001(for Repeater linking)
or 20001(for USER connections).
You can have as many ADMIN lines as you want. ADMIN is user
callsign that can connect to your own gateway(QnetLink) using
DVTool, ...
Only ADMIN users can use the scripts feature of this software.
Note:
You may be thinking why did we put all this source code inside QnetLink You may be thinking why did we put all this source code inside QnetLink
instead of putting it all inside the Gateway software QnetGateway (or instead of putting it all inside the Gateway software QnetGateway (or
g2_ccs CCS gateway software). Because it is NOT a good design to burden g2_ccs CCS gateway software). Because it is NOT a good design to burden
@ -378,7 +364,7 @@ NOT part of Dstar and they are not Dstar protocol.
The only code that should be in a gateway, is G2 protocol code. This way The only code that should be in a gateway, is G2 protocol code. This way
we keep the gateway (QnetGateway) clean of any unneccesary source we keep the gateway (QnetGateway) clean of any unneccesary source
code logic and containing only pure G2/dstar logic. code logic and containing only pure G2/D-Star logic.
QnetDVAP QnetDVAP
@ -398,8 +384,8 @@ After editing /usr/local/etc/g2.cfg file you can restart the effected
program with "sudo service QnetDVRPTR restart". Or you can alway just program with "sudo service QnetDVRPTR restart". Or you can alway just
reboot with "sudo reboot". reboot with "sudo reboot".
Rig specific parameters are in "QnetDVRPTR.rf_rx_level", "QnetDVRPTR.inverse.rx" and Rig specific parameters are in "module.x.rf_rx_level", "module.x.inverse.rx" and
"QnetDVRPTR.inverse.tx". You need to play with these to work best with your rig. "module.x.inverse.tx". You need to play with these to work best with your rig.
With my Kenwood TM-V71, I use the default values. With my Kenwood TM-V71, I use the default values.
You can first start with inverse.rx, trying true or false. Use the echo command You can first start with inverse.rx, trying true or false. Use the echo command
@ -410,5 +396,5 @@ then you can work out the inverse.tx paramter. Once you hear anything
with in the echo mode, move rf_rx_level up or down to get the best with in the echo mode, move rf_rx_level up or down to get the best
audio. audio.
Once you have a working system, it's a good idea to back up you g2.cfg Once you have a working system, it's a good idea to back up you qn.cfg
files. files.

@ -20,11 +20,11 @@ how qnremote works.
######## QnetRemote ######### ######## QnetRemote #########
QnetRemote is a program used to send any arbitrary YourCall to your QnetGateway QnetRemote is a command line program used to send any arbitrary YourCall to your
system. It is install automatically when you install any of the supported modems: QnetGateway system. It is install automatically when you install any of the
MMDVMHost, QnetDVAP or QnetDVRPTR. It's a very simple, yet powerful program. supported modems: MMDVMHost, QnetDVAP or QnetDVRPTR. It's a very simple, yet
Open a shell to you system and type "qnremote" and it will remind you of the powerful program. Open a shell to you system and type "qnremote" and it will
format it expects: remind you of the format it expects:
pi@raspberrypi:~ $ qnremote pi@raspberrypi:~ $ qnremote
Usage: qnremote <module> <mycall> <yourcall> Usage: qnremote <module> <mycall> <yourcall>
@ -40,7 +40,7 @@ YourCall parameters. Here are some more examples:
qnremote b w4wwm u # W4WWM is unlinking module B. qnremote b w4wwm u # W4WWM is unlinking module B.
qnremote c w1bwb i # W1BSB is requesting the status of module C qnremote c w1bwb i # W1BSB is requesting the status of module C
Modules, callsigns and YourCall can all be in lowercase, qnremote will convert Modules, callsigns and YourCall can all be in lowercase, qnremote will conver
them to uppercase. QnetLink will validate that the specific MyCall is allowed them to uppercase. QnetLink will validate that the specific MyCall is allowed
to link or unlink, according to the configuration. (By default, any user can to link or unlink, according to the configuration. (By default, any user can
link or unlink a module, unless link_unlink is specified in the configuration link or unlink a module, unless link_unlink is specified in the configuration
@ -52,3 +52,41 @@ Mountain Time for the D-Star Users Net, don't forget to include an unlink
command in your cron-executed script before you link! For instructions on how command in your cron-executed script before you link! For instructions on how
to do this search the web with "linux cron job". to do this search the web with "linux cron job".
######## QnetVoice ########
QnetVoice is another command line program to send any DVTool-formatted file
to a moule configured on you gateway. It has a simple interface, like
QnetRemote. To get started, open a shell on your system and type "qnvoice":
pi@raspberrypi:~ $ qnvoice
Usage: qnvoice <module> <mycall> <dvtoolFile>
Where...
module is one of your modules
mycall is your personal callsign
dvtoolFile is a dvtool file
Please note that <module> and <mycall> are not case sensitive, but
<dvtoolFile> is.
So what's a DVTool file? All the voice prompts delivered with QnetGateway,
in the QnetGateway/announce directory and DVTool files. And, you can
easily create your own!
To make your own DVTool file, just put " S0" in your radio's YourCall
and key up and talk. You will be making a "voice mail" DVTool file:
/tmp/X_voicemail.dat, where X is the module on which you are transmitting.
Once you have created it, you can move it out of the /tmp directory and
rename it. Then you can use it in a qnvoice command. You can also replace
all of the standard voice messsages with your own. If you want to do this
put your versions in a directory outside of the build directoy and make
a small script that will copy your messages over the existing, installed
messages:
#!/bin/bash
sudo cp ./id.dat /usr/local/etc
... more copy commands
That way, when you pull down a new release and build and install it, you
can quickly update the voice messages with your own.

@ -74,7 +74,7 @@ clean:
install : qngateway qnlink qnrelay install : qngateway qnlink qnrelay
######### QnetGateway ######### ######### QnetGateway #########
/bin/cp -f qngateway $(BINDIR) /bin/cp -f qngateway $(BINDIR)
/bin/cp -f qnremote $(BINDIR) /bin/cp -f qnremote qnvoice $(BINDIR)
/bin/cp -f qn.cfg $(CFGDIR) /bin/cp -f qn.cfg $(CFGDIR)
/bin/cp -f system/qngateway.service $(SYSDIR) /bin/cp -f system/qngateway.service $(SYSDIR)
systemctl enable qngateway.service systemctl enable qngateway.service
@ -99,7 +99,7 @@ install : qngateway qnlink qnrelay
installdvap : qngateway qnlink qndvap installdvap : qngateway qnlink qndvap
######### QnetGateway ######### ######### QnetGateway #########
/bin/cp -f qngateway $(BINDIR) /bin/cp -f qngateway $(BINDIR)
/bin/cp -f qnremote $(BINDIR) /bin/cp -f qnremote qnvoice $(BINDIR)
/bin/cp -f qn.cfg $(CFGDIR) /bin/cp -f qn.cfg $(CFGDIR)
/bin/cp -f system/qngateway.service $(SYSDIR) /bin/cp -f system/qngateway.service $(SYSDIR)
systemctl enable qngateway.service systemctl enable qngateway.service
@ -124,7 +124,7 @@ installdvap : qngateway qnlink qndvap
installdvrptr : qngateway qnlink qndvrptr installdvrptr : qngateway qnlink qndvrptr
######### QnetGateway ######### ######### QnetGateway #########
/bin/cp -f qngateway $(BINDIR) /bin/cp -f qngateway $(BINDIR)
/bin/cp -f qnremote $(BINDIR) /bin/cp -f qnremote qnvoice $(BINDIR)
/bin/cp -f qn.cfg $(CFGDIR) /bin/cp -f qn.cfg $(CFGDIR)
/bin/cp -f system/qngateway.service $(SYSDIR) /bin/cp -f system/qngateway.service $(SYSDIR)
systemctl enable qngateway.service systemctl enable qngateway.service
@ -178,6 +178,7 @@ uninstall :
/bin/rm -f $(SYSDIR)/qngateway.service /bin/rm -f $(SYSDIR)/qngateway.service
/bin/rm -f $(BINDIR)/qngateway /bin/rm -f $(BINDIR)/qngateway
/bin/rm -f $(BINDIR)/qnremote /bin/rm -f $(BINDIR)/qnremote
/bin/rm -f $(BINDIR)/qnvoice
/bin/rm -f $(CFGDIR)/qn.cfg /bin/rm -f $(CFGDIR)/qn.cfg
######### QnetLink ######### ######### QnetLink #########
systemctl stop qnlink.service systemctl stop qnlink.service
@ -207,6 +208,7 @@ uninstalldvap :
/bin/rm -f $(SYSDIR)/qngateway.service /bin/rm -f $(SYSDIR)/qngateway.service
/bin/rm -f $(BINDIR)/qngateway /bin/rm -f $(BINDIR)/qngateway
/bin/rm -f $(BINDIR)/qnremote /bin/rm -f $(BINDIR)/qnremote
/bin/rm -f $(BINDIR)/qnvoice
/bin/rm -f $(CFGDIR)/qn.cfg /bin/rm -f $(CFGDIR)/qn.cfg
######### QnetLink ######### ######### QnetLink #########
systemctl stop qnlink.service systemctl stop qnlink.service
@ -236,6 +238,7 @@ uninstalldvrptr :
/bin/rm -f $(SYSDIR)/qngateway.service /bin/rm -f $(SYSDIR)/qngateway.service
/bin/rm -f $(BINDIR)/qngateway /bin/rm -f $(BINDIR)/qngateway
/bin/rm -f $(BINDIR)/qnremote /bin/rm -f $(BINDIR)/qnremote
/bin/rm -f $(BINDIR)/qnvoice
/bin/rm -f $(CFGDIR)/qn.cfg /bin/rm -f $(CFGDIR)/qn.cfg
######### QnetLink ######### ######### QnetLink #########
systemctl stop qnlink.service systemctl stop qnlink.service

@ -3867,18 +3867,7 @@ static void AudioNotifyThread(char *arg)
sleep(delay_before); sleep(delay_before);
memset(temp_file, '\0', sizeof(temp_file)); memset(temp_file, '\0', sizeof(temp_file));
if (0 == memcmp(notify_msg + 2, "id.dat", 6)) { snprintf(temp_file, FILENAME_MAX, "%s/%s", announce_dir.c_str(), notify_msg + 2);
// check for <mod>id.dat
snprintf(temp_file, FILENAME_MAX, "%s/%c%s", announce_dir.c_str(), mod, notify_msg + 2);
struct stat ssbuf;
if (stat(temp_file, &ssbuf))
// nope, no <mod>id.dat file, revert back to id.dat
snprintf(temp_file, FILENAME_MAX, "%s/%s", announce_dir.c_str(), notify_msg + 2);
} else
// not id.dat
snprintf(temp_file, FILENAME_MAX, "%s/%s", announce_dir.c_str(), notify_msg + 2);
printf("sending File:[%s], mod:[%c], RADIO_ID=[%s]\n", temp_file, mod, RADIO_ID); printf("sending File:[%s], mod:[%c], RADIO_ID=[%s]\n", temp_file, mod, RADIO_ID);
fp = fopen(temp_file, "rb"); fp = fopen(temp_file, "rb");

Loading…
Cancel
Save

Powered by TurnKey Linux.