Medarbetartillgänglighet API
De Agent Availability API är avsedd att ge servicenummerägare låg-nivå åtkomst till agentstatusdata för anpassade implementationer i egen programvara.
API:et används bland annat för att visa tillgängligheten för telefonkonsulenter i realtid online.
En översikt över de tillgängliga anropen och förväntade resultat finns i vår API-dokumentation nedan.
Observera: denna dokumentation är avsedd för programmerare med erfarenhet av PHP, Python eller andra programmeringsspråk, arbete med API:er och hämtning och bearbetning av XML-data.
Översikt
Agent Availability API är avsett att ge servicenummerägare låg-nivå åtkomst till agentstatusar för anpassad implementation i deras egen programvara.
Nedan finns en lista över de tillgängliga anropen.
Anrop
ivr.getAgentAvail
Indikerar om en viss anknytning är upptagen.
Url: http://api1.belfabriek.nl/xml/agent/xml.asp
In:
- accountPin - Kundens kontopin
- extensionId - Anknytnings-ID (även kallat Medarbetar-ID)
Ut:
- available - om agenten är aktiverad (0 = nej, 1 = ja)
- availReason - Ytterligare information om agentens status (t.ex. “pausad” eller “hantering”)
- extension - det aktuella telefonnumret som denna anknytning ansluter till
general.getExtensionStatus
Returnerar den aktuella statusen för en agent.
Url: http://api1.belfabriek.nl/xml/agent/xml.asp
In:
- supId - Supervisor-ID
- manId - Manager-ID
- custId - Konto-ID
- extId - Anknytnings-ID
Ut:
- status
- calling - ansluter
- called - anslutning etablerad
- wrapup - anslutning är i avslutning
- idle
Hur man använder dessa anrop
Dessa anrop görs som HTML Post-anrop med XML RPC-paket. I exemplen nedan visar vi hur du gör det, inklusive exempel på kod.
HTTP Post via XML RPC
Kunden skickar ett XML RPC-paket till den angivna URL:en. Funktionsnamnet måste anges.
Exempel på hur ett XML RPC-meddelande till vår XML RPC-server ser
ut:<?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>
Vår XML RPC-server bör alltid ta emot allt i korrekt XML
RPC-format.
Dessutom förväntar sig XML RPC-servern att ta emot alla parametrar som strängar.
Ett exempel på ett XML RPC-svar från vår XML RPC-server som du skulle ta emot
det:<?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>
## Exempel
I det här avsnittet kommer vi att visa hur man använder dessa anrop med PHP och curl. Dessa anrop kan göras på ett liknande sätt i vilket annat programmeringsspråk som helst.
ivr.getAgentAvail
Följande är ett exempel på ett giltigt ivr.getAgentAvail-anrop i 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();
?>
Källspråk: nl Målspråk: sv
Svaret skulle se ut ungefär så här:<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>
Värdet under<name>extension</name>
Källa: nl Mål: sv
:<value>
<string>31201234567</string>
</value>
### general.getExtensionStatus
Följande är ett exempel på ett giltigt general.getExtensionStatus-anrop i
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();
?>
Källspråk: nl Målspråk: sv
Svaret skulle se ut ungefär så här:<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>Available</name>
<value>
<string>called</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
## Hur man använder dessa anrop
Vi kan använda dessa två anrop tillsammans för att få den exakta aktuella statusen för en förlängning eller agent.
Vi börjar med anropet ivr.getAgentAvail. Svarets availReason kommer att berätta allt vi behöver veta om förlängningen inte är tillgänglig (tillgänglig = 0).
Möjliga availReasons inkluderar “pause” (agenten tar en paus och accepterar för närvarande inte samtal), eller “-” (agenten är för närvarande inte inloggad eller annars inte tillgänglig).
Om förlängningen är tillgänglig (tillgänglig = 1), vill vi undersöka vidare med anropet general.getExtensionStatus.
Om statusen är antingen “calling” eller “called”, vet vi att agenten är i ett samtal. Annars är de eller kommer snart att vara tillgängliga för inkommande samtal.
Hur du vill hantera olika statusar beror mycket på din exakta implementering och dess krav.