La stratégie de sonnerie « iQueue » (voir aussi « Configurer l’iQueue sur STARFACE » und « Configurer l’analyse pour l’iQueue ») permet aux applications externes d'accéder à des données en direct et à des données historiques. La technologie XML-RPC est utilisée pour les deux interfaces. Les données en direct d'une iQueue sont appelées à l'aide de la fonction XML-RPC « Queue.getLiveData », qui attend un paramètre d'entrée :
<name>queueName</name> <string>…</string>
Cette fonction renvoie les valeurs suivantes :
callersLiveData (LIST) - Cette valeur de retour est une liste, qui à son tour contient des maps comme éléments. Chaque mappe contient des informations (clé -> valeur) sur exactement un appelant qui se trouve dans la queue à ce moment-là. La liste est triée en fonction de la position de l'appelant dans la queue. Chaque mappe contient les clés suivantes :
Nom | Type | Description |
---|---|---|
Callerid | String | L'ID unique de l'appel (z.B.: 995624b0-7385-404d-a658-dc942a1cbfe9) |
CallerNumber | String | Le numéro de téléphone de l'appelant |
CallerName | String | Nom de l'appelant sous la forme « Numéro composé : Nom de l'appelant Numéro de l'appelant » (par exemple : 154813 : John Doe 01238756) |
CallerChannel | String | L'ID unique du canal d'appel (ce n'est pas un canal d'appel au sens physique du terme !) |
CallerPriority | Int | Priorité d'appel |
CallerTime | String | L'horodatage Unix de l'entrée dans la queue (par exemple : 1304682789341) |
CallerPosition | Int | Indique la position actuelle de l'appelant dans la queue. La position peut s'écarter temporairement de la position réelle dans la queue. Si l'appel est déjà passé, la valeur de la touche est -1. |
CallerState | String | Un appel peut avoir lieu dans l'un des quatre états :
|
AgentId | String | L'ID de connexion de l'agent auquel l'appelant est connecté (par exemple : 0013). Cette valeur est vide pour les statuts d'appel « CALLING » et « WAITING ». |
AgentName | String | Nom de l'agent auquel l'appelant est connecté. Cette valeur est vide pour les statuts d'appel « CALLING » et « WAITING ». |
agentsLiveData (MAP) - Ce paramètre de retour est une map, qui à son tour contient des mappes comme éléments. La clé de la map est le ID de connexion de l'agent. Chaque map d'éléments contient des informations (clé -> valeur) sur un agent :
Nom | Type | Description |
---|---|---|
AgentId | String | ID de connexion de l'agent |
AgentName | String | Nom de l'agent |
AgentGroupState | String | Indique si l'agent est actuellement connecté au groupe ou non. Les valeurs possibles sont :
|
AgentUserState | String | Affiche le statut d'utilisateur d'un agent. Les valeurs possibles sont :
|
AgentPhoneState | String | Indique la disponibilité téléphonique (statut) d'un agent :
|
Interface d'historique
Les données historiques d'une iQueue sont appelées à l'aide de la fonction XML-RPC « Queue.getHistoryData ». Le paramètre d'entrée pour cela est une « struct » avec trois spécifications de valeur :
Nom | Type | Description |
---|---|---|
queueName | String | Nom du groupe iQueue souhaité |
from | dateTime.iso8601 | Début de l'intervalle de temps (doit contenir une valeur de temps conforme au XML-RPC) |
to | dateTime.iso8601 | Fin de la période (muss einen XML-RPC konformen Zeit-Wert enthalten) |
Cette fonction a une valeur de retour :
queueHistoryData (LIST) - Les éléments de la liste sont des mappes et chaque map contient des informations sur un appel précis. La liste est triée en fonction de l'horodatage des appels. Chaque élément de la liste contient les clés suivantes :
Nom | Type | Description |
---|---|---|
callId | String | ID de l'appel dans la base de données commençant par 1. |
callStepId | Int | Fusionne plusieurs entrées de différents utilisateurs s'ils appartiennent à un même appel. |
callLegUUID | String | ID unique du CallLeg |
agentId | String | Login de l'agent qui a accepté l'appel/Champ vide = Appel non accepté |
cdrAccountId | Int | ID de compte de l'utilisateur auquel l'entrée de la liste d'appels appartient |
callerAccountId | Int | ID de compte de l'appelant s'il s'agit d'un utilisateur interne, sinon vide |
calledAccountId | Int | ID de compte de l'appelé s'il s'agit d'un utilisateur interne, sinon vide |
calledCallerId | String | CallerId tel qu'il est affiché sur le téléphone |
startTime | String | Début de l'appel sous forme d'horodatage Unix |
ringingtime | String | Début de la sonnerie chez l'agent de l'appel en tant qu'horodatage Unix |
linktime | String | Connexion à l'agent sous forme d'horodatage Unix |
callresulttime | String | L'appel a été terminé sous forme d'horodatage Unix |
callresult | String | Le résultat de la section d'appel |
callResultCauseBy | Int | AccountId de l'utilisateur qui a déclenché le résultat |
lineid | Int | La ligne utilisé |
lineName | String | Nom de la ligne utilisée |
callbacknumber | String | Le numéro de rappel de l'autre partie à laquelle appartient l'entrée de la liste d'appel |
answeredelswere | String | Remplie uniquement si l'appel a été répondu par une autre personne |
incoming | Boolean | True pour un appel entrant |
answered | Boolean | True pour une réponse à un appel |
hasvoicemail | Boolean | True si un message vocal a été enregistré |
hasmonitor | Boolean | True pour un enregistrement de la conversation |
callbacknumberextern | Boolean | True si le numéro de rappel est un numéro externe |
Exemple
Par la méthode post :
http://IP-ADRESSE/xml-rpc?de.vertico.starface.auth=$LoginID:SHA512($LoginID*SHA512($Passwort))
Le mot de passe est d'abord haché avec SHA512. Ensuite, ce hachage est à nouveau haché avec le LoginID comme préfixe et le séparateur *. Pour un utilisateur ayant les données clés suivantes :
LoginID = 0001
Mot de passe = starface
Adresse IP du Starface = 192.168.0.100
résulte en une URL d'appel pour XML-RPC :
http://192.168.0.100/xml-rpc?de.vertico.starface.auth=0001:5273503e607e5b24eeb48a3f71c53eb50df6b6622839ecd7149e248893f627d05d8d4af88cf36b3d7d5cd5d1d559dfa1c10404067d8c0f37a138c6546dad7ef7
Le corps ressemblerait alors à ceci, par exemple :
<?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>