Beschreibung der Rolle

Die TEL Server sind dafür zuständig Call-Flow-Applikationen und zentrale Verwaltungs- und Steuerfunktionen in Form von R5-Skripten auszuführen. Des weiteren werden auf diesen Servern in der Regel auch die Connectoren für Synchronisation verschiedner Bentzer und Telefonie-Stati der Telefonanlagen installiert.

Einrichtung der Zeitsynchronisation (Alternativer Zeitdienst)

portal.Daemon.TimeServiceMonitor.r5 stoppen im 8-Server falls installiert. 

Zeitdienst herunterladen und installieren:

http://cdn.jtel.de/downloads/NTP/ntp-4.2.8p10-win32-setup.exe

Immer auf next, bis zur Auswahl der Zeitserver. Zuerst den Kundenserver angeben (falls vorhanden), dann die ptb Zeitserver: ptbtime1.ptb.de,ptbtime2.ptb.de,ptbtime3.ptb.de

Dann installation abschließen. 

Monitor installieren:

http://cdn.jtel.de/downloads/NTP/ntp-time-server-monitor-104.exe

Sicherstellen dass dienst läuft. Monitor prüfen, dass mindestens einer der Zeitserver "grün" ist.

Achtung:

Konfigurieren der Datenquellen

Als nächstes müssen die Datenquellen im ODBC Administrator konfiguriert werden.

Folgende Registry-File downloaden und importieren:

http://cdn.jtel.de/downloads/configs/odbc_ini.reg

Installieren des 8Servers

Repository Clonen

  1. https://git.jtel.de/scm/jtel/generation6deploy.git in das zu erstellende Verzeichnis c:\8Server\deploy
  2. Wechsel auf release/rc-5.23.1

Beide Aktionen erfordern die Kenntnis gültiger Zugangsberechtigungen zum zentralen jtel Software-Server.

Software Installieren

Telefonie und Daemonen:

c:\8Server\deploy\OEM\JTEL\first_install.cmd
c:\8Server\deploy\OEM\JTEL\copy_keyfile_en_mcp.cmd

Nur Daemonen:

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

Installieren des Aculab Media Servers

AIT Installieren

v67 Paket installieren

Aculab Konfiguration

Startup Scripts

Ggf in c:\8Server\bin\startup.cmd das "net use" anpassen.

Verknüpfungen

Verknüpfung von 

c:\8Server\bin\startup_launcher.cmd

Auf den Desktop sowie nach shell:startup legen.

Aculab Konfiguration für 8-Server

giAculab config erzeugen (cmd als ADMIN):

gihal
 
# Falls es startet, mit CTRL+C dann abbrechen

giAculab.cfg muss nun angepasst werden.

Den Einstellungsbereich unten kopieren und in der Zieldatei ersetzen.

    [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
    }

Eine weitere Änderung betrifft die Datei C:\8Server\gi2\bin\gi2.ini: hier sollte der Wert DISABLE_ERROR_DIALOG folgendermaßen angepasst werden:

DISABLE_ERROR_DIALOG = 2

Die letzte Datei, an der manuelle Anpassungen erfolgen müssen, ist C:\8Server\config\StdCall_MCP.cfg 

Folgende Einstellungen insbesonders beleuchten:

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   = 1;
	  bool    Enable_SIP_Registrar                  = FALSE;
      bool    Enable_L3_Monitor                     = FALSE;

      string  Default_SIP_Contact                   = "<sip:10.4.11.81>";

	  string  Startup_Command0                      = "c:/windows/system32/taskkill.exe /im gihal.exe /f";
	  integer Startup_Sleep0                        = 2000;
	  string  Startup_Command1                      = "c:/aculab/v67/bin/amd64/aculabservicemanager -stop sip";
	  integer Startup_Sleep1                        = 2000;
	  string  Startup_Command2                      = "c:/aculab/v67/bin/amd64/aculabservicemanager -start sip";
	  integer Startup_Sleep2                        = 2000;
	  string  Startup_Command3                      = "c:/8Server/gi2/bin/giHal.exe -w -tingtrace";
	  integer Startup_Sleep3                        = 5000;
	  string  Startup_Command4                      = "c:/8Server/bin/startup_registrations.cmd";
	  integer Startup_Sleep4                        = 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;
	  string  Shutdown_Command2                     = "c:/aculab/v67/bin/amd64/aculabservicemanager -stop sip";
	  integer Shutdown_Sleep2                       = 2000;

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

