まず、結論から申し上げると、050plusのサービスとしてはSMS通知機能を持っていません。そのため、何か設定するだけでOKという話にはならないのですが、自分で使えるサーバを持ち、プログラミングが多少できるなら、なんとか出来るのです。この記事では、その方法を説明します。
なぜ、必要なのか
私がXperia mini proという、電池の持たないスマホを使っているからです。
電力消費を少なくするため、Juice Defenderというアプリを使っています。これは、画面が消えているときに3G通信を抑制して、例えば15分に1回だけ通信させるといった方法で電力消費を減らします。
最近のXperiaにはスタミナモードが搭載されているものがありますが、あれも同じ方式です。
3G通信を抑制してしまうと、その間は050plusが使えません。画面を表示させると3G通信も復活するので、050plusは使えるようになるのですが、画面が消えているときは着信できないわけです。
その間も、普通の電話は着信します。機内モードにしてしまうわけではないので。電話が着信するということは、SMSも受信できます。ここが目の付け所です。
全体像
050plusは不在着信か留守電登録があると、前もって指定しておいたメールアドレスにメールを送信してくれるサービスがあります。
ふつうはこれで良いのでしょうが、上記のとおり、私の環境ではメールも受け取れないので、自前のサーバ上のPostfixで受信し、そこからTwilio APIを叩くプログラムが動きます。
TwilioはSMSを送信できるので、それをXperia mini proで受信するわけです。
Twilioと契約してアメリカの電話番号を取得する
Twilioは、APIを使った簡単なプログラムで、電話の発着信、SMSの送受信ができるサービスです。日本ではKDDIが提供しています。
Twilioについては上記公式サイトのほか、ASCII.jpの記事が詳しいので、その辺を参考に。
Twilioにサインアップすると、たぶん日本の050番号が発番されると思います。
日本の電話番号だと、SMSの受信は出来るのですが送信が出来ないので、SMS送信が可能な国の電話番号を取得します。
Twilioだと、海外の電話番号を取得するのは簡単です。今回はアメリカの番号を取得しました。市外局番も自分で選びます。なんとなく、格好良さそうだったのでブルックリンにしました。
050plusで不在着信と留守電をメールで知らせるように設定する
下記のキャプチャは、Android版050plusアプリでのものです。
サーバにプログラムを組み込む
twilio-ruby gemをインストールする
Twilio APIをRubyから使うために、twilio-rubyというgemをインストールします。
gem install twilio-ruby
こんなプログラム
/usr/local/bin/calling.rb
とします。
1行目のrubyのパスは環境によって異なるでしょう。
また、電話番号は+1や+81といった国番号から入力します。
#! /usr/local/rvm/rubies/ruby-1.9.3-p547/bin/ruby
require 'twilio-ruby'
account_sid = '(Twilioのaccount_sid)'
auth_token = '(Twilioのauth_token)'
str = ""
src = ""
header = true
footer = false
nttcom = false
while line = STDIN.gets
src << line
nttcom = true if line.index("050plus.com")
str = "" if nttcom and line.index("There was ")
footer = true if nttcom and line.index("Call back from")
str << line if header == false and footer == false
header = false if line.chomp() == ""
footer = true if nttcom and line.index("No.of")
end
if nttcom
@client = Twilio::REST::Client.new account_sid, auth_token
@client.account.messages.create({
:from => '(Twilioで取得したアメリカの電話番号)',
:to => '(SMS送信先の電話番号)',
:body => str
})
end
ファイルを作ったら、実行権限を付けておきます。
Postfixの設定
メールが届いたら上記のプログラムが起動すれば良いので、Postfixの設定をしておきます。
/etc/aliases
に下記の行を追加します。
foo: "| /usr/local/bin/calling.rb"
fooは、050plusからメールが送られてくるアカウントです。
追記が終わったら、newaliasで反映します。
出来ました!
なぜ、ロビンなのか
無事、050plusの着信をSMSで知ることができるようになりました。私は、これと同じ方法でチャットワークの未読も知っています。TwilioはSMSの送信ごとにお金がかかるので、あまり頻繁に使うとマズいのですが、送信回数を限定すれば、他にも応用は効きそうです。
ちなみに、私のXperiaではTwilioから送ったSMSがロビンから来たように表示されていますね。
これは、電話帳でTwilioで取得した電話番号をロビンと登録しているからというだけですが、なぜロビンなのでしょうね。
そもそも、ロビンというのはTHEポッシボーというグループにいる岡田ロビン翔子のことなのですが。
2つの説があります。
A説、通知を050plus→メール→SMSとたらい回しにしている様子がラウンドロビンっぽかったから。
B説、来るメッセージがたいてい英語で、しかもアメリカから来るから。
ただ、ロビンはアメリカで生まれて7歳まで過ごしたのですが英語がしゃべれないので、A説の可能性が高いようですw ←それが言いたかっただけやん。
アメリカと日本のハーフ。父がアメリカ人で母が日本人。ボストンで生まれ1歳〜7歳までロスで育つ。2000年に日本にくる。本名はストューカスロビン翔子。英語は忘れた。、、、この説明生まれて何回したんだろう。
— 岡田ロビン翔子 (@xoxorobin19) May 7, 2012