[Problem] Yealink T58A Autoprovisioning via http im lokalen Netzwerk ist nicht erfolgreich...

theobald

Neuer User
Mitglied seit
7 Jul 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
1
Hallo in die Runde und guten Tag!

wir arbeiten viel zuhause und haben uns daher zu Testzwecken ein Yealink T58A gekauft. Wenn alles glatt läuft, dann sollen später noch weitere folgen...

Ich möchte nun das Telefon probeweise über den lokal vorhandenen Apache Server via http provisionieren. Kann mir da jmd. mit Erfahrung einige Tipps geben? Bisher funktioniert das automatische Provisionieren nicht!

Was habe ich bisher gemacht?

1. Administrator’s Guide for VP59 & SIP-T58A & CP960 IP Phones V85.1 (Stand März 2020) überflogen
2. Yealink VP59 & SIP-T58A Phones User Guide V85.1 (Stand März 2020) überflogen
3. Yealink SIP IP Phones Auto Provisioning Guide V1.0 (Stand März 2020) gelesen
4. meine interne Konfiguration *.cfg (MAC-all.cfg) exportiert
5. automatische Bereitstellungs-URL im WEB UI des Telefons konfiguriert
1594188157743.png
[Edit Novize: Riesenbild gemäß der Forumsregeln auf Vorschau verkleinert] und Code in entsprechende Tags geklammert
6. Apache im lokalen Netz einen virtuellen Host 192.168.5.138/phones hinzugefügt - ohne credentials - frei zugänglich
7. die unter 4 exportierte Datei in den Unterordner 192.168.5.138/phones/805ec07d74f6/ als 805ec07d74f6.cfg abgelegt, die sieht so aus
Code:
[COLOR=rgb(65, 168, 95)][FONT=courier new]#!version:1.0.0.1

### This file is the exported MAC-all.cfg.

### For security, the following parameters with password haven't been display in this file.

# mögl. Quelle [URL]http://192.168.5.138/phones/805ec07d74f6[/URL]

###account.1.password = 
account.1.auth_name = XXXXXX
account.1.display_name = XXXXXXXXXXXX
account.1.enable = 1
account.1.label = Label provisioning OK
account.1.sip_server.1.address = 192.168.5.1
account.1.user_name = XXXXXXXXXXXXXXX
#
features.bluetooth_enable = 1
#
lang.gui = German
lang.wui = German
local_time.ntp_server1 = 192.168.5.1
local_time.ntp_server2 = ptbtime1.ptb.de
local_time.time_zone = +1
local_time.time_zone_name = Germany(Berlin)
#
phone_setting.active_backlight_level = 10
phone_setting.backgrounds = Config:722-IMG_7865.jpg
phone_setting.called_party_info_display.enable = 1
#
screensaver.mode = 3
# 0 clock 1 colours 2 photo frame 3 photo table
screensaver.type = 0
screensaver.wait_time = 300
# 1 = http 2 = https 3 = ftp 4+ = tftp
static.auto_provision.server.type = 1 
static.auto_provision.user_agent_mac.enable = 1
#
voice.handfree.spk_vol = 12
voice.handfree.tone_vol = 7
voice.headset.spk_vol = 15
voice.ring_vol = 7[/FONT][/COLOR]
8. zu Testzwecken ein Parameter account.1.label geändert
9. manuelles Autoprovisioning gestartet

Es passiert nichts.

Ich weiss, es ist eine komplizierte Frage, aber kann jemand Tipps geben?

Wenn ich es richtig verstanden habe, sollte das Telefon vom http-server die cfg-Datei selbst laden und die Konfigurationen ausführen. Das geschieht jedoch nicht. Ich erhalte nur die Anzeige:
1594188664678.png
Diese bleibt dann stehen und geht nicht mehr weg. Es gibt keine Möglichkeit, eventuelle Fehler zu debuggen. Die Logs zeigen dazu keine Einträge - oder ich finde diese nicht!

Die cfg-Datei ist offen zugänglich. Ich kann sie mit dem Browser herunterladen. Da sollte also das Problem nicht liegen.

Muss das Telefon zum Autoprovisioning immer neu booten oder kann es einzelne Konfigurationsaspekte im Betrieb (also network oder settings oder screensavers) nachladen ?

