忍者ブログ

FreePBXと050 Freeで月額50円以下でビジネス用レベルの最強IP電話を実現する話

このブログは、Linux系OSを使ったことのない人でも敷居が低いFreePBXおよび、IP電話最安値の050 Freeを一緒に使うことで低コストで法人向けレベルのサービスを享受するためのブログである。

   

Windowsしか使ってこなかった人でもできる! FreePBXの導入について 第三章 着信・発信・留守番電話

ようやく面倒な作業が終わり、ついに本格的に作業が進められる。

まず最初に、内線番号を割り振る。Asteriskでは、内線番号を割り振ることは、アカウントを発行することと同じである。
番号は好きな番号で良い。

上メニューの、Applications→Extensionsから内線番号を追加・削除・内線番号ごとの設定の変更ができる。

そして、Add Extensionで内線番号を追加するのだが、通常選ぶ通信プロトコルの種類は3つある。
  1. Chan_SIP
  2. PJSIP
  3. IAX2
Chan_SIPは従来までのSIPである。普通はこれで良いだろう。
PJSIPは新しいSIPである。新しい故に上手くいかないことが多く(自分だけかもしれないが)、あまりお勧めではない。
IAX2はSIPとは全く異なるプロトコルである。SIPに対して優れている点もあるが、携帯電話では消費電力がとても大きいので自分は発信専用として使っている。

ただ、普通に使うならChan_SIPで良いだろうので、ここではChan_SIPの説明のみする。

User Extensionに内線番号(兼ユーザーID)、Display Nameに内線発信時に相手方に出る名前、
Secretにパスワードを入力する。
また、User Manager Settingsで、ユーザーコントロールパネル(今後UCPと略す)でのIDとパスワードを設定できる。

次に、Voicemailタブを開く。ここで、留守録の設定ができる。

EnabledをYes,Voicemail Passwordを数字のみで設定し、Disable (*) in Voicemail MenuをNoにする。これだけで、*97にダイヤルするだけで留守録が聞けるようになるが、
Play CIDをYes,Play EnvelopeをYesにすることで、その留守録が録音された日時と、どこから掛かってきたのかがわかるようになる。

次に、Advancedを見る。
 
ここでやっておきたいことは、NAT ModeをAutomatic Force Bothにすることである。これでNAT越えをしやすくする。
また、消費電力を抑えるために、Qualify Frequencyの数字を大きくして、通信可能かどうか調べるためのパケットを送信する回数を減らすべきだろう。
また、携帯電話で使う場合は通信ラグを考慮して、Qualifyの数字を上げておこう。(5000でよいだろう)


内線番号だけ割り振っても、肝心の外部との着発信はまだ出来ない。
次にすべきことは、外部との通信を司るTrunkと言う項目だ。
Connectivity→Trunkで、この項目に入れる。

まず最初にするべきことは、このdahdiと書かれた項目を、右にあるゴミ箱ボタンを押して消すことである。(050Freeと一緒に使うだけならば絶対この項目を使うことはない)
次に、Add TrunkからAdd SIP (chan_sip) Trunkを選択すると、次の画面になる。

Trunk Nameは識別のためだけなので自分でわかりやすい名前をつける。
Outbound CallerIDには050686XXXXX(IP電話プロバイダーより割り振られた番号)を入力し、次にsip settingsに飛ぶ。

050Freeを契約している場合は、OutgoingのPEER Detailsに以下の文字列を入れる。
その他の事業者の場合は自分で調べよう。Trunk Nameは被らなければ何でもよい。
type=friend
host=softphone.spc.brastel.ne.jp
username=XXXXXXXX(ユーザーID)
fromdomain=softphone.spc.brastel.ne.jp
fromuser=XXXXXXXX(ユーザーID)
secret=ZZZZZZZZ(パスワード)
context=from-trunk
insecure=port,invite
disallow=all
allow=ulaw&gsm
canreinvite=no
さて、次にIncomingに行き、050 Freeの場合はRegister Stringに次の文字列を入力する。
(ユーザーID):@softphone.spc.brastel.ne.jp:(パスワード)@softphone.spc.brastel.ne.jp/先程作った内線番号

