State of knowledgeJanuary 2024
Product relevance

estos ProCall 8 Enterprise

estos ProCall 7 Enterprise

Version status

3.0.0.0


Introduction

The tool ICE-Test allows the user to test on the Internet STUN-/TURN server to check for availability. The ProCall Enterprise product from estos GmbH offers features such as audio / video chat or softphone, the operation of which may require correctly configured TURN / STUN servers. The ICE test tool therefore helps a system integrator or administrator, for example, to test the required servers and the associated configuration parameters.

Figure 1: User interface of the ICE-Test Tool

Benutzeroberfläche des ICE-Test Tools

The program uses the same WebRTC components (see chapter Licenses) that are also used in estos ProCall Enterprise. This is not only to check the accessibility, but also the compatibility of the STUN / TURN server with estos ProCall Enterprise. It is also possible to use the tool to check the permeability of Internet routers or firewalls for STUN and TURN requests. This can be helpful for larger installations, for example, if certain external locations do not allow audio or video connections when configured centrally and correctly.

ICE Candidates

The ICE-Test tool determines the local ICE Candidates of the client to be tested, for which the Candidates

  • of the type host,
  • of the type srflx via STUN and
  • of the type relay via TURN

can be determined. Compared to an ICE handshake for an AV chat or a SIP softphone call, these ICE candidates determined with the tool are not exchanged with a remote party. There is therefore no candidate pairing and candidate pair validation is also not carried out. Therefore, a successful test of the STUN or TURN connection using the ICE test is no guarantee for a secure media connection in communication practice. However, determining the ICE candidates with the help of this tool is a simple and reliable way of using the candidate lists to evaluate the network topology with regard to media connections in the customer environment more precisely.

Candidate type prflx is not considered further here, as this candidate type is not a local candidate, but a remote candidate (learned through communication with the other side).

Network routes

SIP softphone operation

With SIP softphone calls, media streams are exchanged between the estos ProCall Enterprise Client and the estos ProCall Enterprise Media Server. With the ICE-Test tool running on the client and the server, the candidates of the ProCall Enterprise Client and the ProCall Enterprise UC Media Server can be determined and a reliable and high-performance network route between these two components can be verified.

Audio/video chat

In AV chats (audio or video chats), media streams are exchanged between two estos ProCall Enterprise clients. With the ICE-Test tool running on both client hosts, the candidates can be determined and a reliable and high-performance network route between these two components can be verified.

Preparation and installation

As part of the estos UCServer administration, the tool ICE-Test can be found on the estos ProCall Enterprise Server directly in its program directory. The tool consists of a single file ICE-Test2.exe, which does not contain any dependencies to other modules, configurations or libraries.

Sample screenshot - Program directory ICE-Test.exe

This allows the tool to be copied from there to another host computer with a Microsoft Windows operating system to be tested (see the following chapter Operating systems).

For an ICE connection test on other systems such as smartphones with the iOS or Android operating systems, please use a different tool. For example, there are test pages on the Internet that enable STUN or TURN tests in the browser. Please refer to the note in the section Alternatives to the estos ICE test tool.

Product documentation estos ProCall Enterprise

The use of the ICE test in the estos ProCall Enterprise UCServer administration is described in the product documentation:

STUN Test

To check the accessibility of a STUN service, the required data such as URL and port number are entered in the STUN server field. If the usual port for STUN and TURN is 3478, the port parameter can also be omitted. The entry can be made as a URL or as an IP address, for example:

  • ucturn.ucconnect.de
    here without specifying the port number and the service or protocol (stun:), the content of the field is syntactically checked and supplemented accordingly if necessary.
    When the Start test button is pressed, the complete format stun:ucturn.ucconnect.de:3478 appears.
  • ucturn.ucconnect.de:3478
    here with the port number (3478 for the most common port for STUN or TURN services)
  • stun:ucturn.ucconnect.de:3478
    the complete format was specified here syntactically.
  • 5.35.242.32
    IP addresses can also be used. When the Start test button is pressed, the input is converted into the target format according to the usual protocol and port information, e.g. stun:5.35.242.32:3478.

When the Start test button is pressed, the current status is displayed in the status bar, e.g. whether errors have occurred or whether there is any information on the progress of the test. The status ICE gathering in progress describes that the target server has been addressed and a response is expected. Normally, the status only lasts a few fractions of a second and is therefore barely visible.

