[Erledigt] Telefonbuch-ID auslesen

Theo Tintensich

Aktives Mitglied
Mitglied seit
10 Mrz 2008
Beiträge
2,186
Punkte für Reaktionen
96
Punkte
48
Gibt es eine Möglichkeit, aus der F!B zu lesen, wie viele Telefonbücher eingerichtet sind, und welche interne ID diese haben?

Bei dem Aufruf
Code:
....
curl -s \
     -k \
     --form 'sid='${_SID} \
     --form 'PhonebookId='${_PhonebookId} \
     --form 'PhonebookExportName='${_PhonebookExportName} \
     --form 'PhonebookExport=' \
     http://${_FBOX}/cgi-bin/firmwarecfg \
     -o ${ziel_pfad}/${ziel_datei}
.....
Wird ja die ID und der Name benötigt.
Wenn man das Telefonbuch über die Oberfläche exportiert, bekommt man ja nur das, das man ausgewählt hat.

Wenn man nur 'alle' Telefonbücher auslesen will, benötigt man jetzt die ID und den internen Namen.
Nur wie kommt man an die ran?

Oder reicht eins von beiden aus?
ID reicht, doch wie kommt man an die Anzahl der Bücher?

Irgendwie passt nichts, was hier drin steht: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/X_contactSCPD.pdf
 
Zuletzt bearbeitet:
Funktioniert "GetPhonebookList()" bei Dir nicht? Ich habe es aktuell (06.92) nicht selbst getestet.
 
Ich habe es auf die harte Methode gemacht.
Da nur die ID zum Auslesen benötigt wird, lese ich die IDs 0 bis 6 aus, dann wird bei alle Dateien größer als 500 Byte mittels "xmlstartlet" der Name des Telefonbuchs aus jeder Datei ermittelt, die Datei entsprechen umbenannt und dann alle kleineren XML-Dateien gelöscht.

Es wird, mit steigender ID, das Telefonbuch so lange gelesen, bis die Datei keinen Telefonbuchnamen mehr enthält. Dazu wird das Tools "xmlstartlet" verwendet.

Hau weg die *
;-)
 

Anhänge

  • fonebook.0.2.1.zip
    1.3 KB · Aufrufe: 13
Zuletzt bearbeitet:
Ach nur so, weil´s draußen kalt ist und stürmt...


Code:
<?php


class fb_soap

{

    private $ip;
    private $user;
    private $password;

    
    public function __construct($password = false, $ip = 'fritz.box', $user = 'dslf-config') {

        $this->ip       = $ip;
        $this->user     = $user;
        $this->password = $password;
    }

    
    public function getSOAPclient() {
    
            $client = new \SoapClient(
                null,
                array(
                    'location'   => "http://".$this->ip.":49000/upnp/control/x_contact",
                    'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1",
                    'noroot'     => true,
                    'login'      => $this->user,
                    'password'   => $this->password,
                    'trace'      => true,
                    'exceptions' => true
                )
            );
        return $client;
    }


    public function getFBphonebooklst () {       // delivers a string of phonebook ID (e.g. "0" or "0,1" or "0,1,2,3,4,5,6")
    
        $client = $this->getSoapClient();
        return $client->GetPhonebookList();
    }


    /*
    GetPhonebook
    The following URL parameters are supported:
    Parameter name    Type          Remarks
    ---------------------------------------------------------------------------------------
    pbid              number        Phonebook ID
    max               number        maximum number of entries in call list, default 999
    sid               hex-string    Session ID for authentication
    timestamp         number        value from timestamp tag, to get the phonebook content
                                    only if last modification was made after this timestamp
    tr064sid          string        Session ID for authentication (obsolete)
    */
    public function getFBphonebook ($Phonebook = 0) {
    
        $client = $this->getSoapClient();
        $result = $client->GetPhonebook(new \SoapParam($Phonebook,"NewPhonebookID"));
        return simplexml_load_file($result['NewPhonebookURL']);
    }

}


$fb_pb = new fb_soap ('PASSWORT');

$result = $fb_pb-> getFBphonebooklst ();
echo $result . PHP_EOL;


?>
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
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.