Child pages
  • Beschreibung der XML-RPC-Schnittstelle der iQueue
Suche

Die Klingelstrategie "iQueue" (siehe auch "iQueue auf der STARFACE konfigurieren" und "Auswertung für die iQueue konfigurieren") bietet für externe Anwendungen einen Zugriff auf die Live-Daten, wie auch auf History-Daten. Für die beiden Schnittstellen wird die XML-RPC Technologie genutzt. Die Live-Daten einer iQueue werden über die XML-RPC-Funktion "Queue.getLiveData" aufgerufen, welche einen Eingabeparameter erwartet:

<name>queueName</name> <string>…</string>

Diese Funktion liefert folgende Rückgabewerte:

callersLiveData (LIST) - Dieser Rückgabewert ist eine Liste, die wiederum Maps als Elemente enthält. Jede Map enthält Informationen (Schlüssel -> Wert) über genau einen Anrufer, der sich zu dieser Zeit in der Warteschlange befindet. Die Liste ist nach der Position des Anrufers in der Queue sortiert. Jede Map enthält die folgenden Schlüssel:

NameTypBeschreibung
CalleridStringDie eindeutige ID des Anrufs (z.B.: 995624b0-7385-404d-a658-dc942a1cbfe9)
CallerNumberStringDie Telefonnummer des Anrufers
CallerNameStringName von des Anrufers in der Form "Gewählte Nummer: AnruferName Anrufernummer" (z.B.: 154813: Hans Mustermann 01238756)
CallerChannelStringDie eindeutige ID des Anruferkanals (dies ist kein Rufkanal im physischen Sinne!)
CallerPriorityIntPriorität des Anrufs
CallerTimeStringDer Unix-Timestamp des Eintritts in die Warteschlange (z.B.: 1304682789341)
CallerPositionIntZeigt die aktuelle Position des Anrufers in der Warteschlange an. Die Position kann unter Umständen kurzzeitig von der tatsächlichen Position in der Queue abweichen. Ist der Anruf bereits durchgestellt, ist der Wert des Schlüssels -1.
CallerStateString

Ein Anruf kann einen von vier Zuständen haben:

  1. WAITING           - Anrufer wartet im Moment in der Warteschlange.
  2. RINGING           - Es wird versucht den Anrufer an einen Agenten zu vermitteln.
  3. CONNECTED    - Der Anrufer ist mit einem Agenten verbunden.
  4. EXITED             - Anrufer ist nicht länger in der Warteschlange, z.B. weil er aufgelegt wurde.
AgentIdStringDie Login-ID des Agenten, mit dem der Anrufer verbunden ist (z.B.: 0013). Dieser Wert ist für Caller-Status "CALLING" und "WAITING" leer
AgentNameStringName des Agenten, mit dem der Anrufer verbunden ist. Dieser Wert ist für Caller-Status "CALLING" und "WAITING" leer.

agentsLiveData (MAP) - Dieser Rückgabeparameter ist eine Map, die wiederum Maps als Elemente enthält. Schlüssel der Map ist die Login-ID des Agenten. Jede Element-Map enthält Informationen (Schlüssel -> Wert) über einen Agenten:

NameTypBeschreibung
AgentIdStringLogin-ID des Agenten
AgentNameStringName des Agenten
AgentGroupStateString

Zeigt an, ob der Agent momentan in der Gruppe angemeldet ist oder nicht. Mögliche Werte sind:

  1. ACTIVE      - Agent ist in der Gruppe angemeldet
  2. INACTIVE   - Agent ist von der Gruppe abgemeldet
AgentUserStateString

Zeigt den Benutzer-Status eines Agenten an. Mögliche Werte sind:

  1. DO_NOT_DISTURB   - Der Agent hat DND/Ruhefunktion aktiv und wird deswegen von der Warteschlange nicht angerufen.
  2. AVAILABLE                - DND ist bei diesem Agenten nicht aktiv und er kann von der Warteschlange angerufen werden (in Abhängigkeit seines Gruppen-/Telefoniestatus)
  3. UNAVAILABLE            - DND ist bei diesem Agenten nicht aktiv und er kann nicht von der Warteschlange angerufen werden (in Abhängigkeit seines Gruppen-/Telefoniestatus)
AgentPhoneStateString

Zeigt die telefonische Erreichbarkeit (Status) eines Agenten:

  1. UNAVAILABLE        - Der Agent ist an keinem Telefon angemeldet und kann deswegen nicht angerufen werden.
  2. AVAILABLE            - Der Agent telefoniert momentan nicht und kann angerufen werden, wenn sein Gruppen- und Benutzer-Status das erlauben.
  3. RINGING                - Der Agent wird momentan angerufen.
  4. ACTIVE                  - Der Agent ist gerade im Gespräch oder in der Rufaufbauphase.
  5. QUEUE_PAUSE     - Der Agent ist gerade in der Nachberarbeitungszeit.

