AktualisierungsstandJanuar 2024
Produktrelevanz

estos ProCall 8 Enterprise

estos ProCall 7 Enterprise

Versionsstand

3.0.0.0


Einführung

Das Tool ICE-Test erlaubt dem Nutzer, im Internet befindliche STUN-/TURN-Server auf Verfügbarkeit zu prüfen. Das ProCall Enterprise Produkt der estos GmbH bietet Leistungsmerkmale wie Audio- / Video-Chat oder Softphone, deren Betrieb korrekt konfigurierte TURN- / STUN-Server benötigen können. Das ICE-Test Tool hilft deshalb z. B. einem Systemintegrator oder -administrator, erforderliche Server und die dazugehörigen Konfigurationsparameter auszutesten.

Abbildung 1: Benutzeroberfläche des ICE-Test Tools

Benutzeroberfläche des ICE-Test Tools

Das Programm verwendet die gleichen WebRTC-Komponenten (siehe Kapitel Lizenzen), die auch in estos ProCall Enterprise Verwendung finden. Damit soll nicht nur die Erreichbarkeit, sondern auch die Kompatibilität des STUN- / TURN-Servers mit estos ProCall Enterprise überprüft werden. Außerdem ist es möglich, mit dem Tool die Durchlässigkeit der Internet Router bzw. Firewalls für STUN und TURN Requests zu überprüfen. Dies kann z. B. bei größeren Installationen hilfreich sein, wenn bei zentraler, korrekter Konfiguration bestimmte Außenstandorte keine Audio- oder Videoverbindungen zulassen.

ICE Candidates

Das Tool ICE-Test ermittelt die lokalen ICE Candidates des auszutestenden Clients, wozu die Candidates

  • vom Typ host,
  • vom Typ srflx via STUN und
  • vom Typ relay via TURN

ermittelt werden. Diese mit dem Tool ermittelten ICE Candidates werden im Vergleich zu einem ICE Handshake für einen AV-Chat oder einen SIP Softphone-Call nicht mit einer Gegenseite ausgetauscht. Es erfolgt also kein Candidate Pairing und eine Candidate Pair Validation wird ebenfalls nicht ausgeführt. Deshalb ist ein erfolgreicher Test der STUN- oder TURN-Verbindung mittels ICE-Test noch keine Garantie für eine gesicherte Medienverbindung in der Kommunikationspraxis. Die Ermittlung der ICE Candidates mit Hilfe dieses Werkzeugs ist jedoch eine einfache und zuverlässige Möglichkeit, anhand der Candidate-Listen die Netzwerktopologie im Hinblick auf Medienverbindungen im Kundenumfeld genauer zu evaluieren.

Candidate Type prflx wird hier nicht weiter berücksichtigt, da es sich bei diesem Candidate Typ um einen nicht lokalen, sondern um einen remote Candidate (erlernt durch Kommunikation mit der Gegenseite) handelt.

Netzwerkrouten

SIP Softphone-Betrieb

Bei SIP Softphone-Calls werden Mediastreams zwischen dem estos ProCall Enterprise Client und dem estos ProCall Enterprise Media Server ausgetauscht. Mit dem Tool ICE-Test ausgeführt auf dem Client und dem Server können so die Candidates des ProCall Enterprise Clients und des ProCall Enterprise UC Media Servers ermittelt und eine zuverlässige und performante Netzwerkroute zwischen diesen beiden Komponenten verifiziert werden.

Audio-/Video-Chat

Bei AV-Chats (Audio- oder Videochats) werden Mediastreams zwischen zwei estos ProCall Enterprise Clients ausgetauscht. Mit dem Tool ICE-Test ausgeführt auf beiden Client Hosts können so die Candidates ermittelt und eine zuverlässige und performante Netzwerkroute zwischen diesen beiden Komponenten verifiziert werden.

Vorbereitung und Installation

Als Bestandteil der estos UCServer Verwaltung ist das Tool ICE-Test auf dem estos ProCall Enterprise Server direkt in dessen Programmverzeichnis zu finden. Das Tool besteht aus einer einzigen Datei ICE-Test2.exe, welche keine Abhängigkeiten zu anderen Modulen, Konfigurationen oder Bibliotheken beinhaltet.

