API rozhraní
Ústředna VoIPSUN PBX disponuje mimo Asterisk API rozhraní i jednoduchým API rozhraním, přes které lze jednoduše inicializovat hovor a ukončit (click2call) nebo zobrazit seznam aktivních hovorů. Další funkce lze doprogramovat na přání klienta.
Obsah
Vytočení čísla
Inicializovat nový hovor je možné čtyřmi způsoby. Liší se jen v informaci, na kterou telefonní linku má ústředna zavolat předtím, než začne spojovat hovor na cílové telefonní číslo. Vytočení čísla funguje tak, že ústředna nejprve zavolá na zvolenou linku a po vyzvednutí hovoru začne okamžitě vytáčet cílové číslo.
Proměnné a jejich hodnoty:
PROMĚNNÁ - HODNOTA - popis
username - autorizační jméno - API uživatelé se nastavují v nabídce Nastavení -> HTTP API uživatelé.
password - autorizační heslo - přihlašovací heslo.
action - originate - ústředně bude předán pokyn na vytvoření nového hovoru.
dstNum - cílové telefonní číslo - číslo, na které bude hovor spojen.
srcExtenPublicNum - veřejné číslo linky - veřejné číslo linky, na kterou ústředna zavolá před vytočením cílového telefonního čísla.
srcExtenInternalNum - interní číslo linky - interní číslo linky, na kterou ústředna zavolá před vytočením cílového telefonního čísla.
srcExtenId - ID linky - ID linky, na kterou ústředna zavolá před vytočením cílového telefonního čísla. ID lze zjistit z databáze z tabulky extensions. Tento způsob je určen především pro vývojáře informačních systémů s přístupem do databáze ústředny.
srcSipUsername - SIP uživatelské jméno - SIP uživatelské jméno linky, na kterou ústředna zavolá před vytočením cílového telefonního čísla.
dialplanName - název číslovacího plánu - pokud používáte v ústředně více interních linek se stejným číslem, tak je nutné upřesnit jméno číslovacího plánu, ze kterého se má vybrat interní linka. Jinak je parametr nepovinný.
customCDR1 - číselná nebo textová hodnota - tato hodnota bude uložena do CDR do sloupce CustomCDR1. Parametr je nepovinný.
customCDR2 - číselná nebo textová hodnota - tato hodnota bude uložena do CDR do sloupce CustomCDR2. Parametr je nepovinný.
customCDR3 - číselná nebo textová hodnota - tato hodnota bude uložena do CDR do sloupce CustomCDR3. Parametr je nepovinný.
customCDR4 - číselná nebo textová hodnota - tato hodnota bude uložena do CDR do sloupce CustomCDR4. Parametr je nepovinný.
dialerCid - telefonní číslo - telefonní číslo, které se zobrazí jako volající číslo volané lince. V případě, že dialerCid není zadán, pak se na telefonu objeví číslo 000 Dialer. Pokud si přejete jako číslo volajícího použít hodnotu z customCDR, pak použijte syntax dialerCid=customCDRX, kde X je hodnota od 1 do 4. Parametr je nepovinný.
dialerName - jméno volajícího dialeru - text, který se zobrazí jako volající jméno volané lince. V případě, že dialerName není zadán, pak se na telefonu objeví jméno Dialer, nebo číslo z parametru dialerCid. Parametr je nepovinný.
monitorFilename - název souboru - název souboru se zvukovým záznamem hovoru. Parametr je nepovinný. Pokud si přejete hovor nahrávat, pak musíte mít zapnuté nahrávání hovoru v nastavení linky.
overrideCallerId - telefonní číslo - telefonní číslo, které se zobrazí, jako číslo volajícího cílovému telefonnímu číslu, které vytočí dialer. Parametr je nepovinný, pokud není zadán, použije se číslo volajícího z dané linky.
checkExten - libovolná hodnota - pokud je vyplněna proměnná checkExten, ústředna před vytočením linky zkontroluje, zda je linka dostupná. Kontroluje se, zda je telefon registrován k ústředně a pokud ano, tak zda je linka volná, nebo obsazena.
checkIpHost - IP adresa - kontrola, zda je vytáčená linka zaregistrována ze stejné IP adresy jako je adresa v proměnné checkIpHost.
checkIpContact - IP adresa - kontrola, zda vytáčená linka obsahuje v kontaktní adrese IP adresu z proměnné checkIpContact.
Vyberte pouze jeden způsob vytočení linky (srcExtenPublicNum,srcExtenInternalNum, srcExtenId, srcSipUsername). Pokud jich vyberete více, ústředna hovor nevytočí a vrátí chybovou hlášku v JSON formátě.
{"success":"false","reason":"Use only one of next variables: srcExtenPublicNum, srcExtenInternalNum, srcExtenId, srcSipUsername"}
Příklady vytočení hovoru
Vytočení čísla se zadáním veřejného čísla linky - proměnná srcExtenPublicNum:
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=originate&srcExtenPublicNum=299299000&dstNum=800123456
Vytočení čísla se zadáním interního čísla linky - proměnná srcExtenInternalNum.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=originate&srcExtenInternalNum=100&dstNum=800123456
Vytočení čísla se zadáním ID linky - proměnná srcExtenId.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=originate&srcExtenId=5&dstNum=800123456
Vytočení čísla se zadáním SIP uživatelského jména - proměnná srcSipUsername.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=originate&srcSipUsername=sip100&dstNum=800123456
Ukončení hovoru
Ukončit lze libovolný probíhající hovor vedený v ústředně. Seznam probíhajících hovorů a jména jejich kanálů lze zjistit pomocí další API metody listcalls.
Proměnné a jejich hodnoty:
PROMĚNNÁ - HODNOTA - popis
username - autorizační jméno - API uživatelé se nastavují v nabídce Nastavení -> HTTP API uživatelé.
password - autorizační heslo - přihlašovací heslo.
action - hangupcall - ústředně bude předán pokyn na ukončení probíhajícího hovoru.
channelName - kanál - jméno kanálu, na kterém probíha hovor.
Příklad ukončení hovoru
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=hangupcall&channelName=SIP\5555-0000b704
Seznam probíjících hovorů
Seznam probíhajících hovorů a jména jejich kanálů lze zjistit pomocí další API metody listcalls.
Proměnné a jejich hodnoty:
PROMĚNNÁ - HODNOTA - popis
username - autorizační jméno - API uživatelé se nastavují v nabídce Nastavení -> HTTP API uživatelé.
password - autorizační heslo - přihlašovací heslo.
action - listcalls - ústředně bude předán pokyn na vrácení seznamu probíhajících hovorů. Seznam je v JSON formátě.
Příklad výpisu probíhajících hovorů
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=listcalls
Vrácené hodnoty v JSON formátě
{"success":"true","total":"4","results":[{"channelName":"SIP/555-0000b70f","context":"incomingRouteApp-1","src":"123456789","dst":"555","duration":"529","status":"Up","accountCode":"SIP_12","sourceType":"extension","idChannel":"12"},{"channelName":"SIP/550-0000b710","context":"incomingRouteApp-1","src":"987654321","dst":"550","duration":"305","status":"Up","accountCode":"SIP_35","sourceType":"extension","idChannel":"35"},{"channelName":"SIP/upc-0000b714","context":"incomingRouteApp-1","src":"123456789","dst":"111222555","duration":"529","status":"Up","accountCode":"SIPTR_1","sourceType":"trunk","idChannel":"1"},{"channelName":"SIP/upc-0000b715","context":"incomingRouteApp-1","src":"987654321","dst":"111222550","duration":"305","status":"Up","accountCode":"SIPTR_1","sourceType":"trunk","idChannel":"1"}]}
Příposlech hovoru
Inicializovat příposlech probíhajícího hovoru je možné různými způsoby. Liší se jen v informaci, na kterou telefonní linku má ústředna zavolat předtím, než spustí příposlech zvolené linky nebo hovorového kanálu. Příposlech hovoru funguje tak, že ústředna nejprve zavolá na zvolenou linku a po vyzvednutí hovoru spustí okamžitě příposlech.
Proměnné a jejich hodnoty:
PROMĚNNÁ - HODNOTA - popis
username - autorizační jméno - API uživatelé se nastavují v nabídce Nastavení -> HTTP API uživatelé.
password - autorizační heslo - přihlašovací heslo.
action - spying - ústředně bude předán pokyn na spuštění příposlechu.
srcExtenPublicNum - veřejné číslo linky - veřejné číslo linky, na kterou ústředna zavolá před spuštěním příposlechu.
srcExtenInternalNum - interní číslo linky - interní číslo linky, na kterou ústředna zavolá před spuštěním příposlechu.
srcExtenId - ID linky - ID linky, na kterou ústředna zavolá před spuštěním příposlechu. ID lze zjistit z databáze z tabulky extensions. Tento způsob je určen především pro vývojáře informačních systémů s přístupem do databáze ústředny.
srcSipUsername - SIP uživatelské jméno - SIP uživatelské jméno linky, na kterou ústředna zavolá před spuštěním příposlechu.
srcDialplanName - název číslovacího plánu - pokud používáte v ústředně více interních linek se stejným číslem, tak je nutné upřesnit jméno číslovacího plánu, ze kterého se má vybrat interní linka. Jinak je parametr nepovinný.
dstExtenPublicNum - veřejné číslo linky - veřejné číslo linky, na které bude prováděn příposlech.
dstExtenInternalNum - interní číslo linky - interní číslo linky, na které bude prováděn příposlech.
dstExtenId - ID linky - ID linky, na které bude prováděn příposlech. ID lze zjistit z databáze z tabulky extensions. Tento způsob je určen především pro vývojáře informačních systémů s přístupem do databáze ústředny.
dstSipUsername - SIP uživatelské jméno - SIP uživatelské jméno linky, na které bude prováděn příposlech.
dstDialplanName - název číslovacího plánu - pokud používáte v ústředně více interních linek se stejným číslem, tak je nutné upřesnit jméno číslovacího plánu, ze kterého se má vybrat interní linka. Jinak je parametr nepovinný.
dstChannelName - kanál - název kanálu, na kterém probíha hovor, na kterým se bude provádět příposlech.
spyCid - telefonní číslo - telefonní číslo, které se zobrazí jako volající číslo volané lince. V případě, že spyCid není zadán, pak se na telefonu objeví číslo 000 Spy. Parametr je nepovinný.
spyName - jméno volajícího - text, který se zobrazí jako volající jméno volané lince. V případě, že spyName není zadán, pak se na telefonu objeví jméno Spy, nebo číslo z parametru spyCid. Parametr je nepovinný.
Vyberte pouze jeden způsob vytočení linky (srcExtenPublicNum,srcExtenInternalNum, srcExtenId, srcSipUsername). Pokud jich vyberete více, ústředna hovor nevytočí a vrátí chybovou hlášku v JSON formátě.
{"success":"false","reason":"Use only one of next variables: srcExtenPublicNum, srcExtenInternalNum, srcExtenId, srcSipUsername"}
Vyberte pouze jeden způsob příposlechu (dstExtenPublicNum,dstExtenInternalNum, dstExtenId, dstSipUsername, dstChannelName). Pokud jich vyberete více, ústředna hovor nevytočí a vrátí chybovou hlášku v JSON formátě.
{"success":"false","reason":"Use only one of next variables: dstExtenPublicNum, dstExtenInternalNum, dstExtenId, dstSipUsername, dstChannelName"}
Příklady příposlechu hovoru
Příposlech hovoru se zadáním veřejných čísel linek - proměnné srcExtenPublicNum a dstExtenPublicNum:
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=spying&srcExtenPublicNum=299299000&dstExtenPublicNum=299299555
Příposlech hovoru se zadáním interního čísla linky a veřejného čísla odposlouchávané linky - proměnné srcExtenInternalNum a dstExtenPublicNum.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=spying&srcExtenInternalNum=100&dstExtenPublicNum=299299555
Příposlech hovoru se zadáním ID linky a SIP uživatelského jména odposlouchávané linky - proměnné srcExtenId a dstSipUsername.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=spying&srcExtenId=5&dstSipUsernamem=sip102
Příposlech hovoru se zadáním veřejného čísla linky a názvu kanálu probíhajícího hovoru - proměnné srcSipUsername a dstChannelName.
http://IP_PBX/api/api.php?username=voipsun&password=secretpwd&action=spying&srcSipUsername=sip100&dstChannelName=SIP/102-00000001
Zpátky