Disponibilité de l'API des employés
L’API de Disponibilité des Agents est conçue pour donner aux propriétaires de numéros de service un accès de bas niveau aux données de statut des agents pour des implémentations personnalisées dans leur propre logiciel.
L’API est notamment utilisée pour afficher en temps réel la disponibilité des conseillers téléphoniques en ligne.
Un aperçu des appels disponibles et des résultats attendus se trouve dans notre documentation API ci-dessous.
Attention : cette documentation est destinée aux programmeurs ayant de l’expérience en PHP, Python ou d’autres langages de programmation, travaillant avec des API et interrogeant et traitant des données XML.
Aperçu
L’API de Disponibilité des Agents est conçue pour donner aux propriétaires de numéros de service un accès de bas niveau aux statuts des agents pour une implémentation personnalisée dans leur propre logiciel.
Vous trouverez ci-dessous une liste des appels disponibles.
Appels
ivr.getAgentAvail
Indique si une extension particulière est occupée.
Url : http://api1.belfabriek.nl/xml/agent/xml.asp
Entrée :
- accountPin - Code PIN du compte client
- extensionId - ID de l’extension (également appelé ID de l’agent)
Sortie :
- available - si l’agent est activé (0 = non, 1 = oui)
- availReason - Informations supplémentaires sur le statut de l’agent (par exemple “en pause” ou “en traitement”)
- extension - le numéro de téléphone actuel auquel cette extension se connecte
general.getExtensionStatus
Retourne le statut actuel d’un agent.
Url : http://api1.belfabriek.nl/xml/agent/xml.asp
Entrée :
- supId - ID du superviseur
- manId - ID du manager
- custId - ID du compte
- extId - ID de l’extension
Sortie :
- status
- calling - en connexion
- called - connexion établie
- wrapup - la connexion est en wrapup
- idle
Comment utiliser ces appels
Ces appels sont effectués sous forme d’appels HTML Post utilisant des paquets XML RPC. Dans les exemples ci-dessous, nous vous montrerons comment faire cela, y compris un exemple de code.
HTTP Post via XML RPC
Le client envoie un paquet XML RPC à l’URL spécifiée. Le nom de la fonction doit être spécifié.
Exemple de ce à quoi ressemble un message XML RPC à notre serveur XML RPC
:<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
<methodName>functie.naam</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>param1</name>
<value><string>value1</string></value>
</member>
<member>
<name>param2</name>
<value><string>value2</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>Notre serveur XML RPC doit toujours recevoir toutes les données
dans le format XML RPC correct.
De plus, le serveur XML RPC s’attend à recevoir tous les paramètres sous forme de chaînes.
Un exemple de réponse XML RPC de notre serveur XML RPC tel que vous le recevriez
:<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>param1</name>
<value><string>value1</string></value>
</member>
<member>
<name>param2</name>
<value><string>value2</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>## Exemples
Dans cette section, nous allons montrer comment utiliser ces appels en utilisant PHP et curl. Ces appels peuvent être effectués de manière similaire dans n’importe quel autre langage de programmation.
ivr.getAgentAvail
Voici un exemple d’appel valide ivr.getAgentAvail en PHP :<?php
$accountPin = 'xxxxx'; //replace value with your own value
$extensionId = 'xxxxx'; //replace value with your own value
$url = 'http://api1.belfabriek.nl/xml/agent/xml.asp';
$xml_data = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
<methodCall>
<methodName>ivr.getAgentAvail</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>accountCode</name>
<value><string>$accountPin</string></value>
</member>
<member>
<name>extensionId</name>
<value><string>$extension</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PORT , 80);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $xml_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Transfer-Encoding: binary");
header("Content-Type: text/xml charset=UTF-8");
echo $data;
die();
?>Langue source : nl Langue cible : fr
La réponse ressemblerait à ceci :<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>available</name>
<value>
<i4>0</i4>
</value>
</member>
<member>
<name>availReason</name>
<value>
<string>-</string>
</value>
</member>
<member>
<name>extension</name>
<value>
<string>31201234567</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>La valeur sous<name>extension</name>:<value>
<string>31201234567</string>
</value>Source language: nl Target language: fr
est le numéro de destination
general.getExtensionStatus
Voici un exemple d’appel valide de general.getExtensionStatus en PHP :<?php
ini_set('display_errors', 'On');
$supId = 'x'; //replace value with your own value
$manId = 'x'; //replace value with your own value
$customerId = 'xxxxx'; //replace value with your own value
$extId = 'xxxxx'; //replace value with your own value
$url = 'http://api1.belfabriek.nl/xml/agent/xml.asp';
$xml_data = "<?xml version='1.0'?>
<methodCall>
<methodName>general.getExtensionStatus</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>supId</name>
<value><string>$supId</string></value>
</member>
<member>
<name>manId</name>
<value><string>$manId</string></value>
</member>
<member>
<name>accountCode</name>
<value><string>$customerId</string></value>
</member>
<member>
<name>extensionId</name>
<value><string>$extId</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PORT , 80);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $xml_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Transfer-Encoding: binary");
header("Content-Type: text/xml charset=UTF-8");
echo $data;
die();
?>Langue source : nl Langue cible : fr
La réponse ressemblerait à ceci :<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Available</name>
<value>
<string>called</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>## Comment utiliser ces appels
Nous pouvons utiliser ces deux appels ensemble pour obtenir le statut actuel exact d’une extension ou d’un agent.
Nous commençons par l’appel ivr.getAgentAvail. La réponse availReason nous indiquera tout ce que nous devons savoir si l’extension n’est pas disponible (available = 0).
Les availReasons possibles incluent « pause » (l’agent fait une pause et n’accepte actuellement pas d’appels), ou « - » (l’agent n’est actuellement pas connecté ou autrement indisponible).
Si l’extension est disponible (available = 1), nous voulons approfondir en utilisant l’appel general.getExtensionStatus.
Si le statut est soit « calling » soit « called », nous savons que l’agent est en communication. Sinon, il est ou sera bientôt disponible pour les appels entrants.
La manière dont vous souhaitez gérer les différents statuts dépend beaucoup de votre implémentation exacte et de ses exigences.









