Online-Status

exim

Admin a.D.
Mitglied seit
27 Apr 2004
Beiträge
1,013
Punkte für Reaktionen
0
Punkte
0
Der N-calamar scheint sich überhaupt nicht für die vom Client vorgeschlagenen Reg-Intervalls zu interessieren denn auch nach dem letzten Registrierungsvorgang und dem Verstreichen der expire-Zeit, bei mir 15 min, wird man bei Nikotel noch als "online" geführt.

Log:
~~~snip~~~
spa [0:5060]->63.214.186.6:5060
REGISTER sip:calamar0.nikotel.com SIP/2.0
Contact: Ande <sip:[email protected]:5060>;expires=900

spa [0:5060]<<63.214.186.6:5060
SIP/2.0 200 OK "Authenticated"
Expires: 3780
~~~snip~~~

Der Funktionalität tut das ja keinen Abbruch (wenn denn der AB richtig funktionieren würde :wink:), aber leider macht dadurch eine Abfrage des Online-Status und das Einbinden der Statusanzeige in eine eigene Webseite keinen Sinn mehr ... :(
 
Die Entscheidung, wie lange eine Registrierung Gueltikeit behaelt liegt beim Proxyserver, nicht beim Client. Der Client wird auf 37xx Sekunden gezwungen. Diese Zeitangabe findet sich auch in der Challenge wieder. Wenn der Client sich nicht an den Proxyserver Wert aus der Challenge haelt dann ist der Client nicht 100% SIP konform.


Gruss,

Michael
 
Dass der Proxyserver die letztendliche Entscheidung trifft ist klar, aber das Verhalten des SPA ist ziemlich heiss. Habe dem Sipura-Support eine Mail geschickt, von wegen DoS-Möglichkeit. Mal schauen was die sagen. Aber das gehört nicht mehr zum Nikotel-Thema ...
 
Glaub ich gern ;)
Aber zurück zum Thema - gibt es eine relavtiv harmlose Möglichkeit, automatisiert den Online-Status bei Nikotel in Erfahrung zu bringen? Ein eigener Webserver für die Statusanzeige usw. läuft. Das Auswerten von http(s)://www.nikotel.com/mynikotel/isOnline.php?u=<username> bringt ja ohne die Session-ID nix. Und erst ein Einlog- und Navigationsskript für die Nikotel-Webseite zu bauen hab ich keinen Bock *g*
"Benutzername anzeigen" in MyNikotel ist aktiviert, falls das ausser für das "nikotel online users directory" noch irgendeine andere Bedeutung haben sollte.
 
Ich würde dem - ohnehin öffentlichen - Telefonbuch ein API verpassen, das auf Anfrage eine 1 oder 0 zurückliefert. Die Auswertung kann dann jeder Anwender selbst machen.

Ich meine so was ähnliches wie das hier (was ja funktioniert ...)

http://www.nikotel.de/de/UserDirectory?s=betateilchen

Im Moment läuft bei mir ein Cron-Job, der diese Anfrage in regelmäßigen Abständen mittels wget durchführt, und ein PHP-Skript auf dem Webserver wertet die abgespeicherte Datei entsprechend aus.

Ist zwar ziemlich umständlich, aber es funktioniert. Voraussetzung ist natürlich, daß der Benutzer seinen Eintrag im Telefonbuch publiziert. Aber es reicht ja der Benutzername.
 
Ja, da hast Du recht. Aber wieso diese Abfragezeiten so unterschiedlich lang sind - von 20 Sekunden bis 25 Minuten habe ich schon alles durch - ist mir völlig unverständlich.

Hast Du einen besseren Vorschlag ?

--- EDIT von betateilchen ---

Auf eine entsprechende Supportanfrage bei nikotel zwecks Online-Anzeige habe ich bisher leider keine Antwort erhalten.

--- / EDIT ---
 
betateilchen:

Mir geht es auch noch darum, dass wir herausfinden wie es eigentlich am besten waere. Ich kann mir versch. Schnittstellen vorstellen:

- simpler grafischer Knopf
- XML / SOAP


Bei dem simplen grafischen Knopf handelt es sich meiner Vostellung nach um eine einfache Grafik die den Online-Status anzeigt.

Bei XML oder SOAP (das gleiche in gruen) wird der Status innerhalb eines ascii basierten Protokolls uebermittelt.


Die erste Angelegenheit ist most user friendly und eignet sich fuer Webseiten, Signaturen und dergleichen.

Die zweite Geschichte richtet sich an Freaks, die wirklich Bock darauf haben ihren Status (oder eine ganze Latte an Zustaenden) in ihren Krims zu transportieren.

Soviel dazu :)


Bzgl. der Nikotel-Ticket-Mosereien moechte ich dir, da du noch neu hier im Forum bist, gleich mit auf den Weg geben dass ich in meiner Funktion als Moderator bei der Kombination von Offtopic plus Noergelei sehr allergisch reagieren kann. Ein Zeitgenosse hier im Forum hatte bereits darunter leiden muessen. Ich nehme aber an, dass das nur ein Ausrutscher war der sich nicht regelmaessig wiederholen wird.


Gruss,

Michael
 
