Einbindung alternativer Messaging-Provider

Der von INTREXX vorkonfigurierte Phone Provider "seven.io“ kann durch einen beliebigen Messaging-Provider ersetzt werden. Auch eigene Hardware (Telefonanlagen, GSM-Karten) oder Software können gegebenenfalls angebunden werden.

Folgende Schritte müssen durchgeführt werden:

  • Datei "00-phone-service-context" kopieren und im entsprechenden Verzeichnis im Portal ablegen

  • Erforderliche Informationen des Providers anfordern

  • Prozess erstellen, der SMS oder Sprachanruf umsetzt

  • Einbinden des Providers in der jeweiligen Methode

Datei "00-phone-service-context" kopieren und im Portal ablegen

Damit ein alternativer Messaging-Provider von Intrexx genutzt wird, müssen Sie die Datei 00-phone-service-context kopieren und im entsprechenden Verzeichnis im Portal ablegen.

Die Datei 00-phone-service-context finden Sie in folgendem Verzeichnis:

<intrexx-installationsverzeichnis>\samples\custom-phone-service\internal\cfg\spring\custom

Kopieren Sie die Datei und fügen Sie sie in folgendes Verzeichnis ein:

<portalverzeichnis>\internal\cfg\spring\custom

Führen Sie einen Neustart des Portalserver-Dienstes durch.

Die erforderlichen Informationen des Providers

Folgende Informationen werden von einem Provider für die Versendung eines Sprachanrufs / einer SMS benötigt:

Übersicht über den Aufbau des Prozesses

Hier behandeln wir den Prozess, der Informationen aus Intrexx ermittelt und an den Provider übergibt.

Übersicht der Aufgaben im Prozess:

  1. Generischer Ereignisbehandler:

    Er reagiert auf das Event "Multi-Faktor-Authentifizierung", sofern die SMS- bzw. Sprachanruf-Methode gewählt wurde.

  2. Groovy-Aktion:

    Die Daten der Nachricht (Absender, Nachricht) werden per Groovy ermittelt und in den Verarbeitungskontext geschrieben.

  3. Rest-Call-Aktion

    Die Rest-Call führt den Request aus und sendet die SMS bzw. den Sprachanruf an den im Anmeldeinformationsspeicher hinterlegten Messaging-Provider.

SMS

Zum Versenden einer SMS durch einen alternativen Provider bei der Multi-Faktor-Authentifizierung öffnen Sie den Portal Manager und wechseln in das Modul "Prozesse". Erstellen Sie einen neuen Prozess.

Klicken Sie in der Symbolleiste auf das Symbol des Prozessmanagers.

Im Prozessmanager klicken Sie auf den ersten Eintrag "Neuer Prozess".

Brechen Sie den Dialog "Neuer Prozess" über die "Abbrechen"-Schaltfläche ab.

Generischer Ereignisbehandler

Fügen Sie die "Generische Ereignisquelle" per Drag & Drop im Prozess ein.

Vergeben Sie den Titel "SMS". Der Prozess reagiert auf externe und interne Ereignisse.

Klicken Sie auf "Weiter".

Konfiguration

Wählen Sie aus der Liste die Klasse

"de.uplanet.lucy.server.phoneservice.workflow.eventhandler.PhoneServiceSendWorkflowEventHandler"

aus.

Fügen Sie über das Plus-Symbol einen neuen Eintrag hinzu.

SMS aktivieren

Der SMS-Versand soll berücksichtigt werden:

Wählen Sie die Klasse "handleSendSmsEvent" aus und hinterlegen Sie den Wert "true".

Sprachanruf deaktivieren

Fügen Sie über das Plus-Symbol einen neuen Eintrag hinzu, damit Sprachanrufe ignoriert werden.

Wählen Sie die Klasse "handleMakeVoiceCallEvent" und hinterlegen Sie den Wert "false".

Schließen Sie alle geöffneten Dialoge mit "OK".

Groovy-Aktion

