tl;dr: If you’d like to help improve phone synchronization support, please run the script linked to at the bottom and send me the file it produces so that I can compile a list of supported phones.
As Murray pointed out, I’ve been working on SyncEvolution for the past couple months. Recently I added support for getting reliable phone information using the Bluetooth Device ID Profile (DIP). This data is used to match a Bluetooth phone with suitable syncEvolution configuration templates. In syncEvolution, templates are predefined in order to make setting up a sync session easier and less error-prone.
The problem with using the DIP information is that it’s just a hex number. For this information to be more useful, we need mapping from IDs to names. A list of companies IDs is freely available. For products this is a different story. As each company assigns numbers to its products, there is no centralized list mapping products to their assigned IDs.[1] So, we have to make our own list.
Below is a small python script that checks if your phone supports the Device Id profile and asks you for the model of the phone. It produces a file that you can either attach to, or copy into, an email and send to me (email address is in file). Oh, and don’t forget to turn on your phone’s bluetooth.
Thanks!
[1] If anyone has device ID to product name mappings for a particular manufacturer we’d be grateful to have this info.
I think we can probably have the vendor id and product id as properties in the device object if that makes sense to you, that way application just use GetProperties and that would return VendorID and ProductID if they are available.
Btw, in case it was not clear, Im talking about BlueZ/bluetoothd parsing the DIP record.
Yes, that would be convenient but I doubt the DIP is wide spread enough to warrant that. There is actually code to parse the DIP record in the BlueZ repository. It’s found in the BlueZ sdp code I believe.
Hi Chris,
Yep, Im one of the developers of BlueZ, I did ask about the convenience of having those as properties since we already parse the records, in fact we even store this persistently so we can quickly give you back this information without having to be connected.
Hi Chris,
Also, i have access to a couple of nokia S60 and S40 phones…….. which already work well with the default templates. Do you still want the info for them???
I was try to run the script but it’s doesn’t run due to missing bluez :
File “/usr/lib64/python2.7/site-packages/dbus/connection.py”, line 630, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files
So i was install the pybluez but same problem , any idea why ? (pythonpath missing or something like that ?
>>> Merging dev-python/pybluez-0.18 to /
— /usr/
— /usr/share/
— /usr/share/doc/
>>> /usr/share/doc/pybluez-0.18/
>>> /usr/share/doc/pybluez-0.18/CHANGELOG.bz2
>>> /usr/share/doc/pybluez-0.18/README.bz2
— /usr/lib64/
— /usr/lib64/python2.7/
— /usr/lib64/python2.7/site-packages/
>>> /usr/lib64/python2.7/site-packages/bluetooth/
>>> /usr/lib64/python2.7/site-packages/bluetooth/osx.py
>>> /usr/lib64/python2.7/site-packages/bluetooth/bluez.py
>>> /usr/lib64/python2.7/site-packages/bluetooth/_bluetooth.so
>>> /usr/lib64/python2.7/site-packages/bluetooth/__init__.py
>>> /usr/lib64/python2.7/site-packages/bluetooth/btcommon.py
>>> /usr/lib64/python2.7/site-packages/bluetooth/widcomm.py
>>> /usr/lib64/python2.7/site-packages/bluetooth/msbt.py
>>> /usr/lib64/python2.7/site-packages/PyBluez-0.18-py2.7.egg-info
* Compilation and optimization of Python modules for CPython 2.7 … [ ok ]
>>> dev-python/pybluez-0.18 merged.
>>> Regenerating /etc/ld.so.cache…
@4vudentz: That would be great. We’d love to be able to get that info without having to parse the record ourself.
@Dinesh: Yes, please. I don’t currently have the ids for those phones. Previously we were using the Device name to match the phone with the template. This is not reliable however because it’s user-modifiable. So even though it worked fine for you it may not be auto-matched for ppl who change the device names on their phones
@Roumano: For this script to run you only need the python dbus binding and a Bluez service. It says there is no Bluez service available which would hint to not having Bluez installed. You can use a program like d-feet to see if Bluez shows up on the system bus.
For the case of devices which can run syncEvolution directly, could syncEvolution detect the device it runs *on* and choose an appropriate profile?