If the target server is not in operation, the status can also last up to 10 seconds until the error message STUN test failed appears. If further diagnostic information is available, this may be displayed (e.g. no answer).

If the server is reachable and presents a response that is compatible with the test tool, further information (Type, Prot, Local IP, External IP, Network Interface Name, see below for explanations) and the test result is displayed in the status line STUN test passed.

TURN Test

The input and evaluation of the TURN server parameters corresponds to the previous description of the STUN test.

If the TURN fields are left blank, no TURN test is performed.

The TURN test can be started even if no STUN server has been specified.

If the operator of the TURN server has assigned usernames and / or passwords, these can be entered in the corresponding optional fields Username and Password. It is possible to enter a password even if no username is used. The TURN password is not entered in plain text by default, i.e. the characters are masked by dots when entered. By ticking Show password, the display can be switched to unmasked and thus readable display and back at any time.

Detailed display in the text field

A list field above the status field displays additional information. The first line provides column-by-column information on the meaning of the listed values.

  • Type:
    local, STUN or TURN result data.
  • Local IP:
    Local IP address of the test device with the port number that was used during the test. Even if no valid STUN server was found, the local IP address of the test device is displayed after a few seconds. During the TURN test, the IP address that the TURN server on the test device side sees from the outside is displayed.
  • External IP:
    For data of type STUN, the IP address of the test client is displayed, which is visible from the public Internet. This IP address is usually also visible on the Internet router as the public address. Data of type Local has no External IP, dashes are displayed instead. Data of type TURN shows the IP address that the TURN server provides as an external relay address in the External IP column.
  • Network Interface Name:
    Each network interface is assigned a name or a number, i.e. the Network Interface Name can also simply be a 0 or 1. For example, if a system has a LAN connection and a WLAN connection, the system is assigned two local IP addresses and therefore also two TURN and two STUN entries.
Figure 2: Detailed display in the list field

Detailanzeige im Textfeld

Test result

The status line shows the final test result. If only a STUN test was performed, only a result for the STUN test is displayed (e.g. STUN test passed). If the TURN test was also run, the result for the TURN test is also displayed (e.g. STUN test passed, TURN test passed).

Figure 3: Test result in the status bar - TURN passed

Testergebnis in der Statuszeile

In the event of an error, additional diagnostic information is displayed, if available. The diagnostic information at the end of the log at Test result can also contain information that can help to solve a problem.

Figure 4: Test result in the status bar - TURN failed

Testergebnis in der Statuszeile

Show log file

Pressing the Show Log button opens an editor window with the current content of the ICE-TLog.txt file. If the button is pressed after a TURN / STUN test, information on the progress of the test is displayed. The log file is preferably located in the same directory as the ICE-Test tool itself (the executable file ICE-Test2.exe). In this case, the beginning of the log shows the note Log file: ICE-TLog.txt without any further path information.

Figure 5: Editor window with log file

Editorfenster mit Log-Datei

However, if the tool does not have write access to the current directory, the log file is created in the %temp% directory of the user context. In this case, the entry at the beginning of the log is e.g. Log file: C:\Users\MEIN~USER.NAME\AppData\Local\Temp\ICE-TLog.txt. If a different directory or a different log file name was assigned to the program via the command line, the entry in the log file is located accordingly.

Command line parameters and return values

The ICE-Test Tool can read in the parameters required for the test via the command line. The corresponding test is started immediately when the TURN / STUN parameters are specified. A further parameter enables automatic termination after the test has been completed. The ICE-Test Tool also passes a return value when the program is terminated, which allows the test result to be evaluated using a script, for example. During the test in command line mode, the file Ice-TLog.txt is written as usual and documents individual test details.

Parameters

ParameterPurposeSample
[/stunurl […]]

STUN test

Set STUN URL go.estos.de and port 3478:

/stunurl go.estos.de:3478

[/servers […]]

STUN and/or TURN test

STUN URL ucturn.ucconnect.de and set port 3478 ,

Set TURN URL ucturn.ucconnect.de, port (3478 and 443) and transport protocol (udp and tcp):

/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"

The format for STUN: /servers "stun:URL:PORT"

The format for TURN: /servers "turn:TIMESTAMP:USERID:PASSWORD@URL:PORT?transport=TRANSPORTPROTOCOL"

[/logfile […]]Set log file path and log file name/logfile „C:\Program Files (x86)\ESTOS\UCServer\logs\ICE-TLog.txt“
[/autoexit]ends the test automaticallyn/a