Warum nicht beide Möglichkeiten ?
Die erste ist auch was für einfache Homepage-Bastler, die einfach ein <img /> einbauen wollen, und die meist auch nicht über eigenen Server verfügen, um individuelle Auswertungen zu machen.
Die zweite Möglichkeit für "Freaks", die einfach mehr wollen.
Bei Realisierung der Möglichkeit (2) würde doch das <img /> fast als "Abfallprodukt" mit anfallen.
 
Wenn man den "Freaks" ohnehin diverse Informationen per XML bereitstellt (wie von Dir angedacht), kann es erfahrungsgemäß nicht ein allzugroßer Aufwand sein, für die "Nicht-Freaks" ein <img />-Tag bereitzustellen, das sich auf einfachste Weise in eine Webseite (Signatur etc) einbauen läßt.

Dabei gehe ich jetzt beispielsweise mal davon aus, ich müßte per PHP (oder wie auch immer) aus einer Datenbank die Statusinformationen auslesen und als XML transportieren. Da wären es maximal 2 Zeilen PHP-Quelltext mehr, auch noch ein <img /> Tag zu generieren.

Diese 2 Zeilen meinte ich mit Abfallprodukt: die fallen einfach mit ab :wink:
 
Where is the beaf ?

Für alle, die es genau wissen wollen, bei mir habe ich die Nikotel-Online/Offline-Anzeige wie folgt realisiert:

1. Auf meinem Webserver läuft ein CRON-Job, der einmal die Stunde (schneller merkt Nikotel scheinbar einen Wechsel von Online -> Offline nicht) folgenden Befehl ausführt:

Code:
curl http://www.nikotel.de/de/UserDirectory?s=betateilchen |grep Local >/var/www/nikostatus

Damit wird per CURL das öffentliche Nikotel-Telefonbuch nach dem Benutzer "betateilchen" abgefragt. Sollte der Benutzer online sein, enthält die entsprechende Datei einen Eintrag "Local Time".
Dieser Eintrag wird mittels GREP gesucht und die entsprechende Zeile in die Datei nikostat geschrieben.
Sollte der Eintrag "Local" nicht vorhanden sein, hat die Zieldatei die Größe 0 (NULL Byte)

2. Es existiert ein PHP-Code-Schnipsel, das auf diese Datei zugreift (genauer: Nur auf die INFORMATION der Dateigröße)

[php:1:6792734260]
" />[/php:1:6792734260]

(Für die "Freaks": Es ist mir sehr wohl bewußt, daß man das kürzer und effektiver machen kann, aber für die Nicht-Freaks ist das vielleicht so verständlicher.)

Dieses PHP-Schnipsel schreibt ein <img />-Tag mit dem Inhalt online.gif oder offline.gif, entsprechend der Dateigröße der Datei nikostatus

3. Dieses PHP-Schnipsel wird im gewünschten Webseiten-Quelltext an die Stelle eingebaut, an der die Grafik erscheinen soll.

[php:1:6792734260]<? include("schnipsel.php") ?>[/php:1:6792734260]

Viel Spaß bei der Umsetzung !
 
Noch eine Möglichkeit ohne PHP, angelehnt an die Variante von beta. So ähnlich läuft das hier seit ein paar Tagen als cron-job, nur leider eben etwas gemächlich, wie ihr ja schon geschrieben habt. Ist noch nicht die ultimative Weisheit aber es erfüllt erstmal mehr oder weniger seinen Zweck:

Code:
#!/bin/bash

# Zeit rausziehen
wget -Y off -O - http://www.nikotel.de/de/UserDirectory?s=<username> |grep 'Local time :' |html2text |mawk '{print $4}' > /var/tmp/nstatout

# Symlink auf GIF anpassen
if [ -s /var/tmp/nstatout ] ; then
     ln -f -s nonline.gif /var/www-thttpd/nstatus.gif
     # hier bei Bedarf Verarbeitung/Einbindung der extrahierten Zeitangabe ...
else
     ln -f -s noffline.gif /var/www-thttpd/nstatus.gif
fi

.
.
.


Es wird immer "nstatus.gif" ausgeliefert denn das ist nur ein Symlink, welcher je nach Zustand auf das entsprechende GIF gesetzt wird. Das ist eher quick'n'dirty, von wegen Cache auf Client-Seite, aber hier läuft zwecks anderweitiger Tests zur Zeit der thttpd. Und der hat sich speziell für sowas als recht praktisch erwiesen - er läuft in einer chroot-Umgebung, erlaubt ohne grosse Verrenkungen throttling (evtl. wichtig für server@home-Leute) und auch per einfacher Option das generelle Senden des "Cache-Control: max-age"-Headers. Prima Online-Cache-Tests gibt es unter http://www.procata.com/cachetest/ aber das ist alles schon wieder off-topic *g*

Gruß,
Andreas
 
Neuigkeiten vom Nikotel-Support - eben per eMail reingekommen

Hallo Herr xxx,

es ist jetzt moeglich den Onlinestatus auf Ihrer Webseite anzuzeigen.

Sie muessten im mynikotel Bereich unter "Userinfo" die Option " Allow others to view my Online/Offline status from the web. " anschalten. Dann koennen Sie ueber den Link http://www.nikotel.com/isOnline?u=username den Onlinestatus anzeigen.

MfG,
yyy

Ausprobiert habe ich es mangels Zeit noch nicht.
 
Mein Ticket war vom 26. Juni - habe das grade rausgekramt.

Das ist doch glatt ein[schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]DANKE ![/schild] wert !
 
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.