Sipgate History

Hiho,

ich habe mich mal an der Sipgate API versucht ( via XML - RPC ) und bin nach laaaaangen Googlen auf dieses Script gestoßen welches sehr vielversprechend aussieht :

<?

/*##
##
## SIPGATE.DE - API Test laut http://www.sipgate.de/user/download_api.php
##
##*/

/* Error-Handler aktivieren */
error_reporting(E_ALL);


/* Festlegen von vorgegebenen Werten */
define ('SIPGATE_SERVER', 'samurai.sipgate.net');
define ('SIPGATE_PATH', '/RPC2');

define ('SIPGATE_USER', 'web_username');
define ('SIPGATE_PASS', 'web_passwort');


/* Server Verbindung öffnen, SSL auf Port 443 */
if(($f = fsockopen('ssl://' . SIPGATE_SERVER, 443, $errno, $errstr, 5)) === FALSE) echo 'Fehler '. $errno . ': ' . $errstr;


/* Verbindung zum Server erfolgreich hergestellt */
else
{
/* Zu sendende XML-Daten, hier für Guthabensabfrage laut Doku-PDF */
$xml_data = '<?xml version ="1.0" encoding="UTF-8"?><methodCall><methodName>samurai.HistoryGetByDate</methodName></methodCall>';


/* Sende POST Request */
fputs($f, 'POST ' . SIPGATE_PATH . ' HTTP/1.0' . "
" .
'Authorization: Basic ' . base64_encode(SIPGATE_USER . ':' . SIPGATE_PASS) . "
" .
'Host: sipgate.net' . "
" .
'User-Agent: PHPxmlParser' . "
" .
'Content-type: text/xml' . "
" .
'Content-Length: '. strlen($xml_data) . "
" .
'Connection: close' . "
" . "
");


/* Sende XML-Daten */
fputs($f, $xml_data);


/* Rückgabe vom Zielserver sammeln */
$ret = '';


while(!feof($f))
{
$ret .= fread($f, 1024);
}


/* Rückgabe in Header und XML trennen */
list($header, $xml_response) = explode("

", $ret);


//echo 'Header: ' . $header . '<br /><hr /><br />';
//echo 'XML: ' . $xml_response . '<br /><hr /><br />';

SetValue(12233 /*[CALL DEMO\Call Demo - Rechts\Ausgabe]*/,$xml_response);


}

?>

Funktioniert recht gut … ich bräuchte blos etwas beistand um das ganze in eine Sauberere Form zu bekommen da natürlich jede Menge unsortierte Daten aus der Abfrage sprudelt.

Das ganze sieht im Webfront in der HTML Box dann so aus :

RemoteUriSip = Nummer die angerufen wurde ( Format : 49170999999 )
LocalUriSip = Nummer von der der Anruf getätigt wurde ( Format : 4918099999 )

HIER noch der Link zur Doku.

Weitere Abfragen :

samurai.HistoryGetByDate

samurai.UserdataGreetingGet

samurai.SessionInitiateMulti

samurai.SessionInitiate

samurai.SessionStatusGet

samurai.RecommendedIntervalGet

samurai.OwnUriListGet

samurai.TosListGet

system.serverInfo

samurai.PhonebookEntryGet

samurai.ClientIdentify

samurai.ServerdataGet

samurai.ServerDataGet

samurai.PhonebookListGet

samurai.UmSummaryGet

samurai.ItemizedEntriesGet

samurai.SessionClose

samurai.UserdataSipGet

samurai.BalanceGet

samurai.AccountStatementGet

system.methodSignature

system.listMethods

system.methodHelp

P.S.: Funktioniert nur mit Sipgate Basic oder Plus anschlüssen !