Application example

The ICE-Test Tool should test the accessibility of a STUN server with the URL go.estos.de and the port number 19302 . After a successful test, the program should exit automatically:

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

Return values

The return value can be evaluated by a calling program after the test has ended (e.g. with ERRORLEVEL if the call is made from a Windows terminal window / command prompt via command line).

The upper half-byte in hexadecimal format describes the TURN status. The lower half-byte describes the STUN status. This means that both test options can be evaluated with one call.

Table 1: Return values at the end of the program
MeaningTURN resultSTUN result
Test not executed0x000x00
Test successful0x100x01
Test not successful, general0x200x02
Test not successful, no response0x300x03
Check password (check credentials)0x40n/a
Syntax error0x800x08
No IP address (check cable)0x0A
General system error (memory etc.)0x0B
General input error0x0C

If, for example, successful TURN and STUN tests were performed simultaneously, the return value is 0x11 (i.e. 17 in decimal).

Operating systems

The ICE Test Tool was developed on the basis of the Windows® 7, Windows® 8.1 and Windows Server® 2012 operating systems.

As part of estos UCServer administration, this tool is also evaluated on the operating systems currently released for estos ProCall Enterprise Server:

There is no explicit guarantee of functionality on operating systems for estos ProCall Enterprise Client.

Licenses

This program is provided free of charge as part of a software package or as a download by estos GmbH. The use of the program takes place under exclusion of any warranty and liability of the manufacturer, as also explained in the last section of the license text below.
Further license information is displayed by pressing the About button in the ICE-Test Tool.

Figure 6: About the ICE-Test tool - License information

OSS licenses

The program uses open source components. The components are supplied as part of the ICE-Test binary program. The open source licenses used are listed below.

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.

Explanations of the contents of the log file

Detailed information on the STUN test

A workstation computer for estos ProCall Enterprise Client is checked with regard to its connection to a STUN server.

The STUN server ucturn.ucconnect.de to be tested is addressed; the protocol and port are not specified, as the test is to be carried out on default values:

Or the execution of the STUN test via command prompt:

Once the test has been completed and a status is available, the log file is opened. This contains the following detailed information as an example.

Editorially inserted comments are marked with the character string ####.

Blank lines have been inserted to improve readability and structure.

For data protection reasons, some information is masked with *.

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

Detailed information on the TURN test

A workstation computer for estos ProCall Enterprise Client is checked with regard to its connection to a TURN server.

The TURN server ucturn.ucconnect.de to be tested is addressed; the protocol and port are not specified, as default values are to be checked:

Sample screenshot ICE-Test TURN Server - Start test


#### 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

The use of the tool in the command prompt:

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

and the test result in the log file 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

Further notes on the analysis

PCAP trace

For further details, a PCAP recording may be of interest.

A display filter for Wireshark can limit the display to packets of type STUN, TURNCHANNEL and CLASSICSTUN :

Sample screenshot: PCAP Trace - Set display filter for Wireshark - Set type 

Alternatives to the estos ICE-Test Tool

There are other alternative tools on the Internet for checking STUN or TURN connections.

Only non-binding and exemplary is shown here https://icetest.info/:

Sample screenshot ICE-Test Info - Start test - Results 

This allows testing in a browser not only under Microsoft Windows, but also under Apple macOS / iOS, Linux or Android.

This might be interesting to determine or test the ICE candidates for estos ProCall Mobile App.

ICE test of alternative TURN server

If ProCall Enterprise is to be operated in conjunction with TURN servers other than those integrated in estos UCConnect, a STUN and TURN test can also be carried out using the estos tool ICE-Test.

Because estos cannot guarantee the successful use of the estos tool ICE-Test with systems other than estos UCConnect, any TURN authentication mechanisms cannot be guaranteed.

Warranty and support claims for the operation of estos ProCall Enterprise with TURN services other than estos UCConnect are generally excluded.

If a TURN server works with a shared secret, this is entered in the ICE test tool:

  • STUN URI
  • TURN URI
  • Username is not entered initially and is filled in automatically later
  • Password is not entered initially and is filled in automatically later
  • User Part remains empty
  • Shared Secret: the shared secret which was entered for the TURN server to be tested
  • and then press the button Generate... , this sets Username and Password.
Sample screenshot: ICE test - TURN server with shared secret

The diagnostics can now be started using the button Start test.

Further information