Hallo!
Die Auswahl des Telefonbuches erfolgt über seine ID, die von 0 bis n gehen kann, je nachdem, wie viele Telefonbücher du in der Fritzbox hast. Das wird in meinem Code in der Zeile 113 gemacht, hier ein Code-Ausschnitt:
...
$fb = new fb_soap ('passwd','192.168.200.1','username'); //<--- fb_soap kann mit 1,2 oder 3 Argumenten initiiert werden
$phonebook = $fb-> getFBphonebook(0); //<--- hier wird der Index des Telefonbuches eingestellt, bei mir 0
...
Auf der Synology (und im Prinzip identisch auch auf QNAP) müssen der Webserver samt PHP installiert und aktiviert sein ("Webstation"), so dass man eben Webseiten mit PHP vom NAS abrufen kann. Meist wird dazu automatisch ein Verzeichnis "web" angelegt, welches gleichbedeutend mit dem document root-Ordner des Webservers ist. Meine Synology hat z.B. die IP-Adresse 192.168.200.8 und im Web-Verzeichnis "web" gibts den Ordner "ptx", der enthält das Skript. Also lautet die im Yealink einzutragende bzw. im Browser zu testende URL:
http://192.168.200.8/ptx/phone.php
Hat man andere Web-Anwendungen auf dem NAS installiert (z.B. PHP-Myadmin, Joomla oder gar ein ERP-System), kann das web-Verzeichnis bereits recht voll und damit unüberscihtlich sein, hier muss man dann auf mögliche Namenskonflikte achten. Aber der Ordner fürs Skript kann im Prinzip beliebig heissen. Auf Groß/Kleinschreibung ist immer zu achten, auch in der URL, denn der Webserver und PHP arbeiten case-sensitiv.
Ob es funktioniert, sieht man bereits daran, dass bei einem Aufruf der Adresse im Browser eine lange Liste mit den Kontaktdaten zu sehen ist. Beim Ansehen des HTML-Sourcecodes erblickt man eine einzige lange Zeile, zusätzlich mit den XML-Tags ...
Im Yealink geht man unter dem Reiter "Verzeichnis" auf den Unterpunkt "remotes Telefonbuch" (s. Bild 1), der Rest ist eigentlich selbsterklärend. In den (bei mir leeren) anderen Zeilen könnte man Links auf Varianten des Skripts für andere Telefonbücher hinterlegen, oder man baut noch die Auswertung von zus. URL-Parametern in das Skript ein ... kann ich demnächst ja mal tun.
Mit der Option "Suche nach ein/ausgehendem Anruf" wird eingestellt, ob z.B. bei eingehendem Anruf die zugehörigen Daten aus dem Telefonbuch im Display angezeigt werden sollen. Mit der Option "Update-Zeituntervall" legt man in Sekunden fest, in welchem Zeitintervall das Telefon die Datei neu vom Skript laden soll, um Änderungen am Telefonbuch zu aktualiseren.
Zum Schluss muss man noch die Reihenfolge der Anzeige und die Unterscheidung zwischen lokalem und remotem Telefonbuch für die Anzeige am Yealink einrichten. Dazu geht man auf den Unterpunkt "Einstellung", s. Bild 2.
Auf dem Yealink selbst findet man die Telefonbücher dann im Startscreen, bei mir mit dem 2. Taster von Links unter dem Display (in den Standardeinstellungen). Etwas lästig finde ich die zweite Auswahlebene, so dass man unter "Externes Telefonbuch" nochmals OK (Mitteltaste im Cursorkreuz) drücken muss. Dann erst erscheinen das oder die konkreten Telefonbücher ...