Bluetooth PBAP pre 0.46

The following is a summary of those two threads on talk.maemo.org:

For further information you might want to check these threads.

Please post to the second one to get support and share your experiences with this solution there as well!!!

Contents

General Information

PBAP

The Bluetooth Phone Book Access Profile (PBAP) allows to exchange Phone Book objects between carkits and mobile devices. In other words, PBAP profile gives your car unit read access to your mobile phone book (to be exact: to both, the phonebook stored on SIM card and the phone book stored on internal memory. But for the N900 only second one is relevant).

Described in a more specific way, whenever a connection between your carkit and your PBAP enabled phone is established, your phone book will be transfered to your carkit automatically. What happens from now with the transfered phone book of course depends on the features of your carkit. Typical use cases are browse and dial (voice-dial if supported by carkit) your contacts and show caller names for incoming calls. With an integrated In-Car Infotainment/Phone/Navigation/Whatever system it is even possible to use the contacts addresses as target for the navigation system.

By default N900 does NOT support PBAP and thus the in-car use cases described above are either not possible or require manual workarounds as the in other threads described "Petrovich workaround" (manual sending of vCards via Bluetooth) or OPP (Object Push Profile - A Bluetooth profile that enables a Bluetooth device to transfer (push) an object (e.g. contact) to another Bluetooth device).

IrMC

This project also aims to provide IrMC support. IrMC is another method to transfer the phone book to e. g. a car kit via Bluetooth which is by default not supported by N900.

Here comes the good news:

NOW YOU CAN HAVE PBAB and IrMC ON YOUR N900 !!!

Credits

Credits for the achieved so far go to those who contributed in the old thread "Car kit can not access contact information" as well as the new thread Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...:

Especially the developers: drdrewusaf, tuxy, jarmo2, hschmitt, Ossman, mirakels..., but of course also all the others who helped with testing and troubleshooting!

Disclaimer

!!! CAUTION !!!

This project is still in development stage, which means there are still some risks, downsides and issues to be solved before PBAB on N900 is ready for the average user...(see below).

Please read this summary carefully and evaluate the risks involved for yourself! (Keep in mind that this can cause problems for the phone. Backup your data, backup your config (apps > system > backup) and know how to reflash)

Whatever you do, you are doing it at your own risk!

However, if you want to have PBAB / IrMC and want to help out here -

You are more than welcome as a tester or even developer.

Of course, before you start playing with your phone, you should check if your carkit does support PBAP / IrMC.

If it does not, this solution can not help you - Sorry!

(Note: Carkits older than 2007 probably do NOT support PBAP)

Current Project Status:

Supported Carkits

So far, successful phonebook transfers were reported for the following carkits:

(If you are able to successfully transfer your phonebook to any carkit not listed here, please let us know or just add to following list!):

Via PBAP:

Built-In Carkits:
Acura
  • Acura TL -2010- SH-AWD w/Technology Package
Audi
  • Audi -2009- with RNS-E
  • Audi A3 -2009- (Facelift) with Radio Concert and bluetooth preparation
  • Audi A3 -2010- with RNS-E and bluetooth preparation
  • Audi A3 -2011- with Radio Concert and bluetooth preparation
  • Audi A4 -2010- with MMI (usable, BUT reads double entries, looks like phonebook is both on N900 and on SIM-card)
BMW
  • BMW 1series -2008- (E81/E82/E87/E88)
  • BMW 1series -2010- (E81/E82/E87/E88)
  • BMW 3series -2007- (E90/E91/E92/E93)
  • BMW 3series -2008- (E90/E91/E92/E93)
  • BMW 3series -2009- (E90/E91/E92/E93)
  • BMW 3series -2011- (E90/E91/E92/E93)
  • BMW 5series -2009- (E60/E61)
  • BMW 5series -2010- (F10/F11)
  • BMW X1 -2010- (E84)
  • BMW X5 -2007- (E70)
Chrysler
  • Town and Country 2010 (Limited)


