ひかり電話ルータ(RV-440KI)とVPN接続したVPS(さくら)のAsteriskで留守番電話

Posted by joeartsea on 2013-06-16

まだ専用サーバが物理的なものしかなく高価だった時代に、約5年間ほど自宅サーバでブログや目立たない小遣い稼ぎサービスを運用していたわけですが真夏に熱でダウンしたりで当時VPSで破格を打ち立てたさくらのVPSヘ移行しました。

それからというものファイル共有やストリーミングなど自宅サーバで享受していたプライベートな恩恵はVPS側にOpenVPNを構築して実現していたわけですが、ひかり電話ルータがVPNのクライアントになれない以上ひかり電話の下にAsteriskを置いてごにょごにょするには自宅にマシンが必要で、だったら本末転倒、移行した意味がなくなってしまいます。

ただ、最近自宅の光回線で借りてるルータ(RV-440KI)のファームウェアバージョンアップでVPNサーバ機能が追加されたらしいので試してみました。あくまでサーバなので、さくらのVPSを自宅ルータのVPNクライアントとしてVPNを張り、VPSにAsteriskを入れて留守番させようと思います。

まずはRV-440KIのVPNサーバ機能の設定ですがPR-400KI-HGWのファームアップをしてVPNサーバー機能を設定するの通りでイケました。本来の目的じゃないですが記事中にあるVPN越しにiPhoneをひかり電話のクライアントにする設定をすれば外出先で自宅の固定電話に出る事ができます。

元々、自宅ではひかり電話のためだけに電話機を買うのがバカバカしかったのでiPhoneを子機にしていました(でもアプリ起動してないと着信が鳴らないので不便)私の場合はiPhone側のVPNクライアント設定をするだけで元々設定してあるSIP設定が活きて外部から自宅の電話に出れました。これができれば留守電いらないじゃんという突っ込みは無しにして次に移ります。

まずはPR-400KI-HGWのファームアップをしてVPNサーバー機能を設定するのルータの設定画面にiPhoneやAndroidをVPNクライアントとして設定する方法と同様にVPS用のVPN接続設定も作ってあげます。ユーザ名とパスワードは同様に任意です。

次はVPSから自宅ルータのVPNへつなぎます。私はプロバイダで固定IPサービスを利用していますが自宅側のグローバルIPが固定じゃない場合はDDNS(ダイナミックDNS)などを利用してください。言い忘れましたがRV-440KIのVPNはL2TP/IPsecです。ですのでVPS側にIPsecの実装であるOpenswanとxl2tpdをインストールして接続します。

CentOS 6.0 を L2TP-VPN クライアントにするの通りに設定することでイケました。この記事だと自分用にどこを修正するのか解り難いと思いましたので修正箇所を解りやすく記述しているヤマハ-ルータ(RT107e)のIPSec/L2TP – 2:Centosとの接続のCentOSの設定を見た方が良いと思います。

※両方の記事とも/etc/ppp/chap-secretsのユーザ名とパスワードをダブルクォートで括っていますが実際はダブルクォートで括らずユーザ名とパスワードだけ記述してください。ちなみに"vpn-account"と言ってるのがルータで設定したユーザ名で"vpn-password"がルータで設定したパスワードです。"xl2tpd"部分は恐らくルータで設定した設定名(デフォルトだと「VPN設定1」など)ですが良く解らなければ「*(アスタリスク)」でOKです。

※ちなみに私の環境はCentOS5だったのでリポジトリにxl2tpdがなかったのでEPELリポジトリを追加します。yumで、より新しいパッケージをインストールする方法(CentOS)のEPELのところを見て環境に合わせて実行します。ただepelリポジトリのダウンロード先が現在つながらないようだったのでググったら「download.fedora.redhat.com」が繋がらない場合は…に現在のURLがありましたので前記事のepelリポジトリURLを書き直してEPELリポジトリを追加してください。

VPSとひかり電話ルータでVPNが張れればルータのVPN設定でVPS用に設定した箇所の接続状態が「接続中」になります。張れない場合はVPSのログを確認して対処するしかないでしょう。VPNが張れればあとはVPSにAsteriskをインストールしてVoicemailの設定をするだけです。Asteriskのインストールは最近ではyumでインストール可能になってるようです。Asterisk1.8のインストール(CentOS5.5 x86_64)を見てインストールしました。

インストール箇所以外の初期設定やSIPレジスト方法(今回の場合はルータの電話設定 > 内線設定への登録)はAsteriskとひかり電話で外線接続を見てください。レジストできない場合はVPNのネットワークインターフェイスは通常ならppp0なので自身のiptablesの設定内容を確認しポートの追加または修正を行ってください。Asteriskに関係するポートはデフォルトでSIP(UDP/5060)とRTP(UDP10000~20000)です。