In dieser Datei müssen die Werte entsprechend obigen Beispiel angepasst werden. Abschnitte für die Controller 2 bis 4 können gelöscht werden. Im Controller 1 sind folgende Werte den Anforderungen anzupassen:

Hierbei sollte die Summe aus Inbound_Use_Channels und Outbound_Use_Channels dem Wert von Total_Channel_Count entsprechen.

Die Einstellung Default_SIP_Contact muss auf die IP Adresse im Rechner geändert werden, auf dem SIP Pakete gesendet und empfangen werden.

Werden die SIP Injections benötigt, so muss die Einstellung "Enable_SIP_Interceptor" auf TRUE gesetzt werden.

Symmetrisches RTP

Unter gewissen Umständen ist es erforderlich, symmetrisches RTP zu aktivieren.

Wichtige Änderung 28.07.2016 (anlässlich vermutlicher Bug in Inno): wir installieren alle Systeme mit symmetrisches RTP.

Dies erfordert, dass eine neue Konfigurationsdatei Namens C:\Aculab\v66\cfg\mhp.cfg mit folgendem Inhalt angelegt wird:

 LocalRtpSymmetric=1

Diese Einstellung erfordert ein Neustart des Aculab Systems. Ein Neustart der Maschine kann dafür auch herhalten.

Interaktive Konfigurationsschritte des 8Servers

Die nächsten Konfigurationsschritte müssen nun direkt in den Konfigurationsdialogen des 8Servers erfolgen. Dafür muss der 8Server gestartet werden, was durch Ausführen der Datei C:\8Server\bin\robot5.exe direkt aus dem Explorer erfolgen soll. Bitte nicht den Server mit dem Startup Skript starten! Da der 8Server selber noch über keine Lizenzdatei verfügt, wird dieser zwar starten, aber eine Fehlermeldung anzeigen und keine Leitungen jeglicher Art initialisieren. Dieser Umstand ist bei der Erstkonfiguration sogar von Vorteil, da start und stop schneller sind, keine überflüssigen Protokolldateien generiert und geschrieben werden, eingetragene Prozesse (Daemonen) nicht gestartet werden, bis das die Konfiguration finalisiert ist und eine gültige Lizenzdatei erstellt wurde.

Die Konfigurationszentrale des 8Servers erreicht man über den Menüpunkt "Settings" -> "System Settings...":

Hier werden nun in folgender Reihenfolge verschiede Einstellungen getätigt.

Bereich Folders:

In diesem Bereich werden verschiedene Verzeichnisse eingetragen. Basierend auf der Beispielskonfiguration sind dies:

Bereich General Settings:

Bereich Internet Components

Hier muss der Wert von "UDP - User Datagram Protocol" festgelegt werden. Dieser ergibt sich in der Regel aus der Gesamtsumme Kanäle plus die maximale Anzahl Daemonen (üblicherweise 40).

Der Wert "HTTP - Hypertext Transfer Protocol with Parser" muss erhöht werden, damit automatische Berichte versendet werden. Ansonsten entsteht ein Fehler, dass der Berichtsname nicht ersetzt (es bleibt der Variablennamen im Output stehen) und die E-Mail nicht gesendet wird. (üblicherweise 100).

Bereich ODBC Settings

Im Reiter "Options" muss das Auswahlfeld "connection pool for static data sources, separate connection per line for dynamic data sources" aktiviert werden:

