Dieses Tutorial zeigt, wie mit dem Modulsystem verarbeitete Rufe an Nutzer oder externe Rufnummern verteilt werden können. In einem Beispielmodul soll ein Ruf zu einer konfigurierten Zielrufnummer vermittelt werden. Falls diese Vermittlung nicht erfolgreich ist, soll zu einem zweiten Ziel vermittelt werden. Das Beispielmodul wird als Typ Standard erstellt, dadurch kann es bei der Konfiguration eine eigene Rufnummer erhalten auf welche es reagiert.
Zur Umsetzung dieses Beispieles werden die Komponenten CallPhoneNumber und GetCaller verwendet.
Beschreibung der verwendeten Komponenten
CallPhoneNumber
Mit dieser Komponente kann aus dem Modulsystem ein Anruf aufgebaut werden. Die wichtigste Eigenschaft bei der Nutzung der Komponente ist die Zielrufnummer, welche unter der Variable Phonenumber to call eingetragen werden muss. Als weitere Werte müssen der Anrufername und seine Nummer vergeben werden, damit der Ruf zuverlässig über die STARFACE geroutet werden kann.
Eigenschaften der Komponente:
| |
Rückgabe der Komponente
|
GetCaller
Mit dieser Komponente können im Modulsystem die Informationen des Anrufers ausgelesen werden.
Rückgabe der KomponenteDie Komponente gibt insgesamt 6 verschiedene Werte zurück, welche für verschiedenste Einsatzszenarien verwendet werden. In diesem Tutorial konzentrieren wir uns nur auf zwei Werte.
|
Ablaufdiagramm des Beispielmodules
Anleitung zur Erstellung des Beispielmodules
Festlegen der Grundeinstellungen, wie Name und Hersteller. Konfiguration als Modul vom Typ Call-Processing. Activation bei on all incoming calls. | |
Anlegen eines neuen Reiters namens Einstellungen im Bereich GUI. in diesen Einstellungen können bei der späteren Konfiguration des Modules die Rufziele konfiguriert werden. | |
Per Drag&Drop können nun zwei Felder vom Typ TextInput erstellt werden. Das Erste bekommt den Namen Zielrufnummer 1, das Zweite den Namen Zielrufnummer 2. Diese Eingabefelder können gleich als Variablen im Module Designer verwendet werden. | |
Unter dem Bereich Development legen wir nun eine neue Funktion an. Der Name wird automatisch vergeben und kann für dieses Beispiel beibehalten werden. | |
In unserer ersten Funktion verwenden wir zuerst die KomponenteGetCaller, welche wir bei den Komponenten unter dem Bereich Callfinden. | |
Im nächsten Schritt fügen wir nun die Komponente CallPhoneNumberhinzu, welche den Ruf an unser erstes Ziel vermitteln soll. Damit die Vermittlung funktioniert, müssen wir die Komponente noch konfigurieren. Zuerst wählen wir bei Phonenumber to call unsereZielrufnummer 1 (GUI_ZIELRUFNUMMER_1) aus. Als Caller Name undCaller number greifen auf die Informationen aus der GetCaller-Komponente zurück. In der Variable Ringing duration können wir nun festlegenm, wie lange der Anrufversuch dauern soll (z.B. 30 Sekunden). | |
Die Komponente CallPhoneNumber liefert uns in der Variable _success zurück, ob der Anruf vermittelt werden konnte. Diese Variable können wir daher nun mit einer bedingten Anweisung abfragen. Der Module Designer stellt hierfür die Komponente if (unter Basic Components) zur Verfügung. Nun konfigurieren wir diese Komponente so, dass wenn _success nicht erfüllt (IsNotTrue) ist eine alternative Komponente ausgeführt wird. | |
Damit Komponenten innerhalb der bedingten ANweisung ausgeführt werden, müssen diese eingerückt werden. Dies kann per Drag&Drop unterhalb der letzten if-Komponente gemacht werden. Hier fügen wir nun noch einmal CallPhoneNumber ein. Desmal wird als Phonenumber to call jedoch die Zielrufnummer 2 (GUI_ZIELRUFNUMMER_2) verwendet. | |
Zuletzt beenden wir das Modul richtig mit der Komponente exit aus dem Bereich Basic Components. Das Modul soll laut Ablaufdiagramm in beiden Fällen beendet werden, daher wird das exit nicht eingerückt und somit immer ausgeführt. An diesem Punkt ist das Modul funktionsbereit und kann nun in der Modulkonfiguration, wie jedes andere Modul konfiguriert werden. Viel Spass beim Nachbauen. | |
Verbesserungsmöglichkeiten | |
Das oben gezeigte Beispiel ist minimalistisch und verzichtet komplett auf Debugging-Optionen. Des Weiteren ist nicht definiert, was passiert wenn auch der zweite Vermittlungsversuch scheitert. Im letzten Screenshot seht ihr einige Erweiterungen, welche diese Punkte lösen. |