APRX
aprx pada awalnya merupakan aplikasi APRS iGate received only, saat ini sudah di kembangkan untuk mampu melakukan digipeating, dan Tx-iGate. aprx dapat di operasikan di sistem minimal UNIX-like, atau yang mendukung library POSIX libc dasar.
Saat ini juga tersedia beberapa paket binary untuk lingkungan Fedora dan Debian. Platform lain juga dapat digunakan karena aprx dapat dengan mudah di compile. aprx sudah di test di compile di sistem keluarga BSD.
Aplikasi ini dapat di install di sistem UNIX-like, beberapa file konfigurasinya perlu di atur. Jika ini dilakukan maka aprx dapat:
- Menangani banyak modem radio yang tersambung padanya.
- Optional: me-relay paket APRS dari penerima radio ke jaringan APRS-IS (http://www.aprs-is.net).
- Optional: digipeat paket AX.25 dengan dan tanpa aturan APRS NEWn-N
- Optional: relay paket APRS dari network APRS-IS ke kanal radio (Tx-iGate)
Aplikasi ini dapat digunakan di lingkungan dengan sumber daya yang terbatas, seperti mesin embeded yang kecil seperti router yang mampu melakukan jaringan TCP/IP.
Untuk mengoperasikan receive-only Rx-iGate tidak membutuhkan lisensi apapun. Operator RX-iGate tidak perlu ujian ORARI.
Pada versi 2, Aprx mempunyai kemampuan untuk APRS Digipeater, Aprx Tx-iGate, termasuk variasi yang disebut Viscous APRS Digipeater, yang merupakan pilihan terbaik untuk Fill-In digipeater seperti di mobile station. Viscousness berarti dia akan mendengarkan sampai yang lain mengcopy paket yang sama untuk beberapa detik, dan jika dia mendengar paket tersebut hanya satu kali, maka dia akan melakukan digipeating paket tersebut.
Distribusi
Software dapat di ambil di:
http://ham.zmailer.org/oh2mqk/aprx/
Manual software tersebut dapat di ambil di:
http://ham.zmailer.org/oh2mqk/aprx/aprx-manual.pdf
Fitur
Awalnya aplikasi ini dibuat untuk jaringan penerima yang menyalurkan / memberikan paket ke jaringan APRS-IS, dan aplikasi ini hanya melakukan hal yang di perlukan untuk receive-only APRS iGate. Versi yang baru juga dapat melakukan stand-alone Digipeat dari paket APRS termasuk digipeat dan Rx-/Tx-iGate.
Kriteria disain dasar yang digunakan adalah minimum technology, dimana aplikasi tidak perlu software external atau tambahan library untuk bisa berfungsi dengan baik. Akan tetapi, dengan bertambahnya teknologi yang tersedia, beberapa mulai digunakan (seperti Linux kernel AX.25 network, POSIX Threads, dll.)
Hal ini juga meminimalkan kebutuhan sumber daya sistem, dimana dalam hal APRS iGate dibutuhkan kemampuan untuk jaringan, yang harus dapat dilakukan di mesin yang kecil, seperti Linux dengan RAM 8MB. Di samping itu, software harus dapat berfungsi dengan sistem minimal yang compliant dengan sistem POSIX.
Objektif utama yang juga harus dicapai adalah harus dapat menjamin agar penggunaan memory R/W sekecil mungkin, di mesin i386 dengan sebuah port radio iGate + digipeater akan membutuhkan alokasi hanya 250 kB R/W memory. Dari jumlah tersebut, 100 kB secara langsung digunakan oleh Aprx. Selebihnya digunakan oleh glibc.
Untuk Rx-iGate dapat menggunakan minimal konfigurasi dengan bagian yang dapat diubah di beri highlight:
mycall OH2XYZ <aprsis> server rotate.aprs.net 14580 <aprsis> <interface> serial-device /dev/ttyS0 19200 8n1 KISS </interface>
For a stand-alone APRS Digipeater the configuration would be:
mycall OH2XYZ <interface> serial-device /dev/ttyS0 19200 8n1 KISS </interface> <digipeater> transmitter $mycall <source> source $mycall </source> </digipeater>
Sebuah stand-alone Digipeater dapat dibuat menjadi Digi + Rx-iGate dengan menambahkan blok <aprsis> pada konfigurasi tersebut.
Karena aplikasi ini harus dapat beroperasi dalam sistem dengan memory terbatas, pembuat software menggunakan installer yang sangat sederhana dengan editor sederhana seperti nano.
Sistem Operasi
Dapat beroperasi di:
- Linux (Fedora, RedHat, SuSE, Debian) (--with-pthreads)
- Embedded Linux (NSLU2, dengan opsi waktu compile: --with-embedded, OpenWrt --with-embedded)
- Apple OSX
"Seharusnya Jalan":
- uCLinux (--with-pthreads --with-embedded)
- FreeBSD/NetBSD/OpenBSD
- Solaris / OpenSolaris
- HP-UX
- Windows+CygWin
(dengan kata lain: semua sistem yang comply ke POSIX harusnya bisa jalan)
Tidak ada paket instalasi yang terintegrasi untuk semua sistem, tapi anda dapat membuat sendiri dengan mudah.
sambungan Radio Modem
aprx mendengarkan ke radio modem yang berbicara menggunakan protokol KISS pada sistem yang tersambung pada port serial. Modem tersebut juga dapat berbicara menggunakan format TNC2 monitor:
- Mendukung jumlah serial port yang tidak terbatas pada satu buah mesin.
- Dapat bekerja dengan port serial USB.
- Dapat bekerja dengan serial port pada server remote, selama mereka tersambung ke layanan "TCP STREAM" yang di inisialisasi oleh server yang menjalankan program Aprx (seperti Cisco router AUX port)
Juga mendukung protokol AX.25 di mesin, jika ada (biasanya di mesin Linux) dan modem radio yang tersambung padanya.
Kemampuan APRS Rx-iGate
- Tersambung dengan satu callsignSSID ke APRS-IS core network untuk semua radio receiver yang tersambung. Pilihan lain, dapat mengidentifikasi semua port receiver dengan callsign yang berbeda.
- Mengetahui bahwa callsign / token berikut di alamat VIA di AX.25 tidak perlu di relay ke jaringan APRS-IS:
- RFONLY, NOGATE, TCPIP, TCPXX
- Mengetahui bahwa alamat sumber AX.25 berikut adalah bohong-bohongan, dan paket dengan alamat tersebut tidak di relay ke jaringan APRS-IS:
- WIDE*, RELAY*, TRACE*, TCPIP, TCPXX, NOCALL, N0CALL
- Jangan me-relay message query ("?")
- Terbuka untuk semua "3rd-party" message untuk mengetahui jika address antara atau paling awal (juga mungkin data) ada alasan untuk tidak me-relay ke APRS-IS.
- Relay APRS message yang di terima ke jaringan APRS-IS dalam format standard.
Cara paling sederhana untuk mengkonfigurasi Rx-iGate adalah dengan menentukan konfigurasi berikut:
mycall OH2XYZ <aprsis> server rotate.aprs.net 14580 <aprsis> <interface> serial-device /dev/ttyS0 19200 8n1 KISS </interface>
Kemampuan APRS Tx-iGate
Tx-iGate di implementasikan sebagai sumber data yang mungkin untuk digipeater transmitter.
The APRS Tx-iGate:
- Follows basic APRS Tx-iGate rules as defined at http://www.aprs-is.net/IGateDetails.aspx
- Can use a comprehensive set of filter rules that look into message context to determine if the packet in question should or should not be gated from APRS-IS to RF
Adding APRS Tx-iGate on Aprx configuration is a matter of adding suitable <source> block on digipeater configuration:
<aprsis> server rotate.aprs.net 14580 #filter b/a0good # Tx-iGate everything always from this call </aprsis> <digipeater> transmitter $mycall # radio port <source> source $mycall # radio port </source> <source> source APRSIS relay-mode 3rd-party viscous-delay 5 #filter b/a0good # Tx-iGate everything always from this call #filter -b/aa0bad # Tx-iGate never anything from this call </source> </digipeater>
Kemampuan Digipeater
The digipeater functionality handles standard AX.25 1.x/2.0 digipeating with additional specialities for APRS. This permits the digipeater to pass along other traffic in addition to APRS, like TCPIP, AX.25 CONS, etc.
For APRS messages
- Does standard duplicate detection on APRS messages (with timing window of 30 seconds)
- Does standard "New-N-paradigm" processing of "WIDEn-N" and "TRACEn-N" tokens.
- Accounts the number of all digipeat requests over all fields, when doing analysis of "are there too many hops requested or done?"
- Does not accept requests like: "WIDE3-6", where SSID field stored value is larger than the one immediately following the keyword.
By default the system treats WIDE as TRACE, and inserts digipeater's transmitter identity on each packet it sends out. It can be configured to "classical WIDE", as well as adding other keywords that are treated as WIDE or TRACE.
Complex properties
This software has some unique complex capabilities:
Serial ports
- The serial ports can be physical D9/D25 ports on machine, or perhaps USB ports, as long as they offer standard POSIX serial port semantics along with a "device" to be opened: /dev/ttyUSB02
- The serial ports can be elsewhere on the internet, as long as they are reachable with TCP STREAM without any sort of encapsulation protocols (like without TELNET escapes)
- There can in principle be unlimited number of serial ports, each need around 30 kB of memory.
- The serial ports can speak a few variations of the KISS protocol, including SMACK (recommended to be used, where available)
- The serial ports can also receive TNC2 monitor format, but that is only for Rx-iGate use, not for digipeater, nor for transmit.
On Linux systems the system does also understand machine internal AX.25 network, and radios attached on it.
Optionally multiple callsignSSIDs
System defaults all call-signs to be what "MYCALL" configuration entry sets, however to refer on multiple interfaces in like <digipeater> definitions, they each will need unique call-signs. Those call-signs need not to be strictly AX.25 conformant if they have no transmitters, in particular the SSID part can be any one or two character upper-case alphanumeric string. (The call-signs are converted to upper-case if they are entered lower-case or mixed-case.)
Measuring radio channel occupancy
There are lots of rumours about APRS radio channel occupancy, but very little measured hard facts. To help on this issue, the Aprx-program has a radio channel occupancy measurement estimator calculating the number of received bytes from radio and making some fuzzy guesses on how much more time transmitters did spend on channel before and after each packet.
The Aprx-program will also send telemetry packets about each receiver which can then be graphed at APRS-IS, like happens with http://aprs.fi/telemetry/OH2RDK-5?range=week
With digipeater enabled, this telemetry shows also number of transmitted packets.
Radio port telemetry
By default the system is telemetering all radio ports to APRS-IS, through which each port behaviour can be viewed via telemetry browsing service as http://aprs.fi/
Optionally for installations used as pure digipeater without internet connection to APRS-IS, the telemetry data can also be sent over radio port:
<telemetry> transmitter $mycall via TRACE1-1 source $mycall </telemetry>
See details in aprx-manual.pdf
Multiple Digipeaters
When an Aprx server node has multiple transmitters associated on it, each that is wanted to digipeat out something will need a digipeater definition, and they act individually!
One can use this to build:
- Cross-band / cross-channel digipeater
- Digipeater with diversity receivers
- Digipeater with distributed receiver network (interconnected preferably using other means than by the radio)
Viscous Digipeater
Special function mode is called "viscous digipeater", which puts received APRS packets on a short term delay storage (configurable from 1 to 9 seconds, 5 is usually a good value to use), and it counts all instances of that same packet heard from from radio. If the count at the end of this viscous delay is just 1, then that packet is digipeated.
See Viscous APRS Digipeater for an illustrative transmission monitoring graphs of normal digipeater vs. viscous digipeater.
Installation
Usually the freshest pre-compiled binary packages have been made for a Debian Etch (4.0) series i386 systems, and they work on most of newer Debian derivative systems, like Ubuntus.
# dpkg -i aprx_1.99.382-1_i386.deb
The default installation package will place /etc/aprx.conf
and all other necessary startup files and scripts into the system, however the defaults are such that the system will not start with them automatically.
You will need to do:
- Use the
aprx-manual.pdf
to guide you to edit the/etc/aprx.conf
file - Edit also file
/etc/default/aprx
Then the program will start and stop with commands:
# /etc/init.d/aprx start # /etc/init.d/aprx stop
At Debian, doing the installation does often mean that system asks you essentially: "May I overwrite configuration files?" There you will always reply "N", unless you want to do all configuration work all over again.
Konfigurasi
Untuk contoh-contoh di file aprx-manual.pdf
.
Jika kita sudah mengedit konfigurasi agar sesuai dengan tempat kita beroperasi, coba jalankan dengan menggunakan perintah:
# aprx -d -f /etc/aprx.conf
(untuk mematikan dapat menggunakan tombol Control-C)
Jika tidak ada teks "ERROR:" , maka paling tidak dia telah secara aman membaca file konfigurasinya.
Mematikan program yang sebelumnya sudah jalan:
# /etc/init.d/aprx stop
Menyalankan dari nol:
# /etc/init.d/aprx start
Referensi
- http://ham.zmailer.org/oh2mqk/aprx/
- http://wiki.ham.fi/Aprx.en
- http://sun3.org/archives/563
- http://dp.nonoo.hu/about/my-aprs-stuff/ - APRX iGATE soundmodem
- http://yd0nxx.wordpress.com