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 !