一発芸

 
 つことで今日やったセキュリティもみじでの一発芸をエントリにしておきます。
 


 
前回のセキュリティもみじで一発芸として内線電話をPocket WiFiで持ち出す,というネタをやりました。Asteriskを使ってIP電話またはひかり電話を内線電話網に分配して,かつ,ポケファイやWiMAXなどの移動体高速通信網を使ってリモートからSIPクライアントで接続することで,屋外でも内線電話として接続させ,結果としてSIMなしのスマートフォンで電話を実用させるというネタでした。電話機でなくてもマイクとスピーカーがあればいいので,デモに使ったうちの一台は電話機ではなく,Androidが載ったメディアプレーヤでした。

 
で,まあそうやって内線を持ち出してみたわけですが,
一人暮らしならまだしも,上流の電話回線が一本しかないうえに家族がいたりすると「家にかかってきた電話を会社でおとーちゃんが取る」とかそういうことになったりして非常にややこしくなります。実際私も出先で電話を取って自宅にいるのかどうか相手にわからないというか混乱させてしまった経験があります('A`)

 
でまあ,そういう「自宅番号を持ち出す」というやりかたではなく,最初から独立した電話を作ってしまえばええんやないか,ということで,イエデンワみたいな物件を構築してみようやないか,という思いつきをとりあえず実行してみました。

 
手に入りやすい材料として,受話器つきのスマートフォンスタンドと安物の中華パッドあたりがお手ごろでしょうか。

 
もちろん真っ当なスマートフォンを使ってもおkです。わざわざ受話器を使うのは,気分だけの問題ですのでどうでもいいんですが,タブレットを使う場合は受話器がないと不便なので一応準備しとくといいでしょう。電子工作的にアンプでも仕込めば後半出てくる問題も解決できますので,外付けのハンドセットはあったほうが便利です。

 
で,電話機として使えるようにするには,発着信と通話ができなければいけません。とはいえ当然のことながらまともに契約するのであれば最初からそうすればいいわけでして,いちいちこんな面倒くさいことをやる以上は意地でも契約しません。イエデンワモドキにした理由は「既存の回線を使う」とした場合,各家庭にある光またはADSLのモデムにぶら下がっているルータあたりを無線化してしまえば,タブレットなり中古スマホなりが簡単に接続できる,という目論見があってのことです。今回は持ち出すことはとりあえず脇においておきますが,ポケファイやWiMAX経由で持ち出してもかまいません。

 
電話機なわけですが,とりあえず着信できるようにします。発信できるようにするのとほぼ同義ですが,まずは何らかのサービスに登録して,着信ができることを確認しておきましょう。先ほど述べたように意地でも既存キャリアとは契約したくないので,無料のネットワークを使います。Skypeあたりはユーザも多くて便利なんですが,独自プロトコルなので外線から着信するためにはSkype Inの番号を買わなければなりません。どうせなら契約関係で基本料金を取られたくないので,Skypeは除外します。つことで,VoIPで話ができるフリーのサービスとして有名どころのEkigaというサービスに登録します。面倒でなければ自宅にAsteriskサーバを立ち上げて,そちらにつないでもかまいません。

 
Ekigaはあんまり知られてませんが,Skypeオープンソース版みたいな感じのソリューションです。ビデオ会議や音声会議もできるネットワークですが,オープンなプロトコルで構成されています。クライアントソフトもフリーソフトとして公開されていて,WindowsLinuxなどプラットフォームを越えて利用することができます。これらの特徴のうち,プロトコルがオープンなものである,というか,SIPでダイヤルしてVoIPで音声を流しているという,普通のIP電話と同じ通話をしているのがポイントになります。この,普通のIP電話と同じプロトコルだということは,つまり外部からも同じプロトコルの電話が接続できるということだからです。実際にはEkigaのアカウントはアルファベットまじりですし,公衆回線とは接続されていないので,そのままでは普通の電話に発信したり,普通の電話から着信したりできません。

 
とりあえずAndroid Marketあたりからお好みのクライアントをインスコしときましょう。

 
Ekigaのアカウントを作るか,Asterisk鯖にアカウントを作るかして,そこに接続します。設定はヘルプ見てそれなりにやっといてください。

 
で,これだけでもEkigaのネットワーク内で発着信できるんですが,普通の電話とは発着信できないことは先に述べた通りです。そこで,まずは着信できるように,電話番号を取得します。フリーのサービスでIPKALLというのがありまして,こいつを使うとワシントンの市外局番を持つ電話番号をVoIPなアカウントに紐付けてくれます。SIPで接続しにきた呼び出しを転送してくれるわけですが,このサービスに登録することで,とりあえずワシントンの番号で着信ができるようになります。

 
着信はできるようになりましたが,相変わらずEkigaから外線には発信できません。これはEkigaネットワークの仕様なので仕方がありません。そこで,なんとか発信させるために,V字発信させる必要があります。V字発信とは,電話サービスの提供者が,発信者にコールバックをして,さらに相手先にも発信することで回線をつないでくれる形態の発信方法です。普通の電話ではダイヤルをまわすとそのまま相手先につないでくれますが,いかんせんEkigaでは発信できないので,途中の電話サービス提供者からIPKALLの番号にコールバックしてもらう必要がある,というわけです。

 
で,そういうV字発信をしてくれるサービスを探したところ,Google Voiceがありました。ただし,Google Voiceのサービスでは,米国内の固定電話もしくは米国内事業者の携帯電話網の番号にしかコールバックしてくれません。日本国内の携帯電話番号や固定電話番号では登録すらさせてくれません。

 
でもさっきIPKALLでワシントンの番号つけてましたので気にすることはありません。つことで,Google Voiceに登録してしまえば,米国内の電話番号には無料で通話ができるようになります。日本国内にかけても超激安の通話料です。長距離電話の人はどうせなら相手にもGoogle Voiceに登録してもらいましょう。Google Voice同士は当然のようにタダで通話できます。お得です。

 
つことでGoogleアカウントをアップグレードします。紐付ける電話番号はIPKALLで取得したもので問題ありませんが,アップグレードを行うためには米国内からGoogleに接続する必要があります。そこで,米国内のサーバにVPNを張ってくれるソフトを利用します。公衆無線LANなどを利用する際に安全に通信するためのソフトなので,マクドナルドやスターバックスなどから接続するときは当然この手のソフトを使っていることと思います。それからGoogle Voiceにアップグレードする際には発信実績がないと蹴られます。普通はあらかじめ10ドルばかしチャージしてGMailの画面から「電話をかける」リンクを踏んでダイヤルパッドを出して電話しておくんですが,ここでもIPKALLの番号にかけておけばチャージしてなくても大丈夫でしょう。私はチャージしてから自宅にかけましたが,それでも1分以内に切れば2セントしかかかりません。

 
つうことでGoogle Voiceにアップグレードして取得した電話番号で発信も着信もできるようになりました。ただし,Google Voice純正アプリからはどうやらSIMカードの番号にしかコールバックさせてくれないようで,SIMの刺さってない端末からはうまく発信できません。つかSIM刺さってても紐付けてない番号なので発信できません。そこで非標準のサードパーティーアプリを使います。Voice+がオススメ。

 
実際にデモしてみました。どうも携帯電話やPHSあての発信では発信者番号がおかしくなるようですが,とりあえず相手先に電話をかけることはできます。また,Google Voiceで取得できる番号はアメリカ国内のものになるため国際電話になりますが,ちゃんと着信させることもできました。ちなみに日本国内からでもIP電話から発信する場合,Google Voiceの米国内電話番号宛でも市内通話並みの通話料で済みます。

 
実用上は,まあ,うーん,やっぱ国際電話だねえ,といった感じでしょうか。音の小さい部分がカットされている風味なので,ハンドセットに工作してアンプを内蔵すると幸せになれるかもしれません。

 
つことで,テラ安い音声通話網を構築することができてしまいました。Asterisk同士を接続してやればそらもう無料ですが,まあそうですねえ,普通にSkype使えや,って感じですかね('A`)
でもまあ,二年縛りが解けて機種変更した後に宙ぶらりんになったXperiaとかそのへんを使って作ってやればコストをほとんどかけずにもう一個電話回線ができるようなもんですし,普通の電話とも発着信できて,固定電話や携帯電話など既存回線との通話ではたぶんこれ以上安くはならないくらいの通話料で済むので,ひまな人は作ってみてもええんやないかな,とは思います。

 
 で。
 
 まあ,思いつきでやってみたわけですが,事実上電話番号を無限増殖させることができます。まあ国内の電話番号ではないので取り回しは悪いかもしれませんが,たとえば電話番号をキーにしたポイントカードあたりは「新規加入で500ポイント」とかをなんぼでも取得できるようなことになりますよね。
 Asteriskで内線番号を増やしてIPKALLにつなげばいいんですから。メアドが足りないこともありません。自宅鯖でAsterisk立てるのならDDNSとか使うでしょうからドメイン名でアクセスできるので,適当にユーザ作ってやればメアドも無限増殖できますから。
 また,SIMも刺さってませんし,Googleのアカウントさえ設定してやりゃ連絡帳やGoogle Voiceの番号も簡単に復帰できますから,本体を交換するのもたやすくなります。固体識別番号系の物件の呪縛からも逃れられますし,Android IDあたりを使っているトレーサーから回避するならときどき初期化して再設定してやりゃ済みます。無敵です。
 
 当初,それなりにでかい画面のタブレットでダイヤルパッドを表示したらお年寄りでもダイヤルしやすいかねー,とかその程度でタブレットIP電話を仕込んだりしている延長で思いついたことですが,既存キャリアに頼らずになんとかなってしまったのでどうしたもんでしょうかね('A`)
 
 ともあれ,もしGoogle Voiceが国内で正式サービスを開始したら通話料の価格破壊どころの騒ぎじゃなくなりますし,そもそもAndroidにあらかじめGoogle Voice入れて「あとはアカウント作ってアップグレードしてね」でキャリアは単なるパケ放題の土管になってしまいますから,普通に考えて既存キャリアが思いっきり抵抗すると思いますので,まあそう簡単にGoogle Voiceが日本で正式にサービスインすることはないんじゃないかなと思いますが,いきなり「あ,サービスするよ」とかやりだすかもしれんなあと期待してみたりもします。
 
 つことで,携帯電話の通話料が納得できんくらい高い,というところから端を発して,自宅の電話番号を持ち出すことでIP電話の格安料金を無理やり適用した内線電話持ち出しから,ついには基本料金ゼロで固定電話に1分1.5円の通話料というところまで行き着いたので,しばらくは通話料削減ネタはやらないかもしれません。もうおなかいっぱいです。っていうかこれ実験してて電話番号が無駄に増えすぎてしまいました('A`)
 
 とりあえずまあ,ほら,ハカーといえば長距離電話のタダがけっつうことで。・・・かなり違うね('A`)