Beispiel Screenshot - Programmverzeichnis ICE-Test.exe

Damit kann das Tool von dort auf einem zu testenden anderen Hostcomputer mit Microsoft Windows Betriebssystem (siehe folgendes Kapitel Betriebssysteme) einkopiert werden.

Für eine ICE Verbindungsprüfung auf anderen Systemen wie bspw. Smartphones mit den Betriebssystemen iOS oder Android weichen Sie bitte auf ein anderes Tool aus. Beispielsweise finden sich im Internet Testseiten, die STUN- oder TURN-Tests im Browser ermöglichen. Bitte berücksichtigen Sie hierzu den Hinweis im Abschnitt Alternativen zum estos ICE-Test Tool.

Produktdokumentation estos ProCall Enterprise

Die Verwendung des ICE-Tests in der estos ProCall Enterprise UCServer Verwaltung ist in der Produktdokumentation beschrieben:

STUN Test

Um die Erreichbarkeit eines STUN Dienstes zu prüfen, werden die benötigten Daten wie URL und Port Nummer im Feld STUN server eingetragen. Handelt es sich um den für STUN und TURN üblichen Port 3478, kann der Port-Parameter auch weggelassen werden. Die Eingabe kann als URL oder als IP-Adresse erfolgen, zum Beispiel:

  • ucturn.ucconnect.de
    hier ohne Angabe der Portnummer und des Dienstes bzw. Protokolls (stun:), der Inhalt des Feldes wird syntaktisch untersucht und entsprechend bedarfsweise ergänzt.
    Beim Drücken der Taste Start test erscheint das vollständige Format stun:ucturn.ucconnect.de:3478.
  • ucturn.ucconnect.de:3478
    hier mit Angabe der Port Nummer (3478 für den meist üblichen Port für STUN- oder TURN-Dienste)
  • stun:ucturn.ucconnect.de:3478
    hier wurde syntaktisch das vollständige Format angegeben.
  • 5.35.242.32
    auch IP Adressen können verwendet werden. Beim Drücken der Taste Start test wird die Eingabe entsprechend den üblichen Protokoll- und Portinformationen in das Zielformat umgewandelt, z. B. stun:5.35.242.32:3478.

Mit dem Drücken der Taste Start test wird in der Statuszeile der aktuelle Zustand angezeigt, z. B. ob Fehler aufgetreten sind oder ob Hinweise zum Testfortgang vorliegen. Der Zustand ICE gathering in progress beschreibt, dass der Zielserver adressiert wurde und eine Antwort erwartet wird. Im Normalfall dauert der Zustand nur wenige Bruchteile einer Sekunde und ist deshalb kaum sichtbar.

Ist der Zielserver nicht in Betrieb, kann der Zustand aber auch bis zu 10 s andauern, bis die Fehlermeldung STUN test failed erscheint. Bei Verfügbarkeit weiterer Diagnoseinformationen werden diese gegebenenfalls angezeigt (z. B. no answer).

Ist der Server erreichbar und präsentiert eine für das Test Tool kompatible Antwort, erscheinen im Textfeld (Listenfeld) weitere Informationen (Type, Prot, Local IP, External IP, Network Interface Name, Erläuterungen siehe unten) und das Testergebnis wird in der Statuszeile STUN test passed angezeigt.

TURN Test

Die Eingabe und Auswertung der TURN server Parameter entspricht der vorherigen Beschreibung zum STUN Test.

Werden die Felder zum Thema TURN leer gelassen, wird kein TURN Test ausgeführt.

Der TURN Test kann gestartet werden, auch wenn kein STUN Server angegeben wurde.

Falls vom Betreiber des TURN Servers Usernamen und / oder Passwörter vergeben wurden, können diese in den entsprechenden optionalen Feldern Username bzw. Password angegeben werden. Die Angabe eines Passwortes ist möglich, auch wenn kein Username verwendet wird. Die Eingabe des TURN Passwortes erfolgt voreingestellt nicht im Klartext, d.h. die Zeichens werden bei der Eingabe durch Punkte maskiert. Durch den Haken Show password kann die Anzeige jederzeit auf unmaskierte und damit lesbare Darstellung und zurück umgestellt werden.

