1 <html><head><title>Tools to work with mobile phones</title></head>
2 <meta name="description" content="Things to work with bluetooth/java
6 <h1>Tools to work with mobile phones</h1>
8 <h2>Some theory on using OBEX protocol</h2>
9 Bluetooth phones typically have several distinct channels on which OBEX
12 You can use <tt>sdptool browse</tt> command to find out which ones are
13 supported on your phone. Or you can use <tt>sdptool search <i>addr</i>
14 <i>service</i></tt> to request information on particular service.
16 In the later case <i>service</i> can be specified as some predefined
17 string, known to sdptool, or by hexadecimal constant. You can look this
18 constant up in <tt>sdptool browse</tt> output or in the Bluez include
21 Both obexftp and <a href="#t68tool">t68tool</a> require channel to be
22 specified explicitely.
25 So far I've discovered meaning of following channels:
27 <dt><b>Ir2MESync</b> (0x1104)
28 </dt><dd> Used to synchronize address book and calendar database with phone.
29 <a href="#t68tool">t68tool</a> utility uses this channel. Phones
30 typically do not support directory listing on this channel. But there
31 is <tt>telecom</tt> directory which standard files such as
32 <tt>pb.vcf</tt>, <tt>cal.vcs</tt> etc.
33 </dd><dt><b>OPUSH</b>(0x1105)
34 </dt><dd>This service is used to push objects into phone. Then phone would
35 decide (probably, by asking you) what to do with object - save it in
36 appropriate place or discard it. This service is used to upload files,
37 J2ME applications, exchange phonebook entries etc.
39 When you pick up "Send/Via bluetooth" entry somewhere in your phone
40 menu, this service is used
43 GET something (even file with known name) via this service.
45 way to avoid annoying popup windows "What to do with the recieved
48 This channel is also used for acepting files from mobile by <a href="http://packages.debian.org/unstable/comm/obexserver">obexserver</a>
50 </p></dd><dt><b>FTRN</b>(0x1106)
51 </dt><dd> This is file transfer protocol which is primarily used by obexftp.
52 It supports directory listings, and doesn't require confirmation of
53 get/put actions. But it doesn't allow access to all information on the
54 phone. On Ericsson T610 only Pictures, Sounds and Themes are available.
55 No phonebook/calendar, no J2ME applications can be get or put this way.
56 </dd><dt><b>BIP</b>(0x111a)
57 </dt><dd>Basic imaging profile. My phone doesn't support it, so I cant't
58 describe it in details. From opd code it looks much like OPUSH
60 There is a lot of other Bluetooth channels, which might or might not use
61 obex protocol. Some, for instance, use PPP or other network protocols.
64 <h2>Tools to work with mobile phones on Linux</h2>
66 <h3>Bluetooth address resolution project</h3>
67 I've been quite surprised that most Linux bluetooth applications require
68 user to specify numerical bluetooth addresses in the command line or
69 configuration file. So, I invented <a href="btdev.html">my own bluetooth
70 address database</a> and use it in my scripts.
75 href="http://ftp.wagner.pp.ru/pub/debian-cosy/dists/woody/local/t68tool_0.3-2.tar.gz">download</a>
78 T68tool is small command-line application which can backup/restore
79 phonebook and calendar from mobile phone and get/send arbitrary files
82 It uses Ir2MeSync obex service.
84 It was originally developed by <a href="http://www.garthy.com/">Garthy</a>, and I've only managed unofficial
85 Debian packages, but long ago downloadable files are disappeared from
88 Tested on Ericsson T68 (by Garthy), R320, R520, T610 (by me) and
91 Future development would probably include <tt>${HOME}/.btdev</tt></a>
92 support on C code level and configurable timeouts, because I encounter
93 problems with uploading my phonebook on phone due to large number of
99 Tcl wrapper around t68tool which converts all phonebook records into
100 uniform (utf-8) encoding and stores it in the
101 <tt>${HOME}/.phonebook.vcf</tt>.
103 It uses (if bluetooth transport is used) local database of bluetooth
104 addresses in <a href="http://www.wagner.pp.ru/%7Evitus/mobile/btdev.html"><tt>${HOME}/.btdev</tt></a>.
106 </p><h3>phonebook grepper</h3>
107 A companion script to <tt>getpb</tt> - search .phonebook.vcf for
108 contacts. It also able to add contacts
109 into phonebook using -a option.
111 <h3>Bluetooth send script</h3>
112 Simple wrapper around t68tool which allows to avoid specifying bluetooth
113 addresses and channels in the command line. It uses
114 <a href="btdev.html"><tt>${HOME}/.btdev</tt></a> database to convert descriptive names of devices
120 <h3>Book generator</h3>
121 It is possible to read books on Java-enabled mobile phone. There is
122 excellent java bookreader on <a href="http://tequilacat.narod.ru/">tequilacat.narod.ru</a>.
124 Unfortunately, Java on mobile phones is intended primarily for games, so
125 each book should be packed into jar archive as separate Java
126 application. Tequilacat provides windows application to do so, but there
127 is nothing quite difficult in packing few text files into existing zip
128 archive (and Jars are zip archives) so I decide to write my own portable
131 I've written commandline script to convert <a
132 href="http://www.fictionbook.ru">FictionBook2</a> files into tequilacat
135 </p><h3>AMR to WAV converter</h3>
136 My ericsson T610 records sound in the AMR (Adaptive Multi-Rate) format.
137 No existing Linux sound tools (like sox) I'm aware of are able to
138 convert this format into something useful. But there is sample code
139 on the <a href="http://3gpp.org/">3gpp.org</a> which compiles under
140 Linux and converts AMR files into raw 16-bit 8KHz audio files.
141 (look to <a href="http://www.3gpp.org/ftp/Specs/html-info/26073.htm">26.073</a>
142 spec. Code has to be compiled with MMS_IO define to be able to deal with
145 There is also amr2wav converter for Win32 which happily runs under wine,
146 but I think somebody (may be I) have to write useful frontend to 3gpp
152 </p><h2>Other tools</h2>
153 Links to other useful tools
154 <a href="http://openobex.sf.net/">ircp</a> very useful thing to exchange
155 files via infrared. Of course bluetooth counterpart would be better, but
156 I haven't found simple app to receive files from phone via bluetooth.
158 To send files to phone one can use t68tool or <a href="http://triq.net/obex">obexftp</a>
161 </p><h2> Favorite J2ME apps</h2>
162 Below there are links for Java apps for mobile phone I've found
163 interseting or useful
167 <li><a href="http://krzak.linux.net.pl/f/html/">fremtris</a>. Always
168 needed tetris on my mobile phone since I've tried it on R320. But phone
169 vendors put other, less entertaining games.
170 </li><li><a href="http://www.roguelikedevelopment.org/dweller/">Dungeon
171 Dweller</a> - Always wanted something Rogue-like on the phone. And now I
174 <h3>Applications</h3>
176 <li><a href="http://cash2me.sf.net/">Cash2ME</a> personal financial
177 management on the phone. Looks quite promising, but I couldn't get it
179 </li><li><a href="http://phoenix.inf.upol.cz/%7Epolakr/">SSH and Telnet</a>
180 Do not work on my phone too
181 </li><li><a href="http://mixa.dev.juga.ru/microcalc/microcalc.htm">MicroCalc</a> - a
182 spreadsheet on mobile phone. Unfortunately, it can exchange data only
183 via WAP. I'd rather send data to computer and back via IR or Bluetooth.
184 </li><li><a href="http://webuser.fh-furtwangen.de/%7Edersch/">FnattLabME</a>
185 MatLab -like calculator. Don't know why one need to do complex math on
186 one's mobile, but looks cool.