Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen

Introduction

The TEL server runs the call flows for telephone calls in the jtel system.

It also runs background processes, such as jobs to create statistics subscription e-mails and convert audio files or create audio with a TTS engine.

Also, usually PBX connectors are run on the TEL server. 

Installation

File Downloads

The following script downloads all the files needed in this section.

Translations Ignore


Code Block
powershell -command "& { Start-BitsTransfer -Source https://cdn.jtel.de/downloads/configs/8server_config_v8.reg -Destination $Env:UserProfile\Downloads }"
powershell -command "& { Start-BitsTransfer -Source https://cdn.jtel.de/downloads/configs/odbc_ini_v52.reg -Destination $Env:UserProfile\Downloads }"
powershell -command "& { Start-BitsTransfer -Source http://cdn.jtel.de/downloads/aculab/AculabInstaller.msi -Destination $Env:UserProfile\Downloads }"
powershell -command "& { Start-BitsTransfer -Source https://cdn.jtel.de/downloads/tools/AutoLogon.zip -Destination $Env:UserProfile\Downloads }"


Configure Data Sources

Import the downloaded file odbc_ini_v52.reg to the registry to configure the data sources in windows.

You may need to change the password entries for each datasource, depending on the password configured for the mysql database.

Prepare 8-Server Registry

Import the downloaded file 8server_config_v8.reg to the registry to prepare the registry for 8-Server.

You will need to change the Machine ID setting - set this to the last byte of the IPv4 address in the local network. You need to change this value to HEX.

Install 8-Server

Clone Repository

Status
colourYellow
titleImportant - THE STARTUP PROCEDURE IN STDCALL_MCP.CFG REQUIRES RC-5.23.13 AS MORE THAN 10 COMMANDS ARE REQUIRED

Run the following commands from a non elevated command prompt:

Translations Ignore


Code Block
c:
cd \
mkdir \8Server
cd \8Server
git clone https://bitbucket.org/jtelgmbh/8-server-deploy.git deploy


Checkout Release

Run the following commands from a non elevated command prompt (in the same one as above):

Translations Ignore


Code Block
cd deploy
git checkout release/rc-5.23.15


Install 8-Server

Telephony and Deamons

Run the following commands from a non elevated command prompt:

Translations Ignore


Code Block
c:
cd \8Server\deploy\OEM\JTEL\
first_install.cmd
copy_keyfile_en_mcp_v67.cmd


Deamons Only

Run the following commands from a non elevated command prompt:

Translations Ignore


Code Block
c:
cd \8Server\deploy\OEM\JTEL\
first_install.cmd
copy_keyfile_en_daemon.cmd


Windows Firewall

The following commands configure the windows firewall. Run these in an elevated cmd window:

Translations Ignore


Code Block
netsh advfirewall firewall add rule name="ICMPv4" protocol=icmpv4:8,any dir=in action=allow edge=yes profile=private,domain
netsh advfirewall firewall add rule name="Hazelcast" dir=in action=allow protocol=TCP localport=5701-5801 edge=no profile=private,domain
netsh advfirewall firewall add rule name="RTP" dir=in action=allow protocol=UDP localport=30000-34999 edge=yes profile=private,domain
netsh advfirewall firewall add rule name="SIP" dir=in action=allow protocol=UDP localport=5060 edge=yes profile=private,domain
netsh advfirewall firewall add rule name="UDP Local" dir=in action=allow protocol=UDP localport=1-65535 edge=no profile=private,domain



Windows Defender

Warning
titleVirus Scan

Note: running an incorrectly configured realtime virus scanner on the telephony server can seriously impact performance or even stop the server working correctly. 

The following commands configure windows defender, to exclude some telephony server processes and directories. 

Translations Ignore


Code Block
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath "C:\8Server"
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionProcess robot5.exe"
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionProcess giHal.exe"
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionProcess giAcu.exe"
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionProcess sipserv.exe"
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionProcess ProsodySServ.exe"


Install Aculab SIP and RTP Stack

Install AIT

Run the following commands from a non elevated command prompt, and install for all users:

Translations Ignore


Code Block
start %USERPROFILE%\Downloads\AculabInstaller.msi


Install Aculab v67

  • Start the AIT application
  • Choose "Connection" -> "Work offline".
  • "File" -> ""Import"  -> Load Aculab Package File...".
    • c:\8Server\deploy\oem\jtel\aculab\v67.apf
  • Target Directory:
    • C:\aculab\v67
  • "Install"