Hätte hier jmd. möglw. die Freundlichkeit mir etwas weiter zu helfen? Ich weiss, das ist nicht einfach!

Vielen Dank
der Theo
 
Zuletzt bearbeitet von einem Moderator:

sonyKatze

Aktives Mitglied
Mitglied seit
6 Aug 2009
Beiträge
1,434
Punkte für Reaktionen
125
Punkte
63
Wieso hast Du laut Bild im Yealink einen Benutzername/Passwort eingetragen?

Du kannst mittels Port-Mirroring mitschneiden und dann in Wireshark anschauen. Viele Yealinks haben dafür direkt den Menüpunkt „Span to PC“ (völlig unsinniges Cinglish aber so ist Yealink halt). Keine Ahnung, ob Dein Android basiertes Modell das auch hat. Du steckt dann ein Notebook mit Wireshark in den PC-Port des Tisch-Telefons. Am einfachsten dürfte aber Wireshark auf dem Computer mit dem Web-Server sein.

Warum willst Du überhaupt über HTTP provisionieren? Das lohnt sich nur bei sehr vielen Tisch-Telefonen und wenn Du vor hast diese zu pflegen, also ab und zu Dinge zu ändern. Ansonsten könntest Du die Konfiguration auch auf einem Telefon erstellen, exportieren, die Geräte spezischen Dinge mittels Text-Editor entfernen und das dann auf die anderen Telefone importieren.
 

theobald

Neuer User
Mitglied seit
7 Jul 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
1
Hallo sonyKatze,

vielen Dank für Deine Antwort und die Tipps.

1. Also Benutzername und Passwort waren schon ab Werk eingetragen. Den Benutzernamen kann man löschen. Wie ich gelesen habe, unterstützt das Protokoll tftp gar keinen Zugangsdaten und http kann man im T58A nicht via basic auth provisionieren. Jedenfalls habe ich dazu bisher nichts gefunden - kennst Du eine Lösung? Ich habe auch den Benutzernamen entfernt. Das Passwort lässt sich jedoch nicht entfernen. Es steht immer wieder drin.

2. Ein Port-Mirroring bräuchte ich gar nicht. Das Webinterface erzeugt auf Wunsch automatisch pcap Mitschnitte. Habe ich schon versucht. Steht aber nichts drin, was das Provisionieren angeht. Stehen nur DNS-Anfragen an den SIP Registrar drin. Sonst nichts. Leider... keine Anfragen an den TFTP-Server.

3. Warum will ich via HTTP provisionieren? Ja das ist eine gute Frage. Zuerst hatte ich gedacht, ich taste mich an das automatische Provisionieren heran, damit ich was lernen kann. Dazu lag http nahe. Das Einrichten eines virtual host geht schnell von der Hand - einen Apache habe ich laufen... Aber dann habe ich bei Yealink in den Manuals gelesen, dass das typische Szenario mit einem TFTP-Server aufgebaut wird. Das habe ich jetzt auch getan. Den Server getestet (tftp command) und er funktioniert und liefert die *.cfg-Dateien aus. Ich habe das Telefon bereits via Export und Import konfiguriert. Ich möchte das aber jetzt alles automatisch über den Server machen. Das ist bereits bei drei oder vier Telefonen - einfacher - denke ich?? :) Später möchte ich auch Klingeltöne und Telefonbücher automatisch bereitstellen.

Bis heute Mittag war ich schon etwas weiter. Also gewisse Einstellungen (aber nicht alle) stellt er jetzt bereit. Ich weiss aber nicht, warum er nicht alle Einstellungen/Änderungen übernimmt. Z.b. die label der Benutzerkonten ändert er nicht, wenn ich sie in der *.cfg ändere und neu bereitstelle.

Ich habe jetzt auf TFTP umgestellt und bemerkt, dass er nur beim booten provisioniert. Man muss also immer das Telefon neu booten. Geht das nicht anders? Der Button "Jetzt Provisionieren" im Webinterface funktioniert zwar, lädt aber die Änderungen vom Server nicht in das Telefon.

gesetzt habe ich in der y0000000000.boot
overwrite_mode = 1
specific_model.excluded_mode = 0


