Bluetooth issues (pairing & transfers *to* jolla phone)
Using a Jolla phone (SailfishOS 1.1.4.29, retested with 1.1.6.27) and a SonyEricsson T630.
The Bluetooth 1.1 implementation of these SonyEricsson mobile phones (I used BT on T610, T630 and K700i a lot) always worked well with many different USB Bluetooth sticks at PCs (old BT 1.1 ones as well as BT 2.x ones), mobile phones (Nokia N900 & Symbian phones, and between aforementioned SonyEricsson phones) and a couple of BT headsets (mostly from SonyEricsson). Bluetooth was and is my preferred way of transferring files and most importantly contacts between mobile phones, especially when migrating to a newer phone. I am not willing to use a ”sync service” due to privacy of the data. By browsing other BT related posts here at together.jolla.com it became obvious, that flawlessly working Bluetooth is essential for many, but seems to be problematic on the Jolla phone. But no one seems to have dug deeper into the issues and faced so many of them, yet. My original aim was to just quickly transfer all contacts from the T630 to the Jolla phone (this was months ago).
Bluetooth connection errors
I never experienced so many Bluetooth connection errors while pairing or transferring data (about every second try). Mostly the BT connection errors occur either before a connection is established successfully or right at the start of a data transfer; rarely a connection error happens in the middle of a data transfer.
Detection of Bluetooth profiles while pairing
When initiating the pairing from the T630, both phones detect only a single (!) BT profile on the other phone: ”object push” (Jolla's profiles detected by T630) respectively ”OPP” (T630's profiles detected by Jolla). IIRC these two BT profiles are the same: OPP = Object Push Profile
When initiating the pairing from the Jolla phone, the Jolla detects all available BT profiles on the T630 (SPP, DUN, SYNC, OPP, SPP, HSP, BIP), but the T630 still sees only ”object push” on the Jolla!
The T630 has a menu entry, which allows to redetect available BT services on an already paired device, but the T630 always just sees ”object push” on the Jolla (I tried this many times).
File transfers
I was able to transfer files with the extensions ”.jpg” and ”.gif” (EDIT1: and ”.wav”) from the T630 to the Jolla. Pushing other file types (I tried a couple of old audio file formats, e.g. ”.imy” and ”.mid”) to the Jolla results in an aborted transfer right after the BT connection was established. These failed transfers are always correctly logged in the Jolla's notifications.
By reading together.jolla.com this seems to be a really evil feature of SailfishOS.
Workaround: See hmallat's post below.
Migrating contacts to the Jolla via Bluetooth
... always fails! Neither pushing all contacts or a single contact from the T630 to the Jolla nor pulling the T630's contacts to the Jolla via «Settings --> System --> Bluetooth sync» works. Trying to import the T630's contacts by «Settings --> Apps --> People --> From device with Bluetooth» or the «--> Import wizard» shows no available devices after the search for Bluetooth devices, although the devices are definitely paired. All these actions always fail, some of them are logged under «Settings --> System --> Transfers» with ”failed”.
Well, as it seems that the Jolla does not accept the contacts when pushing them from the T630, and as the T630 is unable to detect any other Bluetooth profile but ”object push” on the Jolla, it is no surprise to see SailfishOS's Bluetooth sync and import fail (as they are not supported from the T630's view).
Minor Bluetooth settings bug
Even though «Always accept connections from this device» was switched on while pairing, the Jolla asked each time for allowing a new Bluetooth connection when trying to push data from the T630. Toggling this setting off and on again resolved this, i.e. the feature then works as intended.
Now, how do I transfer my contacts from the T630 to the Jolla easily?
And does the Jolla phone (with SailfishOS 1.1.6.27 and 1.1.4.29) currently really solely expose the Bluetooth profile ”object push”? Edit3: No, supposedly these Bluetooth profiles are supported, see https://jolla.zendesk.com/hc/en-us/articles/201440697-What-Bluetooth-profiles-does-SailfishOS-support-. Thus this is a bug.
NB: All in all you are definitely on the right track IMHO, e.g the licensing, the development model, keeping Nemo alive, but the software stack is what it is: v1
Kudos for the good work.
Regarding obex push file transfer:
You only need to install an application that tells the system it can open files of the type you want to send, so that opening the file by tapping on the transfer list entry works. For instance WAV files can be opened with jolla-mediaplayer since way back when.
Also, it's easy to disable file type check. Log in as root and
hmallat ( 2015-06-05 15:07:47 +0200 )editOn T630 service discovery and refreshing it: I don't know whether that device will search for all services or only a subset. If possible, please take a binary traffic capture at the jolla side using bluez-hcidump and send it to us for analysis via Jolla zendesk ticket.
To get the traffic dump, install bluez-hcidump package and issue the following command before service discovery:
Stop capture by control-C after T630 finishes its refresh.
hmallat ( 2015-06-05 15:13:36 +0200 )editOn contact transfer:
Jolla implements contact synchronization using OMA SyncML. This is different from IrMC synch which might be what your T630 implements. It's unfortunate that the specification authors couldn't think of clearer naming of course.
We can have a look at what synch method T630 advertises if you take a traffic dump as described below also for Jolla's service queries.
OBEX pushing VCF files to the Jolla phone has been implemented since the first release, please contact care and file a ticket if you have an issue with that.
hmallat ( 2015-06-05 15:39:02 +0200 )edit@hamallat: Thanks for the informative posts. Unfortunately it took me a while to return to Jolla's Bluetooth issues, again. At least that gave me the chance to retest all this with JollaOS 1.1.6.27: Apparently nothing has changed.
olf ( 2015-08-18 01:48:38 +0200 )edit„Regarding obex push file transfer file types”
Cheers, that was helpful.
I still wonder why the classic method of unsetting the execute bit via 'chmod -x' did not seem to work, but have no idea, where the 'obexd-contentfilter-helperapp' is called from, respectively how it is called / sourced.
„On T630 service discovery and refreshing it“
Oh, that was a bit too brief for me.
a. Where to install 'bluez-hcidump' from?
Searching the web, I found https://build.merproject.org/package/binary/home:nielnielsen/cmatrix?arch=armv8el&filename=cmatrix-1.2a-10.7.4.jolla.armv7hl.rpm&repository=sailfish_latest_armv7hl as the only installable binary package for JollaOS.
Is that the bluez-hcidump package you meant?
Answer: No, bluez-hcidump is supposed to be installed by issuing the following commands as root (use devel-su in order to become root):
pkcon refresh
pkcon install bluez-hcidump
b. How to open a „Zendesk” ticket? (I had to google what that is, after reading your post.)
https://jolla.zendesk.com/hc/en-us/requests/new?ticket_form_id=54653 is one of the typical „customer service” forms in the web (here the „Zendesk” product), which are tedious to fill out, as much unnecessary (and at the same time, privacy sensitive) information is requested (i.e. e.g. my full name, my IMEI, both are non optional fields) and the abilities to properly describe the issue are quite limited. If it would be an issue specific to my Jolla, this may be the right (and probably only) way to contact somebody (and I still would not like it), but if that is supposed to be the proper way of reporting bugs, Jolla has erected a nice wall shilding themselves from many such reports and hide the submitted reports from the outside world (inhibiting bugs filed that way to be searchable). IMHO that is detrimental to successful free software development. Hence I will not support that.
There sure is a public bug tracker for JollaOS, which is used by the JollaOS developers, isn't it?
„On contact transfer”
Yes, I always used IrMC sync for transferring contacts via Bluetooth and these old Sony-Ericsson phones do not support SyncML. There was a fix for IrMC in bluez https://git.kernel.org/cgit/bluetooth/bluez.git/patch/?id=9cf18f0b4c1ac69a658a9a4ae8529a4b6e937b88 quite a while ago, but I did not take the time to see where it went (hopefully into the next bluez release thereafter). If that does the job, updating JollaOS with upstream bluez may help.
Pushing single vCard files ('.vcf') via OBEX push always failed (I tried more than a hundred times, literally), in contrast to other file types, which just fail most of the tries (more than every second one), but not always. Something seems to be special about them, but that might be on the T630 side: A hcidump may be helpful here, but I cannot see how just filing this at Jolla's „Zendesk” might (Edit: In my utter frustration, I just did that for a try), as the issue may occur that reproducibly only in combination with an old SonyEricsson phone.
Edit2: Filing at Jolla's Zendesk does help one, as the support is excellent, although structurally I still oppose hiding the process from the public as well as having to submit unnecessary private data and to use that clumsy Zendesk.