History Schnittstelle

Die historischen Daten einer iQueue werden über die XML-RPC-Funktion "Queue.getHistoryData" aufgerufen. Der Eingabeparameter hierfür ist ein "struct" mit drei Wertangaben:

NameTypBeschreibung
queueNameStringName der gewünschten iQueue-Gruppe
fromdateTime.iso8601Beginn der Zeitspanne (muss einen XML-RPC konformen Zeit-Wert enthalten)
todateTime.iso8601Ende der Zeitspanne (muss einen XML-RPC konformen Zeit-Wert enthalten)

Diese Funktion hat einen Rückgabewert:

queueHistoryData (LIST) - Die Elemente der Liste sind Maps und jede Map enthält Informationen über genau einen Anruf. Die Liste ist nach dem Timestamp der Anrufe sortiert. Jedes Element der Liste enthält die folgenden Schlüssel:

NameTypBeschreibung
callIdStringID des Calls in der DB beginnend mit 1.
callStepIdIntFügt mehrere Einträge verschiedener User zusammen wenn sie zu einem Call gehören.
callLegUUIDStringEindeutige ID des CallLegs
agentIdStringLogin des Agenten der den Ruf angenommen hat / Leeres Feld = Nicht angenommener Ruf
cdrAccountIdIntAccount ID des Users dem der Ruflisteneintrag gehört.
callerAccountIdIntAccount ID des Anrufers falls es ein interner User war, sonst leer.
calledAccountIdIntAccount ID des Angerufenen falls es ein interner User war, sonst leer.
calledCallerIdStringCallerid wie sie auf dem Telefon angezeigt wird.
startTimeStringStartzeitpunkt des Calls als Unix Timestamp
ringingtimeStringStartzeitpunkt des Klingeln beim Agenten des Calls als Unix Timestamp
linktimeStringVebunden mit dem Agenten als Unix Timestamp
callresulttimeStringDer Anruf wurde beendet als Unix Timestamp
callresultStringDas Ergebnis des Callabschnitts.
callResultCauseByIntAccountid des Users der das Ergebnis ausgelöst hat.
lineidIntDie verwendete Leitung
lineNameStringName der verwendeten Leitung
callbacknumberStringDie Rückrufnummer des Gegenparts zu dem dem der Ruflisteneintrag gehört
answeredelswereStringNur gefüllt wenn der Anruf von jemand anderem beantwortet wurde
incomingBooleanTrue für einen eingegangen Anruf
answeredBooleanTrue für einen beantworteten Anruf
hasvoicemailBooleanTrue falls eine Voicemail aufgezeichnen wurde.
hasmonitorBooleanTrue für eine Aufzeichnung des Gesprächs
callbacknumberexternBooleanTrue falls die Rückrufnummer eine externe Nummer ist

Beispiel

Per Post Methode:

http://IP-ADRESSE/xml-rpc?de.vertico.starface.auth=$LoginID:SHA512($LoginID*SHA512($Passwort))

Das Passwort wird im ersten Schritt mit SHA512 gehasht. Danach wird dieser Hash nochmals mit der LoginID als Präfix und dem Trennzeichen * erneut gehasht. Für einen Benutzer mit den folgenden Eckdaten:

LoginID = 0001
Passwort = starface
IP-Adresse der Starface = 192.168.0.100

ergibt sich als Aufruf-URL für XML-RPC:

http://192.168.0.100/xml-rpc?de.vertico.starface.auth=0001:5273503e607e5b24eeb48a3f71c53eb50df6b6622839ecd7149e248893f627d05d8d4af88cf36b3d7d5cd5d1d559dfa1c10404067d8c0f37a138c6546dad7ef7

Der Body würde dann z.B. so aussehen:

Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
   <methodName>Queue.getHistoryData</methodName>
   <params>
      <param>
         <value>
            <struct>
               <member>
                  <name>queueName</name>
                  <value>
                     <string>testIq</string>
                  </value>
               </member>
               <member>
                  <name>from</name>
                  <value>
                     <dateTime.iso8601>20150701T12:59:05</dateTime.iso8601>
                  </value>
               </member>
               <member>
                  <name>to</name>
                  <value>
                     <dateTime.iso8601>20160701T12:59:05</dateTime.iso8601>
                  </value>
               </member>
            </struct>
         </value>
      </param>
   </params>
</methodCall>