Right! It seems this one has been cracked. For the benefit of others who might need this info, the short conclusions are:
1. OBEX push and OBEX file transfer are two different services.
2. obexftp can do both of them - with the correct command switches.
The steps:
a. Pair your phone with the computer. I won't go into great detail here - in short I just did on the laptop (after putting the phone in discoverable mode):
Code:
hciconfig hci0 up
hcitool scan
simple-agent hci0 XX:XX:XX:XX:XX:XX
test-device trusted XX:XX:XX:XX:XX:XX yes
The "XX.XX...." bit is your phone's bluetooth HW address - obtained with "hcitool scan". Input same PIN code on phone and computer (make one up) when prompted. "simple-agent" and "test-device" are python scripts which come with bluez sources, in the "test" folder. I downloaded bluez sources from ... erm, bluez website. The last command stops the computer from asking for the PIN every time the mobile connects to it.
b. Find out on what channel the OBEX PUSH service is offered on your device/mobile:
Code:
sdptool search --bdaddr XX:XX:XX:XX:XX:XX OPUSH
Look in the output for a "Channel n"
c. Using the channel discovered with the command above, push the OBEX object to the phone:
Code:
obexftp --nopath --noconn --uuid none --bluetooth -b XX:XX:XX:XX:XX:XX -B 9 -put myfile.prov
In my case, channel 9 was the OBEX push channel - but amend as necessary. The first three options and the correct channel number are necessary for OBEX PUSH (as opposed to OBEX file transfer) in order for the phone to interpret the received file automatically and correctly and act on it. Otherwise the file gets transferred to the phone, but the phone doesn't do anything about it. Of course, the transferred file has to be in one of the formats recognised by the phone - in my case it is a SIP/Internet telephone settings file generated by a dedicated piece of software, and the phone automatically offers to import the settings contained in it - but that's a whole other story :-)
Hope the above will lighten the load for someone else :-)