SOAP API (podpora ukončena 1.7.2017)
POZOR: Podpora protokolu SOAP bude ukončena k 1.7.2017. Funkce budou dostupné v rámci REST API local (deprecated)
SOAP (celým názvem Simple Object Access Protocol) je protokolem pro výměnu zpráv založených na XML přes síť, hlavně pomocí HTTP. Formát SOAP tvoří základní vrstvu komunikace mezi webovými službami a poskytuje prostředí pro tvorbu složitější komunikace.
Existuje několik různých druhů šablon pro komunikaci na protokolu SOAP. Nejznámější z nich je RPC šablona, kde jeden z účastníků komunikace je klient a na druhé straně je server. Server ihned odpovídá na požadavky klienta.
SOAP je nástupce XML-RPC, ačkoliv si zapůjčuje jeho způsob přenosu dat a další vlastnosti. Obálka, hlavička a tělo komunikace je ale pravděpodobně z WDDX.
Původně ho navrhl Dave Winer, Don Box, Bob Atkinson a Mohsen Al-Ghosein v roce 1998 za podpory firmy Microsoft (kde tou dobou Atkinson a Al-Ghosein pracovali). Dnes je SOAP specifikace držena XML skupinou tvořící internetové protokoly z W3C konsorcia.
Zdroj http://cs.wikipedia.org/wiki/SOAP
Tento dokument popisuje základní metody pro integraci pobočkové ústředny s Informačním systémem, CRM a dalšími systémy. Umožňuje ovládat ústřednu z pohledu administrace tzn. založit linku, změnit parametry atp. Dále umožňuje získávat informace o aktuálních stavech jako jsou aktuální hovory, stav vyzvánění u linek. Umožňuje také periodicky získávat CDR.
Ověření
Probíhá na bázi http basic auth. Heslován je přístup k wsdl souboru. Komunikace je šifrovaná. Login a heslo pro přístup k souboru je přebírán z definice uživatelů v ústředně („Uživatelé“).
URL pro autentizaci: https://IP_ustredny/…ap/ipbx.wsdl
Pro připojení k SOAP serveru je nutné v administračním rozhraní ústředny vytvořit uživatele s právy SOAP.
SOAP typy proměnných
Celé názvosloví bylo zvoleno tak, aby korespondovalo s již zavedeným názvoslovím ve světě PBX.
Místo Line byl zvolen zkrácený název Exten od slova Extension, které znamená v překladu pobočková linka.
Dokumentace viz http://cdn.ipex.cz/ipbx.wsdl
getExtenCalls -> protože linka může současně vést několik hovorů, funkce vrací pole vedených
hovorů. Informace o aktuálních hovorech v ústředně.
SOAP funkce
Zde definujeme funkce, které potřebujeme pro základní interakci našeho IS s ústřednou.
Management linek
- getExten Získá nastavení linky. Vrací pole informací o lince (typ LineInfo).
- extenInfo Vrací nastavení linky a SIP kanálu.
- getCELList Získá serializované pole události.
- createExten Vytvoří linku.
- deleteExten Zrušení linky.
- getAllExten Nastavení všech linek. získání pole informací o linkách (každá typ LineInfo).
- updateExten Změna parametru linky.
- getExtenCalls Zjištění stavu linky.
- redirectExten Změna parametru linky.
- getDialplanList Seznam číslovacích plánů.
- getOutRouteList Seznam odchozích směrování.
- getAllExtenCalls Zjištění stavu všech linek.
- deleteSpecialExten Smazani speciální linky a zařízení.
- cancelRedirectExten Zruší přesměrování linky lineNumber.
- getAllActiveExtenCalls identicka funkce jako getAllExtenCalls, ale tato funkce zobrazuje je ty linky, ktere hovori.
Hovory
- originateExten(fromNumber,lineNumber) vyvolá hovor z fromNumber linky(číslo linky) na lineNumber(na jakékoliv číslo)
- getExtenCalls získá seznam aktuálních hovorů, které probíhají pro danou linku
- getAllExtenCalls získá seznam aktuálních hovorů, které probíhají na všech linkách
- isRingingExten(lineNumber) vrátí číslo, které zvoní na lince lineNumber. Když nikdo nevolá vrátí false.
- monitorExten(lineNumber,listenerLineNumber) nastavit příposlech
- actionTransfer provede přepojení hovoru. Parametry jsou zdrojový kanál a id cílové linky.
- hangupExten Ukončení hovorů zadané linky.
Výpisy
- getCDRList(fromDate,toDate) získá výpis hovorů (pole, kde budou obsaženy všechny informace z CDR výpisu) omezený úsekem zadaných dat
Statistiky Call Centra
Nahrávání
- setRecordingExtenOn(lineNumber) nastaví, že linka bude nahrávaná
- setRecordingExtenOff(lineNumber) nastaví, že linka nebude nahrávaná
- getMonitorFile(fileName) - stáhne nahrávku hovoru
Ovládání seznamu kontaktů
- createContact vytvoří nový kontakt
- deleteContact odstraní kontakt
- getContact vrací podrobné informace o jednom kontaktu
- getAllContacts vrací celý seznam kontaktů. U jednotlivých kontaktů vrací id, celé jméno a telefonní čísla.
Systémové funkce
- reloadConfiguration provede nové načtení konfigurace ústředny. Načtení konfigurace je potřeba provést po použití funkcí createExten, updateExten, setRecordingExtenOn a setRecordingExtenOff.
Příklady
Příklad odchozího volání v jazyce PHP. Zavolá linku uživatele, který chce odchozí hovor
uskutečnit. Po zvednutí sluchátka je iniciován hovor na volané číslo.
<?php
$username="soap";
$password="soapheslo";
$client = newSoapClient("https://IP_ustredny/ipbx/soap/wsdl.php",array('encoding'=>'UTF-8','trace'=>1,'exceptions'=>1,'login'=>$username,'password'=>$password));
// zavolej na telefonni cislo
try {
$out=$client->__soapCall("originateExten",array("from"=>"85","to"=>"0575750957","callerId"=>"85"));
print_r($out);
}
catch (Exception $e)
{
print_r($e);
};
?>
Další příklady k jednotlivým funkcím jsou k dispozici v repozitáři examples - https://bitbucket.org/ipex/examples