Im Reiter "Data Sources" müssen hingegen die drei Datenbanken, welche bereits vorhin im ODBC Administrator eingetragen wurden, nachgetragen werden. Dies erfolgt durch Betätigen der Schaltfläche "Add". Der Nachfolgende Dialog erlaubt die Auswahl einer Datenbank aus den bereits im ODBC Administrator konfigurierten Datenbanken:

Hier müssen dann jeweils dem "Connection String" noch die Zugangsdaten hinzugefügt werden (z.B.: ;UID=root;PWD=fireball) und als Rollback string folgende Zeile:

DO GET_LOCK('unlock', 10); DO RELEASE_LOCK('unlock'); ROLLBACK;

Bereich TCP Settings

Hier muss lediglich für den Wert "Send recurring messages every (s)" der Wert 5 eingetragen werden.

Bereich Telephony controller

Hier muss lediglich ein Controller hinzugefügt werden.

Bereich Telephony settings and programs

Dieser Bereich muss nur ausgefüllt werden, wenn der 8Server Call-Flow-Applikationen (Telefonie) ausführt.

Bereich Telephony trace

Hier braucht lediglich das erste Kontrollkästchen "not used" aktiviert zu werden.

Bereich UDP Settings

Hier wird ein weiterer 8-Server eingetragen, wenn das System redundant aufgestellt ist mit zwei 8Servern. IP-Adresse des 8Servers, Port 20202

Die Server gleichen sich gegenseitig ab. Die Interchassis-Communications-Infos werden geloggt und unter "System messages" angezeigt.

Bereich VoIP routing

Im Reiter "Settings" sollten hier die Zeichenketten eingetragen werden, die von manchen Telefonanlagen bei anonymen Anrufen signalisiert werden. Typische Werte hierfür sind: anonymous oder gateway - es wird berichtet, dass man hier mehrere alternative Werte durch Kommata getrennt angeben kann.

Bei Loopback Prevention List sollten kommasepariert Hostnamen und IP Adressen der 8-Server(n) eingetragen werden. Diese Information wird genutzt um Schleifen zu verhindern, für den Fall das die Trunk-Gruppe im Portal mit Schleifenverhinderung konfiguriert ist. 

Einstellung bei der Trunk-Gruppe im Portal:

Bereich Daemon Processes

Hier muss erst mal die maximale Anzahl Daemonen-Prozesse festgelegt werden. Eine übliche Größe ist 40.
Die Liste der Daemonen unterscheidet sich je nach dem ob es sich um einen Kombi-Server (Call-Flow-Applikationen und zentrale Verwaltungs- und Steuerfunktionen), einen reinen Daemon Server (Nur zentrale Verwaltungs- und Steuerfunktionen) oder einen Telephonie Server (Nur Call-Flow-Applikationen) handelt.
Bei einem Kombi-Server oder reinen Daemon-Server müssen mindestens folgende Daemonen eingetragen werden (Die Pfade orientieren sich an der Beispielskonfiguration):

 

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


Bei einem reinen Telefonie-Server müssen mindestens folgende Daemonen eingetragen werden (Die Pfade orientieren sich an der Beispielskonfiguration):

 

C:\8Server\Samples\LogFileCleaner\8Server.Daemon.LogFileCleaner.mySQL.r5
\\acd-lb\shared\JTELCarrierPortal\AppServer\acd\Daemons\acd.Daemon.UDP.r5
\\acd-lb\shared\JTELCarrierPortal\AppServer\conf\ConfServer.Daemon.UDP.r5
\\acd-lb\shared\JTELCarrierPortal\AppServer\Portal.Daemon.SystemStartSequence.Update.v2.r5
\\acd-lb\shared\JTELCarrierPortal\AppServer\TimeServiceMonitor\portal.Daemon.TimeServiceMonitor.r5

Bei einem Daemonen-Server müssen mindestens folgende Daemonen eingetragen werden (Die Pfade orientieren sich an der Beispielskonfiguration):

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

Hiermit ist die Interaktive Grund-Konfiguration des 8Servers abgeschlossen. Der 8Server kann nun beendet werden, so dass eine gültige Lizenz generiert und eingespielt werden kann.

