Un script d’agent redéfinit les événements auxquels il doit
réagir. Tous sont public virtual void ; un événement que le script ne
redéfinit pas se contente d’écrire une ligne dans le journal.
Événements liés aux conversations
Chaque événement existe deux fois : pour toutes les conversations que
l’Agent connaît, et, précédé de My_, pour les siennes — celles dont il
est l’agent. conversation est chaque fois de type Struct_Conversation.
| Événement | Autres paramètres | Se produit lorsque … |
|---|---|---|
ConversationRegistered |
– | l’Agent prend connaissance d’une conversation |
ConversationUnregistered |
– | une conversation se termine ; l’événement propre aussi lorsque cet agent était son agent précédent |
ConversationStateChanged |
ConversationState previousState, ConversationState state |
son état change — l’événement le plus utilisé |
ConversationAgentChanged |
Struct_Agent agent |
un autre agent la reprend |
ConversationSkillChanged |
Struct_Skill previousSkill, Struct_Skill skill |
sa compétence change |
ConversationLanguageChanged |
Struct_Language language |
sa langue change |
ConversationAgentLanguageChanged |
Struct_Language language |
la langue dans laquelle l’agent la mène change |
ConversationAttachedDataReceived |
Struct_ConversationAttachedData elements |
ses données jointes arrivent à nouveau au complet |
ConversationAttachedDataElementAdded, ConversationAttachedDataElementRemoved |
ConversationDataElement element |
une donnée jointe est ajoutée ou supprimée |
ConversationPositionChanged |
int position |
sa place dans la file d’attente change |
ConversationQueueTimeChanged, ConversationStartTimeChanged |
DateTime time |
l’heure de la mise en file d’attente ou du début change |
ConversationQuickPicked |
Struct_Agent agent |
un agent la récupère ; l’événement propre lorsque c’était cet agent |
ConversationSenderChanged, ConversationRecipientChanged |
string sender ou string recipient |
le nom de l’expéditeur ou du destinataire change |
ConversationContactIdChanged |
string previousContactId, string contactId |
son identifiant de contact change |
ConversationTypeChanged |
ConversationType previousType, ConversationType type |
son type de conversation change |
ConversationVIPClassChanged |
Struct_VIPClass vipClass |
elle reçoit une classe VIP |
ConversationPbxSettingsChanged |
Struct_PbxSettings previous, Struct_PbxSettings pbxSettings |
son PBX change |
ConversationRecordingPermissionChanged |
bool permitted |
l’autorisation de l’enregistrer change |
ConversationRecordingChanged |
pour toutes : Struct_Agent agent avant conversation ; dans les deux cas : bool isRecording |
un enregistrement commence ou se termine |
Uniquement pour toutes les conversations, il existe en outre
ConversationTranscribingChanged(Struct_Agent agent, Struct_Conversation conversation, bool isTranscribing)
— une transcription commence ou se termine — et ConversationsReplaced() :
l’Agent a rechargé la liste de toutes les conversations.
Événements liés à tous les agents
Le premier paramètre est chaque fois l’agent concerné, Struct_Agent agent.
| Événement | Autres paramètres | Se produit lorsque … |
|---|---|---|
AgentLogon, AgentLogoff |
pour AgentLogoff : AgentLogoffReason reason |
un agent se connecte ou se déconnecte |
AgentWrapupChanged |
bool state |
un agent passe en post-traitement ou le termine |
AgentWrapupUntil |
DateTime until |
l’heure de fin de son post-traitement dynamique est connue |
AgentWrapupTerminated |
– | son post-traitement dynamique se termine |
AgentActivityChanged |
bool state, Struct_Activity activityType |
un agent commence ou termine une activité |
AgentPresenceStateChanged |
RichPresenceState richPresenceState |
sa présence change |
AgentMicrophoneMuteChanged |
bool muteState |
il coupe ou rétablit son micro |
AgentConfigChanged |
– | ses paramètres changent |
AgentPbxSettingsChanged |
string pbx |
son PBX change |
Événements liés à l’agent du poste
| Événement | Paramètres | Se produit lorsque … |
|---|---|---|
My_AgentLogon, My_AgentLogoff |
pour My_AgentLogoff : AgentLogoffReason reason |
l’agent se connecte ou se déconnecte |
My_AgentConnected, My_AgentDisconnected |
pour My_AgentDisconnected : UnregisterReason reason |
la connexion au serveur est établie ou interrompue |
My_AgentIdleChanged |
bool state |
l’agent devient libre ou occupé |
My_AgentWrapupChanged |
bool state |
il passe en post-traitement ou le termine |
My_AgentWrapupUntil |
DateTime until |
l’heure de fin de son post-traitement dynamique est connue |
My_AgentWrapupTerminated |
– | son post-traitement dynamique se termine |
My_AgentMaxWrapupTimeElapsed |
– | la durée maximale de son post-traitement dynamique est écoulée |
My_AgentActivityChanged |
bool state, Struct_Activity activityType |
il commence ou termine une activité |
My_AgentPresenceStateChanged |
RichPresenceState richPresenceState |
sa présence change |
My_AgentMicrophoneMuteChanged |
bool muteState |
il coupe ou rétablit son micro |
My_AgentConfigurationChanged |
– | ses paramètres changent |
My_AgentPbxSettingsChanged |
string pbx |
son PBX change |
My_AgentConversationDispatched |
Struct_Conversation contact |
une conversation lui est attribuée |
My_AgentWarnHandlingTimeReached |
Struct_Conversation conversation |
le délai d’avertissement du traitement est atteint |
My_AgentActivityPermissionReceived, My_AgentWrapupPermissionReceived, My_AgentLogoffPermissionReceived, My_AgentSkillChangePermissionReceived, My_AgentLanguageChangePermissionReceived |
ConstraintReason permission |
le serveur répond à une demande d’activité, de post-traitement, de déconnexion ou de changement de compétence ou de langue, voir Contraintes |
My_AgentChatMessageReceived |
string conversationId, string message |
un message de chat arrive ; message est du HTML |
My_AgentChatFeedReceived |
string conversationId, IEnumerable<ChatMessage> feed |
l’historique d’un chat arrive |
My_AgentMimeMessageReceived |
MimeMessage mimeMessage |
un e-mail demandé arrive, voir Request_MimeMessage |
My_AgentPOPUPMessageReceived |
string head, string body |
un message destiné à la fenêtre de notification arrive |
My_AgentStatisticsReceived |
RealtimeAgentStatistics statistics |
ses statistiques en temps réel arrivent |
My_RecordingSummaryReceived |
RecordingSummary recordingSummary |
un enregistrement est terminé ; contient entre autres FilePath, FileTotalTime et FileSize |
Propriétés
| Propriété | Contenu |
|---|---|
Agent |
l’agent du poste (Struct_Agent), avec entre autres Name, Id, Extension, Wrapup, Activity, Idle |
AgentConversations |
les conversations de l’agent du poste |
Conversations |
toutes les conversations que l’Agent connaît ; sous-ensembles comme Calls, Emails, Chats et InboundCalls |
Trace |
le journal du script : Trace.Info(…), Trace.Warning(…), Trace.Error(…), Trace.Verbose(…) |
Commandes
| Commande | Effet |
|---|---|
BrowseTo(string url, bool openInNewTab = false) |
ouvre l’adresse dans le module Navigateur — dans l’onglet actif ou dans un nouvel onglet |
Show(Form form) |
affiche une fenêtre personnalisée au-dessus de la fenêtre principale de l’Agent |
AcceptConversation(Struct_Conversation conversation) |
prend un appel sur le softphone de l’Agent ; la commande n’accepte pas les autres canaux |
TerminateConversation(Struct_Conversation conversation) |
met fin à la conversation |
HangupActiveCall() |
raccroche tous les appels pris sur le softphone, y compris ceux mis en attente |
HangupAllCalls() |
raccroche tous les appels sur le softphone |
Wrapup(bool state) |
true demande le post-traitement, avec les mêmes vérifications qu’à la main ; false le termine |
TerminateDynamicWrapup() |
termine le post-traitement dynamique en cours |
Activity(false) |
termine l’activité en cours |
Logoff() |
demande la déconnexion comme l’agent le fait à la main ; si elle est autorisée, il se déconnecte et le programme se ferme |
CreateEMail(string subject, string to), CreateEMail(string subject, string to, string skill, string language) |
crée un nouvel e-mail ; compétence et langue indiquées par leur nom |
CreateFax(string subject, string to), CreateFax(string subject, string to, string skill, string language) |
demande une conversation de fax ; to contient le numéro de fax, la compétence et la langue sont choisies par leur nom — voir Créer une conversation de fax |
Request_MimeMessage(Struct_Conversation conversation) |
demande l’e-mail de la conversation ; il arrive avec My_AgentMimeMessageReceived |
SendMail(MimeMessage email, string conversationId) |
envoie le message comme réponse dans une conversation e-mail existante |
ShowBusyLight(ConversationState state), ShowBusyLight(RichPresenceState state), SetBusyLightOff() |
pilote un voyant d’état connecté (Busylight) |
Créer une conversation de fax
CreateFax crée une conversation de fax à traiter dans l’Agent. L’appel
ne transmet pas encore de fichier ; il est distinct de SendMail, qui
envoie un message préparé. Utilisez le numéro de fax du destinataire pour
to. La transmission nécessite un serveur de fax configuré.
La version à deux paramètres utilise la compétence et la langue privées. La version à quatre paramètres recherche la compétence et la langue par leur nom. Si un nom est introuvable, elle utilise aussi l’entrée privée ; elle ne crée ni compétence ni langue. Utilisez donc des noms existants.
Les deux versions ne retournent aucune valeur. L’appel envoie une demande au serveur ; son retour normal ne confirme pas la livraison au destinataire. Le script de l’agent doit remplir les conditions.
L’interface ne propose pas de commande pour un nouveau fax. Un script peut toutefois demander une conversation de fax — voir Fax.
Données d’une conversation
Les principales propriétés de Struct_Conversation :
| Propriété | Contenu |
|---|---|
Id, TicketId |
identifiant de la conversation et de son ticket |
State, PreviousState |
état et état précédent |
ConversationType, ChannelType |
type de conversation et canal |
IsCall, IsInboundCall, IsEmail, IsChat |
nature de la conversation |
Skill, SkillName, Language |
compétence et langue |
Agent |
l’agent de la conversation |
SenderName, SenderNumber, SenderMailAddress |
nom, numéro et adresse de l’expéditeur |
CallerNumber, CalledNumber |
numéro de l’appelant et numéro composé |
Subject |
objet |
AttachedData |
les données jointes |
Vous lisez les données jointes avec conversation.AttachedData.StringValue("Clé")
— sans distinction entre majuscules et minuscules ; si la clé n’existe pas, le
résultat est un texte vide. Le script ne fait que lire les données jointes ; il
ne peut pas les modifier.
Espaces de noms
| Espace de noms | Types |
|---|---|
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 |
Le script peut utiliser toutes les bibliothèques qui se trouvent dans le
dossier du programme de l’Agent — donc aussi .NET lui-même, par exemple
System.Net.Http pour les services web ou System.Diagnostics.Process pour
démarrer des programmes.