Skip to content

Node-JS-Script und PHP-Seite zur Abfrage von AML-Daten durch Rettungsleitstellen in Deutschland

License

Notifications You must be signed in to change notification settings

voodoom/AML_Auswerter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AML-Decoder

Readme und PHP-Version am 22.10.2019 aktualisiert

Beschreibung

Mit dieser Anwendung können AML-Daten (Advanced Mobile Location) angefragt und verarbeitet werden. Zur Abfrage der Daten sind Zugangsdaten notwendig, die nur an 112-Leitstellen vergeben werden.

Für die Funktionalität der Software wird keinerlei Haftung übernommen. Auch für Schäden an Systemen Dritter wird keinerlei Haftung übernommen. Die Nutzung erfolgt ohne Zwang und auf eigene Gefahr.

Funktionsumfang

Dieses Repository besteht aus zwei Teilen:

A) Webseite zur Anzeige der AML-Daten

Über eine PHP-Webseite können AML-Daten für eine Telefonnummer abgefragt werden. Das Ergebnis wird in einer Karte im Browser dargestellt. AML über Webseite

B) System zur automatischen Abfrage der AML-Daten

Das automatische Abrufen der Daten erfolgt über eine Auswertung der Notrufnummer beim Klingeln und ist optional (also zusätzlich zur Variante A, die Variante B muss nicht genutzt werden). Danach erfolgt eine Weitergabe der AML-Positionsdaten (soforn vorhanden) an andere Systeme (z.B. das Kartenmodul des Einsatzleitsystems). Diese Version wurde bisher nur im Land Brandenburg erfolgreich umgesetzt. autmoatische Darstellung im Drittsystem

Installation & Konfiguration

  1. Installation eines Linux-Servers (Debian, Ubuntu etc.) (Windows ist theoretisch auch möglich, wurde aber nie getestet)
  2. Schaffen der Netz-Infrastruktur (IP-Verbindung, ggf. DMZ und Proxy)
  3. Installation der notwendigen Pakete
  • für Variante A (PHP-Webseite): Webserver installieren, z.B. Apache oder vergleichbar (z.B. Ngnix), prüfen ob notwendige Pakte zum Ausführen von Curl installiert sind (Curl für das Linux-System und für den Web-Server)
  • für Variante B (automatisches Abfragen, wird nicht zwingend benötigt) Installation von Node.js (Version 8 oder höher)
  1. Download des Quellcodes (Master)
  2. Entpacken der *.zip-Datei
  3. Die Konfigurations-Dateien anpassen und Datein verschieben
  • für Variante A (PHP-Webseite): config.php anpassen; aml.php und config/config.php in das Verzeichnis des Webservers kopieren
  • für Variante B (automatisches Abfragen): app_cfg.js anpassen
  1. Anwendung starten:

Häufige Fragen (FAQ)

Wie kann ich testen ob mein AML-Zugang funktioniert

Auf dem Server den Testbefehl der AML-Spezifikation ausführen (siehe Dokument der Leitstelle Freiburg -> Curl-Skript).

Wie kann ich das AML-Zertifikat in ein pem-Zertifikat umwandeln und dann aufteilen?

  1. Zertifkat umwandeln:

$ sudo openssl pkcs12 -in zertifikatsdatei_alt.p12 -out zertifikatsdatei_neu.pem -nodes

  1. Key aus Zertifikat erhalten:

$ sudo openssl pkey -in zertifikatsdatei_neu.pem -out zertifikatsdatei_neu-key.pem

Die PHP-Webseite zeigt nichts an, wass kann ich tun?

  1. Sind alle notwendigen Erweiterungen für den Webserver installiert?

PHP, Curl etc. (oftmals fehlt php-curl $sudo apt-get install php-curl)

  1. Was sagen die Log-Dateien?

Zunächst sollten Sie die PHP-Log-Dateien prüfen, bzw. aktivieren (siehe: Where are the apache and php log files?).

Unter Ubuntu finden sich die Log-Dateien unter /var/log/apache/access.log

  1. Sind die Zertifkate OK?

Sind die Zertifkate richtig umgewandelt? (siehe oben) Sind die Zertifkate durch den Webserver lesbar? Testweise kann die Berechtigung für das Zertifkat angepasst werden:

$ sudo chmod 777 zertifkat.pem

Wie gebe ich eine Telefonnummer in der Webseite ein?

Dies erfolgt aktuell über einen Paramater beim aufrufen der Webseite http://ip-das-servers:port/verzeichnis/aml.php?telefon=0123456789

Beispiel-Konfiguration der Webseite (PHP-Script -> config.php)

$curl_url = "https://aml-daten.irgendwas.com:1234/hilfe/daten?telefon="; // URL der AML-Adresse inkl. paramter zur Abfrage (siehe Spezifikation von Freiburg)

$curl_proxy = "192.168.1.80:80"; // IP:Port des Proxy-Servers, sofern vorhanden, sonst einfach leer lassen

$curl_port = 1234; // Port des AML-Servers (siehe Port in der o.g. URL)

$curl_sslcert = "/var/notrufdaten-zertifikat.pem"; // Speicherort des notwendigen Zertifkats

$curl_sslkey = "/var/notrufdaten-zertifikat-ssl.pem"; // Speicherort des notwendigen Zertifkats

$curl_sslkeypasswd = "1234567890"; // SSL-Passwort (wird vom AML-Betreiber mitgeteilt)

$curl_cainfo = "/etc/ssl/certs/ca-certificates.crt"; // lokales CA-Zertifikat des Linux-Systems

$curl_userpwd = "benutzer:passwort"; // Benutzer und Passwort für mit : getrennt

$tile_layer = "https://a.tile.openstreetmap.de/{z}/{x}/{y}.png"; // Eigener Tile-Server für Kartendarstellung

Beispiel des automatischen Abrufs (NodeJS)

[2019-08-02 17:00:10.678] [INFO]   UDP Server auf 0.0.0.0:1554 gestartet. PID: 12569
[2019-08-02 17:03:18.169] [LOG]    Notruf auf Kanal 4 erkannt. Rufnummer: 015123456789
[2019-08-02 17:03:19.880] [LOG]    Frage AML-Daten für Rufnummer 015123456789 nach 1 Sekunden ab.
[2019-08-02 17:03:20.433] [LOG]    Keine AML-Daten zur Nummer 015123456789 verfügbar.
[2019-08-02 17:03:24.895] [LOG]    Frage AML-Daten für Rufnummer 015123456789 nach 6 Sekunden ab.
[2019-08-02 17:03:25.303] [LOG]    AML-Daten zur Nummer 015123456789 vorhanden, übermittle Daten an das Einsatzleitsystem.
[2019-08-02 17:03:25.304] [LOG]    Position: 51.733152, 14.337873 (wifi)
[2019-08-02 17:03:25.304] [LOG]    Genauigkeit: 17.489
[2019-08-02 17:03:25.304] [LOG]    Geschwindigkeit: 5 m/s - Richtung: 192 Grad
[2019-08-02 17:03:25.304] [LOG]    ISSI: 1234567

Lizenz

About

Node-JS-Script und PHP-Seite zur Abfrage von AML-Daten durch Rettungsleitstellen in Deutschland

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 58.6%
  • CSS 24.6%
  • PHP 16.8%