Bedienungsanleitung zum Einrichten eines IP Telefons

Sie brauchen folgendes IP Telefon :

http://www.grandstream.com/products/ip-voice-telephony-gxp-series-ip-phones/gxp-series-basic-ip-phones/product/gxp1610/gxp1615

- Diese Software geht wohl auch mit anderen Telefonen und Kombinationen von anderen Sorten. Aber das wurde noch nicht getestet. Deswegen kaufen sie mindestens zwei davon und schenken sie den zweiten an die Person die sie anrufen möchten.

Danach brauchen sie mindestens einen Raspberry Pi :

https://www.raspberrypi.com/products/raspberry-pi-3-model-b/

- Dieses billige Gerät wird ständig an sein und verbraucht wenig Strom. Sie können auch andere Kisten ständig an haben die leuchten und völlig überdimensioniert sind für diesen Zweck. Wichtig ist ständig an, Ethernet Port, Verbindung zum Internet und Linux laufen.

- EIN RASPBERRY PI BRAUCHT SEIN EIGENES LADEGERÄT UND NICHT IRGENDEINS ! NICHT VERSUCHEN MIT DEM HANDY LADEGERÄT :

https://www.raspberrypi.com/products/raspberry-pi-universal-power-supply/

Auch ein Alu Gehäuse für den Raspi 3B weil es gut ist :

https://joy-it.net/en/products/RB-StromPI2-CaseSi

Dann eine Micro-SD Karte damit der Raspi 3B booten kann :

https://www.intenso.de/en/products/memory-cards/microsd-card-class-10

- 16 Gb ist gut, NICHT 32 GB ODER MEHR, das hat mit kompatibilitäten und etc pp zu tun.

 

Sie benutzen Windows, erstmal sollen sie ihren Rechner, Laptop mit Linux booten lassen.

Dafür brauchen sie ein usb stick mit etwa 4 Gb, dafür folgende Schritte machen :

https://www.computerbild.de/artikel/cb-Tipps-Software-Linux-Boot-Stick-erstellen-so-bereiten-Sie-ihn-vor-31571165.html

jetzt besitzen sie einen usb stick mit linux-mint drauf sie können jetzt ihre kiste anmachen und wild auf F2, F8 und F12, oder F10 beliebig und wiederholt drücken. Mit glück gelangen sie dann ins BIOS, dann unter :

"BOOT"

Den jeweiligen USB Port als erstes auswählen.

Dann :

"save & exit"

- bei manchen Kisten gelangen sie nicht ins BOOT menu sondern ins uefi menu oder was anderes.

Jetzt sollte ihre Kiste von neu starten und nicht mit Windows sondern mit Linux Mint.

Ihre Kiste bootet gerade aus dem usb stick, wenn sie einen Maus Zeiger sehen drücken sie STRG+ALT+T, und ein Terminal öffnet sich in den Vordergrund.

(Es wird angenommen, dass Sie Internet zugriff haben, unten rechts klicken WLAN auswählen etc...)

Jetzt braucht der Raspi einen Betriebssystem, gibts, kostenlos. Copy paste davon in dem Terminal :

wget https://cdimage.ubuntu.com/ubuntu/releases/20.04/release/ubuntu-20.04.4-preinstalled-server-arm64+raspi.img.xz

wenn der Download fertig ist, mit Maus finden und dann "hier entpacken", oder "extract here". Nachdem es entpackt ist zurück zum Terminal, "ls -Al" schreiben und enter, und es sollte aufgelistet sein :

3487742976 ubuntu-20.04.4-preinstalled-server-arm64+raspi.img

Micro Sd mit Adapter in die Kiste rein. Dann "lsblk" schreiben und enter, das sollte alle Partitionen vom Rechner zeigen, wo das erste "mmbclk(sowas)" von oben, die Micro SD Karte ist.

jetzt schreiben Sie :

sudo dd if=ubuntu-20.04.4-preinstalled-server-arm64+raspi.img of=/dev/"mmbclk(sowas)"