Fügen Sie dem Generischen Ereignisbehandler eine Groovy-Aktion hinzu.

Wechseln Sie mit einem Doppelklick in den Eigenschaftendialog.

Klicken Sie auf "Weiter" und öffnen Sie den Intrexx-Editor über den gleichnamigen Link.

Der Skript-Editor von Intrexx öffnet sich.

Hinterlegen Sie das folgende Skript, in dem Absender, Empfänger und Text ermittelt und in den Verarbeitungskontext in Intrexx geschrieben werden:

// Required parameters
def msgTo   = g_event.recipients.join(',')
def msgText = g_event.text
				
// Optional parameters must contain a value for REST call
def msgFrom = "Intrexx"
if (g_event.optionalParameters.from)
	{
		msgFrom = g_event.optionalParameters.from
	}
g_sharedState.msgFrom = msgFrom
g_sharedState.msgTo   = msgTo
g_sharedState.msgText = msgText

Übernehmen Sie alle geöffneten Dialoge mit "OK".

REST-Call-Aktion

Fügen Sie der Groovy-Aktion jetzt eine REST-Call-Aktion hinzu.

Allgemein

Hinterlegen Sie den Alias "sendSMS" und einen Titel mit "Send SMS". Aktivieren Sie bei den Verbindungseinstellungen die Kontrollkästchen "Request und Response loggen" und "Hostnamen verifizieren".

Klicken Sie auf "Weiter".

Authentifizierung und Header

Die Authentifizierung werden wir über den API-Key des externen Providers konfigurieren.

Wählen Sie den Typ "API-Key" aus der Liste und dann die Option "X-API-Key".

Resource-Mapping

Wir werden nun das Resource-Mapping mit unseren Werten des Anmeldeinformationsspeichers sowie des Verarbeitungskontextes füllen:

  • API-Key des Providers

  • msgFrom

  • msgTo

  • msgText

Diese Informationen werden wir in diesem und in den nächsten Dialogen im Request verarbeiten.

Klicken Sie neben dem Feld "Token" auf das Symbol "Resource-Mapping".

apiKeyProvider

Im Resource-Mapping fügen Sie über das Plus-Symbol eine neue Ressource hinzu:

  • Key: apiKeyProvider

  • Ressource: Anmeldeinformationsspeichers

  • Passwort: Wählen Sie den Eintrag der hinterlegten API-Key Ihres Providers

Übernehmen Sie den Dialog mit "OK".

msgForm

Klicken Sie im Resource-Mapping erneut auf das Plus-Symbol, um die Ressource "msgForm" aus dem Verarbeitungskontext hinzuzufügen.

  • Key: msgForm

  • Ressource: Verarbeitungskontext

  • Wert: msgForm

Übernehmen Sie den Dialog mit "OK".

msgTo

Erzeugen Sie über das Plus-Symbol eine neue Ressource:

  • Key: msgTo

  • Ressource: Verarbeitungskontext

  • Wert: msgTo

Übernehmen Sie den Dialog mit "OK".

 

msgText

Erzeugen Sie über das Plus-Symbol eine neue Ressource:

  • Key: msgText

  • Ressource: Verarbeitungskontext

  • Wert: msgText

Übernehmen Sie den Dialog mit "OK".

Es sind nun alle Ressourcen definiert.

Markieren Sie bitte die Ressource "apiKeyProvider" und übernehmen Sie den Dialog mit "OK".

Die gewählte Ressource wurde in den "Token" sowie als Wert in den "Header" übernommen.

Headers

Erstellen Sie im Header zwei neue Einträge:

  • Accept

  • Content-Type

Klicken Sie auf das Plus-Symbol, um die folgenden Einträge zu definieren:

Accept

Key: Accept

Wert: application/json

Übernehmen Sie den Dialog mit "OK".

Content-Type

Key: Content-Type

Wert: application/xwww-form-urlencoded

Übernehmen Sie den Dialog mit "OK".

