REST - Wie bringe ich in erfahrung, ob ein Device Online ist

api
script
german

#1

ich würde gerne über die REST-API in erfahrung bringen, ob ein Device angemeldet und bereit ist anrufe entgegenzunehmen.
gibt es da eine möglichkeit die ich in der REST-DOC übersehenen habe?


#2

Hallo hightext,

das geht leider nicht so einfach. Unter /services/ipdevice/states siehst Du zwar ob ein Gerät gerade belegt ist oder nicht, jedoch kann man den SIP-Zustand (registriert etc.) nicht sehen.
Vielleicht verstehe ich Dich auch falsch. Was genau meinst Du mit “Device angemeldet”? Das es am Netzwerk ist oder das ein Benutzer gerade eingeloggt ist?

Gruß,

Thomas


#3

ich möchte in erfahrung bringen ob ein device (softphone, hardphone) zur verfügung steht. wenn also einer unserer mitarbeiter homeoffice macht und sein softphone benutzt, soll in der liste der “verfügbaren” telefone auftauchen. wenn er im büro ist und sein rechner zuhause aus, dann soll dieses eben NICHT auftauchen, da eine “anrufvermittlung” auf diesem device nicht möglich ist.
ich hoffe das war jetzt nicht ZU wirr…


#4

Das ist jetzt schon etwas verwirrend. Die Rufnummer hängt bei uns ja nicht an einem Gerät (= Hard/Softphone) sondern an einem User. Je nachdem ob der Kollege daheim oder im Büro arbeitet kann er selbständig im Client das Zielgerät bestimmen. Jeder Client merkt sich lokal das zuletzt benutze Gerät pro Arbeitsplatz.

Wenn ich es richtig verstehe hat der Kollege 2 Rechner, einen daheim und einen im Büro.
Folgende Varianten sind sinnvoll:

a) keine Arbeitsplätze, User hat ein MobyDick Softphone und ein Hardwaretelefon direkt zugewiesen. Im Client daheim wählt er das Softphone aus, am Bürorechner das Hardwaretelefon. Vorteil: einfaches Setup, User muss sich nicht mit Arbeitplätzen beschäftigen, Nachteil: Hardwaretelefon klingelt immer parallel mit.
b) das Hardwaretelefon ist einem Arbeitsplatz zugeordnet. Der User meldet sich vor dem verlassen des Büros oder spätestens vom Homeoffice aus von diesem Arbeitsplatz ab. Somit klingelt dann das Hardwaretelefon nicht mehr mit. Kommt der User zurück ins Office würde zunächst auch das Softphone klingeln. Meldet er sich dann aber am Arbeitsplatz an, so schaltet der Client automatisch wieder auf das Hardwaretelefon um und nur dieses klingelt.

Variante b) ist besonders praktisch wenn das Büro wechselnd von mehreren Mitarbeitern genutzt wird.

Hoffe das hilft Dir weiter. Falls das an Deinem Problem vorbei geht müsstest Du mir ein paar mehr Details nennen.

Gruß,

Thomas


#5

arbeitsplatz ist bei uns kein thema. jeder hat seinen festen platz und das soll auch so bleiben. manche haben mehrere “telefone” (hardphone, softphone am rechner und/oder softphone aufm smartphone)
wusste ichs doch das es verwirrend wird. okay, nochmal das grundsetup:
mitarbeiter 1 hat ein hardphone und ein softphone im office. im homeoffice hat er nur ein softphone.
soviel zum “menschen”
nun zu unserer adressdatenbank, die einen anruf auslösen kann. bevor diese software aber einen anruf einleitet, muss man auswählen mit welchem device man telefonieren will. diese liste zu erstellen ist kein problem. das läuft.
das problem ist: wenn der user NICHT zuhause ist und sein softphone im homeoffice auch nicht online ist, er es aber trotzdem im office auswählt, kommt kein anruf zustande. erfahrungsgemäß, wie der liebe user nunmal ist, wird ERST der admin (ich) gerufen, bevor man nachdenkt ob man vielleicht etwas falsch gemacht hat. und genau diesen umstand würde ich gerne vermeiden, indem ich nachprüfe, ob ein device, das einem user zugeordnet ist, überhaupt an der MD angemeldet ist.
jetzt besser?


#6

Wenn Du einen Anruf über unsere REST Schnittstelle auslöst hast Du die Wahl zwischen “konkretes Device” und “defaultdevice”.
Das Defaultdevice wird automatisch ausgewählt. In Deinem Fall wird das Softphone gewinnen wenn es online ist. Konkret bedeutet das:

  • Mitarbeiter wählt in seinem Home-PC das Softphone aus, somit ist es online und wird automatisch von der API bevorzugt
  • Mitarbeiter wählt in seinem Office-PC das Hardwaretelefon aus, somit ist das Softphone offline und das Hardwaretelefon wird von der API angesteuert.

Beide Clients merken sich diese Auswahl lokal, somit muss man es nur einmal richtig auswählen.

Jedoch:

  • falls der Mitarbeiter daheim den Client nicht offen hat und einen Anruf auslöst, so würde das Telefon im Office als Fallback benutzt werden.

Diesen (kleinen) Nachteil könntest Du wiederum noch mit dem Arbeitsplatzkonzept erschlagen weil er sich ja dann von dem Telefon abmeldet und dieses damit nicht mehr für die API in Frage kommt.

Die Lösung liegt also einfach darin das Du den User in der Adressdatenbank eben NICHT nach dem Zielgerät fragst sondern dies der mobydick überlässt. Verwende hierzu einfach die URI services/identity/$user/defaultdevice anstatt services/identity/$username/device/$devicename

Hilft Dir das?


Defaultdevice konfgurieren