VoipCenter Application Programming Interface (API)

Vergelijkbare documenten
Handleiding (Windows) Instellen Add-ons:

HTTP SMS API Technische Specificatie messagebird.com versie mei 2014

Handleiding. Instellen Outlook Click-To-Dialplugin. PBXonline.be

API handleiding Pompoen SMS

Technical Note. API Beschrijving Aangetekend Mailen

SMSStunter gateway API

AUTHENTICATIE. Version Date Author Description Mark Hameetman Initiele document

HDN DARTS WEB AUTHENTICATIE

MESSAGE&to=RECEIVER&sender=FROM

API Specificatie Doc

REST Implementatie. Versie ideal

API Specificatie Doc

Aanleveren van te verzenden sms berichten aan SMS Via

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK

voizxl features en mogelijkheden

Getting Started. AOX-319 PBX Versie 2.0

Domein API Handleiding

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

Handleiding Asterisk Centrales. Handleiding Handleiding

Cartalk: Simplified REST interface

DrICTVoip.dll v 2.1 Informatie en handleiding

Handleiding Asterisk Centrales. Handleiding Handleiding

CloudTelefonie geïntegreerd met uw software: kinderlijk eenvoudig

Technische Documentatie TaxatieVoertuig A2SP 2015

Handleiding 3CX Centrale. Handleiding 3CX Centrale. Pagina 1. 12Connect 03/2011 versie2.1

Proware Cloud Webbuilder Versie 2.30

Software Design Document

Configuratie Handleiding. Cisco/Linksys SPA 94x

Security web services

Getting Started. AOX-319 PBX Versie 2.0

Configuratiehandleiding

GDPR. e2e N.V. Bruiloftstraat Gent België Tel.: +32 (0) Fax: +32(0) Website:

Handleiding. PBXonline.be. Instellen van de Online Telefooncentrale

Documentatie Visual Rental Dynamics Web API

LINKSYS SPA 9xx series

Er zijn diverse andere software platformen en providers die werken met SIP, maar in dit voorbeeld gaan we uit van de volgende software:

Technische aansluit documentatie Versie

Hoe bouw ik een component? Drs. Arjan Burger

Handleiding 3CX Softphone. Handleiding 3CX Softphone

API PostNL Extensie. Documentinformatie en copyright Document: tig_postnl_extensie_api_handleiding.docx Laatst gewijzigd op: :20 PM

Configuratiehandleiding

3Com 5500 instellen voor Qmanage

Xelion ESPA koppeling Handleiding Beheer V1.6

Handleiding integratie CF iviewer CT-iViewer

Technical Specification SOFORT Banking

Temperatuur logger synchronisatie

via Firefox

Configuratiehandleiding

Dynamische Websites. Week 2

PBX Online. Uw telefooncentrale in de cloud! BUSINESS COMMUNICATIONS. PBX Online. Tom Jansens +32 (0)

Remote Control the Robin. How-To: ROBIN Tech Note. Version: NL Datum:

Business Pro Configuration Guide Spa 2102

Configuratiehandleiding

Configuratiehandleiding

Technical Specification SOFORT Banking

Handleiding Aastra 57i

3Com 4500G instellen voor Qmanage

100% hosted telefooncentrale: direct schaalbaar direct beschikbaar direct kostenbesparend direct professionele functies

xxter Mobotix T24 configuratie

Handleiding Auerswald PBX. Handleiding Auerswald PBX

SIP analyse. Handleiding

Documentatie Visual Rental Dynamics Web API v2

Technische handleiding Mister Cash

Juniper-switches instellen voor Qmanage

Technische Handleiding. ideal

Datasheet SMS Comfort URL

Handleiding SJphone Softphone. Handleiding SJPhone

Configuratie. EasySecure International B.V. +31(0) Support.EasySecure.nl. v1.0 MSL

Uitleg Hosted Voice Portal. Erik Vos - RealConnections

Pinakes Integrator Client

Om de veiligheid van uw investeringen te waarborgen verdelen wij de taken in twee delen:

Handleiding X-Lite Softphone