Detailanzeige im Textfeld

Ein Listenfeld über dem Statusfeld zeigt zusätzliche Informationen an. Die erste Zeile gibt spaltenweise Hinweise auf die Bedeutung der gelisteten Werte.

  • Type:
    lokale, STUN oder TURN Ergebnisdaten.
  • Local IP:
    lokale IP-Adresse des Test-Geräts mit der Port Nummer, die beim Test verwendet wurde. Auch wenn kein gültiger STUN Server gefunden wurde, wird die lokale IP Adresse des Test-Geräts nach einigen Sekunden angezeigt. Beim TURN Test wird die IP-Adresse angezeigt, die der TURN Server auf der Seite des Test-Gerätes von außen sieht.
  • External IP:
    bei Daten vom Typ STUN wird die IP-Adresse des Test Clients angezeigt, die vom öffentlichen Internet her sichtbar ist. Üblicherweise ist diese IP Adresse auch am Internet Router als öffentliche Adresse sichtbar. Daten vom Typ Local haben keine External IP, es werden stattdessen Striche angezeigt. Daten vom Typ TURN zeigen in der Spalte External IP die IP-Adresse, die der TURN Server als externe Relay Adresse bekannt gibt.
  • Network Interface Name:
    jeder Netzwerkschnittstelle wird ein Name oder eine Nummer zugeordnet, d.h. der Network Interface Name kann auch einfach eine 0 oder 1 sein. Hat ein System z. B. eine LAN Verbindung und eine WLAN Verbindung, bekommt das System entsprechend zwei local IP-Adressen und damit auch zwei TURN- und zwei STUN Einträge.
Abbildung 2: Detailanzeige im Listenfeld

Detailanzeige im Textfeld

Testergebnis

Die Statuszeile zeigt das finale Testergebnis an. Wurde nur ein STUN Test ausgeführt, kommt nur ein Ergebnis zum STUN Test (z. B. STUN test passed). Lief auch noch der TURN Test, kommt zusätzlich das Ergebnis zum TURN Test (z. B. STUN test passed, TURN test passed).

Abbildung 3: Testergebnis in der Statuszeile - TURN passed

Testergebnis in der Statuszeile

Im Fehlerfall werden - insofern verfügbar - zusätzliche Diagnostik-Informationen angezeigt. Die Diagnostik-Informationen am Ende des Logs bei Test result können auch Hinweise enthalten, die zur Lösung eines Problems beitragen können.

Abbildung 4: Testergebnis in der Statuszeile - TURN failed

Testergebnis in der Statuszeile

Logdatei anzeigen

Durch das Drücken der Taste Show Log wird ein Editor-Fenster mit dem aktuellen Inhalt der Datei ICE-TLog.txt geöffnet. Wurde die Taste nach erfolgtem TURN- / STUN-Test gedrückt, werden Informationen zum Testfortgang angezeigt. Die Logdatei befindet sich vorzugsweise im gleichen Verzeichnis wie das ICE-Test Tool selbst (die ausführbare Datei ICE-Test2.exe). In diesem Fall zeigt der Anfang des Logs den Hinweis Log file: ICE-TLog.txt ohne weitere Pfadangaben.

Abbildung 5: Editorfenster mit Log-Datei

Editorfenster mit Log-Datei

Verfügt das Tool jedoch über keine Schreibrechte auf das aktuelle Verzeichnis, wird die Logdatei im %temp%-Verzeichnis des Benutzerkontextes angelegt. In diesem Fall befindet sich am Anfang des Logs der Eintrag z. B. Log file: C:\Users\MEIN~USER.NAME\AppData\Local\Temp\ICE-TLog.txt. Wurde dem Programm ein anderes Verzeichnis bzw. ein anderer Logdateiname per Kommandozeile zugewiesen, befindet sich entsprechend der Eintrag in der Logdatei.

Kommandozeilen Parameter und Rückgabewerte

