Comments (8)
I think remote actions is a can of worms, particularly in a full Linux environment like Aprx is in. Linux supports so many other remote access capabilities through SSH and VPNs or microwave links, or even point-to-point dial-up modem links which I've used before for remote console access, that I can't justify the complexity of supporting any remote commands.
Since Aprx is not a user-facing application, the extent of messaging would only be logging/forwarding incoming messages and responding to a limited set of APRS query fields.
from aprx.
Note: There is a beginnings of a messaging system in interface.c:process_message_to_myself()
from aprx.
aprx should not have further actions (such as "forward as email"), those are quite clearly outside the scope of an igate and should be implemented as separate APRS-IS servers.
Please try to keep the focus on doing one thing and doing it well.
from aprx.
Being a digipeater is quite clearly outside the scope of an igate as well, so I don't think that argument holds water. I see aprx as an APRS packet router, and I feel that that includes shunting APRS messages to some other system to be processed.
from aprx.
Aprx has functions that are easy to do with embedded resources.
Mostly where AX.25 UI frame talk capability are useful.
from aprx.
How could we flesh out the implementation of process_message_to_myself()?
Right now, ack to RF interfaces is not implemented....Let's come back to that.
One poosibility might be a 'CGI'-style call to a shell script. process_message_to_myself() could open a pipe to an external shell. We could add a config item to the element, so you could specify:
<interface>
serial-device {{kiss_tnc_device}} {{kiss_tnc_baudrate}} 8n1 KISS
callsign $mycall # callsign defaults to $mycall
tx-ok true # transmitter enable defaults to false
telem-to-is true # set to 'false' to disable
<on-message>/opt/my-extension/bin/handle-my-message</on-message>
</interface>
The output from the message handler could be sent back in messages to the original sender. We'd probably want a limit of four or five lines of output (don't want to flood the rf channel).
But then those messages would need to be checked for 'ack' and re-sent on the sliding retry delay until an ack was received. Ditto for the 'ack' to the original message. Is there already a periodic timer or heartbeat that we can tie into for the 'ack's and retries?
from aprx.
I would suggest having some security on this if you allow it to execute programs or scripts. Perhaps a one-time password scheme or something. I could definitely envision uses for that capability.
from aprx.
@dandrzejewski - The end goal of this is actually to be able to power-cycle a repeater over remote control (see aprs-remote-control), so yes, security is an absolute requirement. We're thinking of using signed messages similar to the description in https://github.com/richark/aretf/blob/master/ARETF-APRS-Authentication.txt, with a couple of differences. First, I'm not comfortable with having a shared private key, so we're looking at a dual-key system. Second, recent discussions on the APRS-SIG list surfaced a suggestion that the "user-defined" packet would be a better choice than shoe-horning the signature into a message packet, and wouldn't incur the 67-character length limitation, which seems to be based on fitting a line onto a DOS terminal screen.
@PhirePhly - Yeah, the more I look at it, it doesn't make sense to add this to APRX. What I'm currently pursuing is a standalone message handler that would share the device with APRX using a port sharer like utils-for-aprs. That way, APRX can do what it does best (IGating and Digipeating) and the remote control system can do its thing independently.
from aprx.
Related Issues (20)
- Feature Request: Compressed position format support HOT 6
- Try to connect modem makes segmentation fault
- Error when setting TX-OK FALSE on interface with telemetry and digipeater sections defined
- Beacon send by "exec" cmd doenst work after a while HOT 1
- New Release ? HOT 1
- possible buffer overflow? HOT 2
- ax25_to_tnc() is a little confused about tnc2buf length HOT 1
- potential bug: forgetting to check the return value of openssl API 'X509_STORE_CTX_get_current_cert'
- heartbeat-timeout < 30 seconds should not be allowed, or a serious warning should be shown
- APRXxx tocall is parsed as APRSmax HOT 3
- Software not building HOT 8
- make: "/root/aprx/Makefile" line 54: Missing dependency operator HOT 9
- Default config promotes N0CALL-1 connection to server HOT 2
- Possible string overflow
- APRX not gate courtesy position to RF after message HOT 5
- [2.9] viscous digi doesn't work correctly
- [2.9] Ambgious way how filters works
- RpiOS Lite 32 GCC 10.2.1-6+rpi1 unable to link HOT 2
- aprx does not compile HOT 2
- Limited area digipeater range filter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aprx.