3.9. 携帯電話接続

私の知る限り、一部の携帯電話は IrCOMM 標準を採用しています。Ericsson SH888 と NOKIA 6110 がそうです (NOKIA 8110 については分かりません)。 恐らく、他の携帯電話は IrOBEX 標準 (これに対して接続を確立するやり方は Palm III の章を参照してください) か IrMC を採用していると思われます。

gnokii は Linux/Unix 向けツール群で、もうすぐ Nokia (GSM) 携帯電話用の modem/Fax ドライバとして使えるようになります。サポートされている端末は 3110、3810、8110、5110、6110 と、その後継機種です。

3.9.1. Motorola Timeport GSM

Michael McConnell さんから Motorola Timeport GSM と Linux-IrDA とが話せるようにするためのガイドを 彼のウェブサイト に掲示したとの投稿がありました。

3.9.2. Ericsson

1. 設定

/dev/ircomm0 を用いて通信セッションを開始するには、たとえば以下のようにします。
dip -t
> port ircomm0
> term
多分 dip の代わりに cuxc を使うこともできます。そのときは cu -l /dev/ircomm0 または xc -l /dev/ircomm0 とします。 Ericsson GF768 と IR Modem DI 27 の組み合わせを試行中との報告もありました。

Benny Amorsen さんによると「SH888 はシリアルケーブル接続の際に IrDA ポートをエミュレートします。設計者がなぜこんな妙なことを考えたのかはちょっと想像もつきませんが、このやりかたで Windows との組み合わせで動かせます。 私は Windows で動かそうとしたことはありませんけど」

Ales Dryak さんから以下のサーベィを貰いました (Debian/GNU Linux ディストリビューションのようなので、設定を適宜書き替えてください)。Mobile Ericsson SH888 は ati1 = 980408 1035 PRGCXC125101 で、

mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
とします。

2. /etc/conf.modules

/etc/conf.modules は次のとおり
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty

3. /etc/irda/drivers は次のとおり

irattach /dev/ttyS0 -s 1 # (IrDA ポートは SIR モード)

4. /etc/chatscripts/sh888 は次のとおり

<ABORT stuff>
"" \d\d\d\d\d\dATZE0
OK ATD<phone number to call)
CONNECT \d\c

5. /etc/ppp/peers/sh888 は次のとおり

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

SH888 に対して pppd 呼び出しを行い、少し待った (だいたい 30 秒) 後は、私たちのイントラネットとインターネットに対して自由にアクセス (telnet、ftp、www、icmp はテストしました) できるようになっています。 さらには /dev/ircomm で minicom を使って AT コマンドを打ち込めるようになります。ばっちりです。また安定のように見えます。

3.9.3. SH888 電話帳ツール

Gerhard Gonter さんの報告です「メーリングリストの数名のメンバが Ericsson 社の携帯電話 SH888 を Linux-IrDA ソフトウェアで使うことに成功しています。このソフトウェアは AT コマンドを使って電話の各部にアクセスでき、とても役に立ちます。 内蔵の電話帳は興味深い操作対象でしょう。

インターネットで少々検索した (FreshMeat、Deja、Yahoo など) 範囲では、Linux またはその他の Unix 向けの、電話帳のツールを見つけることはできませんでした。 というわけで、小さな Perl スクリプトと関連モジュールを書いてみました。 現在個人的には使える処まで来ましたので、整理して開発の初期段階としてのリリースを行います。tarball は次のところにあります。 http://falbala.wu-wien.ac.at:8684/pub/english.cgi/0/172903 as http://falbala.wu-wien.ac.at:8684/pub/english.cgi/d172914/sh888-0.01.tar.gz 」

メーリングリストでは gsmlib の同時使用が推奨されていましたが、 これを赤外線ポートで使うことも、私の SH888 と接続することもできていません。 Florian Lohoff さんの報告では「S25 の種の携帯電話では動くようです。 ただ、S25 が CR LF に反応しないようなので ifdef を変更する必要はありました。 その変更後、/dev/mobilephone -> /dev/ircomm で張ったリンクで S25 経由での SMS 送信は問題なく行えています。 電話帳のバックアップはまったく動いていません。これは電話帳が空の場合に S25 がわけのわからない応答を返すためです」

SMS メッセージと電話帳の詳細仕様は、無料 (FSF の意味でのフリー、ではなく ;-) で ETSI からダウンロードできます。GSM 07.07 (それと、多分 GSM 07.05 も必要になるでしょう) を探してみてください。 ダウンロードする前に登録が必要です。この標準は Acrobat PDF 形式です。S25 がサポートするコマンドは無料で Siemens のウェブサイトに PDF 形式であります。

SH888 の AT コマンドをまとめて解説した文書が以下にあります。 http://mobileinternet.ericsson.se/emi_download/sh888/888_R1D.pdf

3.9.4. NOKIA