Das ICE-Test Tool kann die zum Test benötigten Parameter per Kommandozeile einlesen. Der entsprechende Test wird bei der Angabe der TURN- / STUN Parameter unmittelbar gestartet. Ein weiterer Parameter ermöglicht das automatische Beenden nach erfolgtem Test. Das ICE-Test Tool übergibt außerdem beim Beenden des Programms einen Rückgabewert, der es erlaubt, das Testergebnis mit Hilfe z. B. eines Skriptes auszuwerten. Während des Tests im Kommandozeilenmodus wird die Datei Ice-TLog.txt wie gewöhnlich geschrieben und dokumentiert einzelne Testdetails.

Parameter

ParameterZweckBeispiel
[/stunurl […]]

STUN-Test

STUN URL go.estos.de und Port 3478 setzen:

/stunurl go.estos.de:3478

[/servers […]]

STUN- und / oder TURN-Test

STUN URL ucturn.ucconnect.de und Port 3478 setzen,

TURN URL ucturn.ucconnect.de, Port (3478 und 443) und Transportprotokoll (udp und tcp) setzen:

/servers "stun:ucturn.ucconnect.de:3478" "turn:17******43:v*******o:zx**********************OA=@ucturn.ucconnect.de:3478?transport=udp" "turn:17******43:v********o:zx**********************OA=@ucturn.ucconnect.de:443?transport=tcp"

Das Format für STUN: /servers "stun:URL:PORT"

Das Format für TURN: /servers "turn:TIMESTAMP:USERID:PASSWORT@URL:PORT?transport=TRANSPORTPROTOKOLL"

[/logfile […]]Logdateipfad und Logdateinamen setzen/logfile „C:\Program Files (x86)\ESTOS\UCServer\logs\ICE-TLog.txt“
[/autoexit]beendet den Test automatischn/a

Anwendungsbeispiel

Das ICE-Test Tool soll die Erreichbarkeit eines STUN Servers mit der URL go.estos.de und der Port Nummer 19302 testen. Nach erfolgtem Test soll sich das Programm selbstständig beenden:

ice-test2.exe /stunurl go.estos.de:19302 /autoexit
CODE

Rückgabewerte

Der Rückgabewert kann nach dem Beenden des Tests von einem rufenden Programm ausgewertet werden (z. B. mit ERRORLEVEL wenn der Aufruf aus einem Windows Terminalfenster / Eingabeaufforderung per Kommandozeile erfolgt).

Das obere Halb-Byte im hexadezimalen Format beschreibt den TURN Status. Das untere Halb-Byte beschreibt den STUN Status. Dadurch können mit einem Aufruf beide Testmöglichkeiten ausgewertet werden.

Tabelle 1: Rückgabewerte bei Programmende
BedeutungTURN ResultSTUN Result
Test nicht ausgeführt0x000x00
Test erfolgreich0x100x01
Test nicht erfolgreich, allgemein0x200x02
Test nicht erfolgreich, keine Antwort0x300x03
Passwort überprüfen (check credentials)0x40n/a
Syntax Error0x800x08
keine IP-Adresse (check cable)0x0A
allgemeiner Systemfehler (Speicher etc.)0x0B
allgemeiner Eingabefehler0x0C

Wurden beispielsweise erfolgreiche TURN- und STUN-Tests gleichzeitig durchgeführt, ist der Rückgabewert 0x11 (dezimal also 17).

Betriebssysteme

Das ICE-Test Tool wurde auf Basis der Betriebssysteme Windows® 7, Windows® 8.1 und Windows Server® 2012 entwickelt.

Als Bestandteil der estos UCServer Verwaltung wird dieses Tool auch auf den jeweils aktuell für estos ProCall Enterprise Server freigegebenen Betriebssystemen evaluiert:

Eine explizite Sicherstellung der Funktionalität auf Betriebssystemen für estos ProCall Enterprise Client erfolgt nicht.

Lizenzen

Dieses Programm wird als Teil eines Softwarepaketes oder als Download von der Firma estos GmbH lizenzgebührenfrei zur Verfügung gestellt. Die Benutzung des Programmes erfolgt unter Ausschluss jeglicher Garantie und Haftung des Herstellers, wie auch im letzten Abschnitt des Lizenztextes unten erklärt.
Weitere Lizenzinformationen werden durch das Drücken der Taste About im ICE-Test Tool angezeigt.

Abbildung 6: Über das Tool ICE-Test - Lizenzinformationen

OSS Lizenzen