8Server Lizenz anfordern

Die Anforderung der Lizenz erfolgt mittels des Programms C:\8Server\bin\KeyOrder3.exe direkt aus dem Explorer:

Nach dem Ausfüllen und der Betätigung der Schaltfläche "Generate" wird die Datei C:\8Server\bin\8server.key generiert, welche die Lizenzanforderung enthält. Fall der Installateur keinen Zugriff auf das Lizensierungstool hat, so ist diese Datei direkt an support@jtel.de bzw. lewis.graham@jtel.de zu senden. Sobald eine gültige Lizenzdatei verfügbar ist, muss diese ins Verzeichnis C:\8Server\Config Verzeichnis eingespielt werden.

Installation des Hazelcast Platform UDP Listeners (ab Version 3.06)

Ab Version 3.06 der jtel-Software muss auf jedem TEL-Server ein UDP Listener Prozess installiert werden.

Java Laufzeitumgebung prüfen

Da der UDP Listener Prozess auf Java basiert, sollte nochmals geprüft werden, dass die Java Laufzeitumgebung verfügbar ist. Die kann aus einer Befehlszeile mit folgendem Befehl erfolgen:

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\>java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing)

C:\>

Platform UDP Listener Installieren

Im Anschluss wird der Platform UDP Listener mit folgenden Befehlen installiert:

C:
md \PlatformUDPlistener
xcopy /E \\acd-lb\shared\JTELCarrierPortal\Utils\Install\PlatformUDPListener C:\PlatformUDPlistener 

Im Kapitel Installation der Rolle DATA wurde bereits die Konfigurationsdatei für den Hazelcast Cluster erstellt und ins freigegebene Verzeichnis kopiert. Von dort kann nun die Konfigurationsdatei geholt werden:

copy \\acd-lb\shared\hazelcast.xml C:\PlatformUDPlistener\conf

Der Platform UDP Listener kann als Dienst oder als normaler Prozess gestartet werden. Nachfolgend die Anleitungen für die verschiedenen Varianten:

Starten als Prozess

für den Start des UDP Listeners als Prozess steht ein Skript in C:\PlatformUDPListener bereit. Zu diesem Skript sollte eine Verknüpfung auf dem Desktop erstellt werden.

Starten als Dienst

Die Registrierung des Platform UDP Listeners als Dienst erfordert einen sehr komplexen Aufruf eines Tools mit dutzenden Parameter. Um dies zu vereinfachen, befinden sich auf C:\PlatformUDPListener zwei Skripte, die diese Installation ausführen können und somit die Prozedur erheblich vereinfachen. Idealerweise sollte der Dienst unter dem Benutzeraccount laufen, unter dem auch der 8Server läuft. Die Installation erfolgt folgendermaßen:

C:
CD \PlatformUDPListener
install-service.cmd .\jtel F1r3ball

Benutzername und Passwort sind gegebenenfalls anzupassen. Wenn kein Benutzername und kein Passwort angegeben wird, wird der Dienst so installiert, dass er unter dem lokalen Diensteaccount läuft. Dies kann allerdings unter Umständen zu Problemen mit den Datei-Berechtigungen führen, ist also nicht empfohlen.

Prüfen, dass de.jtel.platform.agent.events.UDPListener.Source.address richtig configuriert ist

2016-07-20 12:14:44,671 INFO udp.UDPListener: UDPListener::init listen 0.0.0.0:20644
2016-07-20 12:14:44,671 INFO udp.UDPListener: UDPListener::init event source - TEST8S6
2016-07-20 12:14:44,681 INFO udp.UDPListener: UDPListener::init event source resolved - 10.42.13.86

Kommentieren sie console logging appender.

<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<!--<appender-ref ref="CONSOLE" /> -->
<!-- appender-ref ref="SYSLOG" / -->
<appender-ref ref="FILE" />

Der Dienst kann dann regulär im Dienste-Kontrollpanel gestartet werden oder wahlweise über die Befehlszeile.