Hast Du da noch Tipps? Vorschläge?

Viele Grüße.
Theo
 

sonyKatze

Aktives Mitglied
Mitglied seit
6 Aug 2009
Beiträge
1,434
Punkte für Reaktionen
125
Punkte
63
Da muss ich passen. Nur noch ein Tipp: Über die DHCP-Option 150 und/oder 66 kannst Du Deinen Server automatisch bekannt machen. Dann braucht ein neues Gerät nur noch eingesteckt werden. Allerdings sind diese Prov-Interfaces so buggy, noch buggier als das normale Web-Interface. Daher lohnt sich das Einfuchsen eigentlich nur dann, wenn Du Systemeinrichter bist und das bei mehreren Kunden machst.
Port-Mirroring bräuchte ich gar nicht
Würde ich aber machen, weil die Geräte sich nach einem Start provisionieren und dann kannst Du noch über das Web-Interface tracen.
 

theobald

Neuer User
Mitglied seit
7 Jul 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
1
Danke! Das ist sehr nett! Also das mit den Optionen habe ich mir auch schon angesehen. Leider unterstützt die Fritz!Box 7490, wie auch das Fritz!OS im Allgemeinen keine Optionen. Das wäre eine tolle Sache, wenn AVM das mal nachrüstet. Eine Alternative wäre dann einen eigenen DHCP-Server einzurichten... aber das mache ich jetzt erst einmal nicht - zu viele Baustellen. :)

und Port-Mirroring - ok dann werde ich das mal einrichten. Das ist ja nur geringer Aufwand. Danke für den Hinweis!
 

theobald

Neuer User
Mitglied seit
7 Jul 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
1
Hallo in die Runde!

Ich möchte mal meine Erfahrungen weitergeben, die sich nach ca. 50h mit dem T58A ergeben haben:

1. Ich hatte in der vergangenen Woche ein neues Gerät bei reichelt.de erworben. Das Hauptproblem war, wie sich jetzt herausgestellt hat, dass die Firmware nicht aktuell war. Es ist also zu empfehlen, das zuvor zu prüfen. Bei meinem Neugerät war die Firmware-Version 58.83.0.15 installiert, aktuell ist jetzt (07/2020) 58.85.0.05.

2. Mit der Firmware 58.85.0.5 werden neue autoprovisioning Parameter eingeführt (z.B. features.auto_recording.enable etc.), die ich zuvor habe erfolglos aktivieren wollen. Jetzt funktionieren die meisten Parameter. Es ist ebenfalls sehr wichtig, die aktuellen (24.06.2020) Release Notes zu lesen. Diese findet man hier.

3. Aber das war nicht mein ursprüngliches Problem. Ursprünglich funktionierte der Kontakt mit dem Provisioning-Server nicht. Der Grund war nicht so leicht herauszufinden, da man Fehler in dieser Sache nicht einfach in einem Log nachlesen kann. Man muss in der Regel - so wie ich das jetzt verstanden haben - ein pcap Trace erzeugen (macht das Telefon aber von selbst) und dann darin suchen. Das erfordert natürlich schon etwas mehr Erfahrung, die ich nicht so im Detail habe.
Also die Manuals geben an, dass das Telefon, wie auch viele andere Modelle von Yealink, vier Protokolle zum auto-provisioning unterstützen. Im Detail gibt es da aber Widersprüche. So kann man vielerorts lesen, dass man das Provisionieren vorzugsweise mit einem Server namens 3CDaemon durchführen sollte. Bevorzugt sollte TFTP verwendet werden. Außerdem sind die Zugangsdaten zum Server anzugeben. Nun besteht hier das Problem, dass TFTP per Definition gar keine Benutzerverwaltung und Zugriffsteuerung besitzt. Ich dachte dann, es wäre wohl eher FTP gemeint, aber andererseits wird in den Dokumentationen immer eine url mit http:// angegeben. Das schien mir unsinnig, da man, wie beim call_recordimg, niemals auf http schreiben kann. Jedenfalls nicht ohne weitere Tricks. Es geht aber alles mit TFTP, wenn man das protokoll der url voran stellt, also tftp://192.168.1.10 etc. (was der Aussage des Admin-Handbuches widerspricht)

