Hello. I'm trying to limit the amount of unnecessary digipeating in my area, and I've got my transmissions down quite a bit, but am still working on fine tuning my setup. I have one packet in particular for this post, but I have some questions pertaining to other types as well, and best practices.
First - here's my log entry for what was sent out:
2013-09-18 16:36:20.014 KC9UOQ-2 T KC9UOQ-2>APRS,WIDE1-1:}WF5X-12>APWW10,TCPIP,KC9UOQ-2*:>181636zNo op present, try WF5X instead
That station is over 150 miles away, but I don't believe that packet has any location data, so I can't block by that. Here's my debug captured during that packet:
.. igate from aprsis
interface_receive_3rdparty() aif=0x31884, aif->digicount=1
pbuf_alloc(55,54) -> 0xb6ef48d4
.. parse_aprs() rc=OK type=0x8100 srcif=APRSIS tnc2addr='WF5X-12>APWW10:>181636zNo op present, try WF5X instead' info_start='>181636zNo op present, try WF5X instead'
pbuf_free(0xb6ef48d4)
## produce 3rd-party frame for transmit:
ax25hdr 82 a0 a4 a6 40 40 60 96|86 72 aa 9e a2 64 ae 92|88 8a 62 40 03 = APRS 0K|C9UOQ2WI|DE1 .
tnc2addr = KC9UOQ-2>APRX27,WIDE1-1
pbuf_alloc(94,95) -> 0xb6ef48d4
.. parse_aprs() rc=OK type=0x100 srcif=APRSIS tnc2addr='KC9UOQ-2>APRX27,WIDE1-1:}WF5X-12>APWW10,TCPIP,KC9UOQ-2*:>181636zNo op present, try WF5X instead' info_start='}WF5X-12>APWW10,TCPIP,KC9UOQ-2*:>181636zNo op present, try WF5X instead'
## process source filter
.. other not interested
historydb_insert_heard(APRSIS) v=(nil)
filter_process_one() type=r '-r/41.04/-85.13/-50'
filter_process_one() type=t 't/poimsnw'
filter says: 1 (accept)
filters say: send!
historydb_lookup(WF5X-12) -> i=50 .. no match
.. other not interested
historydb_insert_heard(APRSIS) v=(nil)
Send to digipeater
digipeater_receive() from APRSIS, is_aprs=1 viscous_delay=5
1379522175 ENTER VISCOUS QUEUE: len=1 pbuf=0xb6ef48d4
So, it passes both of my filters (1 for range, and 1 for type), and gets digipeated. But, its 150 miles away, and is irrelevant to HAMs in my area. So, given this packet data, how do I block this packet (and packets like it) from being gated out of my station? I don't want to blindly put in rules for W1*, W2*, W3*, etc for calling stations that aren't normally in my area, because that's a disservice to them when they are passing through.
Here's my relevant source blocks:
<aprsis>
filter "-r/41.04/-85.13/-50"
filter "-t/t"
</aprsis>
<digipeater>
transmitter $mycall
ratelimit 60 120
srcratelimit 4 8
<trace>
maxreq 3
maxdone 3
keys TRACE,WIDE
</trace>
<wide>
maxreq 3
maxdone 3
keys TRACE,WIDE
</wide>
<source>
source $mycall
relay-type digipeated
regex-filter data "W8FY-"
regex-filter data "N9WNH-3"
regex-filter via "N9WNH-3"
regex-filter source "N9WNH-3"
filter "-t/tow"
filter "-r/41.04/-85.13/-50"
filter "t/pimqsun"
</source>
<source>
source APRSIS
via-path WIDE1-1
msg-path WIDE1-1
relay-type third-party
viscous-delay 5
regex-filter data "W8FY-"
regex-filter data "N9WNH"
filter "-r/41.04/-85.13/-50"
filter "t/poimsnw"
</source>
</digipeater>
The other problem I'm having, is that my regex-filters aren't working. I still digipeat packets from N9WNH that are heard via RF. There are servera other digis that are "misbehaving" in my area, and I'd like to not digipeat them as well.
Thanks for any help,
TI