As far as I know some cellular phones use the IrCOMM standard, e.g. Ericsson SH888 and NOKIA 6110 (I'm not sure about the NOKIA 8110). Some cellular phones (Ericsson T68) use the IrOBEX standard or IrMC. For more and general information about Linux and cell phones see TuxMobil . You may use IrCOMM to set up a PPP modem connection and OpenOBEX to send or retrieve files (e.g. addressbook entries, logo, ringtones).
This chapter describes how to connect your mobile phone via IrDA with your Linux box. It is based on a report by Matthias Schmidt. It was tested with the following mobiles:
Configure the IrDA basics as described above (kernel configuration, /etc/modules.conf, irattach, PPP) (for detailed information about PPP see also the PPP-HOWTO. Now check whether your mobile phone was found:
# irdadump xid:rsp be1eb736 > 08666644 S=6 s=4 SIEMENS S35 hint=9024 [ Modem IrCOMM IrOBEX ] (28) # irdadump xid:rsp be1eb736 > 35450000 S=6 s=4 Nokia 6100 hint=8101 [ PnP Telephony ] (28) # irdadump xid:rsp be1eb736 > 04489982 S=6 s=5 SIEMENS ME45 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29)
There are several ways to connect to your ISP. The easiest (and sometimes the only) way is to use a terminal program like minicom.
If you prefer more comfort, you can use wvdial. It's easy to configure and it works with a lot of roaming providers and the german Tante T. gh0st and me did some testing yesterday and we weren't able to connect to the dial-in server of the HRZ with wvdial. wvdial always failed with "Bad password", because the server respondend faster that the mobile softmodem could send the login and password strings. See the standard ppp config below. /etc/wvdial.conf:
[Dialer Defaults] Modem = /dev/ircomm0 Baud = 9600 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Password = internet Username = internet Phone = 00393492002800 ISDN = 0 Modem Type = Analog Modem [Dialer shh] Init3 = ATM0
Problems with wvdial (see explanation above)? IMHO the best way is to use the standard PPP tools . You can configure them via pppconfig, start with pon and stop connection with poff.
Example files for PPP with a connection named irda: /etc/ppp/pap-secrets
# username connection-name password test irda test
hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/irda" debug /dev/ircomm0 9600 defaultroute noipdefault user test remotename irda ipparam irda usepeerdns
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED '' ATZ # dial-in number of the ISP OK-AT-OK ATDT<YOUR_ISP_PHONE_NUMBER> CONNECT \d\c
If you get your mobile working via infrared, you can do some nice stuff with it. You can save your phonebook or your SMS, send SMS, put new logos (BMP format) on it, save the old logo to your harddisk and do the same with your ringtones (MIDI). To do all this nice things, you'll need the following:
a OBEX capable mobile phone, e.g. a Siemens mobile-phone
a working infrared connection
the scmxx tool
Bind your mobile phone to IrDA services
# irattach /dev/ttyS1 -s IrDA: Registered device irda0
Check the connection
# irdadump xid:cmd 9d5dcefa < ffffffff S=6 s=3 (14) xid:cmd 9d5dcefa < ffffffff S=6 s=4 (14) xid:rsp 9d5dcefa > 08666644 S=6 s=3 SIEMENS S35 hint=9024 [ Modem IrCOMM IrOBEX ] (28)
Show general information about your mobile phone
# scmxx -i Accessing device /dev/ircomm0 OK, a modem device is present. Vendor: SIEMENS Model: S35i Revision: 20 Serial (Phone): xxxxxxxxxxxxxxx Serial (SIM): xxxxxxxxxxxxxxx SIM-ID: xxxxxxxxxxxxxxxxxxxxx Operator: D2 SMS Server: +491722270333 Charset: GSM Battery: 40% Signal/BER: -79 dBm/? Time: 02/10/07,11:48:49 Readable Slots: bmp: 0-1, mid: 0, vcs: 1-30 Phonebooks: FD, SM, ON, ME, LD, MC, RC, OW, MS, CD, BL, RD, CS SMS storages: SM
Save your phonebook to disk
# scmxx -g -PSM -f phonebook Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i phonebook created. Receiving: 1 2 3 4 5 6 7 8 9 [...] Received all gettable entries
Show your SMS (here in slot 3)
# scmxx -g -S3 -f - Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Looking for SMS of specified type... Receiving incoming, read SMS from slot 3. Slot: 3 From: xxxxxxxxxxxxxx Date: 2002-10-03 23:11:47 (GMT+0) SMSC number: xxxxxxxxxxxxxxxx PDU type: SMS-DELIVER MMS Data Coding Scheme: 7bit-GSM Message length: 160 Message: xxxxxxxxxxxxxxxxxxxxxxxxxx
Save your current logo to disk
# scmxx -g -B0 -f logo.bmp Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Slot 0... Receiving packet 1 of 5... logo.bmp created. Receiving packet 2 of 5... Receiving packet 3 of 5... Receiving packet 4 of 5... Receiving packet 5 of 5... File transfer complete.
Save your current ringtone to disk
# scmxx -g -M0 -f sound.mid Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Slot 0... Receiving packet 1 of 1... sound.mid created. File transfer complete.
See the OpenOBEX chapter below. Detailed information about OBEX connections to mobile phones will follow soon hopefully. See also the Palm III section for information about setting up a connection.
Michael McConnell has posted an initial version of a guide to get the Motorola Timeport GSM phone and Linux-IrDA talking on his website.
Note for T39 users (maybe for T300, too). Please check the web page of Jean Tourrilhes , you will need to apply kernel patches and tweak /proc/sys/net/irda/max_tx_window
1. Configuration To start a communication session with /dev/ircomm0 , for instance, say:
dip -t > port ircomm0 > term
Benny Amorsen wrote: The SH888 emulates an IRDA-port when you connect it using the serial cable. Why someone would think up something weird like that is beyond me, but that is the way you get it to work in Windows. Not that I ever managed to make it work in Windows, though.
Ales Dryak has send this survey (looks like a Debian/GNU Linux distribution, please modify your configuration accordingly). Mobile Ericsson SH888 ati1 = 980408 1035 PRGCXC125101:
mknod /dev/ircomm0 c 161 0 mknod /dev/ircomm1 c 161 1
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty
<ABORT stuff> "" \d\d\d\d\d\dATZE0 OK ATD<phone number to call) CONNECT \d\c
noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/sh888" /dev/ircomm 115200 defaultroute noipdefault user <your username> # don't forget to add your password to chap secrets or chat script
A few seconds (app. 30) after executing pppd call sh888 I get connected to our Intranet/Internet having full IP connectivity (telnet, ftp, www, icmp tested). Futhermore I can connect to /dev/ircomm using minicom and play with AT command. Great! And looks stable!
Gerhard Gonter reported: Several members of the list are successfully using the Ericsson mobile phone SH888 with the Linux-IrDA software, usually to use it as a modem. The software is also quite useful to access other parts of the phone using AT commands. The built-in phonebook is an interesting target.
After A quick research on the Internet (FreshMeat, Deja, YAHOO), I did not find any phonebook tool for Linux (or another Unix). To solve that problem, I wrote a small Perl script and a related module. Since this now works acceptably well for me, I decided to wrap that up and release it at this early stage of development. The tarball can be retrieved here .
In the mailing list gsmlib was also recommended, though ... there was no way for me to use this over infrared, no connection with my sh888. Florian Lohoff reported: Works (kind of) with the S25. I needed to change a ifdef as it seems the S25 does not respond with CR LF. But setting a link from /dev/mobilephone -> /dev/ircomm lets me send SMS via the S25 without a problem. Phonebook backup does NOT work because the S25 does some silly responses to probably empty phonebooks.
The specifications for SMS messages and phone books can be downloaded free (of charge, not FSF free ;-) from ETSI. Search for GSM 07.07 (you might also want GSM 07.05). You have to register before downloading it. The standards are in Acrobat PDF format. The S25 supported commands are available on the Siemens websites as a PDF for free.
A survey of the AT commands for the SH888 is at Ericsson .
Carlos Vidal wrote: Correct me if I'm wrong, but it seems to me that Nokia telephones do not contain a genuine hardware modem, but something which is similar in principle to WinModems for PC. Whenever Nokia writes about modem communication, they use the name "Windows software modem" (or something similar). Which is actually backed up by the need to use special Nokia software for Windows (called Nokia Cellular Data Suite).
Joonas Lehtinen wrote: This is true with 61xx models. Models: 8810, 9000(i) and 9110 should work fine. (They have inbuilt modem). My Nokia 9000 reports IrCOMM with linux.
Some suggestion by Carlos Vidal carlos_at_tarkus.se : "I'm doing some tests trying to see how far can I get with my Nokia 6110 on Linux. I've just compiled gnokii-0.2.4 [ gnokii is a tool set for Nokia mobile phones connected via serial cable for Linux and *BSD , WH], but it doesn't work [please check current gnokii , the behaviour should have been improved, there is also useful documentation about IrDA connections to phones, WH]. As I have Nokia Data Suite I did the following connection:
Nokia 6110 <-- Nokia Cable --> PC/Linux <-- Null-modem cable --> PC/W95
In the PC/Linux I run the program snooper (by Jun-ichiro itojun Itoh , sorry couldn't find an URL maybe some other sniffer will do it also, e.g. sniffit, see also appendix about serial sniffers, WH) with small modifications in order to configure the serial port correctly.
Normally, if snooper has the correct baud rate, the phone and the PC/W95 should communicate as if there was no snooper in between. This worked pretty well when I cracked the protocol of my Minolta camera. The problem here is that the phone doesn't answer or hangs after a while.
It seems that the timing is quite important during the initial phase of the communication. The log I obtain is:
0>1: UUUUUUUUUUUUUUUUUUUUUUUU line 0: LE *DTR *RTS ST SR CTS CD RI *DSR line 1: LE *DTR *RTS ST SR CTS CD RI *DSR 0>1: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUU\x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x 06 1>0: \x18\x00\x00\x00\xfc\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x06 1>0: \x18\x00\x00\x00\x18\x00\x00\xc0\xf0\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13 1>0: \x18\x00\x00\xf0\x00\x00\xfc 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13
I guess that what happens is that the phone is trying to find the correct baud-rate and fails because of the delays introduced by snooper. This probably has to do with some IrDA protocol used with also with the infrared connection."
Wessel de Roode "I managed to get the Discovery IR hint bits (with my Palm Pilot):
Discover: 0:xxxxxxxx:81.01 01 IR_HINT_PNP 01 IR_HINT_TELEPHONY (IrMC ?) 80 IR_HINT_EXT Device info query: \006Device\012DeviceName 4e 6f 6b 69 61 20 36 31 30 30 Nokia 6100
There are also reports about gsmlib for sending and receiving sms messages, updating address books etc). These functions are working, except for minor charset problems.
gnokii is a Linux/Unix tool suite and soon to be modem/fax driver for Nokia (GSM) mobile phones. Phones supported include 3110, 3810, 8110, 5110, 6110 and their derivatives.
Configuration By Florian Lohoff: "Do it step by step - Get your irda working irattach /dev/ttySx etc. Then have a look at the /proc/net/irda/discovery whether you find something like this:
(flo@paradigm)~# cat /proc/net/irda/discovery IrLMP: Discovery log: nickname: SIEMENS S25, hint: 0x9024, saddr: 0x4286ce23, daddr: 0x04295741
Timo Felbinger describes the connection between a Toshiba and a Siemens S25:
kernel 2.2.12 and patch-2.2.12-irda3, IrDA support in the kernel, ircomm and ircomm-tty as a module
mknod /dev/ircomm0 c 161 0
modprobe ircomm, modprobe ircomm-tty
start irattach with modprobe toshoboe in the start section of /etc/irda/drivers . Note: don't load toshoboe before the irattach, this may cause device or resource busy
after dip -t and the command port ircomm0 the S25 shows a connection. Note: the IR port of the S25 has to be activated of course, the distance between the two devices seems not critical.
After term the S25 behaves like the usual Hayes modem and can be used with the AT commands.
dial-out with pppd works out of the box.
SCMxx can copy files to and from a Siemens mobile phone and also delete stored files. Files can read from a given file or through stdin and stored to a given file or stdout. SMS can also be directly sent or received without storing in the mobile phone. SCMxx was tested with several mobile phones manufactured by Siemens (only S25 and later).
A note to German e-plus users:
Every e-plus contract (except Free&Easy) contains a PPP conncetion to the WWW (no separate registration necessary). This service is available around Germany under the phone number 123100. This worked also out of the box.
/dev/ircomm0 defaultroute netmask 255.255.255.0 debug mtu 552 crtscts noauth connect '/usr/sbin/chat -v -f /etc/ppp/eplus.chat' chat script /etc/ppp/eplus.chat:
ABORT "BUSY" ABORT "ERROR" ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "NO ANSWER" SAY "initializing modem..." "" "AT" "OK" "ATZ" SAY "dialing..." "OK" "ATDT123100" SAY "waiting for CONNECT..." "CONNECT" "" SAY "connected!" SAY ""