I recently had trouble using the standard kbluetoothd and KDE OBEX file push client to send a movie to my Motorola V3xx cell phone over bluetooth. The transfers would be denied with no explanation. I decided to try the command line tool obexpush (written my Marcel Holtmann of the BlueZ project) to see if I could get a better error message. When I used:
obextool push movie.3gp <MY_BD_ADDRESS>
The transfer still failed without any warnings. I then used the sdptool to figure out what channel the obexpush service is on for my phone:
sdptool search OPUSH <MY_BD_ADDRESS>
This replied with the answer of channel 8:
Searching for OPUSH on <MY_BD_ADDRESS>…
Service Name: OBEX Object Push
Service Description: OBEX Object Push
Service Provider: /a/mobile/cl.gif
Service RecHandle: 0x10008
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
Then, I tried using the obextool and specifying the correct channel (Although it should already be able to correctly determine the channel by itself) and that worked correctly.
obextool push movie.3gp <MY_BD_ADDRESS> 8
Note: If you don't understand how to find your devices BD address, see this post.
The transfer was not terribly speedy, with the 203 MB (20329kb) movie taking almost exactly 15 minutes to transfer, or around 22KB/sec. It would be much quicker to pull the microSD (TransFlash) memory card from the phone and use a USB to TransFlash adapter (1-4MB/sec) to copy the file across.