Carlos Vidal さん carlos@tarkus.se によると 「私の勘違いなら教えてほしいんですが、どうやら Nokia の携帯電話には純粋なハードウェアモデムは搭載されておらず、PC の WinModem と同じ類のものが載っているようです。Nokia がモデム接続のことについて書いている個所には毎回 "Windows ソフトウェアモデム" とか、それに類する語が使われています。 これに加えて傍証として、この携帯電話には Nokia 専用のウィンドウズ向けソフトウェア (Nokia Cellular Data Suite という名称です) が必要ですし」

Joonas Lehtinen さんによると「61xx シリーズの機種では、確かにそうです。 8810、9000(i) と 9110 の各機種は問題なく動作します (つまり、本物のモデムを内蔵しています)。 私の Nokia 9000 は linux との組み合わせでは IrCOMM と答えます」

Carlos Vidal さんからの試行と修正案は「私の Nokia 6110 で Linux を使ってどこまでできるか試してみています。ちょうど gnokii-0.2.4 (原注: gnokii は Nokia 社の携帯電話をシリアルケーブルで接続するための Linux および *BSD 向けのツールで、http://multivac.fatburen.org/gnokii/ で入手できます) をコンパイルしたところですが、これは動きませんでした。 手元に Nokia Data Suite ソフトウェアがあるので、これまでに以下の接続を試しています。

Nokia 6110 <-- Nokia Cable --> PC/Linux <-- Null-modem cable --> PC/W95

PC/Linux では program snooper (Itoh Jun-ichiro (いとじゅん) さん作) をシリアルポートを正しく設定できるよう小変更を加えて使っています。 これ以外の同様の動作を行えそうな sniffer ソフトウェア (たとえば sniffit) の URL は見つけられませんでした(原注: シリアルスニファについては付録参照)。

通常は snooper が正しいボーレートに設定されているなら、電話と PC/W95 は snooper が間にない場合と同じように通信できるはずです。 これはミノルタのディジタルカメラのプロトコルを解読した際にはうまく動いたのですが、Nokia の携帯電話の場合、電話のほうが応答しないか、しばらくだんまりになってしまいます。

どうやら、通信の最初の段階ではタイミングがきわめて重要なようです。 これまでで得られたログは次のものです。

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
0 は PC/95 で、1 は電話です。通信は一連の 'U' (0x55) で、DSR/DTR が on の状態で始まります。電話は '0x18 0x00 ...' と答えます。 この一連の会話はしばらくの間、両方ともだんまりになるまで続き、 最後には電話がクラッシュしてリセットする唯一の方法は電池を抜くだけ、という状態になります。

私の推定では、電話が正しいボーレートを見つけようとし、それが snooper を入れたことに伴う遅れのため失敗している、という現象ではないかと思います。 恐らく赤外線接続で用いている IrDA プロトコルで何かしないといけないのではないかと思っています」

Wessel de Roode さんによると「私は (Palm Pilot では) Discovery IR hint ビットを使うようにしています。

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
Nokia の PNP デバイスクエリができるようにもしました。Nokia は一台の PNP デバイスを持っています。このデバイスは具体的には 9600 ボーのモデムに相当する PNPC100 です。このクエリの設定を消してしまったので、回復するためのヒントを持っている人は教えてください。 確か IrDA:<dunno>:PNP:Comp#01 のようなものだったはずです。 同じ IrDA のクエリの IrDA:<dunno>:PNP:CompCnt は Nokia で使える PNP デバイス数を返します。ここではこれはひとつだけです。

ひょっとすると、NOKIA と通信するには irlpt_server モジュールをロードする必要があるのかもしれません」

ほかにも SMS メッセージを送受したり、アドレス帳を更新するのに gsmlib を使うことに関する報告を受けています。 これらの機能は、細かい文字集合の問題を除いて動作しています。

3.9.5. Siemens S25

設定

これは Florian Lohoff さんによるものです。「一歩一歩すすめましょう。まず irttach /dev/ttySx 等で irda が動くようにしておいてください。次に /proc/net/irda/discovery を実行してみて次のようになっているか見てください。

(flo@paradigm)~# cat /proc/net/irda/discovery
IrLMP: Discovery log:
nickname: SIEMENS S25, hint: 0x9024, saddr: 0x4286ce23, daddr: 0x04295741
次に ircomm と ircomm-tty をロードします。普通は /dev/ircomm* の正しいものを使って minicom などでダイヤルや、電話帳のロードやバックアップが容易に行えるはずです」

Timo Felbinger さんが東芝のラップトップと Siemens S25 の接続について説明してくれています。

3.9.6. ドイツ e-plus

以下はドイツの e-plus ユーザ向けの記述です。

e-plus 契約には Free&Easy を除いて WWW への PPP 接続が含まれており、別の登録は必要ありません。このサービスは電話番号 123100 でドイツ国内のどこでもつかえます。また、これは設定なしに使えます。

pppd 設定は

/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 ""
ネームサーバとしては 192.76.144.66 を使えます。Username と password は不必要です。