APRX

From OnnoWiki
Jump to navigation Jump to search

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.

APRS Rx-iGate properties

  • Connects with single callsignSSID to APRS-IS core network for all radio receiver ports attached on it, optionally can also identify all receiver ports with separate call-signs
  • Knows that following tokens in AX.25 address VIA fields are a reason for not relaying message to APRS-IS network:
    • RFONLY, NOGATE, TCPIP, TCPXX
  • Knows that following AX.25 source addresses are bogus, and packets with them are not to be relayed to APRS-IS network:
    • WIDE*, RELAY*, TRACE*, TCPIP, TCPXX, NOCALL, N0CALL
  • Does not relay any query messages ("?")
  • Opens all "3rd-party" messages to determine if any intermediate or the innermost addresses (and possibly data) are a reason for not relaying to APRS-IS.
  • Relays received APRS messages to APRS-IS network in network standard form

Simplest way to configure Rx-iGate is to define following on configuration:

mycall  OH2XYZ
<aprsis>
   server   rotate.aprs.net  14580
<aprsis>
<interface>
   serial-device /dev/ttyS0  19200  8n1    KISS
</interface>

APRS Tx-iGate properties

The Tx-iGate is implemented as a possible data source for a 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>

Digipeater properties

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

Pranala Menarik