Beiträge durchsuchen

Themenreihe FreePBX 15/Asterisk 16-Teil 4.17. Globales Telefonbuch

Was wird benötigt?

Konfiguration

  • In der FreePBX-Verwaltungsoberfläche den Menüpunkt Administrator/Asterisk Telefonbuch öffnen. Hier können Telefonbucheinträge manuell erfasst bzw. als CSV-Datei hochgeladen werden. Wie die Dateistruktur für den Upload aussehen muss, ist in der Hilfe-Funktion dokumentiert. Am besten ist es aber, man erfasst einen oder zwei Einträge manuell und lädt diese Datei dann als CSV mit der Export-Funktion herunter. In dieser Datei kann man dann die Struktur genau sehen.
  • Als nächstes wird das hier zum Download bereitstehende PHP-Script benötigt. Dieses Script bitte downloaden und die Zip-Datei entpacken. Anschließend den WinSCP öffnen und im Verzeichnisbaum auf der FreePBX in den Ordner /var/www/html gehen. Das PHP-Script in dieses Verzeichnis hochladen.
  • Nun zum Test einen Browser öffnen und “FreePBX-IP/Snom_dir.php” in die Adresszeile eingeben und mit Enter bestätigen. Die Telefonbucheinträge müssen nun im XML-Format angezeigt werden.
  • Zum Abschluss die Konfigurationsoberfläche des Telefons öffnen. Dort nach einem Feld für den Eintrag eines externen Telefonbuchs oder Nach einem Feld für Eintrag einer Action URL oder nach einem XML-Browser-Feld suchen und die vorher im Browser eingegebene URL in dieses Feld kopieren

Jetzt kann man durch die mit den entsprechenden Feld verbundene Funktionstaste das Telefonbuch auf dem Telefon aufrufen.

Folgendes bitte noch beachten. Das funktioniert nicht mit Softphones, da diese solche Funktionen nicht haben. Auch manche Hardware-Telefone haben diese Funktionen nicht.

Die Telefone, die solche Funktionen haben, teilen sich in 2 Gruppen. Die einen starten bei jedem Aufruf des Telefonbuches das Script und fragen die Einträge aktuell von der FreePBX ab. Dadurch werden zwar immer die aktuellen Daten angezeigt, bei großen Telefonbüchern steigen aber die Ladezeiten. Andere Telefone haben im Telefonbuch einen “Aktualisieren”-Button. Beim Drücken dieses Buttons lädt das Telefon das Telefonbuch der FreePBX herunter und speichert es lokal. Das hat den Vorteil, dass dass die Daten auch bei großen Telefonbüchern schneller verfügbar sind aber den Nachteil, dass das lokale Telefonbuch bei Änderungen der Einträge in der FreePBX manuell über den “Aktualisieren”-Button upgedatet werden muss.