Citroen
  • Citroen C5 (2006) with RD4 audio / Bluetooth system (phone book access works and outgoing calls can be made, but no caller ID and no phone number is shown on incoming calls; missed/dialed/received lists aren't available, either)
  • Citroen (Model unknown)
  • Citroen DS3 (2011) with MyWay audio/navigation/Bluetooth system (Phone book access direct from phone available, outgoing calls can be made, caller ID with phone number is shown on incoming calls, missed/dialed/received lists are available but this are only the calls that were made whilst connected with the MyWay-system)
Fiat
  • Fiar Scudo Panorama - 2007 - car kit bluetooth
Ford
  • Ford Mondeo -2007- Navigationsystem NX with Touchscreen
  • Ford Galaxy -2010- Navigation with Touchscreen
  • Ford Focus -2010- with Ford 6000CD
  • Ford Escape -2011- Limited with Touchscreen
  • Ford Mondeo -2011- Navigationsystem Travelpilot NX with Touchscreen
Honda
  • Honda Accord -2009- (EU) HFT system with SatNav
  • Honda CRV -2010- (EU) HFT system with SatNav
  • Honda Civic 2012 EX,Si. HandsFreeLink HFL
Hyundai
  • Hyundai Sonata -2011- SE Stock Bluetooth
Infinity
  • Infinity FX37 -2010-
Land Rover
  • Land Rover Discovery 3 -2007-
Lexus
  • IS 220d -2011-
Mercedes
  • Mercedes E-class > 09/2010- Audio 50 APS
  • Mercedes E-class > 09/2010- Audio 20
  • Mercedes C-class > 03/2011- all
  • Mercedes GLK- class >09/2010- Audio 50 APS and Audio 20
MINI
  • MINI -2010- (R55/R56/R57)
Nissan
  • 370Z -2011- HD-Navi
Opel
  • Insignia -2009- DVD800 (Same as Vauxhall)
Peugeot
  • Peugeot 207 GTI 2010
  • Peugeot 307 (2007) - Default RD4 Audio Equipment
  • Peugeot 3008 - Built-In NAV Carkit
  • Peugeot 5008 -2010- Connect Nav carkit
  • Peugeot 407SW 2008
Renault
  • Renault Megane 3 Coupé / Hatchback - 3D Sound by Arkamys
SAAB
  • SAAB 9-3 -2011- with built-in TEL4
Seat
  • Seat Exeo -2009-
Skoda
  • Skoda Oktavia -2010-
  • Skoda Octavia -2010- with built-in "Bolero" radio/CD player and BT car kit
  • Skoda Oktavia 04.2008 does not work with latest instructions
  • Skoda Octavia 06.2010 mit Amundsen und Skoda BT (nur Phonebook funktioniert good)
  • Skoda Superb -2011- with built-in "Columbus" and BT car kit without rSAP
Toyota
  • Toyota Prius MY -2010-
Vauxhall
  • Vauxhall (Model unknown)
  • Vauxhall (Insignia - DVD 800 Navi)
Volvo
  • Volvo S60 -2011- (BT version 5.00.17H)
  • Volvo V60 -2011- (BT version 5.00.17H)
  • Volvo XC60 2011- (BT version 5.00.17Q - pair again after installation deb-files)
  • Volvo XC60 2012- (BT version 5.00.17Q - pair again after installation deb-files)
VW
  • VW Passat -2008- with RNS 300 and Bluetooth Touch Adapter
  • VW Golf -2011- with 9ZB Bluetooth and RNS-510 navigation
  • VW Golf Variant -2008- with RNS 300 and Bluetooth Touch Adapter
  • VW Golf -2012- TDI with RNS 315 navigation (tech package build option in US)
Stand alone devices:
Alpine
  • Alpine CDE-103BT (has an inbuilt parrot module)
Blaupunkt
  • Blaupunkt Hamburg MP68
Bury
  • Bury AD9060
  • Bury CC9060 plus
  • Bury CC9056
Garmin
  • Garmin Nuvi 715
  • Garmin Nuvi 265w
  • Garmin Zumo 660
JVC
  • JVC KD-R811
Kenwood
  • Kenwood DNX6140
  • Kenwood DNX9960
  • Kenwood HD942U (with KCA-BT200 bluetooth module)
  • Kenwood KDC-BT50U
Navigon
  • Navigon 8410
Nokia
  • Nokia CK-15W
Parrot
  • Parrot MKi9000 v1.70
  • Parrot MKi9100
  • Parrot MKi9200
  • Parrot CK3100
  • Parrot CK3200LS
  • Parrot CK3200 LS-COLOR
  • Parrot LG 3200
  • Parrot LS 3200
  • Parrot Minikit Slim
Pioneer
  • Pioneer AVH-3200BT
  • Pioneer DEH-6200BT
  • Pioneer DEH-P7100BT
  • Pioneer DEH-7300BT
  • Pioneer MVH-8200BT
Sony
  • Sony MEX-BT3900U
  • Sony DSX-S300BTX

Via IrMC

Built-In Carkits:
  • Citroen C4 hatch 2010
  • Citroen C4 picasso
  • Renault Megane Scenic 2010
Stand alone devices:
  • Kenwood DNX6140
  • Parrot MK6000

Known issues / problems

  • Broken PC Suite connectivity
  • False Maemo 5 update announcement in App Manager *)
  • In some cases broken file transfer via BT to certain devices
  • Sometimes contacts synced from other devices (e.g. using PC Suite) with special characters in names/details are not transferred (correctly). Recreating these contats on your N900 should solve this issue.
  • Lists for outgoing/incoming/missed calls are not supported (some carkits maintain own lists)
  • Installing/Removing requires manual steps in xTerm


