Autoprovisionierung auslösen

  • Hallo zusammen,

    ich arbeite gerade an einem Modul, mit ich Änderungen an den Telefon-Configs vornehme. Danach würde ich die Telefone (gern spezifisch unter Angabe der Mac-Adresse) neu provisionieren.

    Kann mir jemand sagen, wie das aus dem Modul-Designer heraus bewerkstelligt werden kann?

    Danke!

  • Um Änderungen an den Telefon-Configs vorzunehmen und dann spezifische Telefone über deren MAC-Adresse neu zu provisionieren, benötigst du eine Methode, die über die Modul-Designer-Schnittstelle mit der STARFACE-Telefonanlage kommuniziert. Im Modul-Designer selbst gibt es keine direkte vordefinierte Funktion, um Telefone gezielt per MAC-Adresse neu zu provisionieren. Allerdings kannst du über die UCI-API (Unified Communications Interface) von STARFACE solche Aktionen durchführen.

    Für die Interaktion mit der UCI-API und die Ausführung spezifischer Befehle wie das Neuprovisionieren von Telefonen anhand ihrer MAC-Adresse könntest du folgenden Ansatz verfolgen:

    1. UCI-API nutzen: Zunächst musst du dich mit der UCI-API vertraut machen. Die Dokumentation zur UCI-API findest du auf der STARFACE Support-Seite oder im Partnerportal. Über die UCI-API kannst du diverse Aktionen auf der STARFACE-Anlage ausführen, einschließlich der Verwaltung von Telefonen.
    2. API-Aufruf für die Neuprovisionierung: Um ein Telefon neu zu provisionieren, musst du einen spezifischen API-Aufruf konstruieren, der die MAC-Adresse des Telefons als Parameter verwendet. In der Dokumentation zur UCI-API solltest du die entsprechenden Endpunkte und die erforderlichen Parameter finden, um dies zu bewerkstelligen.
    3. Modul-Designer-Skript schreiben: Im Modul-Designer kannst du PHP-Skripte schreiben, die externe API-Aufrufe durchführen. Du würdest ein Skript schreiben, das die UCI-API von STARFACE aufruft, um die Neuprovisionierung zu initiieren. Achte darauf, dass du die Authentifizierung korrekt handhabst, da API-Aufrufe in der Regel eine Authentifizierung erfordern.
    4. MAC-Adresse übergeben: Dein Skript sollte so gestaltet sein, dass es die MAC-Adresse des Telefons als Eingabeparameter erhält. Diese MAC-Adresse wird dann im API-Aufruf verwendet, um das spezifische Telefon zu identifizieren und neu zu provisionieren.

    Leider enthält keines der mir vorliegenden Dokumente spezifische Beispiele oder Code-Snippets, die direkt auf deine Anfrage anwendbar wären. Daher empfehle ich, die offizielle Dokumentation der UCI-API von STARFACE zu konsultieren oder direkt den STARFACE Support für weitere technische Details zu kontaktieren.

    Für detailliertere Informationen und die genaue Syntax der API-Aufrufe wäre ein Blick in die offizielle STARFACE-Dokumentation oder eine Anfrage im STARFACE-Supportforum ratsam: https://support.starface.de/forum/.

    Bitte lass mich wissen, ob du weitere Unterstützung benötigst oder spezifischere Fragen hast.

    STARFACE AI-Bot

    Bitte bewerte meine Antwort, wenn sie hilfreich war <3 falls nicht :thumbdown: Danke!

    Die Beiträge des AI-Bots sind ohne zusätzliche menschliche Prüfung veröffentlicht. Wir bitten um euer Verständnis, dass es dabei zu unerwarteten Antworten oder Empfehlungen kommen kann. Weitere Hinweise in diesem Beitrag.

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

  • Wenn du es mit eigenen Bausteinen machst, gehts mit drei Zeilen Code

    SipAndPhonesHandler SIPH = (SipAndPhonesHandler)context.provider().fetch(SipAndPhonesHandler.class);

    PhoneUtils PU = (PhoneUtils)context.provider().fetch(PhoneUtils.class);

    PU.resyncPhones(SIPH.getPhoneList(), false);

    Wenn man jetzt nicht alle Telefone neuprovisionieren will, müsste man die SIPH.getPhoneList() Telefonliste entsprechend Filtern, und nur eine gefilterte Liste an die PhoneUtils übergeben.

    MfG


    Fabian

  • Danke dafür!

    Ich bekomme den Spaß auch (vor allem Dank deiner Anleitung) kompiliert.

    Wenn ich die class aber ins Modul importiere, kann ich sie nicht verwenden (übernehmen geklickt und Experten-Modus aktiv).

    Bildschirmfoto 2024-02-14 um 14.44.11.png

  • Hallo bf@dd

    Bitte stelle sicher, dass du die Java Dateien mit der Java-Version deiner STARFACE oder älter kompillierst.

    Auf der 8.1.1.1 wäre das:

    [root@testface ~]# java -version

    openjdk version "17.0.8" 2023-07-18 LTS

    Wenn du also 18 oder neue genommen hast taucht der Baustein nicht auf.

    MfG

    Fabian

  • Deine eigenen Funktionen erscheinen unter "Public". Hast du da mal geschaut (oben der Tab über der Checkbox "Expert Mode"). Manchmal kommt die auch erst wenn du den Module Designer neu öffnest.

    Viele Grüße,

    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG

    STARFACE Excellence PLUS Partner

  • Das wars. Ich hatte natürlich die 18 ausgewählt...

    Geht einwandfrei. Danke!


    Wie ich eine Variable an den Baustein übergebe, hab ich in deinem Wiki rausbekommen. Wie ich das aber im Java Code verbasteln muss, damit ich das passende Telefon abfrage und neu provisioniere ist mir absolut schleierhaft. Für Java fehlt mir irgendwie die Geduld oder eine Windung...

  • Du musst im Java über die Liste iterieren und eine zweite Liste mit nur einem Eintrag machen (Wenns nur 1 Telefon ist)

    Das würde ungefähr so gehen (Ungetestet:)


    MfG


    Fabian

  • Danke, funktioniert auf Anhieb!

    Zurück kommt übrigens der Telefontyp:

    Code
    [2024-02-14T15:51:38,361] [DEBUG] [] [] [Autoprov_Specific] UCC Client for Android 
    [2024-02-14T15:51:38,361] [DEBUG] [] [] [Autoprov_Specific] Standard Sip 
    [2024-02-14T15:51:38,361] [DEBUG] [] [] [Autoprov_Specific] UCC Client for Mac 
    [2024-02-14T15:51:38,361] [DEBUG] [] [] [Autoprov_Specific] yealink-t54 
    [2024-02-14T15:51:38,361] [DEBUG] [] [] [Autoprov_Specific] N670 IP PRO Master 

    Soll mir aber egal sein, ich will wenn dann sowieso alle N670 oder alle N870 ansprechen. Das macht es sogar noch einfacher

    Edited once, last by bf@dd (February 14, 2024 at 4:04 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!