FreePBXでひかり電話を収容してやった話#02

とりあえずひかり電話を収容するよ

はじめに

続けて書きます第2回です。今回は何をするかと言いますと、タイトルの通りでありまして、FreePBXでひかり電話を収容して行こうと思います。
前回も述べたとおり、NTTの提供しているフレッツでは「ひかり電話」というサービスを提供しています。そして、ひかり電話契約者にはひかり電話対応のルータもしくはONUとルータが一体化したホームゲートウェイ(HGW)が渡されます。我が家にはHGWであるPR-400MIが来ているわけですが、こいつには簡易的なSIPサーバ機能が搭載されており、HGWとIP電話対応のソフトウェアもしくは電話機があればIP電話が使えるようになっています。今回は、HGWのSIPサーバ機能を活用し、イエデンをFreePBXに収容していこうと思います。

作業をする

それでは早速作業しましょう。

HGW側の設定

楽なので、まずはHGWの設定を行います。内線設定画面にアクセスできない場合や、IP電話をつなげる設定がなければHGWを利用する方法はできないので注意してください。

  1. NTTのHGWには、 http://ntt.setup もしくは http://192.168.1.1 (デフォルト設定の場合)からアクセスできます。Basic認証の画面が出ますので、ユーザー名とパスワードを入力してください。
  2. ログインできたら、[電話設定]>[内線設定]にアクセスします。
    内線設定画面
  3. 内線の3番から7番待てがIP電話用に用意されている領域ですので、3番から7番までのいずれかの番号の右側にある[編集]を選択します。
  4. 内線番号、ユーザーID、パスワードを確認し、控えておきます。必要に応じてパスワード等は変更しましょう。
    内線画面
  5. これでおしまい!!!

【追記】ProxmoxVEを使うことにしましたの話

この後でDebian12にFreePBXをインストールした訳なんですが、運用上の都合があって構成を変更しました。PVE上にDebianのLXCコンテナを立てて、そこにFreePBXをおく形に変更しています。これは、複数の0ABJな電話番号を収容するために編み出した方法です・・・。コミュニティを解読する限りでは、FreePBXは複数の番号を収容することを想定していないようです。

FreePBXをインストール

  1. 鯖機にするコンピュータにDebianをインストールします。「Debian」だけに限らず、UbuntuなどのDibian系ディストリビューションなら大丈夫だと思いますが、試していないので分かりません。
  2. いつものおまじないをします。sudo apt updatesudo apt -y upgradeですね。
  3. 鯖機のIPアドレスを固定します。お好きな方法で固定していいと思います。私はHGWのDHCPサーバ機能の設定から固定しています。
  4. FreePBXにはインストールスクリプトが用意されているので確認してください。
  5. 上記GitHubのページにあるようにwget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh -O /tmp/sng_freepbx_debian_install.shbash /tmp/sng_freepbx_debian_install.shを実行してください。
  6. それなりに時間がかかりますが、2時間もあればインストールが終わると思うのでそれまで待ちます。
  7. インストールが終了したら、鯖機のIPアドレスをお好きなブラウザに入力します。おそらくFreePBXのコンソールにアクセスできるはずです。

FreePBXの初期設定

前提として、本記事を執筆時点での最新バージョンであるFreePBX17を使用して設定していきます。
Asterliskのバージョンは20です。これは執筆時点で安定性が高いと言われていたからですが、22でいいと思います。

  1. ブラウザに鯖機のIPアドレスを入力し、管理画面にログイン。ID・パスは「admin」が初期設定のはずです。せめてパスワードは変えた方がいいでしょう。
  2. FreePBXのUIは日本語に対応してくれています。右上の言語設定から日本語に変えておきましょう。(尚、翻訳は中途半端の模様)
  3. 「高度な設定」で、適宜国別の設定を日本に変更します。
  4. 「Asterlisk SIP 設定」を調整します。
    • 一般的なSIP設定>NAT設定のところで、「外部IPアドレス」と「ローカルネットワーク」を入力します。
      外部IPアドレスはNATしているルーターのローカルIPを、ローカルネットワークはCIDRで入力です。
    • SIP設定>SIP設定[chan_pjsip]のところで、「0.0.0.0(UDP)」の場所で、「トランスポート元のドメイン」と「ローカルネットワーク」を入力します。
      「トランスポート元のドメイン」にはルーターのIPを、「ローカルネットワーク」はネットワークアドレスをCIDRを入力してください。
  5. だいたいこれくらいでFreePBXの設定はおしまいです。

イエデンをFreePBXに収容する

  1. pjsipトランクを作成します。
  • generalの項目をいい感じに調整します。
    • トランク名は何でもいいでしょう。
    • アウトバンドCIDには、<{{イエデンの電話場号}}>
    • 最大チャネル数はお好みで。私はなんとなく3にしました。
  • pjsip設定の項目にある、generalの中身をいい感じに調整します。
    • 「ユーザー名」は内線番号を入力してください
    • 「Auth username」は先ほどHGWの設定でメモしたユーザー名を入力してください
    • 「Secret」には先ほどHGWの設定でメモしたパスワードを入力してください
    • 「Authentication」はOutboundに
    • 「レジストレーション」はSendに
    • 「Language Code」は日本語に
    • 「SIP Server」はHGWのIPを入力してください
    • コーデックは、ulaw、alaw、h264、mpeg4にします
  1. 内線を作成します
  • 必要な数の内線を作成してください
  1. 着スイングループを作成します(必要に応じて)
  2. インバウンドルートを作成します。
  • 名前は何でも良いです
  • 宛先は「内線」にして、適度な内線を指定すればとりあえず使えるようになります
  • 「プライバシー」の項目で、非通知の着信を拒否する設定ができますのでお好みで。
  • 「Other」の項目で、通話録音の設定ができます。(私は設定しました。録音は/var/spool/asterisk/monitor/に保存されます。)
  1. アウトバンドルートを設定します
  • 「経路名」はお好みで
  • 「ルートCID」には、<{{イエデンの電話場号}}>を入力してください。
  • 「一致したルートのトランクシーケンス」には、先ほど作成したトランクを指定してください。
  • 「Dial Patterns」には、0N0XXXXXXXX0ZZXXXXXXX0ZZXXXXXXXX1XXXXXXXXを入力しました。実は何がいいのかよく知りません。
  • 「詳細設定」に通話録音の項目があります。必要に応じてどうぞ。

テスト用にIP電話の設定をする

  1. スマートフォンでもIP電話機でも何でもいいですが、先ほど作成した内線を設定してください。
  2. 何かの電話でいまIP電話に収容しようとしているイエデンに電話をかけてください
  3. 繋がれば今回のミッションはコンプリートです

おわりに

途中で急ぎ足になりましたが、これでとりあえずイエデンをFreePBXに収容することができました。次回は、アナログ電話をFreePBXに収容します。たぶん次回も急ぎ足です。忘れそうになっているので。

参考文献

たぶん前回と同じです。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。