Warning

Note - if secure boot is not switched off in the virtual environment, the installation of the drivers might fail.

Configure Aculab

  • Start ACT 


  • Add a Prosody-S instance
  • Choose "Prosody S" ... "Add...":
  • The serial number can be freely chosen, as can the security key. We recommend 100000 and jtel respectively.

  • Install the licenses
  • Choose "License Manager", Install Licence Keys...



  • Save and apply
  • Choose "Save Settings" then "Apply Settings".
Info
titlestart notepad++

All following config files can be opened via cmd with a simple start notepad++ command to speed up the process

Symmetric RTP

To configure symmetric RTP, as well as setting a static value for the telephone-event payload codec at 101, a file is created in C:\Aculab\v67\cfg\mhp.cfg with the following content:

Code Block
start notepad++ C:\Aculab\v67\cfg\mhp.cfg


Translations Ignore


Code Block
LocalRtpSymmetric=1
PayloadTelephoneEvent=101



Translations Ignore


Warning
titlePayloadTelephoneEvent

A setting to implement a static telephone-event codec might not be required. Please consult with your system administrator before configuring this setting, as usually a negotiation is made in the SDP per call to define the codec for telephone events, which ensures that no static setting is required. 



Port Range

If it is required, that a port range is used for RTP, then the file C:\aculab\v67\cfg\aculab.config must be edited, set the port range as is required by the remote end (PBX / SIP Trunk):

Code Block
start notepad++ C:\aculab\v67\cfg\aculab.config


Translations Ignore


Code Block
...
							<rxrange minvalue="30000" maxvalue="34999"/>
...


Services

Status
colourYellow
titleVery Important for Windows Server 2019

Setup the following Aculab services to start only manually:

  • Aculab Prosody S
  • Aculab Resource Manager
  • Aculab Startup Service

Setup the following Aculab services to be disabled:

  • Aculab SS7 TS Manager

Startup Scripts

Net Use

Check the file file c:\8Server\bin\startup.cmd - to see whether the net use command needs to be changed or not.

Code Block
start notepad++ c:\8Server\bin\startup.cmd


Warning
titleWindows Server 2019

Comment out the following lines in the startup.cmd file:


aculabservicemanager -stop sip

Shortcut

Create a shortcut for:

c:\8Server\bin\startup_launcher.cmd

and place this in shell:startup.

Configuration Files

Create Default Configuration giAculab.cfg

Start a cmd up, and start gihal. This will create a default giAculab.cfg file.

Warning

Note - make sure the aculab services are started at this point.


Do this in an elevated command prompt:

Note

Sometimes windows does not update the path immediately after installation of the components above. The following must be present in the path, and as an environment variable, for the rest of the installation to work:


PATH=...;c:\8Server\gi2\bin
R5_CONFIG_DIR=c:\8Server\Config\

This can be done by entering the following commands into a ADMIN command prompt:

Code Block
cd c:\
setx /M PATH "%PATH%;c:\8Server\gi2\bin"

setx /M R5_CONFIG_DIR "c:\8Server\Config\


Translations Ignore


Code Block
gihal
 
# If it starts, press CTRL+C then cancel


Edit giAculab.cfg

The file is in:

c:\8Server\gi2\config\giAculab.cfg
Code Block
start notepad++ c:\8Server\gi2\config\giAculab.cfg

giAculab.cfg is now configured for SIP with 8-Server. Replace the SIP section in the newly created file with the section below, changing the following:

  • channel_count to the number of licensed SIP channels
  • default_rtp_ip should be changed to the IP address of the NIC in the telephony network in multi-homed systems. Leave as is, if the system is not multi-homed.

Translations Ignore


Code Block
    [SIP]
    {
      netport			                = 0
      channel_count		                = 30
      default_vmp_set		            = "VMP_SET1"
      default_rtp_ip		            = "0.0.0.0"
      default_rtp_dscp		            = 46
      defaultSignallingGateway	        = ""
      numberOnly		                = FALSE
      rfc2833RxToneEvent	            = TRUE
      rfc2833RxInbandToneRegeneration	= TRUE
      rfc2833TxToneConversion	        = TRUE
    }


Edit gi2.ini

Edit the file C:\8Server\gi2\bin\gi2.ini

At the very bottom, change the following setting to 2 (standard is 1):

Code Block
start notepad++ C:\8Server\gi2\bin\gi2.ini


Translations Ignore


Code Block
DISABLE_ERROR_DIALOG = 2


