iSync PlugIn für Vertu Ascent gesucht

Haschbar

Aktives Mitglied
Thread Starter
Dabei seit
15.08.2003
Beiträge
410
Reaktionspunkte
2
Das Vertu Ascent ist die teuerste Möglichkeit mit einem Bluetooth fähigem Handy zu telefonieren.
Leider ist das Gute Stück von Haus aus schon mal nicht iSync kompatibel.
Was angesichts der Verbreitung wenig verwundert. :)
Laut diverser Technews basiert das Ascent aber auf Nokias Serie 40 Revision 2, was sich zumindest erahnen lässt, wenn man vom 8800 umsteigt. Irgendwie kommt einem Alles sehr vertraut vor.

Damit sollte es aber zumindest theoretisch in der Lage sein, sich mit dem Mac zu verständigen.

Der Mac erkennt das Handy auch via Bluetooth, listet aber bei den Diensten nicht den Nokia Data Suit Service auf.

Meine erste Idee, die Daten via PhoneDirector zu kopieren, das ich für das 8800 gekauft hatte, fällt also flach.

Nach der Anleitung von isync-hilfe.de hab ich versucht, ein PlugIn auf Basis des 8800 Skripts zu erstellen.

Offenbar scheiterte es bislang daran, dass ich den richtigen Namen noch nicht gefunden habe.
Ich bin mir einfach nicht sicher, wie ich den Namen eingeben soll.

Normalweise heißt das 8800 im iSync NOK8800
In der MetaClass.plist aber
Nokia+Nokia 8800

Mit Vertu + Vertu Ascent klappts nicht.

Welche Schreibweise oder b.Benennung könnte besser sein?

Muss ich die Keyinfo von
con.nokia.8800
auch noch ändern?.

Der Mensch von isync-hilfe.de bietet zwar für pauschal 65 Euro Hilfe, aber bislang kam noch keine Rückmeldung, ob er helfen kann, oder nicht!

Alles muss man selber machen! ;-)

Vielen Dank für eure Hilfe!
 
Hilf dir selbst, dann hilft dir der Nil! Ein Lösungsansatz!

Da mir ja keiner helfen wollte, hab ich das nu selber gemacht! ;-)

Lösungsansatz.
Erstmal schauen, was das Telefon einem so alles verrät.
Ist das Vertu via Bluetooth am Mac gekoppelt informiert es über die verfügbaren Bluetooth Dienste.
In diesem Fall fehlt ein wichtiger Dienst, mit dem man verschiedene Nokia Standart Funktionen nutzen kann.
Der Nokia Data Suite Dienst.

Allerdings kommt das Telefon mit einem SyncML Client.
Das ist in sofern praktisch, als das Apples iSync eigentlich nichts weiter ist, als ein SyncML Server mit nettem Interface.

Nun habe ich ja schon mal ein Telefon mit iSync zusammengeführt.
Also habe ich mir mal wieder das Universal Plug In für iSync von iSync-Hilfe.de heruntergeladen.

So einfach wie beim W900i damals war es aber leider nicht.

Leider erkennt iSync das Telefon als nicht kompatibel.
Warum? Gute Frage. Zumindest war es die erste, die ich mir gestellt habe.
Da ich sie nicht beantworten konnte, schaute ich auf , eine Site,Tao of Mac die ich über Apfelwiki gefunden habe.
Dort erklärt der Autor ziemlich beeindruckend detailliert, wie die PlugIns für iSync aufgebaut sind, und wie es funktioniert.

So stellt sich heraus, dass Apple die Erkennung der Telefone auf AT Command Informationen stützt.
Diese Auszulesen stellte sich als leichter heraus, als anfänglich befürchtet. Denn statt umständlich erst die BT Leitung direkt anzuzapfen wirkte ein Blick in die Mac OS X Konsole Wunder.
Durch Zufall fand ich einen Eintrag über die laufende BT Verbindung mit dem Handy.
Inkl. aller für mich relevanten Daten.

Für alle, die nun wissen wollen, wie das aussieht:

