[Erledigt] Telefonbuch-ID auslesen

Theo Tintensich

Aktives Mitglied
Mitglied seit
10 Mrz 2008
Beiträge
1,534
Punkte für Reaktionen
34
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:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,051
Punkte für Reaktionen
718
Punkte
113
Funktioniert "GetPhonebookList()" bei Dir nicht? Ich habe es aktuell (06.92) nicht selbst getestet.
 

Theo Tintensich

Aktives Mitglied
Mitglied seit
10 Mrz 2008
Beiträge
1,534
Punkte für Reaktionen
34
Punkte
48
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

Zuletzt bearbeitet:

Black Senator

Neuer User
Mitglied seit
13 Jul 2007
Beiträge
164
Punkte für Reaktionen
11
Punkte
18
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;


?>
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,055
Beiträge
2,018,317
Mitglieder
349,361
Neuestes Mitglied
steiniracing