*) Please note, this problem is related to initial versions of the PBAP implementation. With the latest .deb-files this problem should be solved!

(The false Maemo5 update in app manager with early versions of PBAP/IrMC solution was related to the mp-fremantle-205-pr package. Removing this package solved this problem, but removal of mp-fremantle-205-pr *might* cause trouble with future Maemo updates. Unfortunately keeping the package prevents uninstalling the initial PBAP implementation...(you might want to search the two threads for more information on this...).) Any information on how to uninstall without removing the package or how to reinstall the package is very welcome!

Installation Guide

Mirakels created two deb-files in order to make the installation more user friendly. This installation is based on obexd-0.30 and provides

  • PBAP support
  • IrMC support
  • PC Suite support
  • Multiple phone numbers per contact
  • Skip SIM contact requests (means contacts are not shown twice)
  • vCards are separated correctly with CRLF between ENV:VCARD and BEGIN:VCARD.

Step 0

In case you played with obex on your phone before / had previous versions of this project installed, please perform a downgrade to original version first by following the steps described in section Downgrade to Original State

Step 1

Download these 2 .deb packages provided by mirakels:

libopenobex2_1.5_armel.deb

obexd2_0.30-0maemo1_armel.deb

or use the newer obexd2 version updated to the latest obexd repository and build against the pr1.3 sdk:

obexd2_0.35-0maemo1_armel.deb

Even more recent versions. This is probably the most upstream version of obexd we can use. Newer versions of upstream obexd need a newer version of the evolution-addressbook server.

obexd2_0.37-0maemo1_armel.deb mivo tv

libopenobex2-1.5-0maemo3_armel.deb

This may hopefully get into CSSU. It the probably will just replace obexd so there won't be two obexd packages on the n900 anymore...

Step 2

Place them in a folder on the N900, say /home/user/mypackages

Step 3

As root run (replace /home/user/mypackages with the path to the folder where you placed the files):

cd /home/user/mypackages
dpkg -i *.deb

Step 4

Reboot the phone. Test and ENJOY - hopefully ;-)

-> Please share your results !!!

Worked fine with Audi A4 (2011) MMI, accept the incoming, outgoing, etc shows irrelevant contacts.

Old/Obsolete Installation Guide

Note: The following installation steps are not necessary anymore and just kept for better understanding of what was going on so far.

