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 に活躍してもらった。)
手順は次の通り。
- SIPの設定に必要な情報を手に入れる
- SIPクライアントの設定をする
SIPの設定に必要な情報を手に入れる
https://start.050plus.com/ というサイトに特定のデータを POST することで設定に必要な情報を入手できる。wget や cURL なんかを使うと 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クライアントはかなりの数があるが、
- 無料
- TLS/SRTPをサポートしてる
- Mac OS X 用:Linphone
- Android 用:CSipSimple
なお、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" にチェックが入ってることを確認する。)






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

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

"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 をチェックしておく必要がある。
その後、http://nightlies.csipsimple.com/trunk/ を Android 端末のブラウザで開き、最新の .apk をクリックするとダウンロードが開始する。
ダウンロード終了後 .apk ファイルを開く。なお、先に CSipSimple を Android Market なんかからインストールしてた場合は、置き換えてもいいか?っていうダイアログが表示される。
必要とされる権限が表示され、"Install" をクリックするとインストールされる。
なお、trunk (r1171)をタブレットで実行したところ、レイアウトがイマイチな感じだった。
無事インストールが終わったら、まず CSipSimple の全体の設定を「Settigs」からおこなう。(なお、以下では Asus Eee Pad Transformer (Android 3.2.1 - Honeycomb)での設定を紹介する。)
- 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 の設定画面。

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

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

- 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:(空欄)


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

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