Wenn das fertig ist, können Sie den Raspi als ubuntu server nutzen.

Die micro Sd Karte in den Raspi reinstecken, und danach an den Strom anstecken. Nach ein bischen sollten lichter Leuchten.

Beim Rechner unten rechts, auf dem WLAN Symbol klicken, dann "Network Connections" dann auf "+", dann "Ethernet" auswählen. Dann "create", dann im Tab "IPv4 Settings", anstatt "Automatic (DHCP)", "shared to other computers" auswählen. Save!

Danach den Rechner per Ethernet Kabel an den Raspi anschließen. Der Linux Rechner soll jetzt per DHCP den Raspi eine IP-Addresse geben.

jetzt zurück zum Terminal, "arp -a" schreiben und enter, das sollte die IP-addresse vom Raspi geben. Etwas so wie 10.42.0.bla, man kann die verbindung testen mit : "ping 10.42.0.bla" das sollte jede sekunde ein led leuchten lassen am ethernet port vom Raspi.

Danach per ssh in den Raspi rein : "ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!" (bla ist eine Zahl).

Der Raspi hat ein standard passwort und das ist: "ubuntu" schreiben und enter.

Neuen passwort schreiben und enter.

Neuen passwort schreiben und enter.

jetzt wieder einloggen "ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!".

Neuen passwort schreiben und enter.

Jetzt im Terminal vom Rechner erscheint der Terminal vom Raspi, es sollte etwa so aussehen :

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1059-raspi aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Jetzt wenigstens "apt-get update" schreiben und enter.

Danach braucht der Raspi WLAN, "cd /etc/netplan/" schreiben und enter.

"sudo nano $(ls)" schreiben und enter (das sollte klappen weil dieses Verzeichnis nur eine Datei hat).

Die datei sollte EXACT so aussehen, heisst auf Leerzeichen achten beim Anfang der Zeilen :

----------------------------------------------------------------------------------------------------------------------------------------

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eth0:
            dhcp4: no
            addresses: [172.(16-28).(0-255).((2-3), (5-6), (9-10),... (253-254))/30]
            optional: true
    version: 2
    wifis:
        wlan0:
            optional: true
            access-points:
                "WLAN-NETZ-NAME HIER EINGEBEN OHNE LEERZEICHEN":
                    password: "WLAN PASSWORT HIER EINGEBEN OHNE LEERZEICHEN"
            dhcp4: true
-------------------------------------------------------------------------------------------------------------------------------------------

1)

"WLAN-NETZ-NAME HIER EINGEBEN OHNE LEERZEICHEN"

soll auch so sein, die " " bleiben !

2)

"WLAN PASSWORT HIER EINGEBEN OHNE LEERZEICHEN"

soll auch so sein, die " " bleiben !

3)

[172.(16-28).(0-255).((1-2), (5-6), (9-10),... (253-254))/30]

soll auch so sein, die [ ] bleiben !

also zum Beispiel :

[172.16.0.2/30]

oder

[172.28.255.254/30]

.

Nachdem diese Datei editiert ist, "STRG+X" drücken, und enter, und enter.

Danach

 

"sudo reboot" schreiben und enter.

Der Raspi startet von neu aus.

jetzt wieder einloggen "ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!".

"ifconfig wlp3s0 | grep inet" schreiben und enter. Das sollte die Wlan addresse vom Raspi geben.

ausloggen : STRG+D

Danach wieder einloggen, "ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!".

Jetzt soll die Möglichkeit aktiviert werden ein Startup Skript laufen zu lassen durch "rc.local"

"sudo nano /etc/systemd/system/rc-local.service" schreiben und enter.

dann folgendes in die Datei reinpasten :

-----------------------------------------------------------------------------------------------------------------------------------------------------

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target

-----------------------------------------------------------------------------------------------------------------------------------------------------

Dann :

Strg+X, Y, Enter !

dann :

"sudo systemctl enable rc-local" schreiben und enter.

Dann :