Exercise assistant on-line

3Com 5500 instellen voor Qmanage

Simmpl configuratie-handleiding GXP-21xx

Handleiding Bria client

Index My VoiceKingdom login Naam van een extensie/telefoontoestel Wachtmuziek Weekschema Failover...

innovaphone Pickup calls

Support. Handleiding. X-Lite 5.0. Handleiding X-LITE 5.0

Leer-Rijk Leveranciers API

Server Side Scripting

Handleiding Snome One. Handleiding Snom One. Pagina 1. 12Connect 03/2011 versie2.1

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Patton Smart-Link M-ATA-1

x-lite 5.0 De X-lite 5.0 is een softphone die u kunt installeren op uw PC. De software is prima te gebruiken om uw testaccount van Belcentrale op uit

Inzenden en ontvangen aangifte

Instellen CASH API 3.0 Voor CASHWin gebruikers

FMSservice. Omschrijving API VeiligStallen

CallVoip Telefonie configuratie SNOM M3 IP DECT Phone

Handleiding Authenticatie

Handleiding. innooperator. ipad wachtrijapp voor innovaphone PBX centrales

Managed VoIP. Inhoud. 1 Handleiding telefoon configuratie. 1.1 Aanmelden van de locatie

VERBINDING MAKEN EN INLOGGEN...

Handleiding FT2100. Inhoud. 1. Doel Bekabeling Programmatie Inloggen MD s... 11

CLOUD4WI WI-FI AREA. Technote. Alcadis Vleugelboot CL Houten Versie: 1.0 Auteur: Thomas Snijder Datum:

Transcriptie:

Introductie Via de VoipCenter PBX API is het mogelijk om : 1. informatie op te vragen inzake de configuratie van : - SIP-accounts - Telefoonnummers - Tijdfilters zoals feestdagen, vakantieperiodes en kantooruren - Belplannen - Back-up belplannen - Gesprekken historiek - Function Indicators - Recordings (opnames) - Hot Desks 2. een configuratie te wijzigen in de PBX-software van : - Telefoonnummers - Function Indicator - Hot Desk 3. een VoIP-gesprek te initiëren Werking Een API-request wordt verstuurd via een https GET of POST met benodigde parameters. Een antwoord kan verkregen worden in 3 formaten : php, json, xml (formaat kan opgegeven worden als parameter van de API-request) Benodigdheden Om een geldige API-request te kunnen maken dient men te beschikken over een api ID en api KEY. Deze gegevens kunnen opgevraagd worden in de PBX-module Application Programming Interface onder het menu Config'.

A. GET --> informatie inzake de PBX-configuratie opvragen 1. Request $url="https://pbxonline.be/api/get.php?apiid=".$apiid."&knummer=". $KNUMMER."&pwd=".$PWD."&m=".$menu."&id=".$ID."&filter=".$filter."&f=". $format."&pass=".$hashed."&ts=".$ts; apiid = uniek ID van de API user knummer = VoipCenter klantennummer (vb 123456) pwd = VoipCenter paswoord (md5 + sha256 hash) m = menu waarop de API-request betrekking heeft id = uniek ID van de informatieeenheid die wordt opgevraagd filter = verfijning van de geretourneerde resultaten f = formaat waarin je het antwoord wilt ontvangen pass = gehasht paswoord om de request te authenticeren ts = current Unix timestamp Voorbeeld 1 : alle SIPaccounts opvragen met filter https://pbxonline.be/api/get.php? f4b18983f7fcqcf16d8c58c25db8&m=sipacc&id=0&filter=bureau&f=xml&pass=f100cff6 de82eadb2da6e4a8edb23b64d83f352af9120984be0a1258&ts=1400229417 Voorbeeld 2 : Gesprekken opvragen met filter https://pbxonline.be/api/get.php? f4b18983f7fcqcf16d8c58c25db8&m=calls&id=0&filter=20140501&f=xml&pass=f100cff6 de82eadb2da6e4a8edb23b64d83f352af9120984be0a1258&ts=1400229417 Voorbeeld 3 : Specifieke configuratie van telefoonnummer opvragen (geen filter!) https://pbxonline.be/api/get.php? f4b18983f7fcqcf16d8c58c25db8&m=did&id=540&f=xml&pass=f100cff6de82eadb2da6e 4a8edb23b64d83f352af9120984be0a1258&ts=1400229417