次に、上メニューのConnectivityからOutbound Routesに入り、
Add Outbound Routeを押す。すると以下のような画面が出てくる。

ここで、Trunk Sequence for Matched Routesに、先程のTrunkを入れる。
Route Nameは区別のための名前なので適当に、Route CIDには自分の電話番号を入れる。
また、Route Passwordを入れると、発信の度にパスワードを必要とする。セキュリティを重視するならこれも入れておこう。


次に、Dial Patternsの設定に移ろう。ここでは、発信先を制限することができる。
発信先を制限することは重要で、これを行なわないと、万が一アカウントが悪用された際に勝手に国際電話を掛けられてしまう可能性がある。
パターンは、0120XXXXXX,0NXXXXXXXX,0NXXXXXXXXXの3つで事足りるはずだ。
これらを1つずつmatch patternに入れればよい。
次に、このままだと英語の音声が流れてしまうので、日本語音声を流すための作業をする。
この作業はかなり簡単で、特にコマンドを打ったりする必要はない。
上メニューのAdmin→Sound Languagesを選び、Japaneseの音声を入手する。
日本の固定電話はulawを使っているので、コーデックはulawのみで良いだろう。

ダウンロードしたら、Change Global Sound Languageをクリックし、LanguageをEnglishからJapaneseにする。

最後にすべきはポート番号を変えることだ。
通常の設定ではSIPのポートが5061 or 5160,PJSIPのポートが5060になっているが、プロバイダーのサーバーは5060ポートを使っているので、このままだと上手くいかない。
PJSIPのポートを何か他の番号にずらし、(9999とか)SIPのポートを5060にしてやる必要がある。


Chan PJSIP Settingに入り、0.0.0.0(udp)のポート番号を適当な番号に変更し、Allow GuestsをNoにし、Chan PJSIP SettingのタブのままSubmitを押す。
次に、Chan SIP Settingsに入り、Bind Portを5060にし、Allow SIP GuestsをNoにし、やはりChan SIP SettingsタブのままSubmitを押す。
(この時、消費電力を抑えるためにも、Regitration Minimum/Maximum Expiryの2つの数字を上げておくと良い。上げすぎると着信に失敗するので、Min3600,Max7200で良いだろう。また、一番下のOther SIP Settingsに、tcpenable = yesを入れておくとTCPで通信ができるようになる。)
ここで、ポート番号を変えた(のとTCPを有効化する)ので、Asteriskを再起動する必要がある。(PC再起動はしなくてよい)
これを行うためには、上メニューのAdminから、Asterisk CLIに入り、core restart nowと入れ、SendCommandを押すと即座に再起動が開始する。

しばらくすると再起動が完了する。

これで作業が全て完了したので、自分のグローバルIPアドレスをソフトフォンからレジストしてみよう。
正しくレジストできていれば、サーバー-端末間の通信は正しくできている。
050 Freeユーザーであれば、05068680000がテストコール用番号なので、ここに掛けて正しく発信が出来ているか確認できる。
また、050 Freeは、自分から自分にかけることができるので、着信テストには、携帯電話とPCを用意して、片方をAsteriskに登録してかけてみると良い。

また、050Free,CloudSoftphone,Acrobits Softphoneのプッシュ着信がオンになっていると着信時の挙動がおかしくなることがあるので、サーバーを運用する上ではこれらを常にオフにすることを推奨する。(TCP通信が出来れば、常駐型のソフトフォンでもそこまで電池は食わないはずである、また、常駐型のほうが着信精度は高い。)
PR

Windowsしか使ってこなかった人でもできる! FreePBXの導入について 第二章 セキュリティ

さて、インストールお疲れ様です。

次に行うことは、メインPCからhttp://xxx.xxx.xxx.xxxにブラウザからアクセスすることである。

すると、次の画面が出てくるが、この画面でのユーザー名およびパスワードは、サーバー機で行なったrootのパスワードの設定とは全く無関係である。
ここで設定するのは今後使うであろう、GUI管理画面でのユーザー名およびパスワードである。

これを入力すると次の画面が現われるので、FreePBX Administrationを選択する。

すると、次の画面が出てくる。Activateしたい人はどうぞ。ただし、後からでもActivateはできる。