4. Man muss darauf achten, dass man eine y000000000000.boot bereitstellt (meiner Ansicht nach, geht das nicht genau aus den Handbüchern hervor). In meinem Falle sieht die so aus.
Code:
#!version:1.0.0.1

## The header above must appear as-is in the first line

include:config <805ec07d74f6.cfg>
include:config <805ec07d74f6-local.cfg>
include:config <common.cfg>

overwrite_mode = 1
specific_model.excluded_mode = 0
Die entsprechenden Parameter werden in der Yealink SIP IP Phones Auto Provisioning Guide V1.0 (vom 16.04.2020) erklärt. Wichtig ist hier, dass das Telefon nach der Inbetriebnahme des Provisioning-Servers und nach der Eingabe (am Telefon oder im Webinterface des Telefons) der autoprovisioning-url einmal neu gebootet wird. Andernfalls wird die y000000000000.boot nicht vom Server geladen und die darin referenzierten *.cgf-Dateien werden nicht verarbeitet. (hat man das einmal getan, dann kann man auch später über das Web-Interface ein manuelles auto-provisioning ausführen - dabei werden nur die *.cfg-Dateien nachgeladen)

Man findet zwar ein oder sogar mehrere Templates auf der Website zum Telefon, jedoch ist mir nicht klar geworden, dass man die in den Templates genannten Dateien in die *.boot-Datei (mit include) eintragen muss. Ich war anfangs davon ausgegangen, dass das Telefon bei Angabe einer TFTP-url, die dortigen Dateien automatisch verarbeitet. Wie es aussieht, verarbeitet es beim auto-provisioning prinzipell erst einmal nur die *.boot-Datei. Was nicht in der *.boot-Datei mittels include referenziert ist, wird auch nicht geladen.

Wenn man diese Randbedingungen berücksichtigt, dann klappt vieles - nicht alles.

4. Interessant ist auch das Frature der Action-Urls. Damit kann man im Telefon urls (http/https!) hinterlegen, die an bestimmte Ereignisse gebunden sind und auf einen Server zeigen. Beim Eintreten der jeweiligen Ereignisse (triggern / event handling), werden die urls aufgerufen. In den Beispielen dazu steht oft http://MEINE-IP-ADRESSE/pfad/zum/skript/help.xml?ip=$IP. Da fragt man sich natürlich, warum eine help.xml aufgerufen werden soll? Nach vielen vergeblichen Tests habe ich bemerkt: Das ist nur exemplarisch gemeint. Ich habe jetzt auf einem Webserver ein *.php Skript als Controller laufen. Das geht genauso. Man kann mit einer derartigen Action-Url praktisch alles aufrufen, was via http/https aufgerufen werden kann...

5. Zurzeit ist es mir jedoch noch unmöglich, Apps (überhaupt - und im Besonderen aus Dateien) zu installieren. Die in den entsprechenden Anleitungen beschriebenen Verfahren funktionieren bei mir nicht. Ich habe ganz rudimentär versucht, Telegram aus der datei telegram-6-0-2.apk von meinem Provisioning-Server zu installieren. Das bleibt wirkungslos und der pcap Trace zeigt keinerlei Ambitionen des Telefons. Das Thema wird häufig im Yealik-Forum verhandelt. Eine allg. Lösung scheint es nicht zu geben. Ich bleibe dran... :)

Im Grunde kann ich sagen, dass das T58A bis jetzt eine gute Figur macht. Ich muss meine alten ISDN-Telefone (Tiptel195 - prima Geräte - 20 Jahre alt) ausmustern und habe ein vergleichbares Gerät gesucht. Prima finde ich die gute Sprachqualität, die umfangreiche Handhabbarkeit der Telefonbücher (Import/Export/Auto-Backup), die Action-URLs, das auto-recording (Gespräche können automatisch mitgeschnitten und sofort auf dem Server archiviert werden) und die problemlose Kopplung der Bluetooth-Schnittstelle an exotische Geräte (z.B. PHONAK ComPilot II - ein Streamer für Hörgeräte).

Soweit mal meine Erfahrungen.
Beste Grüße.
Theo
 
  • Like
Reaktionen: sonyKatze