2. Antwoord verwerken Als de URL om de aanvraag te maken samengesteld is, kan de geretourneerde data opgevangen worden. $response = file_get_contents($url); // string in serialized of json of xml formaat Afhankelijk van het gevraagde formaat, kan de output omgezet worden in een array : switch ($format) { case "php": // PHP $mijnarray = unserialize( $response ); // serialized string omzetten naar php array case "json": // JSON $mijnarray = json_decode($response, true); // json string omzetten naar php array case "xml": // XML $mijnarray = new SimpleXMLElement($response); default: }

3. Parameters -> apiid uniek ID voor de API gebruiker, bezorgd door VoipCenter -> knummer klantennummer van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. -> pwd paswoord van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. Dit paswoord dient versleuteld te worden als volgt : sha256( md5(plaintext) ) Dus eerst een md5-versleuteling van het plain text paswoord. Daarna een sha256- versleuteling. vb : $hashed=hash( 'sha256', md5( password ) ); -> m PBX-onderdeel waarop de API-request betrekking heeft. Mogelijke waardes : sipacc : informatie over de SIP-accounts did : informatie over de configuratie van de telefoonnummers (DID's) feestdagen : informatie over de gedefinieerde feestdagen vakanties : informatie over de gedefinieerde vakantieperiodes kantooruren : informatie over de gedefinieerde kantooruren routes : informatie over de gedefinieerde routeregels backuproutes : informatie over de gedefinieerde backup routes calls : informatie over de gesprekken die plaatsgevonden hebben indicator : informatie over de gedefinieerde Function Indicators hddesk : informatie over de gedefinieerde Hot Desking Desks hdtemplate : informatie over de gedefinieerde Hot Desking Templates -> id uniek ID van een bepaald item waarvoor meer informatie wordt gevraagd. Mogelijke waardes : 0 : vraag alle items op getal : vb 2351, specifiek ID van het item TIP : er kan eerst een aanvraag gebeuren met ID-waarde 0 (nul) om een overzicht te krijgen van alle items. Uit deze lijst kan dan het ID gehaald worden van 1 specifiek item om hierover nog meer informatie te bekomen.

-> filter string om de geretourneerde resultaten te verfijnen string : vb naam, om te filteren op logische naam string : vb 12345, om te filteren op het voorkomen van deze getallenvolgorde in een telefoonnummer yyyymmdd : vb 20140501, om te filteren op datum bij het opvragen van gesprekken LET OP : enkel mogelijk bij id=0 (dus wanneer alle items opgevraagd worden) -> f formaat waarin je het antwoord wilt ontvangen php : serialized php json : json encoded xml : xml formaat -> pass waarde gehasht met een private API key in sha256 waarde : lange string bestaand uit alle parameters en hun waarde vb : $tobehashed="apiid".$apiid."knummer".$knummer."pwd".$pwd."m".$menu."id".$id."f". $format."ts".$timestamp; $hashed=hash_hmac( 'sha256', $tobehashed, $privatekey); -> ts huidige timestamp Er wordt gecontroleerd of de timestamp binnen de tijdspanne van 5 sconden na de APIaanvraag valt.

B. Call --> VoIP-gesprek initiëren (Eerst wordt de IP-phone van de gebruiker gebeld. Bij aanname wordt het externe telefoonnummer gebeld) 1. Request $url="https://pbxonline.be/api/call.php?apiid=".$apiid."&knummer=". $KNUMMER."&pwd=".$PWD."&sipacc=".$sipacc."&telnr=".$telnr."&f=".$format."&pass=". $hashed."&ts=".$ts; apiid = uniek ID van de API user knummer = VoipCenter klantennummer (vb 123456) pwd = VoipCenter paswoord (md5 + sha256 hash) sipacc = SIPaccount die zal gecontacteerd worden om de uitgaande oproep te initiëren telnr = telefoonnummer dat wordt opgebeld f = formaat waarin je het antwoord wilt ontvangen pass = gehasht paswoord om de request te authenticeren ts = current Unix timestamp Voorbeeld : oproep van SIPaccount 'sipaccount1' naar telnr 02/123.45.67 https://pbxonline.be/api/call.php? f4b18983f7fcqcf16d8c58c25db8&sipacc=sipaccount1&telnr=021234567&f=xml&pass=f 100cff6de82eadb2da6e4a8edb23b64d83f352af9120984be0a12581123e9eb&ts=140022 9417

2. Antwoord verwerken Als de URL om de aanvraag te maken samengesteld is, kan de geretourneerde data opgevangen worden. $response = file_get_contents($url); // string in serialized of json of xml formaat Afhankelijk van het gevraagde formaat, kan de output omgezet worden in een array : switch ($format) { case "php": // PHP $mijnarray = unserialize( $response ); // serialized string omzetten naar php array case "json": // JSON $mijnarray = json_decode($response, true); // json string omzetten naar php array case "xml": // XML $mijnarray = new SimpleXMLElement($response); default: }

3. Parameters -> apiid uniek ID voor de API gebruiker, bezorgd door VoipCenter -> knummer klantennummer van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. -> pwd paswoord van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. Dit paswoord dient versleuteld te worden als volgt : sha256( md5(plaintext) ) Dus eerst een md5-versleuteling van het plain text paswoord. Daarna een sha256- versleuteling. vb : $hashed=hash( 'sha256', md5( password ) ); -> sipacc SIPaccount die de uitgaande oproep zal plaatsen. Dit is tevens de SIPaccount die eerst zal opgebeld worden alvorens de verbinding naar het externe telefoonnummer wordt gemaakt. Mogelijke waardes : string : SIPaccount username -> telnr telefoonnummer dat moet worden opgebeld, in Belgisch of Internationaal E164 formaat. Mogelijke waardes : getal : vb 093456789 of 3293456789 of 31209988776 -> f formaat waarin je het antwoord wilt ontvangen php : serialized php json : json encoded xml : xml formaat -> pass waarde gehasht met een private API key in sha256 waarde : lange string bestaand uit alle parameters en hun waarde vb : $tobehashed="apiid".$apiid."knummer".$knummer."pwd".$pwd."sipacc".$sipacc."telnr". $telnr."f".$format."ts".$timestamp; $hashed=hash_hmac( 'sha256', $tobehashed, $privatekey);

-> ts huidige timestamp Er wordt gecontroleerd of de timestamp binnen de tijdspanne van 5 sconden na de API-aanvraag valt.

C. Update --> instellingen in de PBX-configuratie wijzigen 1. Request $url="https://pbxonline.be/api/update.php?apiid=".$apiid."&knummer=". $KNUMMER."&pwd=".$PWD."&m=".$menu."&id=".$ID.."&p=".$params."&f=". $format."&pass=".$hashed."&ts=".$ts; apiid = uniek ID van de API user knummer = VoipCenter klantennummer (vb 123456) pwd = VoipCenter paswoord (md5 + sha256 hash) m = menu waarop de API-request betrekking heeft id = uniek ID van de informatieeenheid die wordt opgevraagd p = parameters gescheiden met pipe, nieuwe data die moet ingesteld worden f = formaat waarin je het antwoord wilt ontvangen pass = gehasht paswoord om de request te authenticeren ts = current Unix timestamp Voorbeeld 1 : tijdfilters, route en backuproute aanpassen van telefoonnummer https://pbxonline.be/api/update.php? f4b18983f7fcqcf16d8c58c25db8&m=did&id=100&p=f10 v20 k30 r140 b150&f=xml&pass=f100cff6de82eadb2da6e4a8edb23b64d83f352af9120984be0a1258& ts=1400229417 Voorbeeld 2 : enkel route en backuproute aanpassen van telefoonnummer https://pbxonline.be/api/update.php? f4b18983f7fcqcf16d8c58c25db8&m=did&id=100&p=r140 b150&f=xml&pass=f100cff6de82eadb2da6e4a8edb23b64d83f352af9120984be0a1258& ts=1400229417 Voorbeeld 3 : Function Indicator activeren https://pbxonline.be/api/update.php? f4b18983f7fcqcf16d8c58c25db8&m=indicator&id=100&p=1&f=xml&pass=f100cff6de82 eadb2da6e4a8edb23b64d83f352af9120984be0a1258&ts=1400229417

Voorbeeld 4 : Hot Desking Desk aanpassen https://pbxonline.be/api/get.php? f4b18983f7fcqcf16d8c58c25db8&m=hddesk&id=100&p=s101 t50&f=xml&pass=f100cff6de82eadb2da6e4a8edb23b64d83f352af9120984be0a1258&ts =1400229417

2. Antwoord verwerken Als de URL om de aanvraag te maken samengesteld is, kan de geretourneerde data opgevangen worden. $response = file_get_contents($url); // string in serialized of json of xml formaat Afhankelijk van het gevraagde formaat, kan de output omgezet worden in een array : switch ($format) { case "php": // PHP $mijnarray = unserialize( $response ); // serialized string omzetten naar php array case "json": // JSON $mijnarray = json_decode($response, true); // json string omzetten naar php array case "xml": // XML $mijnarray = new SimpleXMLElement($response); default: }

3. Parameters -> apiid uniek ID voor de API gebruiker, bezorgd door VoipCenter -> knummer klantennummer van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. -> pwd paswoord van de klant waarvoor de aanvraag gebeurd. Zie activatiemail. Dit paswoord dient versleuteld te worden als volgt : sha256( md5(plaintext) ) Dus eerst een md5-versleuteling van het plain text paswoord. Daarna een sha256- versleuteling. vb : $hashed=hash( 'sha256', md5( password ) ); -> m PBX-onderdeel waarop de API-request betrekking heeft. Mogelijke waardes : did : configuratie van de telefoonnummers (DID's) indicator : configuratie van de Function Indicators hddesk : configuratie van de Hot Desking Desks -> id uniek ID van een bepaald item dat gewijzigd moet worden Mogelijke waardes : getal : vb 2351, specifiek ID van het item dat gewijzigd moet worden TIP : er kan eerst een GET-aanvraag gebeuren met ID-waarde 0 (nul) om een overzicht te krijgen van alle items. Uit deze lijst kan dan het ID gehaald worden van 1 specifiek item om de configuratie via een UPDATE-aanvraag te wijzigen. -> p data, gescheiden door een pipe, die ingesteld moet worden Mogelijke waardes : did : f=10 v=20 k=30 r=140 b=150 (niet alle parameters zijn verplicht) (feestdagen vakantieperiode kantooruren route backuproute) indicator : 0 of 1, de Function Indicator activeren (1) of de-activeren (0) hddesk : s=10 t=20 (niet alle parameters zijn verplicht) (sipaccount template)

-> f formaat waarin je het antwoord wilt ontvangen php : serialized php json : json encoded xml : xml formaat -> pass waarde gehasht met een private API key in sha256 waarde : lange string bestaand uit alle parameters en hun waarde vb : $tobehashed="apiid".$apiid."knummer".$knummer."pwd".$pwd."sipacc".$sipacc."telnr". $telnr."f".$format."ts".$timestamp; $hashed=hash_hmac( 'sha256', $tobehashed, $privatekey); -> ts huidige timestamp Er wordt gecontroleerd of de timestamp binnen de tijdspanne van 5 sconden na de API-aanvraag valt.

D. Error Codes 1. Head 10 Missing parameters 11 Timestamp mismatch 12 Wrong format 13 Too many attempts 14 Incorrect hash 15 User password incorrect 16 API user not allowed 17 Param not correct 2. Body 1 Could not connect to server 2 Incorrect ID (alleen GET) 20 Call Auth failed (alleen CALL) 21 Call Leg failed (alleen CALL) 25 Incorrect Login (alleen PROVISION)