Das Programm verwendet Open Source Komponenten. Die Komponenten werden als Teil des ICE-Test Binärprogrammes mitgeliefert. Die verwendeten Open Source Lizenzen sind unten gelistet.

Licenses

http://www.webrtc.org/support/license
Copyright (c) 2011, The WebRTC project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Google nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Erläuterungen zu den Inhalten der Logdatei

Detailinformationen zum STUN Test

Ein Arbeitsplatzcomputer für estos ProCall Enterprise Client wird hinsichtlich seiner Anbindung an einen STUN Server geprüft.

Es wird der zu testende STUN Server ucturn.ucconnect.de adressiert, auf die Spezifikation des Protokolls und des Ports wird dabei verzichtet, da auf Standardwerte abgeprüft werden soll:

Oder die Ausführung des STUN-Tests via Eingabeaufforderung:

Nach Abschluss des Tests und dem Vorliegen eines Status wird die Logdatei geöffnet. Diese beinhaltet exemplarisch dargestellt die folgenden Detailinformationen.

Redaktionell eingefügte Kommentare sind mit der Zeichenfolge #### gekennzeichnet.

Leerzeilen wurden zur besseren Lesbarkeit und Strukturierung eingefügt.

Aus Datenschutzgründen sind einige Informationen mittels * maskiert.

Starting Timer thread

#### Versionsangabe des Tools ICE-Test ####
ICE-Test, Version 3.0.0.0, (c) 2019 estos GmbH. All rights reserved.

#### Pfadangabe zur Logdatei ####
Log file: C:\TMP\ICE-TLog.txt

#### Start des STUN Tests mit Angabe von Datum, Uhrzeit und Name des Windows Hosts, auf dem der Test ausgeführt wird ####
******* IceTest started Fri, 05.01.2024 14:09:16, system Laptop-*** *******

#### Ausgabe der getesteten URL mit bedarfsweise ergänzten Protokoll- und Portangaben ####
Using Server: "stun:ucturn.ucconnect.de:3478", 

#### Der Vorgang des ICE Candidate Gatherings startet, es werden die verfügbaren lokalen Candidates ermittelt ####
{Fri, 05.01.2024 14:09:16} PeerConnectionObserver:OnIceGatheringChange: ICE gathering in progress

#### Ermittelte lokale ICE Candidates werden gelistet ####
#### "typ host" oder "typ srflx" gibt den Typ des lokalen ICE Candidates an, bei einem STUN-Test ist der "typ srflx" relevant ####
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2722299875 1 udp 2122265343 fd87:a6e7:3dab:668b::101 49840 typ host generation 0 ufrag Roo7 network-id 3 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2999745851 1 udp 2122194687 192.168.56.1 49841 typ host generation 0 ufrag Roo7 network-id 4 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2905722711 1 udp 2122129151 172.20.1.106 49842 typ host generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2704919156 1 udp 2122063615 10.30.0.7 49843 typ host generation 0 ufrag Roo7 network-id 1 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2722299875 2 udp 2122265342 fd87:a6e7:3dab:668b::101 49844 typ host generation 0 ufrag Roo7 network-id 3 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2999745851 2 udp 2122194686 192.168.56.1 49845 typ host generation 0 ufrag Roo7 network-id 4 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2905722711 2 udp 2122129150 172.20.1.106 49846 typ host generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:2704919156 2 udp 2122063614 10.30.0.7 49847 typ host generation 0 ufrag Roo7 network-id 1 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:1528936067 1 udp 1685921535 3*.***.***.**2 49842 typ srflx raddr 172.20.1.106 rport 49842 generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:1528936067 2 udp 1685921534 3*.***.***.**2 49846 typ srflx raddr 172.20.1.106 rport 49846 generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:3972072211 1 tcp 1518285567 fd87:a6e7:3dab:668b::101 54515 typ host tcptype passive generation 0 ufrag Roo7 network-id 3 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:4233069003 1 tcp 1518214911 192.168.56.1 54516 typ host tcptype passive generation 0 ufrag Roo7 network-id 4 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:3820106663 1 tcp 1518149375 172.20.1.106 54517 typ host tcptype passive generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:4021958276 1 tcp 1518083839 10.30.0.7 54518 typ host tcptype passive generation 0 ufrag Roo7 network-id 1 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:3972072211 2 tcp 1518285566 fd87:a6e7:3dab:668b::101 54519 typ host tcptype passive generation 0 ufrag Roo7 network-id 3 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:4233069003 2 tcp 1518214910 192.168.56.1 54520 typ host tcptype passive generation 0 ufrag Roo7 network-id 4 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:3820106663 2 tcp 1518149374 172.20.1.106 54521 typ host tcptype passive generation 0 ufrag Roo7 network-id 2 network-cost 50
[Fri, 05.01.2024 14:09:16] ICECandidate: candidate:4021958276 2 tcp 1518083838 10.30.0.7 54522 typ host tcptype passive generation 0 ufrag Roo7 network-id 1 network-cost 50

