カメラ

今のところカメラにかかった金額

LUMIX GX1 (DMC-GX1X-S)59,000円 (10%ポイント)ビックカメラ
GX1マニュアル (日本カメラムック)1,995円Amazon.co.jp
Kenko 37mm PRO1D プロテクター1,680円 (ポイントで購入)ビックカメラ
SanDisk 16GB SDHC Card (SDSDX-016G-X46)$28.08Amazon.com
Transcend 16GB SDHC Card (TS16GSDHC6)$14.95Abe's of Maine
Battery for GX1 (DMW-BLD10PP)$39.95eBay
20mm F1.7 Pancake Lens (H-H020)$339.95Samy's
Camera Bag$19.99buy.com
Marumi DHG Super C-PL 46 mm$53.95eBay
Hoya Linear PL 46 mm$28.20Amazon.com

合計 $1,286.50 (102,920 円) ($1 = 80円)

ちなみに、SDSDX-016G-X46 が $28.08 から $21.30 になり $6.78 損したが、20mm/F1.7 が $339.95 から $359.00 になり $19.05 得したので、今のところ差し引き $12.27 得してる。:-)

japanese/mozc-server

mozc が pkg-config で OpenSSL を探すから security/openssl を入れるようにした( http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/mozc-server/Makefile.diff?r1=1.27;r2=1.28;f=h )みたいだけど、どうせならもともと入ってる OpenSSL を使いたかったので、少し patch を当ててインストールした。(あと、郵便番号辞書も一緒に入れた)