manufacturer:
Vertu Ltd

model number:
Vertu Ascent

revision ID:
V 503.02
31-01-2006
RHV-3
GSM E11
(c) Vertu.

IMSI:
+CGATT: 0

GMM:
Vertu Ascent

GMI:
Vertu Ltd

Mit Hilfe dieser Informationen ist es nun Möglich das Telefon von iSync erkennen zu lassen.
Dazu ändert man in der MetaClasses.plist im Universal PlugIn den Namen des Herstellers und des Modells auf die oben angezeigten Werte.
Denn diese Informationen fragt iSync ab, um die richtigen Scripte verwenden zu können.
Und wir wollen ja schließlich iSync überzeugen, dass unser Script das Richtige ist ;)

Leider ist es damit noch nicht getan.
Denn das erste von mir, aus der MetaClasses.plist aus iSync selber (Rechte Maustaste/Packetinformationen anzeigen), ausgewählte Script ist das, des Nokia 8800.
Ein Serie40 Telefon, das technisch eng verwandt sein müsste.
Ist es aber leider nicht.

Auf dem Vertu Display leuchtet die Fehlermeldung: KEINE GENEHMIGUNG auf und der Sync schlug fehl.
Meine erste Annahme, einzelne Parameter, die spezielle Eigenschaften beschreiben, sind falsch, stellte sich, nach wenigen Stunden als Unsinnig heraus.

Zurück ins Netz und an die MetaClasses.plist.
Denn, von Nokias Serie 40 gibt es inzwischen 3 Revisionen. 2 Davon unterstützt iSync bereits.
Welcher dieser drei ist es denn nun?

Wiedermals hilft das gute alte Trial and Error Prinzip.
Da meine beste Freundin ein Nokia 6230 besaß, wollte ich dies versuchen, untersuchte aber noch mal den Tao of Mac Artikel, der mich auf den Javascriptbereich hinwieß.
Dort ist beschrieben, dass das 6230i mehrere Ordnerstrukturen haben kann. Die sind allerdings zu einander zwangsläufig inkompatibel.
Also fiel meine Wahl auf dieses Modell.
Ich hatte vorher die Daten meines Nokia 8800 via Content Copierer übertragen, wobei die Mediafiles falsch importiert worden sind.
So kam ich auf die Idee! ;)

Und nach nur wenigen Änderungen, die mehr ein Feintuning sind:
Erfolg!

Die fertige Key Info sieht dann so aus:

<key>com.vertu.ascent</key>
<dict>
<key>Identification</key>
<dict>
<key>com.apple.cgmi+cgmm</key>
<string>Vertu Ltd+Vertu Ascent</string>
<key>com.apple.gmi+gmm</key>
<string>Vertu Ltd+Vertu Ascent</string>
</dict>
<key>InheritsFrom</key>
<array>
<string>family.com.nokia.series40.bus.bt</string>
</array>
<key>Services</key>
<array>
<dict>
<key>ServiceName</key>
<string>com.apple.model</string>
<key>ServiceProperties</key>
<dict>
<key>ModelIcon</key>
<string>VertuAscent.tiff</string>
<key>ModelName</key>
<string>Ascent</string>
</dict>
</dict>
<dict>
<key>ServiceName</key>
<string>com.apple.synchro</string>
<key>ServiceProperties</key>
<dict>
<key>MaxEMailLength</key>
<integer>126</integer>
<key>MaxEventLocationLength</key>
<integer>50</integer>
<key>MaxEventSummaryLength</key>
<integer>211</integer>
<key>MaxNotesLength</key>
<integer>126</integer>
<key>MaxPhoneNumberLength</key>
<integer>50</integer>
<key>MaxURLLength</key>
<integer>126</integer>
</dict>
</dict>
<dict>
<key>ServiceClass</key>
<string>IPHJSRevisionService</string>
<key>ServiceName</key>
<string>com.apple.revisionchecker</string>
<key>ServiceProperties</key>
<dict>
<key>ModelSwitchScript</key>
<string>
function parseGMR(properties) {
gmr = properties[”com.apple.GMR”];
application.log(”Testing revision from GMR: ” + gmr);
if(gmr != null) {
match = utils.match(gmr, “V\\s*([0-9]+\\.[0-9]+)\\s+[^\\s]+\\s+([A-Z]+)-([0-9]+) “);
if(match == null) {
application.log(”Can’t parse GMR”);
return null;
}
if(match.length != 3) {
application.log(”Bad parsing of GMR”);
return null;
}
parsed_version = {};
parsed_version[’generation’] = match[1];
parsed_version[’generation_version’] = (match[2] - 0);
parsed_version[’version’] = (match[0] - 0.0);
application.log(”Parsed version is:\n” + utils.objcDescription(parsed_version));
return parsed_version;
}
return null;
}

