Hallo,
das Thema ist zwar schon eine Weile her, aber via Google bin ich bei genau diesem Problem auf diesen Thread hier gelandet. Und da es scheinbar noch keine Lösung gibt/gab, habe ich mich selber etwas auf die Suche gemacht.
Fazit: Der User-Agent String lässt sich modifizieren, allerdings mehr oder weniger kompliziert. Es gibt keinen direkten Konfigurationsparameter in der voip.cfg o.ä., womit sich dies realisieren lässt.
Der User-Agent String, mit dem sich die FritzBox an SIP-Servern anmeldet, wird dynamisch vom 'voipd' generiert. Dieser setzt sich wie folgt zusammen:
Code:
"AVM" + " " + $CONFIG_PRODUKT_NAME + " " + $CONFIG_VERSION_MAJOR + "." + $CONFIG_VERSION + " " + "(MMM DD YYYY)"
Die $CONFIG_* Variablen sind ganz normale Umgebungsvariablen, die entsprechend gesetzt sind, während der voipd gestartet wird. Diese sind standardmäßig vorbelegt, können speziell für den Programmstart des voipd aber auch nach belieben modifiziert werden.
Am besten funktioniert dies, wenn man das init-Skript /etc/init.d/rc.voip anpasst.
Ich habe dazu in diesem Skript nach der Definition der PATH-Variable die folgenden Zeilen eingefügt:
Code:
export CONFIG_PRODUKT_NAME="FRITZ!Box Fon WLAN"
export CONFIG_VERSION_MAJOR="08"
export CONFIG_VERSION="04.26"
Das führt nun dazu, dass diese Werte für den voipd (und auch nur für den) entsprechend überschrieben werden. Das Ergebnis resultiert dann in dem im Ausgangsposting erwähnten User-Agent String.
Diese Modifikation des init-Skripts ist natürlich nur durch tiefere Eingriffe z.B. in Freetz möglich, da das Filesystem der FritzBox-Firmware read-only ist.
Am Ende des User-Agent Strings wird in Klammern noch ein Datumsstempel des voipd eingefügt. Dieses Datum wird nicht aus einer Umgebungsvariable entnommen, sondern ist fest direkt in das Binärfile /bin/voipd einkompiliert.
Solange dieser Datumsstring jedoch nicht in der Länge verändert, sondern z.B. nur auf andere Werte gesetzt werden soll, so ist auch das machbar. Dazu muss das Binärfile /bin/voipd auf dem PC mit einem Hexeditor geöffnet werden. Dort sucht man nach der ASCII-Zeichenfolge, die der voipd aktuell als Datum überträgt. Hat man dieses gefunden, kann man die entsprechenden Zeichen einfach mit neuen Werten überschreiben. Dabei unbedingt darauf achten, wirklich nur die ASCII-Zeichen zu überschreiben, und kein Byte davor oder dahinter. Diese String-Konstante steht nämlich ziemlich zufällig in der Landschaft. Das modifizierte Binary lässt sich dann z.B. im Freetz Buildvorgang wieder in die Firmware einschleußen.
Damit wäre nun auch diese Geheimnis gelüftet.
Vielleicht hilft es ja irgendwem.