NUCマシンでスマートフォンを内線電話にしてみる
省スペースなPCでIP-PBXを構築
(2013/10/7)
「NUCマシンを貸しますので、何か面白いことをやってください」。そんな電話を、ある日、編集部からいただいた。
NUC(Next Unit of Computing)とは、インテルが提唱する、手のひらサイズPCの規格(フォームファクター)だ。4×4インチという超小型のマザーボードを中心に、メモリやmSATA SSDなどを組み合わせて完成させるベアボーンキットの形で販売されている。
今回借りたのは、インテルの「NUC Kit DC3217IYE」。CPUにCore i3-3217Uを搭載し、ギガビットEthernetポート1つと、HDMIポート2つ、USB 2.0ポート3つを備える。あとは、SO-DIMMスロットにメモリを、mini PCI ExpressスロットにmSATA SSDを取り付ければ、動作する。
サイズは116.6×112.0×39.0mmという手のひらサイズ。ちなみに、筆者宅では自宅内のちょっとしたサーバーに、ピノーのSizka Basicを動かしているが、並べてみるとだいたい同じぐらいの大きさだ。比較するのはどちらにも恐縮だが、Sizka BasicはCPUがGeode LX800という非力なマシンで、それに比べると、DC3217IYEは今どきのPCのスペックを持ったマシンという違いがある。
ひかり電話+AsteriskでIP-PBX
さて今回は、NUCマシンを使ってIP-PBX(IP電話交換機)を作り、スマートフォンを内線電話にしてみたいと思う。
IP-PBXとは、その名のとおり、IP電話の交換機だ。アナログ電話では、会社内などに交換機を置いて内線網を作り、社内や外線との電話の呼び出しなどを制御している。同じように、LAN内のIP電話の呼び出しなどを制御するのが、IP-PBXだ。なお、IP電話の呼び出しには、SIP(Session Initiation Protocol)というプロトコルなどが使われる。
IP電話の電話機の利点として、専用のIP電話機だけでなく、ソフトウェアベースの電話機が使える点がある。特に、社内LANにつないだスマートフォンを内線電話にできるのが便利だ。SIP対応のIP電話機能は、Android 2.3以降では標準機能で、iPhoneでもアプリを入れることで使える。
実は、家庭用の「ひかり電話」用のルーターにも、簡易的なIP-PBX機能が付いている。これを使うと、通常のアナログ電話のほかに、LAN内のIP電話を子機として接続できるようになっている。
ただし、ひかり電話ルーターのIP-PBX機能で扱える子機は数台程度。さらに、機能も簡単なもので、どちらかというと親子電話に近い。
そこでNUCの登場だ。LAN内、つまり家庭内やオフィス内に置いてもじゃまにならないNUCをIP-PBXにすれば、高度な内線網が作れるわけだ。
IP-PBXには、オープンソースの「Asterisk」をNUCにインストールして使う。AsteriskはオープンソースのIP-PBXとして広く使われているソフトウェアだ。国内でも秋田県大館市やTOHOシネマズなど企業や自治体での採用事例が発表されている。IP-PBXの基本機能だけでなく、ボイスメール(留守番電話)やIVR(自動音声応答)など、多くの機能を持っているのも特徴だ。
今回、Asteriskを入れたNUCを、ひかり電話に対しては子機として、IP電話機からは交換機として設定する。
なお、最近はインターネットからのIP-PBXを狙った攻撃も報告されている。この例の構成ではIP-PBXをインターネットに公開していないので、少なくともインターネットからの攻撃は受けないだろう。
IP-PBX用OSをインストール
まっさらのマシンで簡単にAsteriskのサーバーを建てるときには、Asteriskの公式サイトから配布されている「AsteriskNOW」をインストールする方法がある。AsteriskNOWは、Linuxディストリビューションの一種で、OSをインストールすると最初からAsteriskによるIP-PBXのシステムがインストールされるというものだ。
AsteriskNOWのサイトに行くと、32bit版または64bit版のインストール用ISOイメージをダウンロードできる。ダウンロードのときに、ファイルサイズやチェックサムが明記されていないので、ちゃんとダウンロードできたか不安だったが、公式フォーラムに有志がMD5チェックサムを公開していたので確認できた。なお、ISOイメージのファイルサイズは、32bit版で約437MBだった。
ISOイメージをCD-Rなどに焼いておき、NUCマシンに光学ドライブをUSBを取り付けて、CD-RからNUCマシンを起動する。起動画面の「boot:」というプロンプトで「1」と入力してEnerキーを押すと、インストールが開始する。実はAsteriskNOWはCentOS 6がベースになっており、インストーラもほぼCentOS 6のものだ。ただし、CentOSに比べると設定項目が少なく、タイムゾーンとrootのパスワード、ディスクの使い方の3つだけを設定すれば、よいようになっている。
インストールが完了して、CD-Rをドライブから取り除いて再起動すると、Linuxのコンソールベースのログイン画面が表示される。サーバーとして使うには、ここから最低限、デフォルトでDHCPから取得するようになっているIPアドレスを固定アドレスに変更し、パッケージを最新に更新して、NTPでサーバーの時刻を合わせるとよい。
なお、筆者宅のひかり電話ルーター「PR-S300NE」では、初期状態でDHCPサーバーがLANのIPアドレスすべてを管理するようになっていた。固定IPアドレスを使うには、ルーターのDHCPサーバーの設定で、管理するIPアドレス範囲を変更しておくとよいだろう。
比較的簡単といっても、AsteriskNOWでIP-PBXを作るには、Linux(CentOS 6)の管理の知識は必要だ。CentOSについては入門書籍もいろいろ出版されているので、参考にしよう。たとえば、宣伝になるが、Impress Watch社と同じインプレスグループのインプレスジャパン社からは「できるPRO CentOS 6サーバー」が出版されている。
さて、ここまで簡単と書いてきたが、ひかり電話の子機としてAsteriskを設定するのは、少々手間がかかる。ひかり電話のルーターにAsteriskから接続するときに、認証がうまく通らないためだ。ひかり電話ルーター対応のパッチが公開されているので、Asteriskのソースを取得してパッチを適用し、自分でビルドして、必要なファイルを置きかえる、といった作業が必要で、ハードルが高い。パッチやビルドなしで使うには、実験であれば、ルーター側で認証を使わない設定にすることで、ひかり電話ルーターにAsteriskを接続する方法もある。
内線番号を登録するだけで動いた
OSがインストールできたら、もうIP-PBXのシステムが動いているので、さっそく設定しよう。
AsteriskNOWでは、Webベースの管理画面「FreePBX」が採用されている。LAN上のPCのWebブラウザーから、NUCのサーバーを指定すると、FreePBXが表示される。そこから、初期ユーザー名とパスワードを入力して進むと、管理画面のトップ画面になる。ただし、筆者の試したところでは、エラーとともに「“amportal chown”を実行すること」とメッセージが表示されたので、Linuxのコマンドラインから実行したところ、エラーは消えた。
ひかり電話につなぐ前に、まずスマートフォンを内線電話にして試してみよう。画面上端のメニューから[Applications]→[Extensions]と選んでいくと、Extension(内線)の追加になる。ここで[Generic SIP Device]を選び、スマートフォンに割り当てる内線番号やパスワードを設定すると、IP-PBX側の設定は完了だ。なお、FreePBXでは、設定したあとに画面上端のメニューに現れる[Apply Config]をクリックしないと設定が反映されない点は、要注意だ。
次にスマートフォン側を設定する。筆者のAndroid 2.3機(Xperia Arc)の場合、設定を[通話設定]→[アカウント]→[通話方法]と進めむ。ここで[着信を受ける]にチェックマークを付けたうでで、[アカウントを追加]で、AsteriskNOWで設定した内線番号やパスワードなどを設定する。また、[通話設定]→[通話方法]の設定を[常に確認する]にすることで、発信するときに携帯電話回線を使うかIP電話(内線)を使うかを聞かれるようになる。
この状態で、内線を試してみよう。1台だけでも、内線で「*60」に発信すると、Asteriskが受けて、時報を読み上げてくれる(英語)。また、「*43」に発信すると、自分の声を少し遅れて返してくるエコーテストになる。
また、FreePBXの画面から同じように内線番号の追加を実行して、2つめの内線番号を登録できる。この内線番号をPCなどに設定して、1つめの内線番号を呼び出してみることもできる。
ひかり電話で外線の発着信
内線が使えるようになったので、ひかり電話ルーターと接続して、外線の発着信を試してみる。
まず、ひかり電話ルーター側で、内線設定から「IP端末」を設定する。筆者のところでは、最初から内線番号やID、パスワードが割り振られていたので、それらをメモした。
Asterisk側では、細かい設定の説明は省くが、まずメニューの[Connectivity]-[Trunk]で[Add SIP Trunk]を選んで、ルーターとの接続を設定する。ここで、接続のための各種情報や、外線発信のときに番号の先頭に付ける数字などを設定する。そして、メニューの[Connectivity]-[Outbound Routes]から外線発信の設定を、[Connectivity]-[Incoming Routes]から外線着信の設定をし、着信通知先にスマートフォンを指定する。
設定が済んだら、設定した数字を頭に付けた電話番号を指定してIP電話で発信すると、外線に発信できる。また、ほかの携帯電話などを使って外線から電話をかけると、スマートフォンに着信する。
以上、NUCマシンを使ってIP-PBXを作り、スマートフォンを内線電話にしてみた。内線電話なのでオフィス内に設置することになり、邪魔にならない小ささのNUCマシンはメリットがある。
IP-PBXに限らず、ちょっとしたサーバーをオフィス内に設置するケースはある。そのときに、スタンダードなPCの構成を超小型サイズで実現したNUCマシンは、使い道が広がりそうだ。
URL
- インテル® ネクスト・ユニット・オブ・コンピューティング
- http://www.intel.co.jp/content/www/jp/ja/motherboards/desktop-motherboards/nuc.html
バックナンバー
- まとめ一覧
- 第12回 NUCマシンでスマートフォンを内線電話にしてみる (高橋正和) [2013/10/07]
- 第12回 小型、静音、低消費電力のNUCをネットワークで活用! どこからでも使えるもう1つのデスクトップとして使う (清水理史) [2013/10/02]
- 第10回 NUCは俺のゲームBOX お手軽環境で遊び倒す! (佐藤カフジ) [2013/09/27]
- 第9回 インテル「NUC」を“デキるサラリーマン”のモバイル風PC環境に (日沼諭史) [2013/09/24]
- 第8回 クルマにPCが組み込まれていてもいいじゃないか! (高橋敏也) [2013/09/17]
- 第7回 窓の杜のフリーソフトで楽しむNUC特集 (石田賀津男) [2013/09/17]
- 第6回 果たして猫とNUCは、相性がいいのか? (大原雄介) [2013/09/13]
- 第5回 超小型PC「NUC」でも、PCオーディオを実現できるのか?(藤本健) [2013/09/10]
- 第4回 主夫の知恵! NUCで“キッチンパソコン”を構築 (藤山哲人) [2013/09/06]
- 第3回 NUCは小さいからモニターに隠しちゃえ フォトレタッチも可能! ゴージャスなフォトフレームをつくってみた(スタパ齋藤) [2013/09/03]
- 第2回 NUCだろうが拡張できてナンボだ!(石川ひさよし) [2013/08/30]
- 第1回 インテルの超小型PC自作キット「NUC」で遊ぼう!(平澤寿康) [2013/08/26]