#### Es folgt die wichtige Auswertung des STUN-Tests ####
#### In der ersten Spalte ist der Candidate Type angegeben ####
#### "local" entspricht einem Candidate Type "host" ####
#### "stun" entspricht einem Candidate Type "srflx" ####
#### Bei einem STUN-Test sind nur die Zeilen mit Type "stun" relevant ####
#### In der 5. Datenzeile findet sich der erfolgreiche STUN-Test ####
#### Auf IPv4-Adresse:Port 172.20.1.106:49842 wurde mittels STUN via udp am STUN-Dienst stun:ucturn.ucconnect.de:3478 ####
#### erfolgreich eine von außen sichtbare externe IPv4-Adresse:Port 3*.***.***.**2:49842 ermittelt ####
----------Test result:------------
Type	Prot	Local IP									External IP			Network Interface Name
local	udp		[fd87:a6e7:3dab:668b::101]:49840        	--------			1
local	udp		192.168.56.1:49841							--------			2
local	udp		172.20.1.106:49842							--------			1
local	udp		10.30.0.7:49843								--------			0
stun	udp		172.20.1.106:49842							3*.***.***.*2:49842	1
local	tcp		[fd87:a6e7:3dab:668b::101]:54515         	--------			1
local	tcp		192.168.56.1:54516							--------			2
local	tcp		172.20.1.106:54517							--------			1
local	tcp		10.30.0.7:54518								--------			0

#### Angabe der Zeitdauer für die Durchführung des STUN-Tests ####
Total time elapsed: 3s

#### Der STUN-Test ist erfolgreich ####
******* STUN test passed *******

#### Optional - bei Start via CMD Shell ####
Terminating (RC = 0x1, 1(d))

#### Optional: der Vorgang der Ermittlung weiterer ICE Candidates ist beendet ####
{Fri, 05.01.2024 14:09:26} PeerConnectionObserver:OnIceGatheringChange: ICE gathering complete
CODE

Detailinformationen zum TURN Test

Ein Arbeitsplatzcomputer für estos ProCall Enterprise Client wird hinsichtlich seiner Anbindung an einen TURN Server geprüft.

Es wird der zu testende TURN Server ucturn.ucconnect.de adressiert, auf die Spezifikation des Protokolls und des Ports wird dabei verzichtet, da auf Standardwerte abgeprüft werden soll:

Beispiel Screenshot ICE-Test TURN Server - Test starten


#### Versionsangabe des Tools ICE-Test ####
ICE-Test, Version 3.0.0.0, (c) 2019 estos GmbH. All rights reserved.

#### Pfadangabe zur Logdatei ####
Log file: c:\TMP\ICE-TLog.txt

#### Start des TURN Tests mit Angabe von Datum, Uhrzeit und Name des Windows Hosts, auf dem der Test ausgeführt wird ####
******* IceTest started Fri, 05.01.2024 16:30:35, system Laptop-*** *******

#### Ausgabe der getesteten URL mit bedarfsweise ergänzten Protokoll- und Portangaben ####
#### Der im Test andressierte TURN Server für die Bereitstellung von TURN Allocations eine Authentisierung erfordert, ist die Angabe von Username und Password erforderlich ####
Using Server: "turn:ucturn.ucconnect.de:3478", User: "1********7:b********u", Password: "Q**************************="

#### Der Vorgang des ICE Candidate Gatherings startet, es werden die verfügbaren lokalen Candidates ermittelt ####
{Fri, 05.01.2024 16:30:35} PeerConnectionObserver:OnIceGatheringChange: ICE gathering in progress

