<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>The next upcoming build of YAAC ("Yet Another APRS Client") will also support mDNS service discovery for KISS-over-TCP TNCs, including the new DireWolf version.<br><br>-------- Original message --------<br>From: Heikki Hannikainen <hessu@hes.iki.fi> <br>Date: 1/26/21  02:47  (GMT-05:00) <br>To: TAPR APRS Mailing List <aprssig@lists.tapr.org> <br>Subject: [aprssig] mDNS DNS-SD service discovery of KISS TNCs on TCP ports <br><br><br>Hi,<br><br>Introductory video: Here's how you can attach the aprs.fi iPhone app to a <br>Dire Wolf 1.7 (not released yet) that's running on a Linux or Mac computer <br>somewhere on the same wifi/lan segment:<br><br>https://twitter.com/aprsfi/status/1343652123452575744<br><br>Note: no IP addresses or TCP port numbers involved. Pick from list and it <br>works. This is how it should happen in 2021. Ok, maybe a little <br>authentication would be good too!<br><br>Many devices and pieces of software support KISS TNCs on TCP ports without <br>authentication.  Connect to a TCP port, send/receive KISS encapsulated <br>AX.25 frames, and it just works.  Dire Wolf has it, the Microsat WX3in1 <br>has some level of support, aprx igate can connect to these.  If you have a <br>classic KISS TNC on a serial port of Linux device, you can run ser2net on <br>a Raspberry Pi to expose it on a TCP port.<br><br>Many users of my aprs.fi iPhone/iPad app wanted to use these. But I <br>personally have started to hate looking for IP addresses and ports, <br>especially on while on the road with a wifi access point and dynamic IPs <br>which didn't stay the same over a reboot of the system.  And I suspect <br>many others feel the same: the processes of interconnecting ham software <br>(wsjt-x, fldigi, logging programs, etc) are unnecessary complicated.<br><br>It turns out it's quite easy to implement automatic service discovery <br>these days, thanks to good operating system and library support. DNS-SD, <br>defined in RFC 6763, is the protocol used by iPhones and Androids, Windows <br>and Mac computers alike, to locate printers and televisions and other <br>common household items, on local networks. So I just went and did this, <br>DNS-SD, for KISS TNCs on TCP ports.<br><br>Version 2.2.0 of my aprs.fi iOS app, which got released yesterday, <br>supports KISS over TCP/IP with mDNS DNS-SD. I also implemented the server <br>side for this on Linux and Mac and submitted it to Dire Wolf as a pull <br>request. WB2OSZ has kindly merged it in the dev branch and it will come <br>out in the next release, version 1.7: <br>https://github.com/wb2osz/direwolf/pull/307<br><br>Note that I didn't do a Windows implementation, as I don't have a windows <br>development environment and haven't done windows development since 1996 or <br>so. But it shouldn't be too hard to do on Windows 10.<br><br>Here's a second video, with a little demo of the initial iGate <br>implementation:<br><br>https://twitter.com/aprsfi/status/1352653897769357312<br><br>Here's a specification proposal, with debugging and testing commands:<br><br>https://github.com/hessu/aprs-specs/blob/master/TCP-KISS-DNS-SD.md<br><br>On Linux you can also configure avahi to announce a port like this by <br>simply placing a file in /etc/avahi/services (see "man avahi.service"). <br>One device can also do a proxy announcement on behalf of another device on <br>the same segment, if that other device is not yet capable of DNS-SD.<br><br>I'd like to ask appliance/hardware/software vendors with KISS TCP support <br>to implement DNS-SD. It's quite easy, just find and use a library that <br>works in your environment. Your customers will love it. It's usually not <br>many lines of code, just look at this MacOS implementation: <br>https://github.com/wb2osz/direwolf/blob/dev/src/dns_sd_macos.c<br><br>Aprsdroid has support for it planned, too:<br>https://twitter.com/karrots/status/1344000609519771648<br><br>   - Hessu, OH7LZB/AF5QT<br><br><br>_______________________________________________<br>aprssig mailing list<br>aprssig@lists.tapr.org<br>http://lists.tapr.org/mailman/listinfo/aprssig_lists.tapr.org<br></body></html>