次の画面がとても大事で、ここでFirewallの設定ができる。

Continue→Nextを選び、
次に今使っているクライアントは信頼できるかどうか聞かれる。通常はYesを選択する。
その次に、現在使っているネットワークが信頼できるかどうか聞かれる。これは場合にもよるがNoのほうが良いかもしれない。
その次はResponsive Firewallを有効にするか聞かれる。これは、何回か間違えるとしばらくそのIPアドレスから入れなくなるようにするものなので、家の外からも使うならばYesにしておこう。
最後に、自動的にAsteriskのIP設定をするか聞かれるが、これは二重ルーターなどのとても複雑なネットワークでない限りうまくやってくれるのでYesでよいだろう。
仮に、二重ルーターなどのとても複雑なネットワークに入っている場合はNoを選択し自分で設定するべきだろう。

これが終わると次にSIP Stationを使わないかという誘いがくるがこんなもん使わなくとも使えるのでNot Nowを押して無視。

次にするべきことは、FreePBXは新しいネットワークは必ず信頼されるネットワークとして認識するので、即座にこの設定を変更することだ。

ConnectivityからFirewallを選択し、次に右のほうにあるZonesを選択。
 

次に、Interfacesを選択した後、全てのネットワークアダプターをExternalにする。最後にチェックを押さないと適用されない。


さて、その次にすべきことは、AboutのResponsive Firewallから、Responsive Firewallを有効にすることだ。
最初の設定時にやるだけでなく、次にプロトコル毎の設定も変える必要がある。

これにより、外部からも着発信が可能になった。
あとは必要に応じ、Servicesから、ネットワークの種類毎にアクセス権限を割り振っていけば良い。

ここまでがセキュリティの設定である。
面倒臭かったかもしれないが、面倒臭いのはここまでで終わり。
次からは楽しい楽しい実際に通話に関する部分、第三章である。

雑記 SpeexをAsterisk(FreePBX)で使えるようにするとても簡単な方法

まず、rootとしてログインする。次に、
yum -y install asterisk-speex

この後、Asteriskを再起動するだけでSpeexが使えるようになったのでここに記す。

Windowsしか使ってこなかった人でもできる! FreePBXの導入について 第一章 OSインストール

この記事は主に今までWindowsしか使ってこなかった人を対象としている。

そのため、Linuxを使うことに慣れている人には少し説明が多く、読みづらいよう感じられるかもしれないが、ご了承頂きたい。

また、ここでは、サーバー機でない、実際にGUIで操作する方のPCをメインPC,サーバーとしてこれから稼動するPCをサーバー機と呼ぶ。

まず、FreePBXを導入するにあたり、以下の物が必要である。

  1. 2台のPC(片方はノートPC,できればRaspberry Pi等の超省電力PC)
  2. 十分な容量のUSBメモリ,SDカード or DVD対応の光学ドライブと書き込み可能なDVD(BDでも可だが高い)
  3. インターネット接続環境(サーバーは特に常時接続しておく必要がある)
  4. 基礎的なPC,ルーター設定の知識 (or/and) わからないことを調べる努力
ここまで見てゲンナリした方に朗報である。
私はここにLinuxについての知識とは書かなかった。
というのも、FreePBXは通常使用において、Linuxの知識はほとんど必要無いからである。(もちろんあるに越したことはないが)

まず前提知識として、FreePBXは無料で使うことができる。基本的な機能は無料で使える。一部モジュールが有料で金を取って儲けているのである。
また、USBメモリからOSをインストールできる。WindowsではDVDからインストールするのが一般的であるが、Linux系OSはUSBからインストールする人も多いようだ。

まず最初はメインPCで作業を行なう。

さて、まず必要なことは、FreePBXをインストールするためのデータをダウンロードすることである。

以下からダウンロードしてほしい。
https://www.freepbx.org/downloads/

環境に合わせて32Bitか64Bitを選ぼう。USBメモリ,SDカードからインストールする人はUSB IMGを選択し、DVD等の光学ディスクからの人はFULL ISOを選択しよう。


また、これをダウンロードしている間に、データを”焼く”(そのUSBメモリやディスクから起動できるようにする)ためのソフトを入れよう。