Step 1

Download the following 3 files and copy them to your phone (provided by drdrewusaf):

Step 2

Open a root terminal and navigate to the folder you saved the 3 files in (where "/path/to/files" is the real path to your downloaded files):

cd /path/to/files

Step 3

Install the packages. As root run:

dpkg -i libopenobex1_1.5-2_armel.deb openobex-apps_1.5-2_armel.deb obexd_0.28-0maemo3_armel.deb

Step 4

Download the latest version of obexd zipped binary provided by mirakels from here

obex download

This version provides:

  • PBAP support (actually the plain PBAP that is in the 0.29 repo)
  • IRMC sync support (only full phonebook retrieves)
  • extra CR/LF between contacts
  • support for multiple phone numbers per contact
  • PC-Suite support (based on the patch test from hschmitt)


BUGS: pbap sends phonebook twice.

Step 5

Replace the current obexd in /usr/lib/obex/obexd with the new one from mirakels, as root run:

cd <where your new version is>
gunzip obexd.gz
mv obexd /usr/lib/obex/obexd

Make sure that it is excecutable

chmod a+x /usr/lib/obex/obexd

Step 6

Edit the obex start command in /usr/share/dbus-1/services/obexd.service:

  • for PBAB include the option --pbap (already added after previous steps),
  • for IRMC include the option --irmc (both is possible too),
  • for PC Suite connection add --capability !/usr/bin/gen-obex-capability.sh

Step 7

Reboot, test and ENJOY - hopefully ;-)

-> Please share your results !!!

Troubleshooting

For troubleshooting install and use hcidump and/or syslog

Download and install hcidump

First you need to add the developer repository, see Documentation/devtools/maemo5#Installation the devtools installation instructions.

After adding the repository, run the following command as root:

apt-get install bluez-hcidump

OR if the above fails, try the following steps:

  1. Download the deb-package containing hcidump from here: hcidump download
  2. Unpack it (alien on Linux, 7-zip on Windows)
  3. Copy /usr/sbin/hcidump to the N900
  4. In xTerm as root:
    chmod a+x /usr/sbin/hcidump

Usage of hcidump

For testing/debugging with hcidump, run the following command (where "/some/path/somefilename" is a real path and any name you choose for your output file.)

hcidump -w /some/path/somefilename

right before turning your head unit/car on. Then, do what you would normally do to get contacts to show up and wait for it to finish/fail. Then, press ctrl+c on the phone to exit hcidump. Finally, you can view the output/dump file with Wireshark or upload your dump files so we can see what's going on.

-> Please share your results !!!

Install syslogd and enable obexd debug option

For further troubleshooting information you may also want to try to enable obexd syslog debugging messages:

Step 1)

Install syslogd. As root run
apt-get install sysklogd

Step 2)

Kill running obexd process. As root run
killall obexd

Step 3)

Restart obexd with enabled debug option. As root run:
/usr/lib/obex/obexd --debug --opp --ftp --pcsuite --pbap --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability !/usr/bin/gen-obex-capability.sh

OR

Add the --debug option in the /usr/share/dbus-1/services/obexd2.service file (for example just before the --nodaemon option).

Step 4)

Sysklogd will create a file /var/log/syslog

After your test copy this file to some other location (do not delete the original) and edit out the relevant part and post it here.

Downgrade to Original State

To reinstall the original packages:

Step 1

Download these 2 .deb packages:

libopenobex1 1.4

obexd 0.18

Step 2

Place them in a folder on the N900, say /home/user/mypackages

Step 3

As root run (replace /home/user/mypackages with the path to the folder where you placed the files):

apt-get remove openobex-apps
cd /home/user/mypackages
dpkg -i *.deb

Step 4

Reboot the phone.

OR run as root

apt-get install libopenobex1=1.4-0maemo3+0m5
apt-get install obexd=0.18-0maemo5+0m5

Reboot the phone.

OR run as root

apt-get update
apt-get install --reinstall obexd libopenobex1 openobex-apps

Reboot the phone.