"sudo reboot" schreiben und enter.

Der Raspi startet von neu aus.

Danach wieder einloggen, "ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!".

"sudo systemctl status rc-local" schreiben und enter. Das sollte folgendes in etwa zeigen :

Active: active (running)

-----------------------------------------------------------------------------------------------------------------------------------------------------

Danach um die voider_2 software zu installieren :

wget https://github.com/slave-blocker/voider_2/archive/refs/heads/main.zip

unzip https://github.com/slave-blocker/voider_2/archive/refs/heads/main.zip

cd voider_2-main/voider_2/

"./install.sh" schreiben und enter.

Die OpenVPN Verbindung die entsteht ist von Pi VPN, einfach bei der installation immer "enter".

Das wird Standard schlüssel der länge 256 bit haben. Man kann das ändern.

Nicht Wireguard bei der Pi-vpn installation auswählen !

Das voider Verzeichnis ist jetzt unter /home/ubuntu/.config/voider

----------------------------------------------------------------------------------------------------------------------------------------------------

Benutzung vom Raspi

jetzt "cd /home/ubuntu/.config/voider" schreiben und enter.

danach "sudo -E python3 main.py" schreiben und enter.

Jetzt fragt das Programm nach den Schnittstellen die benutzt werden sollen.

Zum Telefon (eth0), zum Internet (wlan0),

Beispiel :

gateway : 172.16.0.2

phone : 172.16.0.1

Wenn das alles gesetzt ist, sollte es so aussehen :

welcome
choose option :
to quit - just press enter.
1 - create a client connection to another server
2 - delete a client connection to another server
3 - call pivpn, to add a client connection to this server
4 - call pivpn, to revoke a client connection to this server
5 - Import access certificates, from a client
6 - Create access certificates, for a server.
 after most executed options, a reboot is done .

Dieser Raspi wird bis zu 255 Kunden haben können, und bis zu 255 Servern, ein Kunde sein können.

.....................................................................................................................................................

Damit Alice (Server) und Bob (Kunde) ein Telefon Gespräch haben :

Alice schickt die .zip Datei die von :

3 - call pivpn, to add a client connection to this server

(fragt die private IP Adresse vom Telefon vom Kunde)

entsteht, dem Bob.

Alice muss den Port 1194 (openvpn) zu den Raspberry Pi forwarden.

https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/34_Portfreigaben-in-FRITZ-Box-einrichten/

Nur Alice (Server) muss das machen, nicht Bob (Kunde)!

Bob importiert dann diese .zip Datei mit :

1 - create a client connection to another server

(fragt die private IP Adresse vom Telefon vom Server)

 

Alice wählt dann die 10.1.2.1 um Bob anzurufen.

[Die 2 steht für den ersten Kunden]

Diese Nummer ist dann immer die gleiche die Alice benutzt um Bob anzurufen.

Bob wählt dann die 10.2.1.1 um Alice anzurufen.

[Die 2 steht für den ersten Server]

Diese Nummer ist dann immer die gleiche die Bob benutzt um Alice anzurufen.

-- Diese Nummern sollen sich Kunde und Server merken.

.....................................................................................................................................................

Falls der Server die Ports bei sich zuhause nicht forwarden kann, (WG oder anderes) braucht man eine VPS.

Das heisst zum Beispiel, jonas wohnt in einer WG und möchte mit Alice telefonieren, Alice wohnt bei sich zuhause und forwardet den port 1194 (openvpn) auf ihr Raspi. Alice ist Server und alles ist gut. Die Verbindung wird aufgebaut. Wenn man sich mit einem Server verbinden möchte der keine Ports forwardet, dann muss Alice eine VPS, für diesen Server sein. Hier ist Alice als ein "SENATOR" gesehen. 

Alice soll dafür "cd /home/ubuntu/.config/voider/vps" schreiben und enter.

dann "sudo python3 mgmt.py" schreiben und enter.

sollte so aussehen :

-------------------------------------------------------------------------------------------------------------------------------------------