Der Dialog "Authentifizierung und Header" ist abgeschlossen.

Klicken Sie auf "Weiter".

Request

Im Request werden wir jetzt dafür sorgen, dass die Nachrichten verwendet werden. Hinterlegen Sie dazu die Methode "POST".

Füllen Sie die folgenden Eingabefelder mit den Informationen, die Ihnen von Ihrem Provider vorliegen:

  • Schema

  • Hostname

  • Pfad

Klicken Sie auf "Weiter".

Body

Im Body wird jetzt die SMS-Nachricht definiert.

Über das Symbol auf der rechten Seite können Sie auf das Resource-Mapping zugreifen, in dem Sie alle erforderlichen Einträge aus dem Verarbeitungskontext hinterlegt haben.

Hinterlegen Sie darüber Absender, Empfänger und Text der Nachricht wie folgt:

from=${msgFrom}&to=${msgTo}&text=${msgText}

Übernehmen Sie den Dialog mit "OK".

Wechseln Sie in die Eigenschaften des Prozesses, indem Sie einen Doppelklick auf den Prozess-Reiter ausführen. Vergeben Sie den Titel " Authentifizierung - alternativer Provider". Übernehmen Sie den Dialog mit "OK" und speichern Sie den Prozess.

Jetzt ist der Prozess aktiv: Wenn nun eine Multi-Faktor-Authentifizierung über die Methode "SMS" gewählt wird, tritt der Prozess in Kraft und versendet die erforderlichen Informationen an den Benutzer.

Sprachanruf

Zum Versenden eines Sprachanrufs durch einen alternativen Provider bei der Multi-Faktor-Authentifizierung öffnen Sie den Portal Manager und wechseln in das Modul "Prozesse". Öffnen Sie den eben erstellten Prozess " Authentifizierung - alternativer Provider".

Generischer Ereignisbehandler

Ziehen Sie die "Generischer Ereignisbehandler" per Drag & Drop in den Prozess.

Vergeben Sie den Titel "Sprachanruf". Der Prozess reagiert auf externe und interne Ereignisse.

Klicken Sie auf "Weiter".

Konfiguration

Wählen Sie aus der Liste die Klasse

"de.uplanet.lucy.server.phoneservice.workflow.eventhandler.PhoneServiceSendWorkflowEventHandler" aus.

Sprachanruf aktivieren

Fügen Sie über das Plus-Symbol einen neuen Eintrag hinzu.

Der Sprachanruf soll berücksichtigt werden:

Wählen Sie die Klasse "handleMakeVoiceCallEvent" und hinterlegen Sie den Wert "true".

SMS deaktivieren

Fügen Sie über das Plus-Symbol einen neuen Eintrag hinzu, damit Sprachanrufe ignoriert werden:

Wählen Sie die Klasse "handleSendSmsEvent" aus und hinterlegen Sie den Wert "false".

Schließen Sie alle geöffneten Dialoge mit "OK".

Groovy-Aktion

Fügen Sie dem Generischen Ereignisbehandler eine Groovy-Aktion hinzu.

Wechseln Sie mit einem Doppelklick in den Eigenschaftendialog. Klicken Sie auf "Weiter" und öffnen Sie den Intrexx-Editor über den gleichnamigen Link.

Hinterlegen Sie das folgende Skript, in dem Empfänger und Text ermittelt und in den Verarbeitungskontext in Intrexx geschrieben werden:

// Required parameters
def msgTo   = g_event.recipients.join(',')
def msgText = g_event.text
println(msgTo)
println(msgText)
g_sharedState.msgTo   = msgTo
g_sharedState.msgText = msgText
		

Übernehmen Sie alle geöffneten Dialoge mit "OK".

REST-Call-Aktion

Fügen Sie der Groovy-Aktion jetzt eine REST-Call-Aktion hinzu.

Wechseln Sie mit einem Doppelklick in den Eigenschaftendialog.

Allgemein

