Das Agentenskript erhält Produktobjekte in seinen Ereignissen. Über Agent
steht außerdem der eigene Agent zur Verfügung. Die folgenden Tabellen
beschreiben die einfachen Werte der für Skripte wichtigen Datenstrukturen:
Texte, Zahlen, boolesche Werte, Zeitwerte und Enumerationen.
Die Typnamen sind die tatsächlichen C#-Bezeichner. Struct_Conversation
und Struct_Agent sind trotz ihres Namens Klassen, keine C#-struct-
Werttypen. Eine Variable mit einem solchen Objekt ist daher eine Referenz
auf Produktdaten, keine unabhängige Kopie.
Zugriff und Verwendung
| Zugriff | Produktdaten |
|---|---|
Parameter conversation der Konversationsereignisse |
Struct_Conversation |
Agent sowie Parameter agent |
Struct_Agent |
conversation.Sender, conversation.Recipient |
Participant, gegebenenfalls CallParticipant oder MailParticipant |
conversation.Skill und Wissensgebietsereignisse |
Struct_Skill |
conversation.Language und Sprachereignisse |
Struct_Language |
Agent.ActivityType und Tätigkeitsereignisse |
Struct_Activity |
Parameter element bei hinzugefügten oder entfernten Zusatzdaten |
ConversationDataElement |
Parameter vipClass bei Änderung der VIP-Klasse |
Struct_VIPClass |
| Telefonanlageneinstellungen der Ereignisse | Struct_PbxSettings |
| einzelne Nachricht eines Chatverlaufs | ChatMessage |
Parameter recordingSummary bei Abschluss einer Aufzeichnung |
RecordingSummary |
Referenzen können fehlen, beispielsweise der Agent einer noch wartenden
Konversation. Prüfen Sie sie vor dem Zugriff oder verwenden Sie ?..
Im Konstruktor des Skripts ist die Agenten-API noch nicht gesetzt; verwenden
Sie diese Daten erst in den vorgesehenen Ereignissen.
Nutzen Sie Produktobjekte zum Auslesen des aktuellen Stands. Ein öffentlicher Setter bedeutet nicht, dass eine Zuweisung eine fachliche Änderung am Server anfordert. Für Annehmen, Weiterleiten, Nacharbeit und andere Aktionen verwenden Sie die vorgesehenen Skriptbefehle. Siehe Agentenskript und Ereignisse.
Struct_Conversation — Konversation
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
Auswahl der einfachen Eigenschaften:
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id |
string |
Kennung der Konversation |
RoutedConversationId |
string |
Kennung der gerouteten Konversation |
ConversationType |
ConversationType |
Art der Konversation |
ChannelType |
ChannelType |
aus der Art abgeleiteter Kanal |
State |
ConversationState |
aktueller Zustand |
PreviousState |
ConversationState |
vorheriger Zustand |
StateChangeTime |
DateTime |
Zeitpunkt des Zustandswechsels |
AgentChangeTime |
DateTime |
Zeitpunkt des Agentenwechsels |
Position |
int |
gemeldete Position im Wartefeld |
SkillName |
string |
Wissensgebietsname oder leer, wenn kein Wissensgebiet vorhanden ist |
SkillId |
int |
Kennung des Wissensgebiets |
LanguageId |
int |
Sprachkennung; ohne Sprache 0 |
SenderName |
string |
Name des Absenders; ohne Absender leer |
SenderNumber |
string |
wirksame Rufnummer eines Telefonabsenders; sonst leer |
SenderMailAddress |
string |
E-Mail-Adresse eines Mailabsenders; sonst leer |
RecipientName |
string |
Name des Empfängers; ohne Empfänger leer |
RecipientNumber |
string |
wirksame Rufnummer eines Telefonempfängers; sonst leer |
RecipientMailAddress |
string |
E-Mail-Adresse eines Mailempfängers; sonst leer |
Subject |
string |
Betreff |
CcMailAddresses, BccMailAddresses |
string |
zusätzliche E-Mail-Empfänger |
Classification |
string |
Klassifikation |
TicketId |
int |
zugehörige Ticketkennung |
RecordingPermitted |
bool |
Erlaubnis zur Aufzeichnung |
IsRecording |
bool |
Aufzeichnung aktiv |
IsTranscribing |
bool |
Transkription aktiv |
IsManuallyCreated |
bool |
manuell erstellt |
IsConnected |
bool |
verbunden, extern/intern verbunden oder gehalten |
WasConnected |
bool |
war bereits verbunden |
IsChat, IsEmail, IsFax, IsCall |
bool |
aus der Konversationsart abgeleitete Prüfungen |
IsInboundCall, IsOutboundCall |
bool |
eingehender beziehungsweise ausgehender Anruf |
IsVirtualCallback, IsVirtualDialIn |
bool |
virtueller Rückruf beziehungsweise Wiedereinwahl |
IsThreateningCall |
bool |
als bedrohlich markierter Anruf |
TotalWaitTime, TotalActiveTime, TotalHoldTime |
TimeSpan |
aufsummierte Zeiten der jeweiligen Zustände |
State == ConversationState.Connected und IsConnected sind nicht dieselbe
Prüfung: IsConnected berücksichtigt auch Halten und interne beziehungsweise
externe verbundene Zustände. WasConnected beschreibt die Vergangenheit.
Für eine Rufnummer können Sie direkt SenderNumber oder RecipientNumber
verwenden; dadurch entfällt eine eigene Typprüfung des Teilnehmers.
Struct_Agent — Agent
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
Agent bezeichnet den eigenen Agenten. Ein Ereignisparameter agent
kann dagegen einen anderen Agenten betreffen.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id, Name |
string |
Agentenkennung und Name |
IsLogin |
bool |
angemeldet |
Active |
bool |
aktives Kennzeichen |
Activity |
bool |
Tätigkeit aktiv |
Wrapup |
bool |
normale Nacharbeit aktiv |
DynamicWrapup |
bool |
dynamische Nacharbeitszeit noch nicht abgelaufen |
IsPausing |
bool |
Nacharbeit, Tätigkeit oder noch laufende Nacharbeitszeit |
RichPresenceState |
RichPresenceState |
Präsenzzustand; ohne Präsenzobjekt offline |
RichPresenceText |
string |
Präsenztext; ohne Präsenzobjekt leer |
EffectiveState |
ConversationState |
wirksamer Zustand der maßgeblichen Konversation |
EffectiveCallState |
ConversationState |
wirksamer Zustand des maßgeblichen Anrufs |
IsTalking |
bool |
wirksamer Anrufzustand verbunden oder gehalten |
Extension |
string |
erste öffentliche Rufnummer, ersatzweise erste interne Rufnummer |
InternalNumberString, PublicNumberString |
string |
interne beziehungsweise öffentliche Rufnummern als zusammengefasster Text |
PBXName, PBXStandby |
string |
Name der primären beziehungsweise Ersatztelefonanlage |
TotalNumberOfConversations |
int |
Anzahl der gerade vom Agenten bearbeiteten Konversationen |
MicrophoneMuted |
bool |
Mikrofon stummgeschaltet |
CurrentMissedConversations, CurrentRejectedConversations |
int |
aktuelle Zähler für verpasste beziehungsweise abgewiesene Konversationen |
LastStateChangeTime, ActivityStartTime, WrapupStartTime |
DateTime |
Zeitpunkte der jeweiligen Änderungen |
WrapupTimeSpan, WrapupTillTimeSpan |
TimeSpan |
bisherige beziehungsweise verbleibende Nacharbeitszeit gemäß den jeweiligen Eigenschaften |
ActivityTimeSpan, LoginTimeSpan |
TimeSpan |
Dauer der Tätigkeit beziehungsweise Anmeldung |
UnavailableForPhoneCallUntil |
DateTime |
Zeitpunkt, bis zu dem Telefonieverfügbarkeit gesperrt ist |
Active, IsLogin und die Verfügbarkeit zur Verteilung sind unterschiedliche
Informationen. Leiten Sie aus einem einzelnen booleschen Feld keine
vollständige Verteilungsentscheidung ab. Die Statusdarstellung erläutert
auch Agentensymbole und Verfügbarkeit.
Participant, CallParticipant und MailParticipant — Teilnehmer
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
| Typ | Eigenschaft | Werttyp | Bedeutung |
|---|---|---|---|
Participant |
Identifier |
string |
Teilnehmerkennung |
Participant |
Name |
string |
Teilnehmername |
CallParticipant |
EffectiveNumber |
string |
wirksame, gegebenenfalls normalisierte Rufnummer |
CallParticipant |
SipRealm |
string |
SIP-Realm |
CallParticipant |
CountryCode |
int |
erkannte Landesvorwahl |
CallParticipant |
LocaleCode, Location |
string |
erkannte Ortsinformation |
CallParticipant |
NumberType |
PhoneNumberType |
erkannte Rufnummernart |
MailParticipant |
MailAddress |
string |
E-Mail-Adresse beziehungsweise Adressangabe |
Die beiden abgeleiteten Typen besitzen auch Identifier und Name.
Lesen Sie Telefonrufnummern über EffectiveNumber: Der Getter von
CallParticipant.Number ist privat und kann im Skript nicht gelesen werden.
Struct_Skill und Struct_Language — Wissensgebiet und Sprache
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
Beide Typen besitzen folgende einfachen Werte:
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id |
int |
Kennung |
Name, Description |
string |
Name und Beschreibung |
Deleted |
bool |
als gelöscht markiert |
IsPrivate |
bool |
privater Eintrag |
Key |
string |
Kennung als Text |
Zusätzlich bei Struct_Skill: Color (int, gespeicherter Farbwert) und
IsQualified (bool, nicht privat). Zusätzlich bei Struct_Language:
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
MailReplyTag, MailForwardTag |
string |
Kennzeichnungen für Antworten und Weiterleitungen |
DictionaryName |
string |
Kultur für Rechtschreibprüfung und Ressourcenübersetzung |
FemaleVoice, MaleVoice |
string |
konfigurierte Stimmen |
Qualifikationsstufen richtig unterscheiden
Eine benannte Stufe wie „Experte“ ist etwas anderes als die
Zuordnung eines Agenten zu einer Sprache oder einem Wissensgebiet.
Alle folgenden Produkttypen liegen im Namensraum
ilogixx.SharedFiles.GeneralDefinitions.
Struct_LanguageQualification und Struct_SkillQualification beschreiben
die in der Administration angelegten Stufen. Beide besitzen diese einfachen
Eigenschaften:
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
| Id | int | Kennung der benannten Stufe, nicht der Sprache oder des Wissensgebiets |
| Qualification | int | Nummer der Qualifikationsstufe |
| Name | string | Name der Stufe |
| Key | string | Stufenkennung als Text |
Eine kleinere gültige Stufennummer bedeutet eine bessere Qualifikation.
Die Klasse KnowledgeLevel definiert dafür:
| Wert | Bedeutung |
|---|---|
KnowledgeLevel.None = -1 |
nicht qualifiziert |
KnowledgeLevel.Best = 1 |
beste Stufe |
KnowledgeLevel.Worst = int.MaxValue |
oberste Zahlengrenze der gültigen Stufen, nicht die Anzahl der angelegten Stufen |
KnowledgeLevel.IsQualified(stufe, anforderung) prüft, ob die Stufe
mindestens 1 und höchstens die Anforderung ist. Bei einer Anforderung von
2 sind daher die Stufen 1 und 2 ausreichend; 3, 0 und -1 sind es nicht.
Zum Anlegen und Verschieben der benannten Stufen siehe
Qualifikationsstufen in der Administration.
Struct_LanguageQualificationEntry — Sprachqualifikation
Dieses Objekt beschreibt die Zuordnung zu einer Sprache. Die aktuell
wirksamen Zuordnungen eines Agenten stehen in EffectiveLanguages.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
| Id | int | Kennung des Zuordnungseintrags |
| LanguageId | int | Kennung der zugeordneten Sprache |
| Qualification | int | Sprachqualifikationsstufe oder KnowledgeLevel.None |
Der Setter von Qualification übernimmt gültige Stufennummern ab 1;
andere Werte werden zu KnowledgeLevel.None. Ein vorhandener Eintrag
bedeutet deshalb noch nicht, dass der Agent qualifiziert ist.
IsQualified() prüft eine gültige Stufe, IsQualified(anforderung) eine
ausreichende Stufe für die angegebene Anforderung.
Im Skript liefert Agent.GetLanguageQualification(languageId) unmittelbar
den einfachen int-Wert der aktuell wirksamen Zuordnung. Fehlt die
Sprache in diesen Zuordnungen, kommt KnowledgeLevel.None zurück. Weitere
Überladungen nehmen ein Struct_Language oder eine Struct_Conversation
entgegen. Agent.HasLanguageQualification(languageId, anforderung)
liefert die entsprechende Prüfung als bool.
Struct_SkillQualificationEntry — Wissensgebietsqualifikation
Dieses Objekt beschreibt die Zuordnung zu einem Wissensgebiet. Die
aktuell wirksamen Zuordnungen eines Agenten stehen in EffectiveSkills.
| Wert | Typ | Bedeutung |
|---|---|---|
| Id | int | Kennung des Zuordnungseintrags |
| SkillId | int | Kennung des zugeordneten Wissensgebiets |
| Qualification[qualifikationsart] | int | Stufe für eine bestimmte Konversationsart oder KnowledgeLevel.None |
Qualification selbst ist kein int, sondern ein
Struct_SkillQualificationLevel. Sein Indexer liefert den einfachen Wert
für die gewählte SkillQualificationType aus dem Namensraum
ilogixx.SharedFiles.GeneralEnums:
| Qualifikationsart | Bedeutung |
|---|---|
InboundCall |
eingehender Anruf |
VirtualCall |
virtueller Anruf |
Fax |
Fax |
EMail |
|
Chat |
Chat |
WebCallback |
Rückruf über die Website |
VoiceRecording |
Sprachnachricht |
Eine fehlende Art und Undefined liefern KnowledgeLevel.None.
Die Wissensgebietszuordnung allein reicht daher nicht: Ein Agent kann im
selben Wissensgebiet für Anrufe qualifiziert sein, für Chat aber nicht.
Die alten Eigenschaften QualificationInbound, QualificationOutbound,
QualificationFax, QualificationEMail und QualificationChat sind im
Code als veraltet markiert. Verwenden Sie für neue Skripte den Indexer
oder die Methoden des Agenten.
Agent.GetSkillQualification(skillId, qualifikationsart) liefert die
aktuell wirksame Stufe als int; bei fehlender Zuordnung kommt
KnowledgeLevel.None zurück. Eine Überladung nimmt ein Struct_Skill
statt seiner Kennung entgegen. Agent.GetSkillQualification(conversation)
verwendet Wissensgebiet und Qualifikationsart der Konversation.
Agent.HasSkillQualification(skillId, qualifikationsart, anforderung)
liefert die entsprechende Prüfung als bool.
Skills und Languages beschreiben die hinterlegten Zuordnungen;
EffectiveSkills und EffectiveLanguages den aktuell wirksamen Stand.
Die genannten Agentenmethoden verwenden den wirksamen Stand. Eine
Qualifikationsprüfung allein ersetzt trotzdem keine vollständige Prüfung
von Anmeldung, Verfügbarkeit und Verteilungsbedingungen.
Struct_Activity — Tätigkeit
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id |
int |
Tätigkeitskennung |
Name, Description |
string |
Name und Beschreibung |
Duration |
int |
konfigurierte Dauer in Sekunden |
DurationTimeSpan |
TimeSpan |
dieselbe Dauer als Zeitspanne |
IsBusyTime |
bool |
als Beschäftigungszeit werten |
AllowCalls |
bool |
Anrufe während der Tätigkeit erlauben |
AnswerBySupervisor |
bool |
Antwort durch Supervisor vorgesehen |
AutomaticRelease |
bool |
automatische Freigabe vorgesehen |
SkipInEscalation |
bool |
bei Eskalation überspringen |
Key |
string |
Kennung als Text |
ConversationDataElement — einzelnes Zusatzdatum
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Key |
string |
Name des Zusatzdatums |
Value |
string |
gespeicherter Wert |
Position |
int |
Position |
IsVisible |
bool |
Sichtbarkeitskennzeichen, standardmäßig an |
Value ist immer Text. Eine darin gespeicherte Zahl oder ein Datum müssen
Sie für Berechnungen ausdrücklich mit dem passenden Format auswerten.
Das Ereignis für ein einzelnes Element liefert keine Sammlung aller
Zusatzdaten. Siehe Ereignisse.
Struct_VIPClass — VIP-Klasse
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id |
int |
Kennung |
Name, Description |
string |
Name und Beschreibung |
Priority |
int |
Priorität |
ARGBColor |
int |
gespeicherter ARGB-Farbwert |
Key |
string |
Kennung als Text |
Struct_PbxSettings — Telefonanlagenbezug
Namensraum: ilogixx.SharedFiles.GeneralDefinitions.
Für den einfachen Bezug zur Telefonanlage sind diese Felder nutzbar:
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Tag |
string |
Kennung der Telefonanlageneinstellungen |
Master, Standby |
string |
primärer und Ersatzserver |
PBXType |
PBXType |
Telefonanlagenart |
PBXProtocol |
Protocol |
Protokoll |
SipRealm |
string |
SIP-Realm |
ExternalLinePrefix |
string |
Amtskennziffer |
SipBasePort, SipPortRange |
uint |
Beginn und Umfang des SIP-Portbereichs |
ChatMessage — einzelne Chatnachricht
Namensraum: ilogixx.SharedFiles.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Id, Key |
string |
Nachrichtenkennung |
Time |
DateTime |
Nachrichtenzeitpunkt |
ParticipantName |
string |
Name des Teilnehmers |
ParticipantType |
ParticipantType |
Teilnehmerart |
HtmlMessage |
string |
Nachrichtentext mit möglicher HTML-Formatierung |
IntrusionMode |
IntrusionMode |
Art des Eingreifens |
RecordingSummary — abgeschlossene Aufzeichnung
Namensraum: ilogixx.General.Shared. Das Ereignis
My_RecordingSummaryReceived liefert dieses Objekt.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
FilePath |
string |
Pfad der Aufzeichnungsdatei |
FileTotalTime |
TimeSpan |
Gesamtdauer |
FileSize |
long |
Dateigröße |
FileType |
AudioFileType |
Audiodateityp |
RecordingType |
RecordingType |
Art der Aufzeichnung |
Typen richtig auswerten
Vergleichen Sie Enumerationen mit benannten Werten wie
ConversationState.Connected statt mit geratenen Zahlen. Rufnummern und
Kennungen bleiben string: Eine Rufnummer ist kein Zahlenwert.
TimeSpan ist eine Dauer, DateTime ein Zeitpunkt. Für Ausgabe und
Berechnung sind beispielsweise TimeSpan.TotalSeconds und
TimeSpan.TotalMinutes sinnvoll; Seconds enthält nur den Sekundenanteil.
Die Tabellen beschreiben den Produktstand der eingesetzten Version. Sammlungen, Konversationsverläufe und komplexe Verwaltungsobjekte gehören zu einem weiterführenden Zugriff und sind hier nicht als einfache Werte aufgeführt.