https://rufus.akeo.ie/

さて、この二つをダウンロードしたら、Rufusを使ってUSBメモリ等を焼こう。
  
まず最初にデバイスを選択し、
次に、ISOイメージの部分を、光学ディスク以外であればDDイメージにしよう。
それ以外の部分はいじる必要はないだろう。
全て問題無いならスタートを押して開始。

さて、ここからは、サーバー機で作業を行う。この作業ではキーボードのみを使う。

最初に、サーバー機がインターネットに繋がっていることを確認し、
BIOS(or UEFI)の設定から、USBメモリ等から起動するよう設定する。
すると、暫くした後に、以下のような画面が出るはずである。
ここからはキーボードの↑↓←→、Enter(return),space,tabキー等で操作を行う。
 
Asterisk11か13を選択できる。自分は13を利用しており、説明も13向けに書く。
ソフトウェアRAIDを利用しない場合は、No RAIDを選択してインストールする。
(ハードウェアRAIDを使用しているかRAIDを使用しない場合はNoRAIDを選択する。)
この際、起動後画面が真っ暗になってしまうようなことがあれば、インストールしたいオプションにしたら、tabキーを押し、~~~ nomodesetと付け加えよう。

また暫く待ち、次の画面になったらまた操作が必要になったということである。

IPv4,v6の2つのプロトコルに対応している。
基本的に、今後の設定が面倒にならないようにするため、最初からManual configurationを使い、サーバー機のプライベートIPは固定するべきであろう。
IPv6の有効化は任意である。
Manual configurationの場合、以下のような画面になるので、任意のIPアドレスを入力し、
サブネットマスクも入力する。/24または255.255.255.0の、どちらの入力方式も対応している。
また、デフォルトゲートウェイとDNSサーバーを入力する。自分はルーターがあるのでルーターを指定した。


次にタイムゾーンを設定する。この設定は時刻に関する設定になる。
日本に住んでいるだろうから、Japan/Tokyoで良い。
日本在住で無い方は自分の住んでいる場所を元にタイムゾーンを決めて頂きたい。

次に、root(管理者)のパスワードを設定する。強固なパスワードを設定しておこう。
また、将来いろいろやりたい場合や、他のコーデックを入れたい場合に使うだろう。

これが終わると、暫くは長い長いインストールに入る。

ある程度時間がかかるので、この間にサーバー機をDMZにするなり、いわゆるポート開放を行うなりすると良いだろう。

そして、再起動後、しばらくすると次の画面が出る。
この画面の状態でも次の作業にすすむことはできるが一応待とう。尚、5-10分では終わらない。

これも終わり、次の画面になったら無事終了。

サーバー機を手元に置いて作業する必要があるのはここまでなので、続きは第二章に。

050IP電話サービス比較となぜFreePBXと組み合わせるのか?

私の言う050IP電話サービスとは、
相手にインターネットを通じて発信できるだけでなく、
国内の050番号を取得でき、その番号で着信できるサービスを言う。

これは全般に言えることだが、
MVNOと契約しているなら、同じ事業者のIP電話サービスを使うべき。(どの事業者も、自分のIP電話サービス用にチューンを施しています)

ここでの金額は全て税別です。(国際電話は非課税です。)

IP電話サービス 比較表


サービス名 月額基本料金 固定・050宛 携帯宛 備考等
050Plus 300円 8円/3分 16円/1分 OCNモバイルONE利用者は割引or無料
Lala call 100円 8円/3分(*1) 8円/30秒 eo光,mineo利用者は無料通話100円/月付与
FUSION IP-Phone Smart 0円 8円/30秒(!) 8円/30秒 全ての電話が8円/30秒。国際電話は非課税で8円/30秒
050 Free 0円 8円/3分 5.5円/30秒 最安
Pointy 300円 8円/3分 15円/1分 特殊コーデック使用

(*1)050IP電話および近畿2府4県と福井県は7.4円/3分

050 Plus

有名どころはNTTコミュニケーションズが提供する050 Plusであるが、これは月額300円である。
留守番電話機能、発信者番号通知/非通知が選べる、電話番号が選べるなどあるが、
自分としてはあまり魅力を感じない。