Hinterlegen Sie den Alias "sendVoiceCall" und einen Titel mit „Send VoiceCall“. Aktivieren Sie bei den Verbindungseinstellungen die Kontrollkästchen „Request und Response loggen" und "Hostnamen verifizieren".

Klicken Sie auf "Weiter".

Authentifizierung und Header

Die Authentifizierung werden wir über den API-Key des externen Providers konfigurieren. Wählen Sie den Typ "API-Key" aus der Liste und wählen die Option "X-API-Key".

Resource-Mapping

Wir werden nun das Resource-Mapping mit den Werten des Anmeldeinformationsspeichers und des Verarbeitungskontextes füllen:

  • API-Key des Providers

  • msgFrom

  • msgTo

  • msgText

Diese Informationen werden wir in diesem und den nächsten Dialogen im Request verarbeiten.

Klicken Sie neben dem Feld "Token" auf das Symbol "Resource-Mapping".

apiKeyProvider

Im Resource-Mapping fügen Sie über das Plus-Symbol eine neue Ressource hinzu:

  • Key: apiKeyProvider

  • Ressource: Anmeldeinformationsspeichers

  • Passwort: Wählen Sie den Eintrag der hinterlegten API-Key Ihres Providers

Übernehmen Sie den Dialog mit "OK".

msgForm

Klicken Sie im Resource-Mapping erneut auf das Plus-Symbol, um die Ressource "msgForm" aus dem Verarbeitungskontext hinzuzufügen.

  • Key: msgForm

  • Ressource: Verarbeitungskontext

  • Wert: msgForm

Übernehmen Sie den Dialog mit "OK".

msgTo

Erzeugen Sie über das Plus-Symbol eine neue Ressource:

  • Key: msgForm

  • Ressource: Verarbeitungskontext

  • Wert: msgForm

msgText

Erzeugen Sie über das Plus-Symbol eine neue Ressource:

  • Key: msgText

  • Ressource: Verarbeitungskontext

  • Wert: msgText

Übernehmen Sie den Dialog mit "OK".

Es sind nun alle Ressourcen definiert.

Markieren Sie bitte die Ressource "apiKeyProvider" und übernehmen Sie den Dialog mit "OK".

Die gewählte Ressource wurde in den "Token" sowie als Wert in den "Header" übernommen.

Header

Erstellen Sie im Header zwei neue Einträge:

  • Accept

  • Content-Type

Klicken Sie auf das Plus-Symbol, um die Einträge zu definieren:

Accept

  • Key: Accept

  • Wert: application/json

Übernehmen Sie den Dialog mit "OK".

Content-Type

  • Key: Content-Type

  • Wert: application/xwww-form-urlencoded

Übernehmen Sie den Dialog mit "OK".

Der Dialog "Authentifizierung und Header" ist damit abgeschlossen.

Klicken Sie auf "Weiter".

Request

Im Request werden wir jetzt dafür sorgen, dass die Nachrichten verwendet werden. Hinterlegen Sie dazu die Methode "POST".

Füllen Sie nun die folgenden Eingabefelder mit den Informationen, die Ihnen von Ihrem Provider vorliegen:

  • Schema

  • Hostname

  • Pfad

Klicken Sie auf "Weiter".

Body

Im Body wird jetzt die SMS-Nachricht definiert.

Über das Symbol auf der rechten Seite können Sie auf das Resource-Mapping zugreifen, in dem Sie alle erforderlichen Einträge aus dem Verarbeitungskontext hinterlegt haben.

Hinterlegen Sie darüber Absender, Empfänger und Text der Nachricht wie folgt:

from=${msgFrom}&to=${msgTo}&text=${msgText}

Übernehmen Sie den Dialog mit "OK". Der Prozess ist fertiggestellt. Wenn eine Multi-Faktor-Authentifizierung über die Methode "Sprachanruf" gewählt wird, tritt der Prozess in Kraft und versendet die erforderlichen Informationen.