(May 3, 2012 追記:http://www.freebsd.org/cgi/cvsweb.cgi/ports/japanese/mozc-server/Makefile.diff?r1=1.28;r2=1.29;f=h で使わないように変更したみたいだ。)

# pwd
/usr/ports/japanese/mozc-server
# make extract
===> License check disabled, port has not defined LICENSE
===> Extracting for ja-mozc-server-1.5.1053.102
===> License check disabled, port has not defined LICENSE
=> SHA256 Checksum OK for mozc-1.5.1053.102.tar.bz2.
# cat -t /root/patch
--- Makefile.orig^I2012-05-01 16:58:57.000000000 -0400
+++ Makefile^I2012-05-01 16:59:04.000000000 -0400
@@ -18,8 +18,7 @@
LIB_DEPENDS=^Icurl.6:${PORTSDIR}/ftp/curl \
^I^Igtest.0:${PORTSDIR}/devel/googletest \
^I^Iprotobuf.7:${PORTSDIR}/devel/protobuf \
-^I^Izinnia.0:${PORTSDIR}/japanese/zinnia \
-^I^Issl.8:${PORTSDIR}/security/openssl
+^I^Izinnia.0:${PORTSDIR}/japanese/zinnia
RUN_DEPENDS=^Ixdg-open:${PORTSDIR}/devel/xdg-utils

USE_BZIP2=^Iyes
--- work/mozc-1.5.1053.102/base/base.gyp.orig 2012-05-01 16:51:47.000000000 -0400
+++ work/mozc-1.5.1053.102/base/base.gyp 2012-05-01 16:52:26.000000000 -0400
@@ -227,23 +227,14 @@
}
}],
['OS=="linux" and target_platform!="Android"', {
- 'cflags': [
- '<!@(<(pkg_config_command) --cflags-only-other openssl)',
- ],
'defines': [
'HAVE_OPENSSL=1',
],
- 'include_dirs': [
- '<!@(<(pkg_config_command) --cflags-only-I openssl)',
- ],
'link_settings': {
- 'ldflags': [
- '<!@(<(pkg_config_command) --libs-only-L openssl)',
- ],
'libraries': [
- '<!@(<(pkg_config_command) --libs-only-l openssl)',
+ '-lssl -lcrypto',
],
- },
+ }
}],
],
},
# patch < /root/patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- Makefile.orig 2012-05-01 16:58:57.000000000 -0400
|+++ Makefile 2012-05-01 16:59:04.000000000 -0400
--------------------------
Patching file Makefile using Plan A...
Hunk #1 succeeded at 18.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- work/mozc-1.5.1053.102/base/base.gyp.orig 2012-05-01 16:51:47.000000000 -0400
|+++ work/mozc-1.5.1053.102/base/base.gyp 2012-05-01 16:52:26.000000000 -0400
--------------------------
Patching file work/mozc-1.5.1053.102/base/base.gyp using Plan A...
Hunk #1 succeeded at 227.
done
# cd work/mozc-1.5.1053.102/data/dictionary/
# fetch http://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip
ken_all.zip 100% of 1798 kB 377 kBps
# fetch http://www.post.japanpost.jp/zipcode/dl/jigyosyo/zip/jigyosyo.zip
jigyosyo.zip 100% of 753 kB 276 kBps
# unzip ken_all.zip
Archive: ken_all.zip
extracting: KEN_ALL.CSV
# unzip jigyosyo.zip
Archive: jigyosyo.zip
extracting: JIGYOSYO.CSV
# python ../../dictionary/gen_zip_code_seed.py --zip_code=KEN_ALL.CSV --jigyosyo=JIGYOSYO.CSV >> dictionary09.txt
# cd ../../../..
# pwd
/usr/ports/japanese/mozc-server
# make
===> Patching for ja-mozc-server-1.5.1053.102
===> Applying FreeBSD patches for ja-mozc-server-1.5.1053.102
[...]
CXX(target) out_linux/Release/obj.target/mozc_server/server/server_main.o
LINK(target) out_linux/Release/mozc_server
Running: /usr/local/bin/python2.7 build_tools/binary_size_checker.py --target_directory out_linux/Release
# make deinstall
===> Deinstalling for japanese/mozc-server
===> Deinstalling ja-mozc-server-1.5.1053.102
pkg_delete: package 'ja-mozc-server-1.5.1053.102' is required by these other packages
and may not be deinstalled (but I'll delete it anyway):
ja-mozc-el-emacs23-1.5.1053.102_1
# make reinstall
===> Installing for ja-mozc-server-1.5.1053.102
===> ja-mozc-server-1.5.1053.102 depends on executable: xdg-open - found
===> ja-mozc-server-1.5.1053.102 depends on file: /usr/local/bin/python2.7 - found
===> ja-mozc-server-1.5.1053.102 depends on shared library: curl.6 - found
===> ja-mozc-server-1.5.1053.102 depends on shared library: gtest.0 - found
===> ja-mozc-server-1.5.1053.102 depends on shared library: protobuf.7 - found
===> ja-mozc-server-1.5.1053.102 depends on shared library: zinnia.0 - found
===> ja-mozc-server-1.5.1053.102 depends on shared library: iconv.3 - found
===> Generating temporary packing list
===> Checking if japanese/mozc-server already installed
===> Registering installation for ja-mozc-server-1.5.1053.102
===> SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/bin/mozc_server

If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
to deinstall the port if this is a concern.

For more information, and contact details about the security
status of this software, see the following webpage:
http://code.google.com/p/mozc/
#

VNC on VirtualBox

When I use VirtualBox with VBoxHeadless over VNC (not RDP, since I'm using OSE (Open source Software Edition)), mouse cursor is often out-of-sync by default. (i.e. host mouse cursor is away from guest mouse cursor)

To fix this issue, I've been using '--mouse usbtablet'.

VBoxManage modifyvm vmname --mouse usbtablet

mozc.el のキーバインド

Windows版のGoogle日本語入力で設定した config1.db を持ってきて ~/.mozc の下に置いた。

C-k カタカナに変換
C-l 半角に変換
C-n 予測変換を選択

VMware Fusion 3.1.3 でシリアルポートをつかむ

http://d.hatena.ne.jp/hirose31/20100729/1280380054 のやり方を追試した。
VMware Fusion 3.1.3 でもGUIでは設定できないように思う。

vmwarefusion_serial.png

ので、同じように .vmx ファイルを直接編集する。
[Mac:~/Documents/VMware/FreeBSD.vmwarevm] say% diff -u FreeBSD.vmx.orig FreeBSD.vmx
--- FreeBSD.vmx.orig 2012-02-12 13:36:55.000000000 -0500
+++ FreeBSD.vmx 2012-02-12 13:37:48.000000000 -0500
@@ -79,7 +79,9 @@
ide0:1.fileName = "3.vmdk"
ide0:1.redo = ""
serial0.present = "TRUE"
-serial0.fileType = "file"
+serial0.fileType = "pipe"
serial0.fileName = "/Users/user/Downloads/serial-port"
+serial0.tryNoRxLoss = "TRUE"
+serial0.startConnected = "TRUE"
scsi0:0.present = "FALSE"
floppy0.present = "FALSE"
なお、編集後は、こんな感じになる。

vmwarefusion_serial2.png

元記事と同じように socat をダウンロードして普通に ./configure && make で作った socat 1.7.2.0 を使う。

TCPポートにブリッジするには、
% ./socat unix-connect:/Users/user/Downloads/serial-port tcp-listen:1919,reuseaddr,crnl
した上で別のターミナルで
% telnet 127.0.0.1 1919
などとすればつながる。

ただ、この方法だと(少なくとも自分の環境では)入力が二重になるなどイマイチだったので、次のように Jerminal などを使ってPTYにブリッジした方が使いやすい。
% ./socat unix-connect:/Users/user/Downloads/serial-port pty,raw,echo=0,link=/tmp/socket
した上で、Jerminalで接続する。(元記事とは違い link=... は普通に使えた)
% jerm /tmp/socket
Jerminal v0.8095 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 candy
Type "Ctrl-M ~ ." to exit.
ispeed 9600 ospeed 9600
+IGNBRK -BRKINT -IGNPAR -PARMRK -INPCK -ISTRIP -INLCR -IGNCR -ICRNL -IXON -IXOFF -IXANY -IMAXBEL
-OPOST +ONLCR -OXTABS -ONOEOT
cs8 -CSTOPB +CREAD -PARENB -PARODD +HUPCL +CLOCAL -CCTS_OFLOW -CRTSCTS -CRTS_IFLOW -MDMBUF +ECHOKE -ECHOE -ECHO -ECHONL -ECHOPRT +ECHOCTL -ISIG -ICANON -ALTWERASE -IEXTEN
-EXTPROC -TOSTOP -FLUSHO -NOKERNINFO -PENDIN -NOFLSH

host# pwd
/root
host#
(ちなみに上記の元記事で "pty:raw,..." のところは "pty,raw,..." のtypoだと思う。)

FreeBSD 9.0-RELEASE インストールの練習

New Serverで買ったハードディスク(Seagate ST31000528AS)が壊れたので新しいハードディスクを探してたら、去年のタイの洪水の後ハードディスクの価格が上がったままだった。安いディスクは少ししかなく、ほぼ Seagate と Western Digital の二択だった。この二社のディスクは1TB/1.5TB/2TBくらいの容量で価格が拮抗してた。

Newegg/Amazon/Google Product search などを検索したところ、Western Digital Elements 2TB Desktop External Hard DriveSeagate Barracuda Green ST2000DL003 2TB 5900 RPM 64MB Cache SATA 6.0Gb/s 3.5" Internal Hard Drive -Bare Drive がそれぞれ 2012/02/13 まで$20引きかつ Free Shipping で $119 と $109 で売られていたので早速購入した。(ちなみに、Amazon.com と違い Newegg はNY州でも税金を徴収しないので、その分少し安い)

ちなみに、WDBAAU0020HBK はハードディスクエンクロージャーに入った外付けディスクだけど、もともと、今サーバに入ってる1TBのディスクを外につないでバックアップ用に使い、新しく購入した2TBディスクx2を内部で使おうと思ってたので、WDBAAU0020HBK からディスクを取り出し、今サーバ内にある1TBのディスクを入れることにした。(ディスクが届いたら「HDDが高いから、WDの外付けHDDを買って分解してみた。」を参考に分解する。) 内部のディスクは生産時期によって WD20EACS か WD20EADS か WD20EARS か WD20EARX かなんかが入ってるようだ。(追記:WD20EARS (というか、Greenシリーズ?)はヘッドが無駄にランディングゾーンに戻っちゃう問題もあるようだ。 S.M.A.R.T. attribute 193 (Load_Cycle_Count) が異常に大きかったらその問題をヒットしてる可能性が高い。その問題を改善するファームウェアもあるらしいが、新しいファームウェアでもバージョンが変化しないから新しいかどうか分からないらしい。)

なお、ST2000DL003 の方は検索してみるとファームウェアが C31 のものは突然認識されなくなるという問題を抱えているらしい。Seagate はファームウェアのアップデートを提供してるが、最新の CC32 でもロックアップの現象が出てるという報告もあるので、まぁ、安かろう悪かろうとして使うしかないだろう。(上の WD20EAxx とRAID1(ミラーリング)で使うから、まぁ、大丈夫でしょう。) ところで、CC3C というファームウェアもあるようだから、届くディスクがどうなるか楽しみにしよう。(追記:今メールをみたら shipping の情報が来てて、Edison, NJ からの発送だったから意外と早く着くかも。西海岸からの発送かと思ってたから嬉しい誤算だ。)

(2/14 追記:ディスクが届いた。Western Digital の方が WD20EACS-11BHUB0 (SATA2(SATA300)、16MBバッファ、5400rpm、08 FEB 2011 製、DCM: HHRNNTJCHB)で、Seagate の方が ST2000DL003 (P/N: 9VT166-302、F/W: CC3C、Date: 12194、スペックは上記の通り)だった。だいぶ性能に差があるな。こりゃ、ST2000DL003 を番号が小さい方へつないで、gmirror を prefer で使うのが良さそうかな。)

さらに、両方とも2TBのディスクなのでセクタサイズが従来の512バイトから4096バイトになっており Advanced Format Technology が使われている。Wikipediaの記事に書かれているとおり「パーティションの開始位置が4KiB単位の物理セクター境界からずれた場合に大きな性能低下が」起こるのでOSインストールの際はそこら辺も考慮に入れないといけない。今回は(既存のOSをアップグレードするのではなく、新規に) FreeBS 9.0-RELEASE-amd64 をインストールするつもりなので、9.0 でのサポート状況をざっと検索してみた。

Status of support for 4KB disk sectors (2011/07)
http://lists.freebsd.org/pipermail/freebsd-stable/2011-July/thread.html#63300

のスレッドによると、
  • kern.cam.ada.X.quirks="1" を /boot/loader.conf に設定することで、4Kバイトセクタを使ってるのに512バイトと申告してくるドライブを、4Kバイトセクタのドライブとして扱うことができるようになった。(gpart(8) はその情報を使ってアラインメントなどを行う)
  • UFSフラグメントサイズも4Kバイトに増やされた。(ので、普通に使ってれば、4Kバイト境界にそろうはず。)
  • ZFSの場合 gnop を使ってセクタサイズ4Kバイトを強制的に認識させる方法もある
といった感じで、ZFSを使うのでなければそんなに気にすることはなさそうに見える。じゃあ、gpart(8) によるアラインメントってのはどんなものかと検索してみると、

GPT and disk alignment (2011/06)
http://lists.freebsd.org/pipermail/freebsd-fs/2011-June/thread.html#11685

というスレッドの http://lists.freebsd.org/pipermail/freebsd-fs/2011-June/011704.html によると、diskinfo(8) を使って、あるGPTパーティションの stripeoffset が4096の等倍(か0)になっていればアラインメントがいい感じになってると言えるようだ。gpart(8) に "-a 4k" をつけることで4K境界にうまく合わせてくれるので、その後 diskinfo(8) で確認するのがよさそうだ。

というわけで、結論としては FreeBSD 9.0 ではパーティションの作成時に gpart(8) に "-a 4k" をつけるだけで大丈夫のようだ。(なお、FreeBSD 9.0-RELEASE のインストーラで普通にパーティションを作ってしまうと4K境界は気にしないで作られてしまうので、以下の通り、パーティションの作成時は shell から gpart(8) を使って行った方がよさそうだ。)

最後に、ディスク関連としてはFreeBSD 9.0-RELEASE から AHCI に対応してるので、インストール後 Native Command Queueing に対応してるかを確認する。(対応してれば起動時に「Command Queueing enabled」などと表示されるはず。)

以下に VMware Fusion で試した FreeBSD 9.0-RELEASE-amd64 のインストール方法を記す。(なお、http://forums.freebsd.org/showthread.php?t=27645 の手法を参考にした。)

今回は諸般の事情によりUSBメモリに http://ftp10.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-amd64-memstick.img (654MB) を書き込んだものがすでに手元にあったので、VMware Fusion から Plop Boot Manager を使ってUSBメモリで起動させた。(単に plpbt.iso から起動し、メニュー内で USB を選択しただけ)

起動したらメニューから「2. [Esc]ape to loader prompt」を選び、「set kern.cam.ada.0.quirks="1"」を設定した後「boot」する。
FreeBSD9.0-01.png
FreeBSD9.0-02.png

FreeBSD Installer が上がってきたら「Install」を選択、
FreeBSD9.0-03.png
「Keymap Selection」では「No」を選択し、
FreeBSD9.0-04.png
ホスト名を設定し、
FreeBSD9.0-05.png
インストールする内容を選択し、
FreeBSD9.0-06.png
上に書いた通り、アラインメントを確実に行うため、パーティションの作成は「Shell」を選択する。
FreeBSD9.0-07.png

ところで今まで GEOM Mirror (gmirror) を使ってたので、新規インストールでもそのまま使うことにした。GPTパーティションを使う際のミラーリングのやり方には3つ考えられる。
  1. ディスク全体を使ったGEOMデバイスを作り、そこにGPTパーティションを作る
  2. 生のディスクにGPTパーティションを作り、パーティション単位でミラーリングをする(GEOMデバイスを作る)
  3. 生のディスクにGPTパーティションを作り、ディスク単位(全体)でミラーリングする(GEOMデバイスを作る)
1. が今回実際に選んだ手法。GEOM Mirror でGEOMデバイスを作り、そこにGPTパーティションを作った。ただ http://forums.freebsd.org/archive/index.php/t-22125.html に書かれている通り、これをすると起動時に gptboot が「gptboot: invalid backup GPT header」と文句を言う。(ただ、backup header なので動作には一応問題ない。)

FreeBSD9.0-23.png

2. が恐らく一番望ましい方法。FreeBSD 9.0のGPTでのミラー構築 に書かれてる通りの方法でパーティション毎にGEOM Mirrorデバイスを作る。1. より望ましいが、新しいディスクを追加する際に一旦パーティションを切ってからミラーに追加しないといけないなど、多少面倒なため、1. の方法を選んだ。

3. は動作しなかった。GEOM Mirror デバイスを作ることでGPTパーティションが隠れてしまった。
gpart+gmirror-1.png
gpart+gmirror-2.png

というわけで、先に geom_mirror をロードし、作成したGEOMデバイスにGPTパーティションを作成することにした。boot、swap そしてファイル用のパーティションを作った。(なお、上述の通り "-a 4k" で4Kセクタアラインメントに合わせている。) その後、ブートローダをインストールする。
kldload geom_mirror
gmirror label -b split gm0 ada0
gpart create -s GPT mirror/gm0
gpart add -s 512k -a 4k -t freebsd-boot -l "boot" mirror/gm0
gpart add -s 4g -a 4k -t freebsd-swap -l "swap" mirror/gm0
gpart add -a 4k -t freebsd-ufs -l "root" mirror/gm0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
gpart show mirror/gm0
diskinfo -v mirror/gm0
diskinfo -v ada0
FreeBSD9.0-08.png

できあがったらパーティションを確認し、newfs する。(小さいファイルが多いため、i-node サイズを小さくしている) その後のインストール用に fstab を作成し、/mnt へ作ったディレクトリをマウントする。
newfs -i 4096 -j /dev/gpt/root
echo "/dev/gpt/swap none swap sw 0 0" >> /tmp/bsdinstall_etc/fstab
echo "/dev/gpt/root / ufs rw,noatime 1 1 " >> /tmp/bsdinstall_etc/fstab
mount /dev/gpt/root /mnt

FreeBSD9.0-10.png

パーティション作成用の shell から exit すると、選択したモジュールのインストールが自動的に始まる。
FreeBSD9.0-11.png
FreeBSD9.0-12.png

インストールが終わると root ユーザのパスワードの設定に移る。
FreeBSD9.0-13.png

その後、ネットワークインタフェースの設定。
FreeBSD9.0-14.png

タイムゾーンの設定。
FreeBSD9.0-15.png

デーモン起動の設定。
FreeBSD9.0-16.png

dumpデバイスの設定。(なお、swapデバイスをGEOM Mirrorデバイス上に作ってしまうと、バランスアルゴリズムが "prefer" の場合以外は dump はちゃんと動作しない。(rc.early が無くなったため))
FreeBSD9.0-17.png

その他のユーザアカウントの追加。
FreeBSD9.0-18.png

インストールの終了。
FreeBSD9.0-19.png

その他の設定をするためシェルに落ちる。
FreeBSD9.0-20.png

loader.conf、boot.config の設定を行う。
echo 'kern.cam.ada.0.quirks="1"' >> /boot/loader.conf
echo 'geom_mirror_load="YES"' >> /boot/loader.conf
echo '-Dh' >> /boot.config
FreeBSD9.0-21.png

また、/etc/ttys で ttyvN を off に、ttyu0 を on に変更しておく。

ここまで行ったら、一度 chroot から exit した上で、もう一つのディスクを GEOM Mirror へ追加する。
FreeBSD9.0-22.png

再起動したら終了。

Continental OnePass card - Chase

I was about to cancel my OnePass card as $85 membership fee will be charged soon. But the person on the phone offered me $50 credit + 5,000 miles for keeping it. So, I changed my mind to keep it. I'm an easy customer, huh ?

050plusをSIPクライアントで使う

注意:以下の情報は当然ながら公式にサポートされているものではないので、将来使えなくなったり、050plus サービスに悪影響を及ぼしたり、または、誤課金などの可能性を否定するものではないので、試す場合にはあくまで自分の責任において試して下さい。

NTTコミュニケーションズのサービス 050plus の ID を手に入れたので少し試してみた。

iPhone/iPad/iPod やサポート対象のAndroid端末、もしくは Windows PC では標準のアプリケーション(iOS/Android/Windows)でサービスを利用できるが、対象外の Android 端末(たとえば僕の持ってる Asus Eee Pad Transformer)や Mac OS X デバイス(iMac/MacBook など)は現状では公式にサポートされておらず利用できない。

(関係ないけど、Windows版クライアントのページは他に比べてひどいな。10年前のインターネッツのようだ。)

しかし、先達の情報(ここここ)によると、標準のSIPクライアントでも使えるということなので試してみた。(ちなみに自分でもデバッグする際、SSLを覗き込むのに stone に活躍してもらった。)

手順は次の通り。

  1. SIPの設定に必要な情報を手に入れる
  2. SIPクライアントの設定をする

SIPの設定に必要な情報を手に入れる

https://start.050plus.com/ というサイトに特定のデータを POST することで設定に必要な情報を入手できる。wgetcURL なんかを使うと POST が簡単にできる。(ちなみに以下の例で、xmllint はもちろん無くても構わない。)

% wget -O - -q --post-data 'ifVer=1.0.0&apVer=1.0.0&earlyStFlg=0&no050=05099999999&pw050=password' https://start.050plus.com/sFMCWeb/InitSet.aspx | xmllint --format - | egrep '<(sip|nicNm|tranGwAd|payTran)'
<sipID>Nxxxxxxx</sipID>
<sipPwd>yyyyyyyy</sipPwd>
<tranGwAd>kar-f2fcp.050plus.com</tranGwAd>
<payTranGwPNm>5061</payTranGwPNm>
<nicNm>fmc99999999</nicNm>

もしくは、

% curl -o - -s -d 'ifVer=1.0.0&apVer=1.0.0&earlyStFlg=0&no050=05099999999&pw050=password' https://start.050plus.com/sFMCWeb/InitSet.aspx | xmllint --format - | egrep '<(sip|nicNm|tranGwAd|payTran)'
<sipID>Nxxxxxxx</sipID>
<sipPwd>yyyyyyyy</sipPwd>
<tranGwAd>kar-f2fcp.050plus.com</tranGwAd>
<payTranGwPNm>5061</payTranGwPNm>
<nicNm>fmc99999999</nicNm>

"05099999999"は 050plus で使う自分の 050 番号、"password"は 050plus 申し込み時に設定したパスワード。

他にもいくつかの情報が表示されるが、grep で必要なところだけ表示した。sipPwd は 050plus 申込時に設定したパスワードとは違うので注意。

  • sipID: Nxxxxxxx
  • sipPwd: yyyyyyyy
  • nicNm: fmc99999999
  • tranGwAd: kar-f2fcp.050plus.com
  • payTranGwPNm: 5061

この情報をもってSIPクライアントの設定に移る。

SIPクライアントの設定をする

PC用、モバイルデバイス用のSIPクライアントはかなりの数があるが、

  1. 無料
  2. TLS/SRTPをサポートしてる
の2つの条件を満たすものは非常に少なかった。(050plus では TLS/SRTP のサポートが必須である) そこで、今まで培ったクリック力を遺憾なく発揮したところ、以下の2つのクライアントを発見した。(というか、この2つしか見つけられなかった)
どちらもオープンソースソフトウェアで活発開発が行われており、タイミングのよいことに TLS/SRTP も2011年の暮れにサポートされた。(ここここ)

なお、Linphone は Linux/Windows/Mac OS X/iOS/Android/Blackberry/WebOS と、広範なプラットホームをサポートしているが、現時点(2012.01.08)では、 TLS/SRTP がデスクトップ版でしかサポートされていない。

以下にそれぞれのクライアントでの設定を紹介する。なお設定後、実際に(発呼、着呼ともに)通話できるところまで自分で確認した。

Linphone for Mac OS X

まずは Linphone の設定。設定はメニューの Options - Preferences からおこなう。必須の設定を取り上げる。

  • Network settings
    • Network protocol and ports:SIP (TLS) 5061 (payTranGwPNm)
  • Multimedia settings
    • (デフォルトのままでOK)
  • Manage SIP Accounts
    • "Your display name", "Your username", "Your resulting SIP address" はなんでもいい。050plus とは関係ない。
    • Proxy accounts の Account に追加するため "Add" をクリック
      • Your SIP identity:sip:fmc99999999@050plus.com ((nicNm)@050plus.com)
      • SIP Proxy address:kar-f2fcp.050plus.com (tranGwAd)
      • Route (optional):kar-f2fcp.050plus.com (tranGwAd)
      • Registration duration (sec):3600
      • Register にチェック
  • Codecs
    • 少なくとも PCMU, PCMA, G722 を Enable しておく
  • User interface
    • (デフォルトのままでOK。念の為 "Show advanced settings" にチェックが入ってることを確認する。)
設定の画面は以下の通り。

Linphone-Settings-1.png

Linphone-Settings-2.png

Linphone-Settings-3-1.png

Linphone-Settings-3-2.png

Linphone-Settings-4.png

Linphone-Settings-5.png

以上、設定が終わったら Done をクリック。なお、IDとパスワード(sipID と sipPwd)は次のように初回接続時に入力する。

Linphone-Authentication.png

以下のように「sip:kar-f2fcp.050plus.com successful.」と表示されたら設定は成功。「sip:kar-f2fcp.050plus.com failed.」と表示されたり、「Ready」のまま変わらなかったら失敗なので、再度設定を見直す。

Linphone-success.png

"SIP address or phone number" のところに電話番号を入力して、その左にある緑のアイコンをクリックすれば相手先に電話をかけ始めるはず。

CSipSimple

次に CSipSimple の設定。初めに一番重要なポイント。現時点(2012.01.08)で Android Market に上がってる CSipSimple 0.03-01 は TLS が(設定画面にあるにも関わらず)使えない。したがって、開発バージョンである trunk を使う必要がある。trunk のインストール方法はプロジェクトのWikiに書いてあるが、要するに APK ファイルをダウンロードしてインストールすればいいだけ。ただし、Android の設定で Applications - Unknown sources をチェックしておく必要がある。

Android-Applications.png

その後、http://nightlies.csipsimple.com/trunk/ を Android 端末のブラウザで開き、最新の .apk をクリックするとダウンロードが開始する。

CSipSimple-trunk-downloading.png

ダウンロード終了後 .apk ファイルを開く。なお、先に CSipSimple を Android Market なんかからインストールしてた場合は、置き換えてもいいか?っていうダイアログが表示される。

Android-trunk-replace.png

必要とされる権限が表示され、"Install" をクリックするとインストールされる。

Android-trunk-install.png

Android-trunk-installing.png

Android-trunk-installed.png

なお、trunk (r1171)をタブレットで実行したところ、レイアウトがイマイチな感じだった。

CSipSimple-0.04-r1171.png

無事インストールが終わったら、まず CSipSimple の全体の設定を「Settigs」からおこなう。(なお、以下では Asus Eee Pad Transformer (Android 3.2.1 - Honeycomb)での設定を紹介する。)

CSipSimple-Settings.png

  • Easy configuration (変更しない)
  • Network
    • Wifi keep alive, Mobile keep alive, Resolve DNS SRV (チェックしない), Use compact SIP (チェックしない)はデフォルトのまま変更しない
    • Secure transport
      • TLS:(チェックする)
      • TLS Port:0
      • TLS Method:Auto
      • TLS server name, TLS CA file, TLS certificate file, TLS private key file, TLS password はすべてブランク(デフォルト)のままでよい
      • Check server, Check client はチェックしない
      • SRTP mode は "Optional" を選ぶ
      • ZRTP mode はデフォルトのまま変更しない
    • Enable ICE (チェックしない), Enable STUN (チェックしない)はデフォルトのまま変更しない(か、必要に応じて設定する)
    • For incoming calls/For outgoing calls は好みに合わせて設定する
  • Media (変更しない)
  • User interface (変更しない)
  • Calls options (変更しない)
  • Filters (変更しない)


Network の設定画面。

CSipSimple-Settings-Network-1.png

"Secure Transport" (TLS) の設定画面。

CSipSimple-Settings-Network-Secure-Transport.png

次に、アカウントの追加を「Accounts」からおこなう。「Add account」をクリックし、リストから「Expert」を選択する。

CSipSimple-Account-0.png
  • Account name:050plus
  • Account ID:<sip:fmc99999999@050plus.com> (<sip:(nicNm)@050plus.com>)
  • Registration URI:sip:kar-f2fcp.050plus.com:5061 (sip:(tranGwAd):(payTranGwPNm))
  • Realm:ntt.com (追記:Register ができなかったり、発信・着信ができなかったら「*」(アスタリスク)に変更する)
  • Username (login):Nxxxxxxx (sipID)
  • Data (password):yyyyyyyy (sipPwd)
  • Data Type:Plain password
  • Scheme:Digest
  • Transport:TLS
  • Publish enabled:(チェックしない)
  • Register timeout (sec):3600
  • Register delay before refresh (sec):10
  • Force contact:(空欄)
  • Allow contact rewrite:(チェックしない)
  • Contact rewrite method:(変更しない)
  • Try to clean registers:(チェックする)
  • Proxy URI:sip:kar-f2fcp.050plus.com:5061 (sip:(tranGwAd):(payTranGwPNm))
  • SRTP mode:Mandatory
  • Voice mail:(空欄)


CSipSimple-Account-1.png

CSipSimple-Account-2.png

すべて設定できたら "Save" をクリックする。うまく設定できていれば緑色が点灯し "Registered" と表示される。

CSipSimple-success.png

メインの画面に戻り相手の番号をダイヤルすればかかるはず。