Le script d’agent reçoit des objets du produit dans ses événements. Agent
donne aussi accès à l’agent courant. Les tableaux suivants décrivent les
valeurs simples des structures utiles aux scripts : textes, nombres,
booléens, valeurs temporelles et énumérations.
Les noms de types sont les véritables identifiants C#. Malgré leur nom,
Struct_Conversation et Struct_Agent sont des classes, pas des types
valeur C# struct. Une variable contenant un tel objet est donc une
référence aux données du produit, pas une copie indépendante.
Accès et utilisation
| Accès | Données du produit |
|---|---|
paramètre conversation des événements de conversation |
Struct_Conversation |
Agent et paramètre agent |
Struct_Agent |
conversation.Sender, conversation.Recipient |
Participant, éventuellement CallParticipant ou MailParticipant |
conversation.Skill et événements de compétence |
Struct_Skill |
conversation.Language et événements de langue |
Struct_Language |
Agent.ActivityType et événements d’activité |
Struct_Activity |
paramètre element lors de l’ajout ou du retrait de données jointes |
ConversationDataElement |
paramètre vipClass lors du changement de classe VIP |
Struct_VIPClass |
| paramètres du système téléphonique fournis par les événements | Struct_PbxSettings |
| message individuel d’un historique de chat | ChatMessage |
paramètre recordingSummary à la fin d’un enregistrement |
RecordingSummary |
Une référence peut manquer, par exemple l’agent d’une conversation encore
en attente. Vérifiez-la avant l’accès ou utilisez ?.. Dans le constructeur
du script, l’API d’agent n’est pas encore affectée ; utilisez ces données
dans les événements prévus.
Utilisez les objets du produit pour lire l’état courant. Un setter public ne signifie pas qu’une affectation demande une opération métier au Serveur. Pour accepter, transférer, lancer le post-traitement et effectuer d’autres actions, utilisez les commandes du script prévues. Voir Le script d’agent et Événements.
Struct_Conversation — conversation
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
Sélection de propriétés simples :
| Propriété | Type | Signification |
|---|---|---|
Id |
string |
identifiant de conversation |
RoutedConversationId |
string |
identifiant de conversation routée |
ConversationType |
ConversationType |
type de conversation |
ChannelType |
ChannelType |
canal déduit du type |
State |
ConversationState |
état courant |
PreviousState |
ConversationState |
état précédent |
StateChangeTime |
DateTime |
instant du changement d’état |
AgentChangeTime |
DateTime |
instant du changement d’agent |
Position |
int |
position signalée dans la file d’attente |
SkillName |
string |
nom de compétence, ou vide sans compétence |
SkillId |
int |
identifiant de compétence |
LanguageId |
int |
identifiant de langue ; 0 sans langue |
SenderName |
string |
nom de l’expéditeur ; vide sans expéditeur |
SenderNumber |
string |
numéro effectif d’un expéditeur téléphonique ; sinon vide |
SenderMailAddress |
string |
adresse e-mail d’un expéditeur mail ; sinon vide |
RecipientName |
string |
nom du destinataire ; vide sans destinataire |
RecipientNumber |
string |
numéro effectif d’un destinataire téléphonique ; sinon vide |
RecipientMailAddress |
string |
adresse e-mail d’un destinataire mail ; sinon vide |
Subject |
string |
objet |
CcMailAddresses, BccMailAddresses |
string |
destinataires e-mail supplémentaires |
Classification |
string |
classification |
TicketId |
int |
identifiant du ticket associé |
RecordingPermitted |
bool |
autorisation d’enregistrer |
IsRecording |
bool |
enregistrement actif |
IsTranscribing |
bool |
transcription active |
IsManuallyCreated |
bool |
création manuelle |
IsConnected |
bool |
connecté, connecté en interne/externe ou en attente après mise en garde |
WasConnected |
bool |
a déjà été connecté |
IsChat, IsEmail, IsFax, IsCall |
bool |
vérifications déduites du type de conversation |
IsInboundCall, IsOutboundCall |
bool |
appel entrant ou sortant |
IsVirtualCallback, IsVirtualDialIn |
bool |
rappel virtuel ou réappel entrant virtuel |
IsThreateningCall |
bool |
appel marqué comme menaçant |
TotalWaitTime, TotalActiveTime, TotalHoldTime |
TimeSpan |
durées cumulées des états correspondants |
State == ConversationState.Connected et IsConnected sont des vérifications
différentes : IsConnected inclut aussi la mise en garde et les états
connectés en interne ou en externe. WasConnected décrit le passé. Pour un
numéro de téléphone, utilisez directement SenderNumber ou RecipientNumber ;
cela évite une vérification explicite du type du participant.
Struct_Agent — agent
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
Agent désigne l’agent courant. Un paramètre d’événement nommé agent peut
en revanche concerner un autre agent.
| Propriété | Type | Signification |
|---|---|---|
Id, Name |
string |
identifiant et nom de l’agent |
IsLogin |
bool |
connecté |
Active |
bool |
indicateur actif |
Activity |
bool |
activité en cours |
Wrapup |
bool |
post-traitement normal actif |
DynamicWrapup |
bool |
temps de post-traitement dynamique non expiré |
IsPausing |
bool |
post-traitement, activité ou temps de post-traitement restant |
RichPresenceState |
RichPresenceState |
état de présence ; hors ligne sans objet de présence |
RichPresenceText |
string |
texte de présence ; vide sans objet de présence |
EffectiveState |
ConversationState |
état effectif de la conversation déterminante |
EffectiveCallState |
ConversationState |
état effectif de l’appel déterminant |
IsTalking |
bool |
état effectif de l’appel connecté ou mis en garde |
Extension |
string |
premier numéro public, à défaut premier numéro interne |
InternalNumberString, PublicNumberString |
string |
numéros internes ou publics réunis dans un texte |
PBXName, PBXStandby |
string |
nom du système téléphonique principal ou de secours |
TotalNumberOfConversations |
int |
nombre de conversations actuellement traitées par l’agent |
MicrophoneMuted |
bool |
microphone coupé |
CurrentMissedConversations, CurrentRejectedConversations |
int |
compteurs courants de conversations manquées ou refusées |
LastStateChangeTime, ActivityStartTime, WrapupStartTime |
DateTime |
instants des changements correspondants |
WrapupTimeSpan, WrapupTillTimeSpan |
TimeSpan |
temps de post-traitement écoulé ou restant selon les propriétés correspondantes |
ActivityTimeSpan, LoginTimeSpan |
TimeSpan |
durée de l’activité ou de la connexion |
UnavailableForPhoneCallUntil |
DateTime |
instant jusqu’auquel la disponibilité téléphonique est bloquée |
Active, IsLogin et la disponibilité pour la distribution sont des
informations différentes. Ne déduisez pas une décision complète de
distribution d’un seul champ booléen. Voir aussi
Symboles des agents et disponibilité
pour la représentation de l’état.
Participant, CallParticipant et MailParticipant — participants
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
| Type | Propriété | Type de valeur | Signification |
|---|---|---|---|
Participant |
Identifier |
string |
identifiant du participant |
Participant |
Name |
string |
nom du participant |
CallParticipant |
EffectiveNumber |
string |
numéro effectif, éventuellement normalisé |
CallParticipant |
SipRealm |
string |
domaine SIP |
CallParticipant |
CountryCode |
int |
indicatif national détecté |
CallParticipant |
LocaleCode, Location |
string |
information géographique détectée |
CallParticipant |
NumberType |
PhoneNumberType |
type de numéro détecté |
MailParticipant |
MailAddress |
string |
adresse e-mail ou indication d’adresse |
Les deux types dérivés possèdent aussi Identifier et Name. Lisez les
numéros téléphoniques via EffectiveNumber : le getter de
CallParticipant.Number est privé et ne peut pas être lu dans le script.
Struct_Skill et Struct_Language — compétence et langue
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
Les deux types possèdent ces valeurs simples :
| Propriété | Type | Signification |
|---|---|---|
Id |
int |
identifiant |
Name, Description |
string |
nom et description |
Deleted |
bool |
marqué comme supprimé |
IsPrivate |
bool |
entrée privée |
Key |
string |
identifiant sous forme de texte |
Struct_Skill possède aussi Color (int, valeur de couleur stockée) et
IsQualified (bool, non privé). Propriétés supplémentaires de Struct_Language :
| Propriété | Type | Signification |
|---|---|---|
MailReplyTag, MailForwardTag |
string |
marqueurs des réponses et transferts |
DictionaryName |
string |
culture utilisée pour l’orthographe et la traduction des ressources |
FemaleVoice, MaleVoice |
string |
voix configurées |
Distinguer les niveaux de qualification
Un niveau nommé, par exemple « Expert », diffère de l’affectation d’un
agent à une langue ou à une compétence. Tous les types du produit suivants
se trouvent dans l’espace de noms ilogixx.SharedFiles.GeneralDefinitions.
Struct_LanguageQualification et Struct_SkillQualification décrivent
les niveaux créés dans l’Administration. Ils possèdent tous deux ces
propriétés simples :
| Propriété | Type | Signification |
|---|---|---|
| Id | int | identifiant du niveau nommé, pas de la langue ou de la compétence |
| Qualification | int | numéro du niveau de qualification |
| Name | string | nom du niveau |
| Key | string | identifiant du niveau sous forme de texte |
Un numéro de niveau valide plus petit signifie une meilleure qualification.
La classe KnowledgeLevel définit les valeurs suivantes :
| Valeur | Signification |
|---|---|
KnowledgeLevel.None = -1 |
non qualifié |
KnowledgeLevel.Best = 1 |
meilleur niveau |
KnowledgeLevel.Worst = int.MaxValue |
limite numérique supérieure des niveaux valides, pas le nombre de niveaux configurés |
KnowledgeLevel.IsQualified(niveau, exigence) vérifie que le niveau est
au moins égal à 1 et au plus égal à l’exigence. Pour une exigence de 2, les
niveaux 1 et 2 suffisent ; 3, 0 et -1 ne suffisent pas. Pour créer et déplacer
les niveaux nommés, voir
Niveaux de qualification dans l’Administration.
Struct_LanguageQualificationEntry — qualification linguistique
Cet objet décrit l’affectation à une langue. Les affectations actuellement
effectives d’un agent se trouvent dans EffectiveLanguages.
| Propriété | Type | Signification |
|---|---|---|
| Id | int | identifiant de l’entrée d’affectation |
| LanguageId | int | identifiant de la langue affectée |
| Qualification | int | niveau de qualification linguistique ou KnowledgeLevel.None |
Le setter de Qualification accepte les numéros de niveau valides à partir
de 1 ; les autres valeurs deviennent KnowledgeLevel.None. La présence
d’une entrée ne signifie donc pas à elle seule que l’agent est qualifié.
IsQualified() vérifie un niveau valide ; IsQualified(exigence) vérifie
un niveau suffisant pour l’exigence indiquée.
Dans le script, Agent.GetLanguageQualification(languageId) renvoie
directement la valeur simple int de l’affectation actuellement effective.
Si la langue manque dans ces affectations, la méthode renvoie
KnowledgeLevel.None. D’autres surcharges acceptent un Struct_Language
ou une Struct_Conversation.
Agent.HasLanguageQualification(languageId, exigence) renvoie la
vérification correspondante sous forme de bool.
Struct_SkillQualificationEntry — qualification de compétence
Cet objet décrit l’affectation à une compétence. Les affectations
actuellement effectives d’un agent se trouvent dans EffectiveSkills.
| Valeur | Type | Signification |
|---|---|---|
| Id | int | identifiant de l’entrée d’affectation |
| SkillId | int | identifiant de la compétence affectée |
| Qualification[typeQualification] | int | niveau pour un type de conversation donné ou KnowledgeLevel.None |
Qualification lui-même n’est pas un int, mais un
Struct_SkillQualificationLevel. Son indexeur renvoie la valeur simple
du SkillQualificationType choisi dans l’espace de noms
ilogixx.SharedFiles.GeneralEnums :
| Type de qualification | Signification |
|---|---|
InboundCall |
appel entrant |
VirtualCall |
appel virtuel |
Fax |
fax |
EMail |
|
Chat |
chat |
WebCallback |
rappel demandé sur le site web |
VoiceRecording |
message vocal |
Un type manquant et Undefined renvoient KnowledgeLevel.None. L’affectation
à la compétence ne suffit donc pas : un agent peut être qualifié pour les
appels dans une compétence, mais pas pour le chat. Les anciennes propriétés
QualificationInbound, QualificationOutbound, QualificationFax,
QualificationEMail et QualificationChat sont marquées comme obsolètes
dans le code. Pour les nouveaux scripts, utilisez l’indexeur ou les méthodes
de l’agent.
Agent.GetSkillQualification(skillId, typeQualification) renvoie le niveau
actuellement effectif sous forme d’int ; sans affectation, elle renvoie
KnowledgeLevel.None. Une surcharge accepte un Struct_Skill au lieu de
son identifiant. Agent.GetSkillQualification(conversation) utilise la
compétence et le type de qualification de la conversation.
Agent.HasSkillQualification(skillId, typeQualification, exigence) renvoie
la vérification correspondante sous forme de bool.
Skills et Languages décrivent les affectations configurées ;
EffectiveSkills et EffectiveLanguages décrivent l’état actuellement
effectif. Les méthodes de l’agent mentionnées utilisent cet état effectif.
Une vérification de qualification ne remplace toutefois pas une vérification
complète de la connexion, de la disponibilité et des conditions de distribution.
Struct_Activity — activité
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
| Propriété | Type | Signification |
|---|---|---|
Id |
int |
identifiant d’activité |
Name, Description |
string |
nom et description |
Duration |
int |
durée configurée en secondes |
DurationTimeSpan |
TimeSpan |
même durée sous forme d’intervalle |
IsBusyTime |
bool |
compter comme temps d’occupation |
AllowCalls |
bool |
autoriser les appels pendant l’activité |
AnswerBySupervisor |
bool |
réponse par le superviseur prévue |
AutomaticRelease |
bool |
libération automatique prévue |
SkipInEscalation |
bool |
ignorer lors de l’escalade |
Key |
string |
identifiant sous forme de texte |
ConversationDataElement — donnée jointe individuelle
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
| Propriété | Type | Signification |
|---|---|---|
Key |
string |
nom de la donnée jointe |
Value |
string |
valeur stockée |
Position |
int |
position |
IsVisible |
bool |
indicateur de visibilité, activé par défaut |
Value est toujours du texte. Pour un calcul, analysez explicitement un
nombre ou une date stockés avec le format adapté. L’événement d’un élément
individuel ne fournit pas une collection de toutes les données jointes.
Voir Événements.
Struct_VIPClass — classe VIP
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
| Propriété | Type | Signification |
|---|---|---|
Id |
int |
identifiant |
Name, Description |
string |
nom et description |
Priority |
int |
priorité |
ARGBColor |
int |
valeur de couleur ARGB stockée |
Key |
string |
identifiant sous forme de texte |
Struct_PbxSettings — référence au système téléphonique
Espace de noms : ilogixx.SharedFiles.GeneralDefinitions.
Ces champs permettent une référence simple au système téléphonique :
| Propriété | Type | Signification |
|---|---|---|
Tag |
string |
identifiant des paramètres téléphoniques |
Master, Standby |
string |
serveur principal et de secours |
PBXType |
PBXType |
type de système téléphonique |
PBXProtocol |
Protocol |
protocole |
SipRealm |
string |
domaine SIP |
ExternalLinePrefix |
string |
préfixe de ligne extérieure |
SipBasePort, SipPortRange |
uint |
début et taille de la plage de ports SIP |
ChatMessage — message de chat individuel
Espace de noms : ilogixx.SharedFiles.
| Propriété | Type | Signification |
|---|---|---|
Id, Key |
string |
identifiant du message |
Time |
DateTime |
instant du message |
ParticipantName |
string |
nom du participant |
ParticipantType |
ParticipantType |
type de participant |
HtmlMessage |
string |
texte du message pouvant contenir une mise en forme HTML |
IntrusionMode |
IntrusionMode |
mode d’intervention |
RecordingSummary — enregistrement terminé
Espace de noms : ilogixx.General.Shared. L’événement
My_RecordingSummaryReceived fournit cet objet.
| Propriété | Type | Signification |
|---|---|---|
FilePath |
string |
chemin du fichier d’enregistrement |
FileTotalTime |
TimeSpan |
durée totale |
FileSize |
long |
taille du fichier |
FileType |
AudioFileType |
type de fichier audio |
RecordingType |
RecordingType |
type d’enregistrement |
Interpréter correctement les types
Comparez les énumérations à des valeurs nommées comme
ConversationState.Connected plutôt qu’à des nombres supposés. Les numéros
téléphoniques et identifiants restent des string : un numéro de téléphone
n’est pas une valeur numérique. TimeSpan est une durée, DateTime un
instant. Pour l’affichage et les calculs, TimeSpan.TotalSeconds et
TimeSpan.TotalMinutes sont utiles ; Seconds ne contient que la composante
des secondes.
Les tableaux décrivent la version du produit utilisée. Les collections, historiques de conversation et objets complexes d’administration nécessitent un accès plus avancé et ne sont pas présentés ici comme des valeurs simples.