#### Ermittelte lokale ICE Candidates werden gelistet ####
#### "typ host", "typ srflx" oder "typ relay" gibt den Typ des lokalen ICE Candidates an, bei einem TURN-Test ist der "typ relay" relevant ####
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2722299875 1 udp 2122265343 fd87:a6e7:3dab:668b::101 62762 typ host generation 0 ufrag bLqa network-id 3 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2999745851 1 udp 2122194687 192.168.56.1 62763 typ host generation 0 ufrag bLqa network-id 4 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2905722711 1 udp 2122129151 172.20.1.106 62764 typ host generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2704919156 1 udp 2122063615 10.30.0.7 62765 typ host generation 0 ufrag bLqa network-id 1 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2722299875 2 udp 2122265342 fd87:a6e7:3dab:668b::101 62766 typ host generation 0 ufrag bLqa network-id 3 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2999745851 2 udp 2122194686 192.168.56.1 62767 typ host generation 0 ufrag bLqa network-id 4 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2905722711 2 udp 2122129150 172.20.1.106 62768 typ host generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:2704919156 2 udp 2122063614 10.30.0.7 62769 typ host generation 0 ufrag bLqa network-id 1 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:1528936067 2 udp 1685921534 3*.***.***.**2 62768 typ srflx raddr 172.20.1.106 rport 62768 generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:1528936067 1 udp 1685921535 3*.***.***.**2 62764 typ srflx raddr 172.20.1.106 rport 62764 generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:89216641 1 udp 41754367 54.36.119.226 60688 typ relay raddr 3*.***.***.**2 rport 62764 generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:89216641 2 udp 41754366 54.36.119.226 63494 typ relay raddr 3*.***.***.**2 rport 62768 generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:3972072211 1 tcp 1518285567 fd87:a6e7:3dab:668b::101 55744 typ host tcptype passive generation 0 ufrag bLqa network-id 3 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:4233069003 1 tcp 1518214911 192.168.56.1 55745 typ host tcptype passive generation 0 ufrag bLqa network-id 4 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:3820106663 1 tcp 1518149375 172.20.1.106 55746 typ host tcptype passive generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:4021958276 1 tcp 1518083839 10.30.0.7 55747 typ host tcptype passive generation 0 ufrag bLqa network-id 1 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:3972072211 2 tcp 1518285566 fd87:a6e7:3dab:668b::101 55748 typ host tcptype passive generation 0 ufrag bLqa network-id 3 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:4233069003 2 tcp 1518214910 192.168.56.1 55749 typ host tcptype passive generation 0 ufrag bLqa network-id 4 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:3820106663 2 tcp 1518149374 172.20.1.106 55750 typ host tcptype passive generation 0 ufrag bLqa network-id 2 network-cost 50
[Fri, 05.01.2024 16:30:35] ICECandidate: candidate:4021958276 2 tcp 1518083838 10.30.0.7 55751 typ host tcptype passive generation 0 ufrag bLqa network-id 1 network-cost 50

#### Es folgt die wichtige Auswertung des TURN-Tests ####
#### In der ersten Spalte ist der Candidate Type angegeben ####
#### "local" entspricht einem Candidate Type "host" ####
#### "stun" entspricht einem Candidate Type "srflx" ####
#### "turn" entspricht einem Candidate Type "relay" ####
#### Bei einem TURN-Test sind nur die Zeilen mit Type "turn" relevant ####
#### In der 6. Datenzeile findet sich der erfolgreiche TURN-Test ####
#### Auf IPv4-Adresse:Port 3*.***.***.**2:62764 wurde mittels STUN und zusätzlichen TURN-Operationen via udp ####
#### am TURN-Dienst turn:ucturn.ucconnect.de:3478 erfolgreich eine TURN Allocation angefordert, der TURN Server ####
#### akzeptiert dabei die von ihm aus sichtbare externe IPv4-Adresse:Port 3*.***.***.**2:62764 (TURN Permission) ####
#### Entsprechend der 5. Datenzeile ist die externe IPv4-Adresse:Port 3*.***.***.**2:62764 mit der internen ####
#### IPv4-Adresse 172.20.1.106:62764 verknüpft ####
----------Test result:------------
Type	Prot	Local IP							External IP				Network Interface Name
local	udp		[fd87:a6e7:3dab:668b::101]:62762	--------				1
local	udp		192.168.56.1:62763					--------				2
local	udp		172.20.1.106:62764					--------				1
local	udp		10.30.0.7:62765						--------				0
stun	udp		172.20.1.106:62764					3*.***.***.**2:62764	1
turn	udp		3*.***.***.**2:62764				54.36.119.226:60688		1
local	tcp		[fd87:a6e7:3dab:668b::101]:55744	--------				1
local	tcp		192.168.56.1:55745					--------				2
local	tcp		172.20.1.106:55746					--------				1
local	tcp		10.30.0.7:55747						--------				0