function realModelIDFromProperties(properties) {
version = parseGMR(properties);
if (version == null)
return null;

if ((version.generation == “RM”) &&
(version.generation_version == 72) &&
(version.version >= 3.40))
{
// folding has changed since 03.40 (maybe before, but we only know that it has changed between 03.30 and 03.40)
application.log(”This phone uses new folding style”);
return “com.vertu.ascent.withNewFolding”;
}

return null;
}
</string>
</dict>
</dict>
<dict>
<key>ServiceName</key>
<string>com.apple.pimsync.parser.vCard</string>
<key>ServiceProperties</key>
<dict>
<key>FoldingStyle</key>
<string>FoldingNGQP</string>
</dict>
</dict>
</array>
</dict>
<key>com.vertu.ascent.withNewFolding</key>
<dict>
<key>InheritsFrom</key>
<array>
<string>family.com.nokia.series40.bus.bt</string>
</array>
<key>Services</key>
<array>
<dict>
<key>ServiceName</key>
<string>com.apple.model</string>
<key>ServiceProperties</key>
<dict>
<key>ModelIcon</key>
<string>MyPhone.tiff</string>
<key>ModelName</key>
<string>Ascent</string>
</dict>
</dict>
<dict>
<key>ServiceName</key>
<string>com.apple.pimsync.parser.vCard</string>
<key>ServiceProperties</key>
<dict>
<key>FoldingStyle</key>
<string>FoldingKeepQP</string>
</dict>
</dict>
</array>
</dict>
</dict>

Wie man sieht, werden als Identifikationskennungen die Hersteller und Modellbezeichnungen verwendet.
Als Syncengine kommt die Serie40 Standart (Alternativ wäre 3rd Edition) zum Einsatz.
Der untere Teil ist speziell für das 6230i interessant, das mit alternativen Ordnereinstellungen arbeitet.
Laut meinem Log ist dies beim Vertu eigentlich nicht nötig, da dieses mit dem Herkömmlichen Ordnersetup arbeitet.

In diesem Script ist übrigens das fertige Icon bereits namentlich erwähnt! ;)

Die Daten sind drauf, was nun noch fehlt, ist ein schönes Icon für die iSync.app.
TIFF Bild mit 60×60 Pixel Auflösung und Transparent Support.
Das Original entnahm ich der Bildergalerie der Vertu Website, die ich leider nicht direkt verlinken kann, da die dort Flash benutzen :/

Mal eben den überflüssigen Hintergrund entfernt und das Bild auf die notwendigen Maße reduziert.

Das Ergebnis sieht nun so aus:
Bild%203.jpg


Wer nun das fertige PlugIn laden möchte, kann entweder bei meiner Site unter
Haschbar.com oder das PlugIn direkt als Zip File Vertu Ascent Phone Plug In laden.
Es muss dann nur noch in den Ordner /Libary/PhonePlugins oder ~/Libary/PhonePlugins kopiert werden.
Im Zweifel Ordner erstellen ;)
 
Dank OS X 10.4.7 funktioniert das PlugIn so nicht mehr!
Eine aktualisierte Version kann von meiner Site unter blog.haschbar.com/?p=1285
geladen werden!
Morgen aktualisiere ich noch die Spartenseite :)
 
Zurück
Oben Unten