2015年5月5日火曜日

Asteriskで留守電を超簡単に構築する

「留守電なんかいらないや」と思い、留守番電話を外しました。
そうして、今まで気軽に言っていた「電話に出られなかったら留守電にお願いします。」が言えなくなってしまいました。

なくなるとなくなるで、今まで留守電を便利に使っていたことに気付きます。




そこで、Asteriskを使って留守電を構築したいと思います。
ただし、「ボイスメールで留守電構築!」なんて難しいことはしません。




【 FUSION IP-Phone SMART 】

留守電には「FUSION IP-Phone SMART」を使います。
「FUSION IP-Phone SMART」は留守電が無料で使えるIP電話サービスです。


以下、公式サイトとWikiより抜粋
 IP-Phone SMARTはスマートフォン、PC、タブレット端末上の通話アプリから、Wi-FiやLTEネットワークを経由してフュージョンのIP電話プラットフォームへ接続します。電話網を介して携帯電話や固定電話との通話が可能になり、これまでの電話と変わらない感覚と格安料金での電話サービスをご提供します。

  • 基本料金無料で050で始まるIP電話を利用できるサービス。IP-Phone SMART 同士の通話は無料。
  • IP-Phone SMARTは初期費用・月額料金・留守番電話・着信転送・非通知・指定番号の着信拒否の機能が全て0円。発生する料金は通話料のみですので、気軽にお申込みいただけます。
  • その他向けの通話料は一律8.4円/30秒。携帯電話の通話機能よりも多くの場合安い。


  • この「FUSION IP-Phone SMART」(以降、FUSIONと略します。)は、FUSION同士の通話はもちろんのこと、留守電も無料で使うことができます。

    FUSIONの留守電は非常に高機能です。

    留守電が残されると、すぐにメールで音声メッセージが送られてきます。
    音声データは高音質で小容量のRiffWavです。

    また、留守録の再生はウェブからも行えるため、PCなどでも簡単に留守電が聞けます。

    なお、FUSIONと同じ機能をAsterisk(Linux)で構築することもできますが、かなりの手間です。
    Asteriskの設定だけではなく、WEBサーバを建てたり、メールサーバを建てたりと・・・。

    そんなこと、ものぐさな私はやりたくありません。



    【 FUSIONの留守電機能をAsteriskに取り込む 】

    わざわざ苦労してLinuxで各種サーバを構築する必要なんてありません。
    FUSIONに便利な留守電機能が無料で用意されているわけですから、これを利用します。

    やり方は簡単です。
    Asteriskの着信を一定時間後にFUSIONに転送するだけです。

    こうすれば、電話に出られないときは自動的にFUSIONに転送され、留守電に変わります。

    ここで重要なことは、お金を一切かけないことです。

    通常、着信を転送すると、転送先までの通話料がかかってしまいます。
    しかし、これをAsteriskとFUSIONのコラボレーションで無料にします。



    【 原理 】

    原理なんていう難しいものはありません。
    ただ、相手からの着信を2回転送するだけです。(厳密には1回は転送ではなくて発信です。)
    1. 相手からの着信を、Asteriskで受けます。(「ブラステル」や「つなぐ」など)
    2. 電話に○○秒間出なければ、着信をAsterisk内部でFUSION(A)に転送します。(無料)
    3. FUSION(A)からFUSION(B)に発信します。(無料)
    4. FUSION(B)は留守電設定をしておきます。(無料)
    ここでは、わかりやすくするために、あえて「FUSION(A)、(B)」としましたが、実はこの(A)と(B)は同一アカウント(同じ番号)で構いません。

    FUSIONは自分で自分に発信すると、必ず留守電になります。
    これは、発信したことで、その回線が話し中となるためです。

    これで複数アカウント取得による、追加料金も掛かりません。



    【 Asteriskの設定方法 】

    ◆ ブラステルをメインで使い、留守電はFUSIONで構築する設定例を紹介します。

    [sip.conf]
    [general]
    context=default
    bindaddr=0.0.0.0
    bindport=5062
    language=ja
    allowguest=no
    localnet=192.168.0.0/255.255.255.0
    
    disallow=all
    allow=ulaw
    allow=alaw
    allow=gsm
    allow=g729
    
    
    ; Brastel 050 Free
    register => ユーザID:パスワード@softphone.spc.brastel.ne.jp/201
    
    ; FUSION IP-Phone SMART
    register => ユーザID:パスワード@smart.0038.net
    
    
    [brastel]
    type=friend
    username=ユーザID
    fromuser=ユーザID
    secret=パスワード
    fromdomain=softphone.spc.brastel.ne.jp
    host=softphone.spc.brastel.ne.jp
    context=default
    insecure=invite
    canreinvite=yes
    
    [FUSION]
    type=friend
    username=ユーザID
    fromuser=ユーザID
    secret=パスワード
    host=smart.0038.net
    fromdomain=smart.0038.net
    context=default
    insecure=invite
    canreinvite=yes
    
    [201]
    type=friend
    defaultuser=201
    secret=sugoi_nagai_pasuwa-do
    canreinvite=yes
    host=dynamic
    context=201
    


    [extensions.conf]
    [default]
    exten => _X.,1,Dial(SIP/201,30)
    ; ↑30秒間呼び出す。
    exten => _X.,n,Answer()
    ; ↑Asterisk側が受話
    exten => _X.,n,Wait(1)
    ; ↑1秒待機して
    exten => _X.,n,Dial(SIP/05012345678@FUSION)
    ; ↑FUSION回線で自分から自分に発信
    exten => _X.,n,Hangup
    
    [201]
    ; 国際電話の禁止
    exten => _00.,1,Answer()
    exten => _00.,n,Wait(1)
    exten => _00.,n,Hangup
    
    exten => _010.,1,Answer()
    exten => _010.,n,Wait(1)
    exten => _010.,n,Hangup
    
    ; 緊急通報と各種案内へ発信(現在、緊急通報は未対応)
    exten => _1XX,1,Dial(SIP/${EXTEN}@brastel,120,r)
    exten => _1XX,n,Hangup
    
    ; 通常発信
    exten => _0.,1,Dial(SIP/${EXTEN}@brastel,120,r)
    exten => _0.,n,Hangup
    


    【まとめ・感想】

    通常のダイヤルプランにたった3行追加するだけで、高音質・高機能で無料の留守電が構築できました。

    使って頂ければわかりますが、2回転送していても交換機(Asterisk)内での処理となるため、音質の劣化はありません。

    難点は、留守電メールでは相手先の番号がわからないことでしょうか。
    これは、留守電に自分のFUSION回線から発信するため、留守電メールに自分の番号が記載されることによります。

    とは言っても、同一時刻に相手の電話番号からの不在着信がSIPクライアントに通知されています。よって、これは特に問題にはならないと思います。


    以前は、キャリアの転送機能を使ってFUSIONに転送していたため、その分の通話料が掛かっていました。
    今回のAsteriskとFUSIONのコラボにより、通話料も一切かからない留守電が構築できました。

    かなり満足です♪

    4 件のコメント :

    1. はじめまして。楽しく拝見させていただいております。最近になってもう少しスマホの料金が安くならないかということでこちらのページに辿り着きました。私の回線はWIMAXでスピードテストをすると下りで約4~15Mbps、上りで約1~5Mbpsぐらいですがやはり光回線ぐらいのスピードがないと「つなぐ」を導入するのは難しいですか?お返事いただけるとうれしいです。よろしくお願いいたします。

      返信削除
    2. 荒木さん
      「つなぐ」(というよりVoIP全般)は回線速度はほとんど必要としません。
      大事なのはDL/UPの数値ではなく、応答速度です。

      たぶんスピードテストを行った際に、PINGというものがあったと思うのですが、それが「応答速度」の目安になります。

      スピードテストは相手側のサーバにかなり依存してしまうため、本当に目安程度ですが、PINGの値が安定して50ms程度以下であることが望ましいです。
      このぐらいですと、WiMAXでも固定回線並とまでは行きませんが、そこそこ使えるとは思います。

      しかし、WiMAXは応答速度に優れる規格ではないため、50ms以下というのは少々ハードルが高いかもしれません。
      100ms以下程度であっても、遅延を感じつつも使えるとは思います。
      100ms以上の値ですと、私はおすすめしません。

      ただ、あくまでも上記は目安程度とお受け取りください。
      たとえばiPhoneならば100msのWiMAX回線でも快適に使えると思います。
      逆にVoIP性能の低いスマホでは、どんなに応答速度が高速であっても、良い結果にはなりません。

      返信削除
    3. 早々にご回答いただきましてありがとうございます。無知で申し訳ないのですが、再度PINGの数字を見ましたら78という結果でした。

      VoIPの高いスマホとはどんなものですか?
      そのスマホの性能を調べるときにはどうすればよろしいでしょうか?
      今使っているのはネクサス5でもし「つなぐ」を導入するなら京セラのSTK01に変更します。

      ちなみに現在ソフトバンクでガラケーのりかえ割っていうので月額1,480円というものがあるのでそちらに機種変して「つなぐ」を使用したいと思っております。



      これで格安SIMと運用すれば実質月額2,500円ぐらいで使用できるのでかなりお得かなと考えております。


      できれば3Gモデムを利用した「つなぐ」で利用して導入費用も抑えたいと思っております。ここ最近のデータってとっておられますか?といいますのもやはり安定性というかどの程度遅延などあるのか知りたいなとも思っております。


      長文になっておりますがよろしくお願いいたします。

      返信削除
    4. 荒木さん
      お返事が遅くなり申し訳ありません。

      >再度PINGの数字を見ましたら78という結果でした。

      何回か計測してみて安定してこの数字ぐらいでしたら、「まずまず」と言ったところだと思います。
      快適に使えるかどうかは使ってみるまでわかりません・・・。

      >VoIPの高いスマホとはどんなものですか?
      >そのスマホの性能を調べるときにはどうすればよろしいでしょうか?

      VoIP性能の高いスマホは多分探しようがありません。
      誰もそのようなデータを必要としていないためか、どこにもそのような情報がないのです。

      私の経験上で言うとiPhone系は総じて高性能です。
      AndroidではSH-07Dが高性能です。
      Nexus5はあまり高性能ではありません。
      TORQUE SKT01は使ったことがないためわかりません。

      >ここ最近のデータってとっておられますか?といいますのもやはり安定性というかどの程度遅延などあるのか知りたいなとも思っております。

      データは取っていませんが、「つなぐ」を常時使っているため、体感上の話しをさせて頂きます。

      私が「つなぐ」に使っている光回線でも、3Gで接続されていると遅延を感じます。
      そのため、もしもWiMAX回線だと3G接続では実用的ではないと思います。
      (現在では3Gでつながるところの方が稀ですが)
      一方、LTEで接続されていれば遅延を感じません。

      WiMAX(つなぐ)+LTE(スマホ)でどの程度の使い勝手になるかがポイントだと思うのですが、明確に数値化できる術を持っていないためなんとも言えません。
      TORQUE SKT01がiPhoneやSH-07D並みにVoIPに強ければ、上記条件でクリアできると思います。

      返信削除