Hallo Black Senator,
zunächst einmal vielen Dank für deine Antwort und den Ideen bezüglich XML Im-/und Export des Telefonbuchs. Das hat ein weiteres Universum an Testmöglichkeiten eröffnet. Aber der Reihe nach.
Nach meinem ersten Foren Eintrag hatte ich weitere Versuche unternommen um das Problem einzugrenzen.
Dabei bin ich auf eine zusätzliche, zeitabhängige Komponente gestoßen, die die Untersuchung weiter verkompliziert. Ich habe festgestellt, dass die Namensauflösung (kurz für die Zuordnung und Weiterleitung des Namens einer anrufenden Telefonnummer anhand eines Telefonbucheintrags) für neue Telefonbucheinträge (neue Telefonnummer und neuer Name) innerhalb der ersten 24h nach dem ersten Import durch carddav2fb in die FB funktioniert. Sprich, wenn ich einen neuen Telefonbucheintrag anlege, den nächsten Importzyklus durch carddav2fb abwarte (oder manuell auslöse) und danach dann zeitnah von der Nummer des Telefonbucheintrages angerufen werden, klappt alles.
Ferner scheint es so, dass Nummern, für die einmal eine Namensauflösung geklappt hat, ab diesem Zeitpunkt immer aufgelöst werden.
Beide Punkte erschweren das Testen enorm, da dadurch eine einmal aufgelöste Nummer "verbrannt" ist und für weitere Tests nicht mehr verwendet werden kann. Außerdem muss ich deshalb vor jedem Test mit einer neuen Nummer quasi 24h warten.
Doch genug des Jammerns und hin zu deinen Vorschlägen.
Zunächst einmal ist es so, dass so bald ich das Telefonbuch über das GUI exportiere, die darin befindlichen Einträge "aktiviert" sind, also die Namensauflösung funktioniert, auch für Einträge die bis zum Export noch nicht funktioniert hatten. Was ich in Ermangelung ausreichender Testrufnummern noch nicht prüfen konnte ist, ob diese Aktivierung für jungfräuliche Nummern nach 24h wieder verschwindet, falls in dieser Zeit kein Anruf erfolgt, oder permanent ist.
Die exportierten Einträge sehen im Prinzip alle identisch aus, unabhängig davon, ob sie funktionieren oder nicht. Abweichend zu der von dir verlinkten AVM Dokumentation hängen an einigen Elementen zusätzliche Attribute, die vermutlich die Anzahl der Unterelemente einer Elementgruppe enthalten und jedem der Unterelemente eine eindeutige ID zuordnen. Das Attribut für die Anzahl der Unterelemente heißt nid, das der einzelnen Unterelemente id. Die id wird innerhalb jeder Untergruppe fortlaufend vergeben, startend bei 0 für das erste Unterelement der Untergruppe. Das übergeordnete nid Element spiegelt in der Regel die Anzahl der ids der Untergruppe wider, ist aber bei einigen Einträgen eins zu niedrig (Beispiel, ein Element hat vier Unterelemente mit id 0 bis 3, das nid Attribut steht jedoch auch 3 statt auf 4). Bei Gruppen mit nur einem Unterlement stimmen die Attributwerte immer (nid = 1, id = 0).
Anonymisierte Auszug aus einem Export:
Code:
<?xml version="1.0" encoding="utf-8"?>
<phonebooks>
<phonebook name="Nextcloud" owner="1">
<contact>
<carddav_uid>2aa285a0-c193-4932-bfdb-80b18c6f5bef</carddav_uid>
<telephony nid="1">
<number id="0" type="home" prio="1">065439999999</number>
<number id="1" type="mobile">015477777777</number>
</telephony>
<services nid="1">
<email id="0" classifier="home">[email protected]</email>
</services>
<person>
<realName>Eintrag Eins</realName>
</person>
<uniqueid>6151</uniqueid>
</contact>
<contact>
<carddav_uid>96fe610d-24e6-4a45-ab6c-9e297ff9f748</carddav_uid>
<telephony nid="3">
<number id="0" type="home" prio="1">062227777</number>
<number id="1" type="mobile">015155555555</number>
<number id="2" type="fax_work">062227777778</number>
</telephony>
<services nid="1">
<email id="0" classifier="home">[email protected]</email>
</services>
<person>
<realName>Eintrag Zwei</realName>
</person>
<uniqueid>6142</uniqueid>
</contact>
<contact>
<carddav_uid>655480aa-163b-4456-90d7-d110f4a1f7a4</carddav_uid>
<telephony nid="3">
<number id="0" type="home" prio="1">06333888888</number>
<number id="1" type="work">06333888887</number>
<number id="2" type="mobile">01727777777</number>
<number id="3" type="fax_work">063338888886</number>
</telephony>
<services nid="3">
<email id="0" classifier="home">[email protected]</email>
<email id="1" classifier="home">[email protected]</email>
<email id="2" classifier="home">[email protected]</email>
</services>
<person>
<realName>Eintrag Drei</realName>
</person>
<uniqueid>6147</uniqueid>
</contact>
</phonebook>
</phonebooks>
Allerdings scheinen die falschen nid Werte keinen Einfluss auf die Namensauflösung zu haben, da diese auch für Einträge funktioniert, bei denen die nid 3 anstelle von 4 ist.
Importiere ich eine exportiertes Telefonbuch und exportiere es danach erneut, dann ist der einzige Unterschied, dass die <uniqueid> Elementwerte aufsteigend sind, während sie bei direkt exportierten nicht sortiert sind. Grundsätzlich werden bei jedem Export neue <uniqueid> Werte ausgegeben, unabhängig davon ob über carddav2fb oder über das GUI importiert wurde.
Aber bisher sieht es so aus, als ob keines der Elemente bzw. Attribute einen Einfluss darauf hat, ob die Namensauflösung geht oder nicht.
Momentan scheint es so, als ob der Schlüssel die zeitabhängige Aktivierungsfrist zu sein scheint. Diese konnte ich bisher entweder durch den erstmaligen Import eines neuen Telefonbucheintrages für diesen Telefonbucheintrag auslösen, oder durch den Export des gesamten Telefonbuchs für alle Telefonbucheinträge. Wie bereits geschrieben scheint diese Frist bei 24 Stunden zu liegen, exakt eingekreist habe ich sie aber aufgrund der begrenzten Testmöglichkeiten noch nicht (eventuell ist sie auch geringer).
Gestern habe ich mir bei fonial einen Testaccount mit 3 externen Testrufnummern angelegt, mit denen ich nun hoffentlich etwas einfacher testen kann. So bald ich irgendwelche belastbaren Erkenntnisse habe werde ich berichten.
Nochmals Danke für deine Unterstützung.
Liebe Grüße,
Ralf
P.S.: Habe gerade eben als quick and dirty workaround in der 'execute' Funktion einen abschließenden download des hochgeladenen Telefonbuchs angehängt, in der Hoffnung, dass dieser genauso wirkt, wie ein Export über das GUI oder per TR064 (was beides die Aktivierung bewirkt). Jetzt tickt die 24 Stunden Uhr und morgen um die Zeit bin ich hoffentlich schlauer.