16 Kommentare zu Themenreihe FreePBX 15/Asterisk 16-Teil 4.17. Globales Telefonbuch

    1. Ich habe nun eine Kurzwahlnummer 80 angelegt.
      Ich wähle dann *080.
      Es funktioniert aber nicht.
      Was mache ich noch verkehrt, oder muß evtl. noch installiert werden,

      Vielen DAnk
      mfg

      1. In der FreePBX-Verwaltungsoberfläche unter Administrator/Funktionscodes im dortigen Abschnitt “Speeddial” müssen die beiden Optionen aktiviert sein.
        Dann muss es funktionieren. Im Telefonbuch einen Eintrag anlegen, Kurzwahlnummer eintragen oder leer lassen zur automatischen Erstellung, Option Kurzwahleintrag auf “Ja” stellen und speichern.
        Anschließend Kurzwahl wählen durch Eingabe von *0Kurzwahl. Dann muss es funktionieren.
        Grüße

    2. hi,

      Bisschen spät, aber vlt hilft es ja jemand anderem:
      geh in die Weboberfläche des Telefons, dort unter FUNKTIONSTASTEN links im Hauptmenü. Such dir rechts am besten unter dedizierte Tasten die für’s Telefonbuch, dort dann als TYP einstellen:
      AKTIONS-URL und als Wert http://IP.DEINER.FREE.PBX/snom_dir.php

      Grüße
      sahib

  1. Ist es möglich, nur mit einer Tastenkombination ( ich wähle zb. *80, oder #80) das
    interne Telefonbuch anzusprechen, und die Freepbx wählt dann die
    gespeicherte Nummer für mich?

    1. Ich gehe davon aus, dass Sie die Kurzwahl meinen. Im Telefonbuch können Sie für jeden Eintrag auch eine Kurzwahl festlegen oder automatisch erstellen lassen. Eine Kurzwahl wird mir *0 eingeleitet. Ist die Kurzwahl für einen Eintrag also 15, dann führt an die Kurzwahl mit *015 aus.
      Grüsse.

  2. Hallo Herr Griebsch,

    vielen Dank für Ihr geniales Tutorial, welches ich von Anfang bis Ende erfolgreich durchgearbeitet habe.

    Leider komme ich an einem Punkt nicht weiter: Dem Script.

    Ich habe Ihr Script wie beschrieben eingefügt. Wenn ich die IP Adresse der FreePBX mit dem Scriptnamen wie beschrieben in den Browser eingebe erhalte sehe ich keine XML Datei sondern folgende Fehlermeldung:

    This page contains the following errors:
    error on line 1 at column 126: Extra content at the end of the document
    Below is a rendering of the page up to the first error.
    Telefonbuch FreePBX

    Ich verwende die aktuellste Version der FreePBX. Ist es möglich, dass es Änderungen in der db gab? Kann leider kein php/xml.

    Liebe Grüße und vielen Dank!

      1. Vielen Dank für Ihre schnelle Rückmeldung.

        Ich habe das Script soeben erneut von dieser Website gedownloaded, die zip Datei entpackt und das Script hochgeladen ohne es vorher zu öffnen/bearbeiten.

        Den Fehler erhalte ich immer noch.

        Könnten Sie sich das Script eventuell nochmal anschauen? Ich komme leider nicht weiter und benötige das Telefonbuch.

        Vielen Dank für Ihre hervorragende Arbeit!

          1. Ich verwende RasPBX (FreePBX auf Raspberry). Könnte es damit zusammen hängen?

            Wenn dem so ist, wären Sie in der Lage das Script für das Raspberry anzupassen? Ich habe Ihre kompletten Tutorials komplett auf dem Raspberry durchgearbeitet und die FreePBX ist zu 100% eingerichtet (ohne Probleme). Das Einzige was fehlt ist das Telefonbuch.

    1. Hallo basscocoa,
      Frage, hast Du die Datei mit WinSCP in das Verzeichnis der FreePBX geladen? Wenn nicht, mit welchem Programm?

  3. Hallo basscocoa,
    Frage, hast Du die Datei mit WinSCP in das Verzeichnis der FreePBX geladen? Wenn nicht, mit welchem Programm?

  4. Hallo,
    Fielen dank für dieses Tutorial, für meine Cisco 79XX Telefone muste ich das Script anpassen. Wen ich darf lasse ich es hier fieleicht hilft es ja jemanden 🙂
    Beste Grüße Bernhard

    <?php
    header ("Content-type: text/xml");
    echo '’;
    echo ”;
    echo ‘Telefonbuch FreePBX’;

    $db = new SQLite3(‘/var/lib/asterisk/astdb.sqlite3’);

    $results = $db->query(‘SELECT * FROM astdb;’);

    while ($row = $results->fetchArray()) {
    //find
    $find=’/cidname/’;

    if(strpos($row[‘key’], $find)!==false) {
    echo ”;
    echo ”.htmlspecialchars($row[‘value’]).str_replace($find,’
    ‘, $row[‘key’]).”;
    echo ‘Dial:’.str_replace($find, ”, $row[‘key’]).”;
    echo ”;
    }
    }

    echo ”;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.