#### Angabe der Zeitdauer für die Durchführung des STUN-Tests ####
Total time elapsed: 3s

#### Der TURN-Test ist erfolgreich ####
******* TURN test passed *******
CODE

Die Nutzung des Tools in der Eingabeaufforderung:

ICE-TEST2.exe /servers "turn:17******93:b********u:as***********************Ac=@ucturn.ucconnect.de" /autoexit
CODE

und das Testergebnis in der Logdatei ICE-TLog.txt:

ICE-Test, Version 3.0.0.0, (c) 2019 estos GmbH. All rights reserved.
Log file: ICE-TLog.txt
Starting Timer thread

******* IceTest started Fri, 12.01.2024 17:38:55, system Laptop-*** *******
Using Server: "turn:ucturn.ucconnect.de", User: "17******93:b********u", Password: "as************************c="

...

******* TURN test passed *******
Terminating (RC = 0x10, 16(d))
CODE

Weitere Hinweise zur Analyse

PCAP Trace

Für weitere Detailbetrachtungen kann ein PCAP Mitschnitt interessant sein.

Ein Display Filter für Wireshark kann die Anzeige auf Pakete des Typs STUN, TURNCHANNEL und CLASSICSTUN begrenzen:

Beispiel Screenshot: PCAP Trace - Display Filter für Wireshark setzen - Typ festlegen 

Alternativen zum estos ICE-Test Tool

Im Internet finden sich weitere alternative Tools, um damit STUN- oder TURN-Verbindungen zu prüfen.

Nur unverbindlich und exemplarisch ist hier https://icetest.info/ aufgezeigt:

Beispiel Screenshot ICE-Test Info - Test starten - Ergebnisse 

Damit kann in einem Browser nicht nur unter Microsoft Windows, sondern auch unter Apple macOS / iOS, Linux oder Android getestet werden.

Dies kann interessant sein, um die ICE Candidates für estos ProCall Mobile App zu ermitteln bzw. zu testen.

ICE-Test alternativer TURN Server

Insofern ProCall Enterprise in Verbindung mit anderen als in estos UCConnect integrierten TURN Servern betrieben werden soll, kann mit Hilfe des estos Tools ICE-Test ebenfalls ein STUN- und TURN-Test durchgeführt werden.

Aufgrund nicht sicherzustellender jeglicher TURN Authentisierungsmechanismen ist die erfolgreiche Nutzung des estos Tools ICE-Test mit anderen Systemen als estos UCConnect durch estos nicht gewährleistet.

Ansprüche auf Gewährleistung und Support für den Betrieb von estos ProCall Enterprise mit anderen TURN Services als estos UCConnect sind grundsätzlich ausgeschlossen.

Arbeitet ein TURN Server mit einem shared secret, wird im ICE-Test Tool eingetragen:

  • STUN URI
  • TURN URI
  • Username wird zunächst nicht eingetragen und später automatisch befüllt
  • Password wird zunächst nicht eingetragen und später automatisch befüllt
  • User Part bleibt leer
  • Shared Secret: hier wird das im zu testenden TURN Server hinterlegte shared secret eingetragen
  • und dann der Generate…-Button gedrückt, womit Username und Password gesetzt werden.
Beispiel Screenshot: ICE-Test - TURN Server mit Shared Secret

Nun kann die Diagnose mittels Button Start test gestartet werden.

Weiterführende Informationen