Lala call

Lala callは、ケイ・オプティコム(関西電力)が提供するサービスである。
留守番電話機能、着信転送機能や電話番号が少し選べる(10個の内から選べるだったか?)といった機能がある。
そして月額100円で、コンパクトにまとまっている印象を受ける。
しかし、Lala callの最大の欠点は、純正クライアント以外での発着信が不可能なことにある。
これにより、FreePBX等を使って機能を補うといったことはできない。

FUSION IP-Phone Smart

FUSIONは楽天コミュニケーションズ(旧フュージョンコミュニケーションズ)が提供するサービスである。
留守番電話機能や着信転送機能が月額0円で使えるが、問題は固定・050宛電話が30秒8円であることだ。
携帯電話宛のみならまだしも、固定電話に電話することがある場合は金がかかりすぎるので、人を選ぶであろう。

050 Free

050 Freeはブラステルが提供するIP電話サービスである。
050 Freeは基本料金無し、固定宛は8円/3分、携帯宛が30秒/5.5円と他の追随を許さぬ安さである。
しかし、050Freeは着信転送機能はあるが、留守番電話機能がない。(とはいっても、この問題を解決するためのFreePBXなのだが)
通話のみと機能を絞ってこの価格と考えれば納得できる価格設定である。
050 Freeは、番号取得にSMS番号が必要との記載があるが、住所をブラステルに送ることでSMS番号無しでも最大3つまで番号が取得できるようだ。

Pointy

Pointyは050Plusと同じく月額300円だが、基盤がNamzak社なので、Namzak Ureka CodecなどのNamzak社特有の機能を使い、低遅延かつ高音質、そして低帯域幅と、とても使いやすいようだ。
留守番電話機能や不在着信機能もついている。
また、PointySIM利用者は、データ通信SIMのみでもIP電話サービスが無料になる。(050Plusは音声通話付きでないと無料にならない)
尚、この事業者の特徴として、留守録着せ替えサービスというユニークなサービスがある。
留守録の自動音声をアストレア福原香織さんの声にできるようだ。興味のある方にはお勧めである。


何が問題?FreePBXを使う理由は?

さて、ここまで見てきて、どのサービスも一見問題無さそうに見える。
しかし、問題は、どのサービスも着信拒否が不可能なことにある。
迷惑電話がかかってくる度に電話番号が変わっては大変だ。

また、独身ならまだしも、家族がいる場合は、何人も契約すると月額料金は2倍、3倍とどんどんかさむ。
これらの問題を解決するのがFreePBXである。FreePBXは1台のPCで家族全員収容できる。(大家族でも同時に沢山の通話をすることはまずないだろうから問題は無いだろう。)
また、留守番電話や不在着信通知、着信拒否だけでなく、公衆Wi-fiでも安心なTLSレジスト/通話内容の暗号化、家族間内線通話、転送電話、好きな保留音楽の設定、通話録音、通話時アナウンス、高音質通話
といった、普通ではビジネス用にしか入っていないような機能までもが1台のPCで実現できる。

また、Raspberry Piなら、(2Wを24時間、30日ずーっと付けっぱなしにしたとして)電気代は月額30円程度で収まる。(ラズパイ用のFreePBXとして、RasPBXというのがあるので、ラズパイではこれを使うことになるが。)

これらの超高機能を、ある程度機能があり、月額料金がかかるサービスと組み合せるのは金の無駄遣いに他ならない。
よって、FreePBXやAsteriskを使って節約したい御仁には、ブラステルの050 Free以外に選択肢は無いと断言する。

尚、この中にも無いIP電話サービスがいくつかある。
IP電話サービスについて詳しく知りたい方は、「自己満 備忘録」などが参考になるだろう。

プロフィール

HN:
zzz
性別:
非公開
自己紹介:
MVNOを契約し、最も安い050IP電話サービスである050 Freeを契約し、
その機能を補うべくAsteriskに手をだそうとしたが、失敗し、FreePBXに手を出し、ようやく安定してきた。

カウンター




P R

Copyright ©  -- FreePBXと050 Freeで月額50円以下でビジネス用レベルの最強IP電話を実現する話 --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]