HOWTO

Eigener VBScript Code - Twitter kommende Rufe (kb4067)

Die Information in diesem Artikel betrifft die folgenden Produkte:

  • SwyxWare alle Versionen

[ Zusammenfassung | Information | Referenzen ]


Zusammenfassung

Dieser Artikel beschreibt wie man kommende Rufe als neue Statusmeldung (Tweets) auf twitter.com einfügen kann.

Twitter Logo
Twitter Logo
Zum Vergrößern anklicken ...

Anwendbar ist das z.B. für:

  • Status Meldungen (z.B. bei Überläufen in Call Center Gruppen, wo bisher EMails verschickt werden)
  • Ein öffentliches Anrufjournal für bestimmte Rufnummern

Weitere Artikel dieser Serie:


Information

Installation der Beispielregel

Laden Sie die Datei kb4067_Twitter.rse über den Link am Ende dieses Artikels herunter. Um die Datei in den Call Routing Manager (CRM) bzw. Grafischen Skript Editor (GSE) zu laden, gehen Sie bitte wie folgt vor:

  • Starten Sie den Call Routing Manager (CRM).
  • Klicken Sie auf Neu...
  • Wählen Sie den Grafischen Skript Editor (GSE) und klicken Sie auf Ok.
  • Öffnen Sie das Menü Datei | Importieren... im GSE.
  • Wählen Sie die Datei kb4067_Twitter.rse aus. Die Regel wird nun importiert und sieht wie folgt aus:

    Grafischer Skript Editor
    Grafischer Skript Editor
    Zum Vergrößern anklicken ...

  • Speichern Sie die Regel über das Menü Datei | Speichern.
  • Schliessen Sie den GSE.
  • Bewegen Sie die neue Regel an den Anfang der Liste im CRM:

    Call Routing Manager
    Call Routing Manager
    Zum Vergrößern anklicken ...

  • Klicken Sie auf die beiden Parameter in der Beschreibung und tragen Sie Benutzernamen und Passwort ein, welche zu Ihrem Account auf twitter.com gehören.

 

Wie das Skript funktioniert

Der Twitter Dienst stellt die sogenannte Twitter API zur Verfügung. Dies ist eine Web (HTTP) basierte Schnittstelle, über die u.a. neue Statusmeldungen (Tweets) per HTTP Request erzeugt werden können. Solche HTTP Requests können relativ einfach in ein Call Routing eingebaut werden. Das in diesem Artikel beschriebene Skript stellt eine Funktion TwitterCall zur Verfügung, welche an beinahe beliebiger Stelle eines Skripts aufgerufen werden kann. So kann z.B. grundsätzlich jeder Ruf auf Twitter protokolliert werden, als auch nur bestimmte Situationen, wie z.B. Rufe von einer bestimmten Rufnummer, Überlauf in einer Warteschlange, oder Timeout in einer Warteschlange.

Eigener VBSkript Code (genauer gesagt eigene VBSkript Funktionen, Subroutinen, Konstanten Definitionen und Variablen Deklarationen) werden in einem GSE Call Routing Skript im Start Block gespeichert.

Start Block
Start Block
Zum Vergrößern anklicken ...

Der Code der hier gespeichert ist, kann von beinahe überall aus im grafischen Teil des Skript zugegriffen werden, als auch von anderen Skripten des gleichen Benutzers aus solange das aktuelle Skript aktiviert ist. Das in diesem Artikel beschriebene Skript verwendet einen Skript Code einfügen Block zum Aufruf der Funktion.

Skript Code Block
Skript Code Block
Zum Vergrößern anklicken ...

Um das Call Routing Skript in der Anwendung etwas einfacher und flexibler zu gestalten, werden 2 Regel Parameter verwendet, über welche vom Call Routing Manager aus der Twitter Login Name und das Passwort in das Skript gegeben werden können, ohne dass ein Benutzer den GSE öffnen muss.

Regel Eigenschaften - Parameter
Regel Eigenschaften - Parameter
Zum Vergrößern anklicken ...

