PhirePhly / aprx

A highly configurable APRS I-gate/Digipeater Daemon
http://thelifeofkenneth.com/aprx/
BSD 3-Clause "New" or "Revised" License
154 stars 70 forks source link

APRX not gate courtesy position to RF after message #66

Open F4FXL opened 2 years ago

F4FXL commented 2 years ago

APRX does not pass posit packet when gating a message to RF. IGate rules state that along messages a courtesy posit shall also be agted to RF. When no t/pm source filters are specified, only message is gated to RF and the posit is dropped.

PhirePhly commented 2 years ago

Please provide a citation for the relevant RF-gate rule requiring this behavior and background on the amount of testing you've performed on this patch.

F4FXL commented 2 years ago

Hi,

As per http://www.aprs-is.net/IGateDetails.aspx a posit shall be gated to RF along the message.

Testing so far :

PhirePhly commented 2 years ago

I'm not thrilled with this patch, because if I'm reading it right, it will keep RF-gating position packets until the message drops out of the history db, so one message could trigger dozens of position packets, where I think the original intention is to gate only the next position packet.

I'm also dubious of how much value the position packet has for a message conversation, but I don't have a strong opinion against it.

F4FXL commented 2 years ago

Actually further testing has shown exactly the behavior you describe..... You are right about the original intention, only gate the next packet after the message. Ideally this shall be handled as some sort of state machine : whenever there is an outgoing message wait for a posit for a short amount of time (5 or 10 minutes) on the posit is sent, clear the message from the history. This all regardless of any source filtering.

F4FXL commented 2 years ago

Ok nevermind my previous comment, only one posit gets sent after the message... I had some test code locally creating the above behavior... However as soon as a filter is used (eg we use -p/F0 to block novice which are not allowed for APRS) the message posit no longer gets sent.... I think the logic shall move outside the the check of the presence of filters