De Agent Availability API è destinata a fornire ai proprietari di numeri di servizio un accesso di basso livello ai dati sullo stato degli agenti per implementazioni personalizzate nel proprio software.

L’API viene utilizzata, tra l’altro, per mostrare in tempo reale la disponibilità degli agenti telefonici online.

Un riepilogo delle chiamate disponibili e dei risultati attesi è disponibile nella nostra documentazione API qui sotto.

Nota: questa documentazione è destinata a programmatori con esperienza in PHP, Python o altri linguaggi di programmazione, nel lavoro con le API e nella richiesta e elaborazione di dati XML.

Panoramica

L’Agent Availability API è destinata a fornire ai proprietari di numeri di servizio un accesso di basso livello agli stati degli agenti per implementazioni personalizzate nel proprio software.

Di seguito è riportato un elenco delle chiamate disponibili.

Chiamate

ivr.getAgentAvail

Indica se un particolare interno è occupato.

Url: http://api1.belfabriek.nl/xml/agent/xml.asp

In:

  • accountPin - PIN dell’account cliente
  • extensionId - ID dell’interno (noto anche come ID Agente)

Out:

  • available - se l’agente è abilitato (0 = no, 1 = sì)
  • availReason - Informazioni aggiuntive sullo stato dell’agente (ad es. “in pausa” o “in gestione”)
  • extension - il numero di telefono attuale a cui questo interno si collega

general.getExtensionStatus

Restituisce lo stato attuale di un agente.

Url: http://api1.belfabriek.nl/xml/agent/xml.asp

In:

  • supId - ID supervisore
  • manId - ID manager
  • custId - ID account
  • extId - ID interno

Out:

  • status
  • calling - connessione in corso
  • called - connessione stabilita
  • wrapup - connessione in fase di chiusura
  • idle

Come utilizzare queste chiamate

Queste chiamate vengono effettuate come chiamate HTML Post utilizzando pacchetti XML RPC. Negli esempi seguenti ti mostreremo come farlo, incluso il codice di esempio.

HTTP Post via XML RPC

Il cliente invia un pacchetto XML RPC all’URL specificato. Il nome della funzione deve essere specificato.

Esempio di come appare un messaggio XML RPC al nostro server 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>Il nostro server XML RPC dovrebbe sempre ricevere tutto nel formato XML RPC corretto.

Inoltre, il server XML RPC si aspetta di ricevere tutti i parametri come stringhe.

Un esempio di una risposta XML RPC dal nostro server XML RPC come la riceveresti:<?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>## Esempi

In questa sezione mostreremo come utilizzare queste chiamate usando PHP e curl. Queste chiamate possono essere effettuate in modo simile in qualsiasi altro linguaggio di programmazione.

ivr.getAgentAvail

Di seguito è riportato un esempio di una chiamata valida ivr.getAgentAvail in 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();

?>Lingua di origine: nl Lingua di destinazione: it

La risposta potrebbe apparire in questo modo:<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>Il valore sotto<name>extension</name>Mi dispiace, ma non hai fornito alcun testo da tradurre. Potresti per favore fornire il testo in olandese che desideri tradurre in italiano?<value>

             <string>31201234567</string>

</value>### general.getExtensionStatus

Di seguito è riportato un esempio di una chiamata valida a general.getExtensionStatus in 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();

?>Source language: nl Target language: it

Titolo

Benvenuti nel nostro progetto. Questo documento fornisce una panoramica delle funzionalità e delle istruzioni per l’uso.

Funzionalità

  • Facilità d’uso: L’interfaccia è intuitiva e facile da navigare.
  • Prestazioni elevate: Ottimizzato per garantire velocità e efficienza.
  • Sicurezza: Protezione avanzata dei dati degli utenti.

Istruzioni per l’uso

  1. Installazione: Scarica il pacchetto dal sito ufficiale.
  2. Configurazione: Segui le istruzioni nella guida utente.
  3. Avvio: Esegui l’applicazione e accedi con le tue credenziali.

Supporto

Per ulteriore assistenza, contatta il nostro team di supporto all’indirizzo supporto@example.com.

Grazie per aver scelto il nostro prodotto!<methodResponse>

 <params>

   <param>

     <value>

       <struct>

         <member>

           <name>Available</name>

           <value>

             <string>called</string>

           </value>

         </member>

       </struct>

     </value>

   </param>

 </params>

</methodResponse>## Come utilizzare queste chiamate

Possiamo utilizzare queste due chiamate insieme per ottenere lo stato attuale esatto di un’estensione o di un agente.

Iniziamo con la chiamata ivr.getAgentAvail. La risposta availReason ci dirà tutto ciò che dobbiamo sapere se l’estensione non è disponibile (available = 0).

I possibili availReason includono “pause” (l’agente sta facendo una pausa e attualmente non accetta chiamate), o “-” (l’agente non è attualmente connesso o altrimenti non è disponibile).

Se l’estensione è disponibile (available = 1), vogliamo indagare ulteriormente utilizzando la chiamata general.getExtensionStatus.

Se lo stato è “calling” o “called”, sappiamo che l’agente è in una chiamata. Altrimenti, è o sarà presto disponibile per le chiamate in arrivo.

Il modo in cui si desidera gestire i diversi stati dipende molto dalla tua esatta implementazione e dai suoi requisiti.