welcome
choose option :
to quit - just press enter.
1 - Setup self IP Address, to be accessed over sftp over tor .
5 - Define the main port, and the port range.

-------------------------------------------------------------------------------------------------------------------------------------------

Erstmal "1" schreiben und enter.

dann "sudo python3 mgmt.py" schreiben und enter.

sollte so aussehen :

-------------------------------------------------------------------------------------------------------------------------------------------

welcome
choose option :
to quit - just press enter.
1 - Setup self IP Address, to be accessed over sftp over tor .
2 - Delete self IP Address, to be accessed over sftp over tor .
3 - Create a user.
4 - Delete a user.
5 - Define the main port, and the port range.

-------------------------------------------------------------------------------------------------------------------------------------------

Jetzt kann Alice, Benutzer von der VPS erzeugen und löschen.

"3" schreiben und enter, erzeugt eine .zip Datei mit den ssh Schlüsseln sowie die .onion Addresse etc. Alice benutzt jetzt zum Beispiel Mozilla Thunderbird und schickt die .zip Datei zum Jonas.

Jonas ist kein "SENATOR". wenn er :

"sudo -E python3 main.py"

schreibt und enter drückt dann wird er befragt wer sein "SENATOR" ist. Und dass er diese .zip Datei im entsprechenden Verzeichnis stellen soll.

Falls Jonas sich mit einem anderen Server verbinden möchte der kein "SENATOR" ist. Müssen sich beide Parteien austauschen.

Der Server schickt die .zip Datei die von :

3 - call pivpn, to add a client connection to this server

(fragt die private IP Adresse vom Telefon vom Kunde)

entsteht, dem Kunden.

Der Kunde schickt die .zip Datei die von :

6 - Create access certificates, for a server.

entsteht, dem Server.

 

Der Server importiert dann die .zip Datei mit :

5 - Import access certificates, from a client

Der Kunde importiert dann die .zip Datei mit :

1 - create a client connection to another server

(fragt die private IP Adresse vom Telefon vom Server)

 

Ein "SENATOR" kann nicht Kunde von einem Server sein, der nicht "SENATOR" ist.

weil das kein Sinn macht, ein Senator hat schon die Ports forwardet, deswegen wird er keine VPS brauchen.

Dinamische IP addressen sind nicht schlimm, weil die ".onion" Addressen, Anker sind, die im Hintergrund benutzt werden.

-------------------------------------------------------------------------------------------------------------------------------------------

Konferenz Anrufe sind jetzt möglich.

Dafür die Bedienungsanleitung für den gxp1610 lesen :

https://documentation.grandstream.com/wp-content/uploads/2021/11/GXP16xx_User_Guide_1.0.7.18.pdf

-------------------------------------------------------------------------------------------------------------------------------------------

Benutzung vom Telefon

Das Telefon soll per Ethernet Kabel an den Raspi angeschlossen sein.

Beim Telefon gibt es zwei Eingänge, es soll der "LAN" Eingang benutzt werden.

Zwischen den Pfeilen auf den runden Knopf drücken.

Dann System->Network->Static Ip Settings und dann zum Beispiel :

Gateway : 172.16.0.2

Phone : 172.16.0.1

Mask : 255.255.255.252

--> Natürlich dieselben Werte wie beim "sudo -E python3 main.py" eingeben...

Back, Back -> Reboot now ? YES. Warten, dann :

Zwischen den Pfeilen auf den runden Knopf drücken.

Jetzt auf den Pfeil nach unten drücken.

4 oder 5 mal runter, bis "DIRECT IP CALL" .

Dann auf den runden Knopf drücken.

Dann kommt ein leeres Feld.

Dann wählen (Verbindung zu einem Server, 2<=x<=255):

10.x.1.1

oder (Verbindung zu einem Kunde, 2<=x<=255):

10.1.x.1

Dann auf den mittleren Knopf von 3 Knöpfen, wo "OK" steht drücken.

-------------------------------------------------------------------------------------------------------------------------------------------