Ein Agentenskript überschreibt die Ereignisse, auf die es
reagieren soll. Alle sind public virtual void; ein Ereignis, das das Skript
nicht überschreibt, schreibt nur eine Zeile ins Protokoll.
Ereignisse zu Konversationen
Jedes Ereignis gibt es zweimal: für alle Konversationen, die der Agent
kennt, und mit My_ davor für die eigenen — die, deren Agent er ist.
conversation ist jeweils vom Typ Struct_Conversation.
| Ereignis | weitere Parameter | tritt ein, wenn … |
|---|---|---|
ConversationRegistered |
– | der Agent eine Konversation kennenlernt |
ConversationUnregistered |
– | eine Konversation endet; das eigene Ereignis auch, wenn dieser Agent ihr voriger Agent war |
ConversationStateChanged |
ConversationState previousState, ConversationState state |
sich ihr Zustand ändert — das am häufigsten genutzte Ereignis |
ConversationAgentChanged |
Struct_Agent agent |
ein anderer Agent sie übernimmt |
ConversationSkillChanged |
Struct_Skill previousSkill, Struct_Skill skill |
sich ihr Wissensgebiet ändert |
ConversationLanguageChanged |
Struct_Language language |
sich ihre Sprache ändert |
ConversationAgentLanguageChanged |
Struct_Language language |
sich die Sprache ändert, in der der Agent sie führt |
ConversationAttachedDataReceived |
Struct_ConversationAttachedData elements |
ihre Zusatzdaten vollständig neu ankommen |
ConversationAttachedDataElementAdded, ConversationAttachedDataElementRemoved |
ConversationDataElement element |
ein Zusatzdatum hinzukommt bzw. entfällt |
ConversationPositionChanged |
int position |
sich ihr Platz im Wartefeld ändert |
ConversationQueueTimeChanged, ConversationStartTimeChanged |
DateTime time |
sich der Zeitpunkt des Einreihens bzw. des Beginns ändert |
ConversationQuickPicked |
Struct_Agent agent |
ein Agent sie heranholt; das eigene Ereignis, wenn dieser Agent es war |
ConversationSenderChanged, ConversationRecipientChanged |
string sender bzw. string recipient |
sich der Name des Absenders bzw. Empfängers ändert |
ConversationContactIdChanged |
string previousContactId, string contactId |
sich ihre Kontaktkennung ändert |
ConversationTypeChanged |
ConversationType previousType, ConversationType type |
sich ihr Konversationstyp ändert |
ConversationVIPClassChanged |
Struct_VIPClass vipClass |
sie eine VIP-Klasse bekommt |
ConversationPbxSettingsChanged |
Struct_PbxSettings previous, Struct_PbxSettings pbxSettings |
sich ihre Telefonanlage ändert |
ConversationRecordingPermissionChanged |
bool permitted |
sich ändert, ob sie aufgezeichnet werden darf |
ConversationRecordingChanged |
alle: Struct_Agent agent vor conversation; beide: bool isRecording |
ein Mitschnitt beginnt oder endet |
Nur für alle Konversationen gibt es außerdem
ConversationTranscribingChanged(Struct_Agent agent, Struct_Conversation conversation, bool isTranscribing)
— eine Transkription beginnt oder endet — und ConversationsReplaced(): Der
Agent hat die Liste aller Konversationen neu geladen.
Ereignisse zu allen Agenten
Der erste Parameter ist jeweils der betroffene Agent, Struct_Agent agent.
| Ereignis | weitere Parameter | tritt ein, wenn … |
|---|---|---|
AgentLogon, AgentLogoff |
bei AgentLogoff: AgentLogoffReason reason |
sich ein Agent an- bzw. abmeldet |
AgentWrapupChanged |
bool state |
ein Agent in die Nacharbeit geht oder sie beendet |
AgentWrapupUntil |
DateTime until |
feststeht, wann seine dynamische Nacharbeit endet |
AgentWrapupTerminated |
– | seine dynamische Nacharbeit endet |
AgentActivityChanged |
bool state, Struct_Activity activityType |
ein Agent eine Tätigkeit beginnt oder beendet |
AgentPresenceStateChanged |
RichPresenceState richPresenceState |
sich seine Präsenz ändert |
AgentMicrophoneMuteChanged |
bool muteState |
er sein Mikrofon stumm- oder zurückschaltet |
AgentConfigChanged |
– | sich seine Einstellungen ändern |
AgentPbxSettingsChanged |
string pbx |
sich seine Telefonanlage ändert |
Ereignisse zum eigenen Agenten
| Ereignis | Parameter | tritt ein, wenn … |
|---|---|---|
My_AgentLogon, My_AgentLogoff |
bei My_AgentLogoff: AgentLogoffReason reason |
sich der Agent an- bzw. abmeldet |
My_AgentConnected, My_AgentDisconnected |
bei My_AgentDisconnected: UnregisterReason reason |
die Verbindung zum Server steht bzw. abbricht |
My_AgentIdleChanged |
bool state |
der Agent frei oder beschäftigt wird |
My_AgentWrapupChanged |
bool state |
er in die Nacharbeit geht oder sie beendet |
My_AgentWrapupUntil |
DateTime until |
feststeht, wann seine dynamische Nacharbeit endet |
My_AgentWrapupTerminated |
– | seine dynamische Nacharbeit endet |
My_AgentMaxWrapupTimeElapsed |
– | die Höchstdauer seiner dynamischen Nacharbeit abgelaufen ist |
My_AgentActivityChanged |
bool state, Struct_Activity activityType |
er eine Tätigkeit beginnt oder beendet |
My_AgentPresenceStateChanged |
RichPresenceState richPresenceState |
sich seine Präsenz ändert |
My_AgentMicrophoneMuteChanged |
bool muteState |
er sein Mikrofon stumm- oder zurückschaltet |
My_AgentConfigurationChanged |
– | sich seine Einstellungen ändern |
My_AgentPbxSettingsChanged |
string pbx |
sich seine Telefonanlage ändert |
My_AgentConversationDispatched |
Struct_Conversation contact |
ihm eine Konversation zugestellt wird |
My_AgentWarnHandlingTimeReached |
Struct_Conversation conversation |
die Warnzeit der Bearbeitung erreicht ist |
My_AgentActivityPermissionReceived, My_AgentWrapupPermissionReceived, My_AgentLogoffPermissionReceived, My_AgentSkillChangePermissionReceived, My_AgentLanguageChangePermissionReceived |
ConstraintReason permission |
der Server auf eine Anfrage nach Tätigkeit, Nacharbeit, Abmeldung oder einem Wechsel von Wissensgebiet oder Sprache antwortet, siehe Beschränkungen |
My_AgentChatMessageReceived |
string conversationId, string message |
eine Chatnachricht ankommt; message ist HTML |
My_AgentChatFeedReceived |
string conversationId, IEnumerable<ChatMessage> feed |
der Verlauf eines Chats ankommt |
My_AgentMimeMessageReceived |
MimeMessage mimeMessage |
eine angeforderte E-Mail ankommt, siehe Request_MimeMessage |
My_AgentPOPUPMessageReceived |
string head, string body |
eine Mitteilung für das Hinweisfenster ankommt |
My_AgentStatisticsReceived |
RealtimeAgentStatistics statistics |
seine Echtzeitstatistik ankommt |
My_RecordingSummaryReceived |
RecordingSummary recordingSummary |
ein Mitschnitt abgeschlossen ist; enthält u. a. FilePath, FileTotalTime und FileSize |
Eigenschaften
| Eigenschaft | Inhalt |
|---|---|
Agent |
der eigene Agent (Struct_Agent), u. a. mit Name, Id, Extension, Wrapup, Activity, Idle |
AgentConversations |
die Konversationen des eigenen Agenten |
Conversations |
alle Konversationen, die der Agent kennt; Teilmengen wie Calls, Emails, Chats und InboundCalls |
Trace |
das Protokoll des Skripts: Trace.Info(…), Trace.Warning(…), Trace.Error(…), Trace.Verbose(…) |
Befehle
| Befehl | Wirkung |
|---|---|
BrowseTo(string url, bool openInNewTab = false) |
öffnet die Adresse im Modul Browser — im aktiven Reiter oder in einem neuen |
Show(Form form) |
zeigt ein eigenes Fenster über dem Hauptfenster des Agenten |
AcceptConversation(Struct_Conversation conversation) |
nimmt einen Anruf am Softphone des Agenten an; andere Kanäle nimmt der Befehl nicht an |
TerminateConversation(Struct_Conversation conversation) |
beendet die Konversation |
HangupActiveCall() |
legt alle angenommenen Anrufe am Softphone auf, auch gehaltene |
HangupAllCalls() |
legt alle Anrufe am Softphone auf |
Wrapup(bool state) |
true fragt die Nacharbeit an, mit denselben Prüfungen wie von Hand; false beendet sie |
TerminateDynamicWrapup() |
beendet die laufende dynamische Nacharbeit |
Activity(false) |
beendet die laufende Tätigkeit |
Logoff() |
fragt die Abmeldung an wie der Agent von Hand; ist sie erlaubt, meldet er sich ab und das Programm schließt |
CreateEMail(string subject, string to), CreateEMail(string subject, string to, string skill, string language) |
legt eine neue E-Mail an; Wissensgebiet und Sprache mit Namen |
Request_MimeMessage(Struct_Conversation conversation) |
fordert die E-Mail der Konversation an; sie kommt mit My_AgentMimeMessageReceived |
SendMail(MimeMessage email, string conversationId) |
sendet die Nachricht als Antwort in einer bestehenden E-Mail-Konversation |
ShowBusyLight(ConversationState state), ShowBusyLight(RichPresenceState state), SetBusyLightOff() |
steuert eine angeschlossene Statuslampe (Busylight) |
Daten einer Konversation
Die wichtigsten Eigenschaften von Struct_Conversation:
| Eigenschaft | Inhalt |
|---|---|
Id, TicketId |
Kennung der Konversation und ihres Tickets |
State, PreviousState |
Zustand und voriger Zustand |
ConversationType, ChannelType |
Konversationstyp und Kanal |
IsCall, IsInboundCall, IsEmail, IsChat |
Art der Konversation |
Skill, SkillName, Language |
Wissensgebiet und Sprache |
Agent |
der Agent der Konversation |
SenderName, SenderNumber, SenderMailAddress |
Name, Nummer und Adresse des Absenders |
CallerNumber, CalledNumber |
Nummer des Anrufers und die gewählte Nummer |
Subject |
Betreff |
AttachedData |
die Zusatzdaten |
Zusatzdaten lesen Sie mit conversation.AttachedData.StringValue("Schlüssel")
— ohne Unterschied zwischen Groß- und Kleinschreibung, bei fehlendem Schlüssel
ein leerer Text. Das Skript liest Zusatzdaten nur; ändern kann es sie nicht.
Namensräume
| Namensraum | Typen |
|---|---|
ilogixx.Agent |
MyCCAgentScript |
ilogixx.SharedFiles.GeneralDefinitions |
Struct_Conversation, Struct_Agent, Struct_Skill, Struct_Language, Struct_Activity, Struct_VIPClass, Struct_PbxSettings, Struct_ConversationAttachedData, ConversationDataElement |
ilogixx.SharedFiles.GeneralEnums |
ConversationState, ConversationType, ChannelType, RichPresenceState |
ilogixx.SharedFiles |
ConstraintReason, ChatMessage, RealtimeAgentStatistics |
ilogixx |
AgentLogoffReason, UnregisterReason |
ilogixx.General.Shared |
RecordingSummary |
MimeKit |
MimeMessage |
System.Windows.Forms |
Form |
Das Skript kann alle Bibliotheken nutzen, die im Programmordner des Agenten
liegen — also auch .NET selbst, etwa System.Net.Http für Webdienste oder
System.Diagnostics.Process, um Programme zu starten.