UserState.SetDND im Anlagenverbund?

  • Zwei Anlagen im verbund (beide 6.4).


    Anlage A, User A
    Anlage B, User B


    Ich kann beim User B eine BLF Taste "User A [Anlage A]" erstellen und sehe dann den DND Status von User A.


    Mit einem Modul auf Anlage B setze ich den UserState.SetDND auf true. Den User wähle ich im Modul GUI aus, und zwar "User A[Anlage A]".



    Problem:
    1 - Sobald ich das Modul aktiviere (Instance activated), wird korrekt auf der Anlabe B die Taste "User A [Anlage A]" auf DND gesetzt. Soweit ok.
    ABER! der tatsächliche User A auf der Anlage A geht nicht in DND.


    Ich denke das sollte zwichen verbundenen Anlagen funktionieren. Immerhin kann man den entfernten User A auf eine Taste legen. Und im Modul Gui auch auswählen.
    Oder verstehe ich hier etwas falsch?



    2 - Könnte mit dem Problem oben zusammenhängen. User A und User B heissen tatsächlch gleich. Sie unterscheiden sich am Ende nur durch den Zusatz [Anlage A]. Zum Beipiel "Daniel" auf Anlage A und "Daniel " auf Anlage B.
    Auf Anlage B sieht man jedoch in der Userauswahl diese beiden Einträge: "Daniel [Anlage A]" sowie "Daniel"
    Auch wenn ich bei der Userauswahl explizit den Benutzer "Daniel [Anlage A]" auswähle und der Benutzer beim schliessen des Moduls auch so angezeigt wird, wird beim nächsten Öffnen des Moduls der Benutzer "Daniel" angezeigt.


    Ist das ein Bug?


    Daniel

    Einmal editiert, zuletzt von DanielH ()

  • Ich glaube nicht, dass das mit dem Namen des Users zu tun hat, da intern IDs verwendet werden und der Name eigentlich keine Rolle spielt.


    Ich vermute eher, dass Eigenschaften wie "DND" nicht in Gegenrichtung auf die Anlage A propagiert werden.
    Der Original-User ist auf Anlage A, auf Anlage B wird durch den Anlagenverbund eine "Kopie" des Users angelegt. Du setzt den Status der Kopie.
    Das DND müßte auf Anlage A entstehen um korrekt propagiert zu werden.

  • Hallo Daniel,


    das lässt sich leider nicht so einfach umsetzen. Die DND-Statusmeldungen werden lediglich zu Informationszwecken synchronisiert.


    Da ich die genaue Use Case nicht kenne, gäbe es ausm Kopf durchaus ein paar Möglichkeiten zur Umsetzung:


    Die einfachste wäre, du legst auf Anlage A ein Modul an, der den DND Status setzt. Dieser bekommt eine Rufnummer, und wird von Anlage B aus angerufen.


    Die wahrscheinlich komplizierteste: du baust dir eine XML-RPC Schnittstelle in einem Modul, über der du DND Statusse in echtzeit setzen und entfernen kannst.


    Solltest du die Umsetzung als Verbesserungsvorschlag für die STARFACE einsenden wollen, kannst du dies gern über unser Uservoice tun (Link in meiner Signatur).


    Viele Grüße,



    Tom

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Ich glaube nicht, dass das mit dem Namen des Users zu tun hat, da intern IDs verwendet werden und der Name eigentlich keine Rolle spielt.


    Ich vermute eher, dass Eigenschaften wie "DND" nicht in Gegenrichtung auf die Anlage A propagiert werden.
    Der Original-User ist auf Anlage A, auf Anlage B wird durch den Anlagenverbund eine "Kopie" des Users angelegt. Du setzt den Status der Kopie.
    Das DND müßte auf Anlage A entstehen um korrekt propagiert zu werden.


    Hallo Fabian,
    Habe ich mir beinahe so gedacht.
    Hast du ev. eine Idee wie ich von der Anlage B aus den DND Status eines Benutzers auf Anlage A setzen könnte?
    Ich vermute dass es mit REST funktionieren könnte. Nur leider bin ich nicht wirklich ein Programmierer und swagger gibt mir Rätsel auf. Besonders habe ich dann keine Ahnung wie ich ein Modul erstellen müsste, welches das REST Interface einer anderen Anlage bedient.
    Aber vielleicht gibts noch was einfacheres?
    Daniel

  • Wie ist das Szenario? Warum kann das Modul nicht auf Anlage A laufen? Wodurch wird es getriggert?


    Szenario:
    Anlage A mit 8 Mitarbeitern (Firma A).
    Anlage B mit 5 Mitarbeitern (Firma B).
    Mitarbeiter der Firma B müssen die Möglichkeit haben mit einer Telefonnummer der Anlage A rauszurufen. Also scheinbar als Mitarbeiter der Firma A zu agieren Für eingehende Anrufe auf ihre zugewiesene Gruppennummer Auf Anlage A funktioniert das bestens, nur ausgehend kann keine Leitung einer anderen Anlage on demand verwendet werden. Siehe auch andere Artikel von mir zu dem Thema. (Zum Beispiel http://support.starface.de/for…anderen-Anlage-im-Verbund).
    Nur deshalb suche ich nach Alternativen.


    Eine Alternative (und im Moment so implementiert) ist den entsprechenden Mitarbeitern der Firma B einen zusätzlichen Account auf der Anlage A zu konfigurieren und auf ihrem Telefon aufzusetzen. Nun können sie mit einer Leitungswahl am Telefon selber zumindest mit einer Nummer der Anlage A rausrufen.
    Diese Lösung ist nicht optimal:
    - Die Mitarbeiter der Firma B mit diesem Setup haben zwei von einander unabhängige Konten auf zwei Anlagen, zwei voneinander unabhängige SIP Leitungen auf dem Telefon.
    - UCC kann nicht gleichzeitig mit zwei Anlagen arbeiten. Einfach hin und her Switchen geht auch nicht.
    - Im Moment benutzen sie den UCC Client auf Anlage B und den Webclient auf Anlage A
    - Besetzt/DND/etc. Status ist nicht synchronisiert zwischen den Konten auf den zwei Anlagen.
    - etc.


    Ziemlich umständlich. Aber das unangenehmste ist: Wenn ein Mitarbeiter auf seinem Telefon an Anlage B besetzt ist, erscheint er immer noch frei auf Anlage A. Auch wenn DND auf Anlage B gesetzt ist, für Anlage A ist er immer noch wählbar.
    Ideal wäre eine automatische Synchronisation der DND Stati zwischen den zwei Anlagen.


    Ich hatte gehofft mit einem einfachen Modul den auf Anlage B den DND Status auf der Anlage A setzen zu können. Geht leider nicht.


    Das Modul auf Anlage A laufen lassen? Gute idee. Aber wie sende ich ein (ein/aus) Signal von Anlage B an das Modul von Anlage A?
    Kommunikation Machine to Maschine mit Starface Modulen? Geht das?


    Ich habe auch schon ein Modul geschrieben das als HTTP client einen Wert von Ubidots holt oder setzt. Das war meine erste Verion fürs Synchronisieren des DND Status. Funktioniert eigentlich ok, leider etwas zeitverzögert. Aber ich möchte keinen Umweg über einen externen Webserver mehr machen. Lieber wäre mir dass ich die zwei Anlagen direkt miteinander sprechen lassen könnte. Geht das irgendwie mit dem Modulsystem?


    Die REST Schnittstelle ist mir im Moment ohne echtes Beispiel etwas zu hoch. Bin ja kein Programmierer :) Wäre dein mein kleines Problem kein tolles Demoprojekt für die REST Schnittstelle?


    Die Idee von TomAnson würde ich sicher hinkriegen. Aber deswegen eine Telefonnummer zu verschwenden? Gibt es keinen effizienteren Weg einer anderen Starface Anlage eine "nachricht" zu schicken?


    Daniel

  • Verstehe ich es richtig, dass es im Grunde genommen nur darum geht, dass Mitarbeiter der Firma B die Rufnummern der Firma A signalisieren sollen?


    Dazu wäre nur CLIP-No-Screening auf Anlage B notwendig – im Anlagenverbund wird unter Umständen noch das Modul Rufnummernsignalisierung benötigt, da das Anlegen einer Dummyleitung auf Anlage B mit der auf Anlage A existierenden Leitung gleicher Rufnummern kollidiert.

  • Hallo Fabian,

    Verstehe ich es richtig, dass es im Grunde genommen nur darum geht, dass Mitarbeiter der Firma B die Rufnummern der Firma A signalisieren sollen?


    Jein. Die Mitarbeiter der Firma B (Mitarbeiter B) sollen definitiv über die Anlage A rausrufen und dabei die Nummer der Anlage A signalisieren. Mitarbeiter B müsste per default direkt über Anlage B nach draussen anrufen. Nur wenn sie als Mitarbeiter der Firma A agieren sollen, sollen sie über den Verbund zur Anlage A und von dort aus rausrufen. Leider funktioniert das laut
    http://support.starface.de/for…9282&viewfull=1#post29282 nicht so wie ich es gerne hätte.


    Dazu wäre nur CLIP-No-Screening auf Anlage B notwendig – im Anlagenverbund wird unter Umständen noch das Modul Rufnummernsignalisierung benötigt, da das Anlegen einer Dummyleitung auf Anlage B mit der auf Anlage A existierenden Leitung gleicher Rufnummern kollidiert.


    Das wäre ein möglicher Ansatz. Leider habe ich dann weitere Nebeneffekte wie zum Beispiel die Kosten der Gespräche die auf der Anlage B anfallen statt auf Anlage A. Ausserdem wäre die Nummer auf Anlage A nicht besetzt. Etc..


    Ich habe mich temporär mit einem kleinen Modul auf Anlage A beholfen, welches lesend den DND Status des Benutzers auf Anlage B holt (ist ja lesend sichtbar) und den entsprechenden DND Status des equivalenten Benutzers auf Anlage A setzt. Nicht exakt das was ich will (DND ist nun immer synchron aber es gibt Situationen in denen nur ein Benutzer DND sein sollte.. muss noch etwas darüber nachdenken), trotzdem schon besser als vorher.

    Im Wesentlichen mach ich das hier (UserAAnlageB ist über den Verbund auf Anlage A sichtbar):


    UserState.GetDNDSetting(UserAAnlageB) --> _isDndActive
    UserState.SetDNDSetting(UserAAnlageA,_isDndActive)


    Eigentlich wollte ich auch den chat status synchronisieren


    UserState.GetChatPresence(UserAAnlageB) --> _chatPresence
    UserState.SetChatPresence(UserAAnlageB,_chatPresence) <--- diese Funktion gibts leider nicht


    ich missbrauche im Moment einfach


    UserState.SetChatMessageSetting(UserAAnlageB,_chatPresence) ... nicht schön, gibt aber zumindest einen hinweis



    Schön wäre wenn ich jetzt noch das folgende tun könnte:


    IsUserBusy(UserAAnlageB) --> _busy
    SetUserBusy(UserAAnlageB,_busy) --> Diese Funktion gibts auch nicht. Ist aber verständlich. Ich kann ja keinen Benutzer auf Busy stellen wenn da gar kein Call ist...


    Daniel

  • Das beschriebene Verfahren, die Anrufe über die andere Anlage ins Amt zu routen (abhängig von einer Gruppenzugehörigkeit; User B gehört zur Gruppe "Firma A") wäre mit Hilfe des Moduls Extended Routing realisierbar.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!