Edit StdCall_MCP.cfg

Status
colourYellow
titleImportant - do not use an older config under Windows Server 2019

The following settings are changed in the file:

c:\8Server\config\StdCall_MCP.cfg
Code Block
start notepad++ c:\8Server\config\StdCall_MCP.cfg
  • Enable_SIP_Registrar - for installations which require a registrar for the SIP trunk (e.g. Panasonic PBX installations)
  • Default_SIP_Contact - change to the IP address of the server (for multi-homed systems use the IP address of the NIC in the telephony network
  • Startup_Command4 und Startup_Sleep4 - delete these lines if the machine does not require registration to a SIP trunk (for example NFON requires registration - in this case leave in!)
  • Total_Channel_Count - Set to the total licensed SIP channel count
  • Inbound_Use_Channels - Set to the number of agents + supervisors + queue + IVR channels
  • Outbound_Use_Channels - Set to the number of agents + supervisors + call transfer channels
  • Note: Total_Channel_Count = Inbound_Use_Channels + Outbound_Use_Channels
Translations Ignore


Code Block
ROOT
{
   StdCall_MCP
   {    
      bool    Use_RemoteHAL                         = TRUE;
	  
      integer LocalStream_RX_Port                   = 0;	  
      integer Dispatcher_ThreadCount                = 4;
	  
      bool    Auto_SETUP_ACK                        = FALSE;
      string  Alert_DefaultFile                     = "c:\8Server\Voice\System\070.wav";
	  
      integer Stream_Receiver_MaxUnconfirmedPackets = 8;
      integer Stream_Receiver_MaxBufferSize         = 16384;
      integer Stream_Sender_Timeout                 = 2000;
      integer Stream_Sender_MaxBufferSize           = 16384;
	  
      integer SIP_Interceptor_Port                  = 5060;
      bool    Enable_SIP_Interceptor                = TRUE;
	  integer Start_SIP_Interceptor_After_Command   = 5;
	  bool    Enable_SIP_Registrar                  = FALSE;
      bool    Enable_L3_Monitor                     = FALSE;

      string  Default_SIP_Contact                   = "<sip:10.42.13.84>";

	  string  Startup_Command0                      = "c:/windows/system32/taskkill.exe /im gihal.exe /f";
	  integer Startup_Sleep0                        = 2000;	  
	  string  Startup_Command1                      = "c:/windows/system32/taskkill.exe /im giacu.exe /f";
	  integer Startup_Sleep1                        = 2000;	  
	  string  Startup_Command2                      = "c:/aculab/v67/bin/amd64/aculabservicemanager -stop sip";
	  integer Startup_Sleep2                        = 2000;
	  string  Startup_Command3                      = "c:/windows/system32/net.exe stop acuresmgr";
	  integer Startup_Sleep3                        = 2000;
	  string  Startup_Command4                      = "c:/windows/system32/net.exe stop prosodysserv";
	  integer Startup_Sleep4                        = 2000;	  
	  string  Startup_Command5                      = "c:/windows/system32/net.exe stop aculabstartupservice";
	  integer Startup_Sleep5                        = 2000;
	  string  Startup_Command6                      = "c:/windows/system32/net.exe start aculabstartupservice";
	  integer Startup_Sleep6                        = 2000;
	  string  Startup_Command7                      = "c:/windows/system32/net.exe start acuresmgr";
	  integer Startup_Sleep7                        = 2000;
	  string  Startup_Command8                      = "c:/windows/system32/net.exe start prosodysserv";
	  integer Startup_Sleep8                        = 2000;
	  string  Startup_Command9                      = "c:/aculab/v67/bin/amd64/aculabservicemanager -start sip";
	  integer Startup_Sleep9                        = 2000;
	  string  Startup_Command10                     = "c:/8Server/gi2/bin/giHal.exe -w -tingtrace";
	  integer Startup_Sleep10                       = 20000;	  
	  string  Startup_Command11                     = "c:/8Server/bin/startup_registrations.cmd";
	  integer Startup_Sleep11                       = 1000;
	  
	  string  Shutdown_Command0                     = "c:/windows/system32/taskkill.exe /im gihal.exe /f";
	  integer Shutdown_Sleep0                       = 2000;
	  string  Shutdown_Command1                     = "c:/windows/system32/taskkill.exe /im giacu.exe /f";
	  integer Shutdown_Sleep1                       = 2000;

      Controller1
      {
         integer Total_Channel_Count    = 20;
         integer Inbound_Use_Channels   = 10;
         integer Outbound_Use_Channels  = 10;
         string  HAL_HostName           = "127.0.0.1";
         bool    SIP_URL_Cleaner        = TRUE;     
		 bool    SIP_Number_Cleaner     = TRUE;  
         bool    Ignore_L1Status        = TRUE;
         bool    RFC2833_DTMF_Detection = TRUE;
      };
   };
};


8-Server Configuration

Startup 8-Server:

Translations Ignore


Code Block
c:\8Server\Bin\robot5.exe


Configuration

Machine ID (Settings ... General)

Set to the last byte of the IPv4 address of the machine.

Internet Components

Increase the number of UDP components, but only on machines which have a lot of lines. 

Recommend: up to 200 lines use 40. Above 200 lines, increase by 20 for every additional 100 lines.

UDP Settings

If building a cluster with more than one 8-Server, enter the broadcast address for interchassis communication, using port 20202:


Daemon Processes

Check the loaded deamons, and possibly remove not needed processes.

The following list is for a combined server (telephony and daemon applications):


Translations Ignore


Code Block
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.AcdEvents.Cleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.AcdEvents.Distribute.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.DailyAutoGroupLogout.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.DailyAutoUserLogout.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.GroupDistribute.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.LongCalls.Warning.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.UDP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\conf\ConfServer.Daemon.UDP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.8Server.LogFileCleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Audio.Converter.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.ChangeEvent.Manager.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.EventSpool.SMS.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.EventSpool.SMTP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Recordings.Cleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Recordings.Manager.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.ReportSubscriptions2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Cleaner.v2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Update.v2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\TimeServiceMonitor\portal.Daemon.TimeServiceMonitor.r5
C:\8Server\Samples\LogFileCleaner\8Server.Daemon.LogFileCleaner.mySQL.r5


The following list is for a pure telephony server (daemon applications are running on a separate server):


Translations Ignore


Code Block
titleList of daemons of a telephony server
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.UDP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\conf\ConfServer.Daemon.UDP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Update.v2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\TimeServiceMonitor\portal.Daemon.TimeServiceMonitor.r5
C:\8Server\Samples\LogFileCleaner\8Server.Daemon.LogFileCleaner.mySQL.r5



The following list is for a pure daemon application server:

Translations Ignore


Code Block
titleList of daemons in a daemon server
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.AcdEvents.Cleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.AcdEvents.Distribute.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.DailyAutoGroupLogout.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.DailyAutoUserLogout.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.GroupDistribute.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.LongCalls.Warning.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.UDP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.8Server.LogFileCleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Audio.Converter.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.ChangeEvent.Manager.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.EventSpool.SMS.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.EventSpool.SMTP.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Recordings.Cleaner.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.Recordings.Manager.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.ReportSubscriptions2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Cleaner.v2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Update.v2.r5
\\acd-store\shared\JTELCarrierPortal\AppServer\TimeServiceMonitor\portal.Daemon.TimeServiceMonitor.r5
C:\8Server\Samples\LogFileCleaner\8Server.Daemon.LogFileCleaner.mySQL.r5


Stop 8-Server

Now shutdown 8-Server using File ... Exit.

8-Server License

Use C:\8Server\bin\KeyOrder6.exe to request a license for 8-Server:

Send the file C:\8Server\bin\8server.key to support@jtel.de 

Once the license file is received, delete the file: 

C:\8Server\bin\8server.key 

and place the license file in:

C:\8Server\Config

Install the Platform UDP Listener

Installation

Install the platform UDP listener with the following commands:

Translations Ignore


Code Block
titleInstallation des Platform UDP Listeners
C:
md \PlatformUDPlistener
xcopy /E \\acd-store\shared\JTELCarrierPortal\Utils\Install\PlatformUDPListener C:\PlatformUDPlistener 
copy \\acd-store\shared\hazelcast.xml C:\PlatformUDPlistener\conf


Shortcut

Create a shortcut from:

c:\PlatformUDPListener\startListener.bat

and place this in shell:startup

Test

Start the platform UDP listener. It should find other cluster members, for example the webserver or database master, if other machines are already active.

Windows Autostart

To enable all applications to startup automatically (unless they are installed as services), an automatic login should be configured on windows.

Unpack AutoLogin.zip, and run the executable. 

Setup the required account details, and save. 

Reboot the machine to test! Note - give the machine a couple of minutes since if you attach via RDP to the account running the jtel applications, you will cause a login to occur and the applications to be started.


...