SipStat for PHP

Malte. schrieb:
Anstatt nun jedesmal die Grafik hin und her zu kopieren, sollte an der Stelle, wo Du die gif-Datei herausschickst, einfach der Status geprüft werden und je nachdem die eine oder andere Grafik-Datei gelesen werden. Das spart den Kopieroverhead.
Jein... dann hätte ich den Status anders handhaben müssen. In meinem Script sorgt der Status vor allem dafür, dass während ein Update stattfindet, dieser eben auf "updating" steht, und ein anderer Client währenddessen nicht auch eine Anfrage an den Sipgate Server startet. Diesem "updating" Status kann man aber nicht entnehmen, welches Bild angezeigt werden soll, dafür müsste man ein zusätzliches StatusFeld einfügen.

Außerdem ist schon verwunderlich, warum alle drei Grafiken online.gif, offline.gif und phoneStatus.gif unterschiedliche Dateigrößen haben - eigentlich müsste phoneStatus.gif doch mit einer der anderen beiden identisch sein...
Ja. Das liegt daran, dass ich die online/offline-Bilder bearbeitet (verkleinert) habe, das phoneStatus Bild aber nicht. Wenn das Script einmal bei Dir gelaufen ist, wird phoneStatus natürlich auch so groß sein, wie eines der anderen.
 
dann baut der bei dir überhaupt keine verbindung auf, sendet er auch was?
Wie finde ich denn heraus, ob und was er sendet?


Jein... dann hätte ich den Status anders handhaben müssen.
Ja, klar. Heißt ja nicht, dass man das nicht so abändern kann. Wenn mir nicht wieder jemand zuvor kommt, werde ich das auch tun, wenn SipStat grundsätzlich bei mir läuft. Aber natürlich freue ich mich, wenn jemand schneller ist. ;-)
 
DBGTRACE, DBGINDATA, DBGOUTDATA, DBGLOW, DBGSOCK
das sind alle mögliche debug optionen. hau sie alle rein, dann sollte wenigstens was kommen ;)
 
Dann kommt Folgendes bei raus:
Code:
setProtocolVersion( 1.1 ) addHeader( Host, secure.sipgate.de ) addHeader( User-Agent, Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8 ) addHeader( Accept, application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1 ) addHeader( Accept-Language, en-us,en;q=0.5 ) addHeader( Accept-Encoding, gzip,deflate ) addHeader( Accept-Charset, ISO-8859-1,utf-8;q=0.7,*;q=0.7 ) addHeader( Keep-Alive, 300 ) addHeader( Connection, keep-alive ) addHeader( Referer, http://www02.sipgate.de/user_interface/index.php ) Connect( ssl://secure.sipgate.de, 443 ) Post( /user/index.php, Array ) addHeader( Content-Type, application/x-www-form-urlencoded ) sendCommand( POST /user/index.php HTTP/1.1 ) connexion( ssl://secure.sipgate.de, 443) => FAILED : (0) removeHeader( Content-Type) removeHeader( Content-Length) getHeaders() DBG.INDATA responseHeaders=Array ( ) Disconnect()
 
bei dir scheint irgendwie keine verbindung zu sipgate möglich zu sein.

das FAILED bei connexion ist der übeltäter. bei mir ist alles erfolgreich und da würde dann stehen:
sendCommand( POST /user/index.php HTTP/1.1 ) connexion( ssl://secure.sipgate.de, 443) => Resource id #3

kA obs an deinem webserver oder an irgendeiner config liegt. kannstes noch irgendwo anders testen?
 
Ich habe das mal auf einem anderen Webserver getestet. Da scheint es grundsätzlich zu gehen. Allerdings nur sporadisch, ganz oft bekomme ich auch ein:
connexion( ssl://secure.sipgate.de, 443) => FAILED : Connection timed out (110)

Im Übrigen habe ich dann die oben gemachten Ideen verwirklicht, hier ist mein Skript. Ich habe es einfach mal ShowStat.php genannt. Es kann vom Webserver aus als Grafik aufgerufen werden und liefert dann die entsprechende online oder offline-Grafik aus. Das Ausliefern der Grafik dauert entsprechend lange, wenn erst der Status überprüft werden muss, ansonsten wird in den darauf folgenden 10 Min. sofort das alte Bild ausgeliefert.
 

Anhänge

  • showstat.zip
    17.7 KB · Aufrufe: 41
@TheChaos:
schon allein das ausführen des script dauert bei mir knapp 45 sekunden
Kannst Du Dir (und mir) das erklären? Ein Einloggen auf der Sipgate-Seite per Browser geht doch auch viel schneller. :-(
 
ich schieb das auf das php- bzw ssl-modul. keine ahnung was da irgendwie so programmiert ist (timeouts etc), so wartet der wohl sehr lange auf die daten. man müsste das ding mal lokal laufen lassen und den tcp verkehr abfangen um zu sehen, an welcher stelle er so lange braucht.
 
moin,
sollte man nicht besser anstatt den Zustand bei Sipgate zu testen, schauen ob der Client auf dem Rechner (X-lite&co) oder die Lanbox laeuft? Das waer doch viel zuverlaessiger oder nicht? Zudem waere es viel einfacher zu realisieren und natuerlich sicherer, da man keine Passwoerter im klartext irgendwo stehen haben muss. Ich werd das auf jeden Fall bei mir einrichten.
 
Hallo kerouac, herzlich willkommen hier im Forum.

Das ist natürlich auch eine gute Idee. Wenn Du da etwas bastelst, wäre es schön, wenn Du das dann auch hier im Forum veröffentlichen könntest.
Aussagekräftig ist es aber m.E. auch nur, wenn Du den Status des Clients auslesen kannst, also nicht nur ob der "läuft", sondern auch, ob der sich erfolgreich registrieren konnte.
Außerdem kann das vermutlich nur funktionieren, wenn im Netzwerk, wo der Client läuft, auch ein Rechner mit Deiner Lösung läuft, die den Status dann per Webserver entweder selbst zur Verfügung stellt oder auf einen externen Webserver hochlädt.
 
@Malte

Habs gemacht wie beschrieben auch die chmod Rechte entsprechen gesetzt und img Tag verlinkt, nur krieg ich immer die anzeige offline obwohl das Phone laut Sipgate Online ist (siehe Signatur).

Kannst du mir da mal bitte helfen?

THX
 
öhm nö ich kann die showstat ganz normal aufrufen und die phonestat wird mit "done" befüllt. Ich habs auch schon mit 2 unterschiedlichen accs probier --->nüx. Als Login hab ich das eingetragen was ich zum Login auf der Sipgate Site brauch.

Nachtrag:

Jetzt funzt es prima. Vielen Dank für den klasse Support!

cu Herkules
 
Kurz zur Auflösung: PHP muss mit SSL-Unterstützung installiert sein.
Bei professionellen Webhostern werden Fehlermeldungen und Warnungen oft nicht auf der Seite (= im Browser) ausgegeben, sondern in einer Errorlog-Datei. Um herauszufinden, wo es hakt, muss man Zugriff auf diese Datei bekommen.
 
Hat es schon jemand geschafft, das script mit sipgate.co.uk zum Laufen zu bekommen?

Ich habe sipgate.de durch sipgate.co.uk ersetzt und den parse string von "Telefon ist online" nach "Telephone Online" geändert. Offenbar hat das noch nicht gereicht, da sich die Statusanzeige nicht ändert.

jo
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.