# This section shall contain the values of all parameters that are defined in your TTCN-3 modules.

[MODULE_PARAMETERS]

tsp_STUN_ip_address := "127.0.0.1"

# In this section you can specify the name of the log file and the classes of events
# you want to log into the file or display on console (standard error).

[LOGGING]
LogFile := "%e.%h-%t%r.%s"
FileMask := TTCN_ACTION | TTCN_DEFAULTOP | TTCN_ERROR | TTCN_EXECUTOR | TTCN_PARALLEL | TTCN_TESTCASE | TTCN_PORTEVENT | TTCN_STATISTICS | TTCN_TIMEROP |TTCN_VERDICTOP | TTCN_WARNING | TTCN_USER | TTCN_DEBUG 
ConsoleMask := TTCN_ACTION | TTCN_ERROR | TTCN_EXECUTOR | TTCN_STATISTICS | TTCN_VERDICTOP | TTCN_WARNING |TTCN_PORTEVENT
SourceInfoFormat := Single#Stack
TimeStampFormat := DateTime
LogEventTypes := Yes
LogEntityName := Yes

[TESTPORT_PARAMETERS]

# In this section you can specify parameters that are passed to Test Ports.
[DEFINE]

# In this section you can create macro definitions,
# that can be used in other configuration file sections except [INCLUDE].
[INCLUDE]

# To use configuration settings given in other configuration files,
# the configuration files just need to be listed in this section, with their full or relative pathnames.
[EXTERNAL_COMMANDS]

# This section can define external commands (shell scripts) to be executed by the ETS
# whenever a control part or test case is started or terminated.
#BeginTestCase := ""
#EndTestCase := ""
#BeginControlPart := ""
#EndControlPart := ""
[EXECUTE]
# In this section you can specify what parts of your test suite you want to execute.
STUN_Demo.control

# In this section you can specify groups of hosts. These groups can be used inside the
# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.
[COMPONENTS]

# This section consists of rules restricting the location of created PTCs.
[MAIN_CONTROLLER]
# The options herein control the behaviour of MC.
TCPPort := 9995
KillTimer := 10.0
# NumHCs := 1

//saved by GUI