GSE Regel Parameter werden in den Eigenschaften der Regel definiert und stehen innerhalb des Call Routing Skriptes in den Variablen zur Verfügung, welche für diese Parameter definiert wurden.

Das Beispiel Skript ruft für jeden kommenden Ruf die Funktion TwitterCall auf und übergibt die Anmeldedaten als Parameter. Anschliessend wird die Regel durch den Ausgang Regel übersprungen verlassen, so dass der Call Routing Manager nachfolgende Regeln startet.

Nachfolgend ist der VBSkript Code welcher sich im Start Block befindet dargestellt:

 

  1. Function URLescape(ByVal sURL)
  2.     URLescape = sURL
  3.     URLescape = Replace(URLescape, "-", "%2D")
  4.     URLescape = Replace(URLescape, "'", "%27")
  5.     URLescape = Replace(URLescape, """", "%22")
  6. End Function
  7.  
  8.  
  9. Function TwitterCall(ByVal sUser, ByVal sPassword)
  10.     Dim xml
  11.     xml = PBXScript.CreateObject("Microsoft.XMLHTTP")
  12.  
  13.     Dim sStatus
  14.     sStatus = "Just received a call from "
  15.  
  16.     If PBXCall.CallingPartyName <> "" Then
  17.         sStatus = sStatus & PBXCall.CallingPartyName & _
  18.          " (" & PBXCall.CallingPartyNumber & ")"
  19.     Else
  20.         sStatus = sStatus & PBXCall.CallingPartyNumber
  21.     End If
  22.  
  23.     PBXScript.OutputTrace("New Twitter Status: " & sStatus)
  24.  
  25.     xml.Open("POST", "http://" & sUser & ":" & sPassword & _
  26.      "@twitter.com/statuses/update.xml?status=" & _
  27.     URLescape(sStatus), False)
  28.     xml.setRequestHeader("Content-Type", _
  29.      "content=text/html; charset=iso-8859-1")
  30.     xml.Send()
  31.  
  32.     PBXScript.OutputTrace("Twitter Response: " & _
  33.     xml.responseText)
  34.  
  35.     xml = Nothing
  36.  
  37. End Function

Wenn der Server den Namen des Anrufers auflösen kann (sofern er über eines der Telefonbücher ermittelt werden kann, oder von einem vorher laufenden Skript bereits aufgelöst wurde) wird dieser Name mit in dem Twitter Tweet verwendet. Andernfalls erscheint nur die Anrufernummer.

Anschliessend wird ein HTTP Request über das XMLHTTP COM Objekt ausgeführt.

Mittels PBXScript.OutputTrace werden der Tweet als auch der Twitter Rückgabewert zur Fehleranalyse in das Server Trace geschrieben.


Referenzen

Soweit die von uns gelieferte oder/und verwendete Software Open Source Elemente beinhaltet, gelten zusätzlich die unter https://www.swyx.de/open-source einsehbaren zusätzlichen Bedingungen. Welche Produkte aus dem Swyx Portfolio Open Source Elemente beinhalten und welche Open Source Lizenz einschlägig ist, ergibt sich aus der unter folgender URL einsehbaren Liste https://www.swyx.de/open-source.

Informationen anderer Anbieter, die in diesem Artikel zur Verfügung gestellt werden, sollen bei der Suche nach technischen Informationen helfen. Die Inhalte können ohne weitere Ankündigung geändert werden. Swyx garantiert weder für die Güte von Inhalten anderer Anbieter, noch ist Swyx für diese verantwortlich.


Kommentar

Hat Ihnen dieser Artikel weitergeholfen? Kommentieren Sie diesen Artikel



Sollten sich Fragen aus Ihrem Kommentar ergeben, wie können wir Sie erreichen?

E-Mail Adresse (optional)


Hinweis

Dieses Kommentar-Feld steht Ihnen nicht für Support-Anfragen zur Verfügung. Diese richten Sie bitte ausschliesslich an Ihren Swyx Händler bzw. Distributor.


Änderungen

Erstellt: 01.12.2009