freetakteam / freetakserver Goto Github PK
View Code? Open in Web Editor NEWSituational Awareness Server compatible with TAK clients
License: Eclipse Public License 2.0
Situational Awareness Server compatible with TAK clients
License: Eclipse Public License 2.0
There should be an option to Record None, Record until Disconnect, Record last X time, or Record all.
At two points it uses the const instead of the variable.
direct messages are transmitted to other users (check marti tag)
Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-106-generic x86_64)
I followed the new install instructions on the home page.
I noticed that "CreateLoggerController.py" is missing from /usr/local/lib/python3.6/dist-packages/FreeTAKServer/controllers
Is this CreateLoggerController.py required or should it be included?
manage FTS version, send to connected clients
Application fails to start do to [Errno -3] Temporary failure in name resolution. My DNS resolution (1.1.1.1) is functioning fine.
Running:
python3 /TAKlib/TAKfreeServer/server.py -p 8087
Output
Traceback (most recent call last):
File "/TAKlib/TAKfreeServer/server.py", line 350, in
ThreadedServer(host=const.IP, port=port).listen()
File "/TAKlib/TAKfreeServer/server.py", line 64, in init
self.sock.bind((self.host, self.port))
socket.gaierror: [Errno -3] Temporary failure in name resolution
<Element 'event' at 0x7f29ce4ded68>
uid is ANDROID-XXXXXXXXXXXX-ping
is ping
client disconnected now setting as disconnected
^CTraceback (most recent call last):
File "TAKFreeServer.py", line 199, in
ThreadedServer('',port_num).listen()
File "TAKFreeServer.py", line 40, in listen
client, address = self.sock.accept()
File "/usr/lib64/python3.6/socket.py", line 205, in accept
fd, addr = self._accept()
KeyboardInterrupt
Re-write the current connection handler to properly validate data before broadcasting it to other clients.
in some OS the execution path is not set by PIP
My understanding is that a mission is a set of COTS, packed together, describing a certain situation. the question is how is the mission created? In CIVTAK I found nothing, in WinTak I can create the envelope of it (name, description, keyworrds) , but I cannot not add COTS.
The README file states that FTS is Python3 software, however due to extensive use of f-strings (introduced in 3.6) it is incompatible with any Python3 version pre 3.6.
Currently, attempting to run the software in Python 3.4 fails ugly:
Traceback (most recent call last):
File "run.py", line 3, in <module>
import httpServer
File "/home/takserv/FreeTakServer-master/TAKfreeServer/httpServer.py", line 31
print(f"Creating directory at {const.LOGDIRECTORY}")
^
SyntaxError: invalid syntax
I suggest this should be indicated in the README, as well as checked and reported elegantly at runtime.
If there is more than one TAK device connected all the other devices connected after the first device will get a socket.timeout exception.
The device will eventually just reconnect and syncronize it's data so the server still does it's job.
when using send command in ExampleServer.py it fails with exception:
failed to send data [WinError 10022] An invalid argument was supplied
0.7 Alpha
0.8 BETA stabilize release:
0.9 RC1 stabilize release
1.0 first release (Aug 2020)
1.1 (Sept 2020)
1.2 (Oct 2020)
1.3 (Nov 2020)
1.4 (Jan 2020)
1.5 (Feb 2021)
1.6 (Mar 2021)
1.7 (Apr 2021)
1.8 (May 2021)
1.9 (Jun 2021)
1.9.9
2.0 (Mid 2022)
2.1 (TBD)
2.2 (TBD)
2.3 (TBD)
2.4 (TBD)
2.5 (TBD)
2.6
2.7
2.8
2.9
Future TAK Server (3.0+) (2023)
TAK devices creates an asynchronous connection on port 8080 where they send various http requests.
Upon opening a connection on the main socket it will send 2 HTTP/1.1 GET requests, one for the server version and one for the server config. It may also later be used for sharing mission packages.
Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-106-generic x86_64)
I followed the new install instructions on the home page.
Tried to starting with both commands below and received a couple different errors for each with ModuleNotFoundError: No module named 'ReceiveConnections
I checked /usr/local/lib/python3.6/dist-packages/FreeTAKServer/controllers
for ReceiveConnections.py and it is their.
#pip3 check FreeTakServer No broken requirements found.
#python3 -m FreeTAKServer.controllers.Orchestrator Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/local/lib/python3.6/dist-packages/FreeTAKServer/controllers/Orchestrator.py", line 11, in <module> from ReceiveConnections import ReceiveConnections ModuleNotFoundError: No module named 'ReceiveConnections'
and
#python3 -m FreeTAKServer.controllers.Orchestrator -CoTPort 8099 -CoTIP 192.168.2.65 -DataPort 9999 Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/local/lib/python3.6/dist-packages/FreeTAKServer/controllers/Orchestrator.py", line 11, in <module> from ReceiveConnections import ReceiveConnections ModuleNotFoundError: No module named 'ReceiveConnections'
TBD
-none
create functions to create, read, update and delete data packages in FTS
in 0.8 the CPU of an average server is 50% even whaen the server has zero connections
The IP address variable is defined at https://github.com/Tapawingo/FreeTakServer/blob/master/TAKfreeServer/constants.py#L15 is overloaded.
This is used both as the network component of the bind address (https://github.com/Tapawingo/FreeTakServer/blob/master/TAKfreeServer/httpServer.py#L255, https://github.com/Tapawingo/FreeTakServer/blob/master/TAKfreeServer/server.py#L58), and as the assumed external facing address to advertise (https://github.com/Tapawingo/FreeTakServer/blob/master/TAKfreeServer/httpServer.py#L147, https://github.com/Tapawingo/FreeTakServer/blob/master/TAKfreeServer/constants.py#L42).
If the externally accessible hostname or ip address is simplified it would enable running the server behind a proxy or within a docker container. Additionally it makes a bind address of 0.0.0.0 more feasible as the default.
send the server version to the ATAK clients
Create propper exception handling for TAK class
Disclaimer: I'm new here so I apologize if I've missed something. Please let me know if you need more information. Thanks!
When I try to run the Windows service (beginProgramAsService.py) I'm never prompted for an IP/port and I get the following error:
PS C:\Users\rcaud\Downloads\TAKfreeServerV0.6\TAKfreeServer\TAKWinService> python .\beginProgramAsService.py install
Traceback (most recent call last):
File ".\beginProgramAsService.py", line 17, in <module>
ThreadedServer()
File "C:\Users\rcaud\Downloads\TAKfreeServerV0.6\TAKfreeServer\server.py", line 56, in __init__
self.sock.bind((self.host, self.port))
socket.gaierror: [Errno 11001] getaddrinfo failed
PS C:\Users\rcaud\Downloads\TAKfreeServerV0.6\TAKfreeServer\TAKWinService>
PS C:\Users\rcaud\Downloads\TAKfreeServerV0.6\TAKfreeServer\TAKWinService> python --version
Python 3.8.2
PS C:\Users\rcaud\Downloads\TAKfreeServerV0.6\TAKfreeServer\TAKWinService> pip install pywin32
Requirement already satisfied: pywin32 in c:\users\rcaud\appdata\local\programs\python\python38-32\lib\site-packages (227)
https://github.com/Tapawingo/TAKlib/releases/download/V0.6/TAKfreeServerV0.6.zip
There should also be a script to convert to POSTGIS.
This would still be much faster than TAKServer, which uses POSTGIS natively, but provide near-full compatibility
Users do not disappear on TAKFreeServer even if they have been logged off or exited. This is on latest GIT version. And TAKFreeServer invoked with "-p port" command on Linux shell.
I can still see TAK users active (colored SPI) and last seen is still in seconds value even if they've been inactive for houre... Even if app is closed.
after approximately 45 minutes without any connected clients, the server will cease to transmit recieved messages to other connected clients though the server will continue to accept connections.
The TAKListener exposes an API to receive calls that are translated into proper COTS
Evaluating Flask for Rest API
see architecture
after closing the server, trying to restart provoke an error because the socket/port is still open.
Workaround: changing the port / killing the socket
The current documentation located at: ./wiki is too sparse and doesn't go in depth enough. It is also out of date with the current version of TAKlib and thus is missing the new functions.
It's done using the data package function? all the communication we are aware of, until now, works over XML . Do you have an example of a message containing data (e.g. pictures?), it's embedded in the XML?
I wonder how they are wrapped in a COT message. Until now all the communication that I have seen is within a XML structure. XML has the ability to handle Binaries, however we need an example of a log.
The ZIP files are dropped in the /atak/tools/datapackage folder.
if the all clients disconnect the server will stop functioning properly.
Currently the library has extremly bad security, there is no authentication or validation of senders nor received packages. This is extremly bad as it would allow a malicious party to send malicous data to the server and have it broadcast to all connected clients.
When trying to sync a local device with a remote device it fails. As of now it's unknown what's causing this.
4G --> 4G fails
Local (behind firewall) --> 4G fails
Local (behind firewall) <-- 4G fails
Local (behind firewall) --> Local (behind firewall) succeeds
datapackages are not working as expected in 0.8.
Planning to revert to database table containing user information
Emergency Beacon / 911 on a server, and it can be disabled by the user and instantaneously reflects to other server users. But behaves differently on FreeTAKServer. Could be 'hanging' when processed through TAKFreeServer. SPI's also has a delay when moving it live. Maybe because of the same reason.
-bash-4.2$ python3 TAKDaemon.py
Traceback (most recent call last):
File "TAKDaemon.py", line 21, in
const = constant.vars()
AttributeError: module 'constant' has no attribute 'vars'
Currently getting the error 'TypeError: an integer is required (got type NoneType)' when running command:
python3 server.py
Full read out -
Traceback (most recent call last)
File "server.py", line 350, in < module >
ThreadedServer (host=const.ip, port=port)).listen()
File "server.py", line 64, in _ init _
self.sock.bind((self.host, self.port))
TypeError: an integer is required (got type NoneType)
Any suggestions on what I need to do to rectify this? Cheers
route sharing is currently not working
I'm a python developer where can I get the ATAK.apk to start testing?
after a non-determined amount of time the server becomes non-responsive.
Possibly the socket that is linked to the thread is not being closed properly
Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-99-generic x86_64)
running:
root@#####:/TAKlib/TAKfreeServer/TAKLinuxService# python3 beginServerFromLinux.py -p 8087
output:
nohup: appending output to 'nohup.out'
No process ever starts. Am I missing something? I tried with and without port switch "-p" with and got the same results.
This works good though.. python3 /TAKlib/TAKfreeServer/server.py -p 8087
When sending a route through FTS via "Send" it does not appear on receiving EUD (End User Device).
Version: FTS 0.6
After recent pull I now get No such file or directory: '/logs/FTS_debug.log'. The new folder needs to be added to the repo or the application fails to start.
Ruining:
python3 /TAKlib/TAKfreeServer/server.py -p 8087
Output:
Traceback (most recent call last):
File "/TAKlib/TAKfreeServer/server.py", line 47, in
logger.addHandler(newHandler(const.DEBUGLOG, logging.DEBUG, log_format))
File "/TAKlib/TAKfreeServer/server.py", line 37, in newHandler
backupCount=const.BACKUPCOUNT
File "/usr/lib/python3.6/logging/handlers.py", line 150, in init
BaseRotatingHandler.init(self, filename, mode, encoding, delay)
File "/usr/lib/python3.6/logging/handlers.py", line 57, in init
logging.FileHandler.init(self, filename, mode, encoding, delay)
File "/usr/lib/python3.6/logging/init.py", line 1032, in init
StreamHandler.init(self, self._open())
File "/usr/lib/python3.6/logging/init.py", line 1061, in _open
return open(self.baseFilename, self.mode, encoding=self.encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/logs/FTS_debug.log'
WARNING:2020-05-06 01:51:11,215:error in connection setup: unable to open database file
Permissions are appropriate to the user running. Also tried chmod 777 all files, same outcome.
However, running as root. Works as expected.
Some end-users (like myself) are uncomfortable running daemons as root.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.