/netAIS

Exchange AIS-like messages via the Internet in private group

Primary LanguagePHPOtherNOASSERTION

Русское описание

netAIS License: CC BY-NC-SA 4.0

v. 1.5

Exchange AIS-like messages via the Internet to watch position members of your private group. No need for a dedicated server with a real IP address.
Suitable for fishing, regatta and collective water recreation.

scheme
Software use TOR as a communication environment, so it works smoothly via mobile internet and public wi-fi. Spatial info gets from gpsd or Signal K.
netAIS messages can be accepted by any AIS-compatible device or software.

Features

  • Service one private group.
  • Membership in any number of groups.
  • English and Russian web interface.

Technical

Any of the software kits has a client and a server for one private group. The server must be configured as a TOR hidden service.
You must get .onion address of this hidden service in any way - by email, SMS or pigeon post, and configure the client with it.
The client calls to the server with spatial and other info in AIS-like format. Server return info about all of the group members.
This info puts to file and may be got asynchronously.
Info is a JSON encoded array with MMSI keys and an array of data as value. The data are key-value pair as described in gpsd/www/AIVDM.adoc (if you have gpsd) or e-Navigation Netherlands site, except:

  • The units of measurement are given in the human species
  • The timestamp is a Unix timestamp

The GaladrielMap chart plotter receives netAIS info directly from the file. For the others has a daemon that cast info as standard AIS flow.

Demo

~~Public group for testing:
2q6q4phwaduy4mly2mrujxlhpjg7el7z2b4u6s7spghylcd6bv3eqvyd.onion
All active group members are visible on ~~ GaladrielMap Live demo.
Unfortunately, the Oracle Inc. turned out to be a crook, so the demo does not work.

Compatibility

Linux.

Dependencies

php-curl

Install&configure:

You must have a web server under Linux with php support and TOR service.
Copy the project files to a web server directory and adjust paths in params.php.
Set write access to data/ and server/ directories for web server user (www-data?).
Configure TOR hidden service to server/ directory if you are going to support a corporate group. It's no need if you want to be a group member only.
Update params.php: place to $onion variable address you TOR hidden service. This address located in hostname file, as it described in torrs. (for example: # cat /var/lib/tor/hidden_service_netAIS/hostname)
Update params.php to address and port of AIS cast daemon, if need, in $netAISdHo and $netAISdPort variables.

Vehicle info

The information abou you vehicle stored in boatInfo.ini file. Fill it correctly.

Spatial info

Usually, netAIS client gets your positioning from gpsd instance on your server. How to install and configure gpsd see gpsd pages. Update params.php to gpsd host and port, if you want.
Another way gets spatial info is a Signal K infrastructure. netAIS client will try found the Signal K service on your local network, and get a position from it.
However, it is better to set the Signal K server address in params.php.

Usage

The netAIS data may be received as:

  • local file. This way uses GaladrielMap chart plotter. Full-featured, include user-defined status messages.
  • via gpsdPROXY. Easiest, recommended. Jast set _$netAISgpsdHost $netAISgpsdPort in _params.php_to gpsdPROXY. gpsdPROXY will return netAIS data as well. Full-featured too.
  • network socket with gpsd:// protocol. Available broadcast imo, vin, custom shiptype and custom status text.
  • network socket with the flow of AIS sentences 18,24 and 27. Suitable for OpenCPN, OruxMaps, Signal K and an iron chart plotters. Base features only.

Network socket serve by the separate daemon, disabled by default. Enable it in params.php and open the web interface.

Configure OpenCPN

Create a network connection as described in OpenCPN manual.
Specify Protocol as TCP. Specify Address and DataPort as in netAIS params.php.
netAIS

Configure OruxMaps

Click right 'more' optin in top menu.
Go to Global settings -> Sensors -> AIS (nautical)
Check Enable AIS, set GPS-AIS-NMEA source to IP.
Set AIS IP address as in netAIS params.php.
After this turn on the showing AIS targets:
Click 'tracks' option in top menu.
Select Sensors -> Start AIS

Configure Signal K

Jast add "Server -> Data Connections" with:
Data Type: NMEA0183
NMEA 0183 Source: TCP Client
Host: {Value of $netAISdHost from params.php, localhost by default}
Port: {Value of $netAISdPort from params.php, 3838 by default}

Web interface

screen
Web interface allows you to control:

  • Open/close your private group (server On/Off) - the first section of the screen.
  • Configure membership and start/stop watch on other groups - middle section.
  • Set your own status and the message to bring - bottom section. Do not forget to update the status at least as often as specified in the $selfStatusTimeOut parameter of params.php. If the status is not updated within the specified time, the netAIS will switch off.

Web interface optimised to mobile and/or e-Inc devices, old ones including.

Thanks

Support

Discussions

The forum will be more lively if you make a donation via PayPal at galadrielmap@gmail.com or at ЮMoney

Paid personal consulting