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のコラボにより、通話料も一切かからない留守電が構築できました。

    かなり満足です♪

    2015年4月13日月曜日

    LG G4のスペックと写真

    ずっと欲しかったLGのG4の画像がリークされました。
    (公式サイトで誤ってアップされたようです(^_^;))

    日本のキャリアからも発売されるので、そのときはFelica(おサイフケータイ)対応となり、若干のスペック変更が加わると思います。



    現在までに判明しているスペックは以下のとおりです。

     CPU: Qualcomm Snapdragon 808
     メモリ: 3GB
     寸法:  149.1×75.3×8.9mm(長×幅×厚)(Slim Arc Design)  
     ディスプレイ:  約5.5インチWQHD(1440×2560)IPS Quantum Display
     カメラ:  1600万画素 + F値1.8 + 光学手ブレ補正
     外部メモリ:  microSDカードスロットあり
     電池容量:  3000mAh 電池パックは取り外し可能(ワイヤレス充電対応)



    <公開画像>






































    2015年3月22日日曜日

    Asteriskに関するメモ

    ここ最近はAsteriskいじりが日課になっています。
    自らのスキルアップと同時に、それがそのまま音質の向上に繋がります。
    これはやっていて非常に楽しいです♪


    AsteriskでIP-PBXを構築する上で、障壁となりそうなことを備忘録として残します。
    大まかですが、以下のようなことです。
  • メモっておかないと忘れてしまうようなこと。
  • 日本のサイトでは情報を得られなかったこと。
  • 試行錯誤でやっと結果が得られたもの。
  • 頑張っても結果が得られないもの。

    なお、これは本当に私用のメモです。
    わかりやすく書いているわけではないので、参考にされる方がいたらごめんなさい。


    【 「Raspberry Pi(B+と2B)」にインストールした「Asterisk」に「G.729a」を対応させる(無料) 】

    Raspberry PiはARM系CPUのため、バイナリ配布型のG729aが使えない。
    そのため、専用コンパイラを用いて、G729をインストールする。
    さらに、本来有料であるはずのG729はこれで無料となる。(ロイヤリティフリーのものを使う。)

    ●「Raspberry Pi B+」編
    Asteriskインストール後
    apt-get install dh-autoreconf
    cd /tmp

    <bcg729のインストール>
    wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.0.tar.gz
    tar xzf bcg729-1.0.0.tar.gz
    cd bcg729-1.0.0
    ./configure --libdir=/lib
    make
    make install

    <G729のインストール>
    cd ..
    wget http://asterisk.hosting.lv/src/asterisk-g72x-1.2.tar.bz2
    tar xjf asterisk-g72x-1.2.tar.bz2
    cd asterisk-g72x-1.2
    ./autogen.sh
    ./configure --with-bcg729
    make
    make install

    asterisk -vvvvr
    core restart gracefully


    ●「Raspberry Pi 2B」編
    Asteriskインストール後
    apt-get install dh-autoreconf
    cd /tmp

    <bcg729のインストール>
    wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.0.tar.gz
    tar xzf bcg729-1.0.0.tar.gz
    cd bcg729-1.0.0
    ./configure --libdir=/lib
    make
    make install

    <G729のインストール>
    cd ..
    wget http://asterisk.hosting.lv/src/asterisk-g72x-1.2.tar.bz2
    tar xjf asterisk-g72x-1.2.tar.bz2
    cd asterisk-g72x-1.2
    ./autogen.sh
    ./configure --with-bcg729

    出来上がった「Makefile」を編集する
    205行目「-march=」を「-march=armv7-a」に編集

    make
    make install

    asterisk -vvvvr
    core restart gracefully



    【 Asterisk11で3Gモデム(Chan_dongle)を使う 】

    <Asterisk11のインストール>
    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.16.0.tar.gz

    (11.16.0にした理由は、11系のひかり電話対応パッチ導入可能な最終Verのため。)

    tar zxvf asterisk-11.16.0.tar.gz
    cd asterisk-11.16.0
    ./contrib/scripts/install_prereq install
    (Windowが出てきたら「81」を入力) ※30分ぐらい時間がかかるかも。
    ./bootstrap.sh
    ./configure
    make
    make install
    make samples
    make config

    <Asterisk11対応Chan_dongleのインストール>
    cd /usr/src
    wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip
    unzip asterisk11.zip
    cd asterisk-chan-dongle-asterisk11
    aclocal
    autoconf
    automake -a
    ./configure
    make
    make install
    cp etc/dongle.conf /etc/asterisk/



    【 Asterisk12で3Gモデム(Chan_dongle)を使う(失敗) 】

    <Asterisk12のインストール>
    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-12.8.1.tar.gz

    tar zxvf asterisk-12.8.1.tar.gz
    cd asterisk-12.8.1
    (Windowが出てきたら「81」を入力) ※30分ぐらい時間がかかる。
    ./bootstrap.sh
    ./configure
    make
    make install
    make samples
    make config


    <Asterisk12対応Chan_dongleのインストール>
    cd /usr/src
    wget https://github.com/superles/chan-dongle-asterisk12/archive/master.zip
    unzip master.zip
    cd chan-dongle-asterisk12-master
    aclocal
    autoconf
    automake -a
    ./configure
    make
    make install
    cp etc/dongle.conf /etc/asterisk/

    通話不可



    【 Asterisk13で3Gモデム(Chan_dongle)を使う(失敗) 】

    Asterisk12と基本的なやり方は同じ。
    chan_dongleは作者によって2つ存在する。
    が、そのどちらも未完成に思える。もしくはARM系に対応していないか(?)

    以下からダウンロード可能。

    novaktmp氏作
    https://forum.openwrt.org/viewtopic.php?id=54343

    rusxakep(Mikhail Baykov)氏作
    https://github.com/rusxakep/asterisk-chan-dongle/tree/asterisk13



    【 ひかり電話対応パッチを当てる 】

    Asterisk1.8系と11系でそれぞれパッチ適用可能な最終バージョンを検討する。
    say.cとapp_voicemail.cはついで。

    <ひかり電話対応最終バージョン(Asterisk1.8)>
    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.8.27.0.tar.gz
    tar xzvf asterisk-1.8.27.0.tar.gz
    cd asterisk-1.8.27.0
    wget http://ftp.voip-info.jp/asterisk/patch/local/1.8/channels/chan_sip.rt200ne.110205-01.patch
    wget http://ftp.voip-info.jp/asterisk/patch/1.8.20.1/say.c.101025-01.patch
    wget http://ftp.voip-info.jp/asterisk/patch/1.8.20.1/app_voicemail.c.101025-01.patch
    patch -p0 < chan_sip.rt200ne.110205-01.patch ←なんか出ても「y」で。
    patch -p0 < say.c.101025-01.patch
    patch -p0 < app_voicemail.c.101025-01.patch

    <ひかり電話対応最終バージョン(Asterisk11)>
    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.16.0.tar.gz
    tar xzvf asterisk-11.16.0.tar.gz
    cd asterisk-11.16.0
    wget http://ftp.voip-info.jp/asterisk/patch/local/11/channels/chan_sip_rt200ne.141204-01.patch
    wget http://ftp.voip-info.jp/asterisk/patch/11.13.0/say.c.121107-01.patch
    wget http://ftp.voip-info.jp/asterisk/patch/11.13.0/app_voicemail.c.121107-01.patch
    patch -p0 < chan_sip_rt200ne.141204-01.patch ←なんか出ても「y」で。
    patch -p0 < say.c.121107-01.patch
    patch -p0 < app_voicemail.c.121107-01.patch



    【 AsteriskにBluetoothケータイを直接収容する(Chan_mobile) 】

    Asteriskインストール時に「make menuselect」よりChan_mobileは有効にしておく。

    BTドングル 挿す

    apt-get install bluetooth bluez libbluetooth-dev bluez-utils blueman

    ラズパイに挿したBTドングル情報の確認
    hcitool dev

    Devices:
    hci0 00:19:86:00:08:**

    周辺のBTデバイスのスキャン
    hcitool scan

    Scanning ...
    A0:DD:E5:42:DB:** WS027SH
    AC:9E:17:09:CF:** Nexus Player

    ペアリング
    bluez-simple-agent hci0 A0:DD:E5:42:DB:**
    これがラズパイが接続しに行くコマンド
    接続に失敗することが多々あるが粘る

    hciconfig hci0 piscan
    bluetooth-agent 0000
    こっちがラズパイが接続待ちになるコマンド

    Ctrl+zで待受状態脱出
    /etc/init.d/bluetooth restart


    ペリングしたBTデバイスと自動接続
    bluez-test-device trusted A0:DD:E5:42:DB:** yes
    bluez-test-input connect A0:DD:E5:42:DB:**

    chan_mobileの設定
    nano /etc/asterisk/chan_mobile.conf

    [adapter]
    id=WS027SH
    address=A0:DD:E5:42:DB:**



    【 Asteriskの日本語音声対応 】

    自動応答させる際などに使う。(IVR)

    nano /etc/asterisk/asterisk.conf
    languageprefix = yesのコメントアウトを外す。

    sip.confに以下追加
    [general]
    language=ja

    cd /tmp
    wget http://ftp.voip-info.jp/asterisk/sounds/1_6/asterisk-sound-jp_16_pre.tar.gz
    tar xzvf asterisk-sound-jp_16_pre.tar.gz

    ・Asterisk1.8
    mv ja/ /usr/share/asterisk/sounds/

    ・Asterisk11
    mv ja/ /var/lib/asterisk/sounds/



    【 擬似ビジー音と切断音の導入 】

    これは結構重用。
    内線通話ではビジー及び切断が非常にわかりにくいため、これを擬似的に自分で鳴らしてしまう。
    「プーップーップー・・・・プツ」ってやつ。

    ・Asterisk1.8
    cd /usr/share/asterisk/sounds/ja

    ・Asterisk11以降
    cd /var/lib/asterisk/sounds/ja

    wget https://sites.google.com/site/azukarijo2/busy-sound.gsm
    wget https://sites.google.com/site/azukarijo2/disconnect-sound.gsm

    extensions.confに、鳴らしたい場所で以下のように記載。
    (「_0.」のところは適宜変更)

    (例)
    exten => _0.,n,Playback(busy-sound)
    exten => _0.,n,Playback(disconnect-sound)
  • 2015年3月3日火曜日

    音声コーデックの聴き比べ(G711,G722,G726,G729a,GSM,iLBC,Speex,Opusの比較)

    IP電話(VoIP)に使われる主要な音声コーデックを、聴き比べ出来るようにしました。




    いつもは、わざと環境ノイズを含めて、実際の使用環境に近づけようとしていました。
    しかし、今回は違います。

    音声コーデックの本来の音質を知るために、環境ノイズをすべて除去しました。

    なお、元となる音声データを、該当コーデックで再圧縮したわけではありません。
    適切に、VoIPを通じて相手方に届いた音声データを録音しています。



    【 検証した音声コーデックについて 】

    以下の音声コーデックの検証を行いました。
    それぞれのコーデックの特徴などはWikiをご覧ください。(リンク先はWiki)

  • G711(u-Law)
  • G722
  • G726
  • G729a
  • GSM
  • iLBC
  • Speex
  • Opus(Wide)
  • Opus(Narrow)



  • 【 検証環境 】

    音質については自分がどう聞こえるかより、自分の声が相手にどのように聞こえているかが重要なため、それを掲載します。
    なお、実際の使用環境に近づけるため、エアコンの音やパソコンの風切音など、環境ノイズのある状態で試験しています。
    また、パソコンのスピーカから出る音をスマホのマイクで拾っていますので、どうしても音質は悪くなります。


    今回は、スマホにライン入力した音声より録音しました。
    つまり、環境ノイズの影響を一切受けない状況での試験ということになります。
    なお、PCのサウンドカードは良質のものを使っていますので、それが原因でノイズが乗るということはないと思います。


    [使用SIPクライアント]
  • Zoiper IAX SIP VOIP Softphone

    [検証機器]
  • WX12K(GP-712と接続)
  • L-01F(Asteriskに接続)

    [回線種別]
  • Wi-Fi(au光回線)

    [録音環境]
  • 「FUSION IP-Phone SMART」の留守電(128kbps RIFF-WAVE)

    [音声の元データ]




    【 検証結果 】

    ※ 使用帯域には理論値ではなく、実際に使う帯域を掲載しています。
      理論値を知りたい場合は、前述のWikiをご覧ください。


    検証結果について、今回は私の意見を述べません。
    Wikiを読んで、理論的に優れた音声コーデックを選択するのも良いですし、実際にこれらの音声データを聞いてみて、「自分はコレが好きだ!」というものを選んでも良いと思います。
    今回、環境ノイズがない環境下で検証してみて、それぞれの音質の特徴から本当にそのように思いました。


    コーデック 音質 使用帯域
    送信 受信
    G711(u-Law)

    84 kbps 83 kbps
    G722

    83 kbps 83 kbps
    G726

    52 kbps 52 kbps
    G729a

    28 kbps 28 kbps
    GSM

    33 kbps 33 kbps
    Speex

    29 kbps 31 kbps
    iLBC

    27 kbps 27 kbps
    Opus(Wide)

    40 kbps 40 kbps
    Opus(Narrow)

    35 kbps 30 kbps
  • 2015年2月28日土曜日

    カケホを契約していない端末でカケホを利用する【つなぐ】

    Bluetooth-VoIPゲートウェイから始まった【つなぐ】ですが、いまやその種類が増え、開発中のものを含め、4種類となりました。
    種類が増えることは良いことなのですが、それだけ一つ一つが分かり辛くなってきます。




    そこで、複数ある【つなぐ】について整理をしたいと思います。


    【 「つなぐ」とは何か? 】

    以前は、『話し放題を契約したガラケーを、スマホから利用できるようにすること』と、説明していました。
    しかし、現在は3G版【つなぐ】や、アプリ版【つなぐ】があることから、その説明が合わなくなってきました。
    今の【つなぐ】は、次のような説明がしっくり来ると思います。

    『話し放題を契約してない端末から、話し放題を利用すること』


    なお、今までの【つなぐ】に関する記事は、ブログ右側(スマホサイトの場合は一番下)のメニュー「つなぐ」からご覧ください。



    【 4種類の異なる「つなぐ」 】

    現在は以下の4種類の【つなぐ】が存在します。

  • BT-GW版【つなぐ】
  • 3G版【つなぐ】
  • BT版【つなぐ】
  • アプリ版【つなぐ】


    「BT-GW版」、「3G版」、「BT版」【つなぐ】は、VoIPを利用します。
    アプリ版【つなぐ】はキャリア回線(PSTN)を利用します。
    まずは、これが大きな違いとなります。

    各【つなぐ】は、それぞれ特徴が異なりますので、簡単に説明していきます。
    なお、金額の紹介では、月々サポートや各種キャンペーンは除外した料金としています。


    ◆ BT-GW版【つなぐ】
    Bluetooth-VoIPゲートウェイとIP-PBXにより構成されます。
    これと、話し放題を契約したケータイをBluetooth接続することで実現します。
    常時持ち歩く端末はスマホ1台のみです。
    なお、発信者番号は、話し放題回線の番号が通知されます。


    <メリット>
  • 理屈上、PHS含めどのキャリアでも収容できる。

    <デメリット>
  • 高価

    <月額費用>
    話放題回線料(¥1500~2200)
    MVNO料金(¥1000程度から)

    例)1人で利用した場合
      2200+1000=¥3200

    例)5人が個々に使った場合(カケホを2200円として計算)
      (2200+1000)×5=¥16000

    例)5人でシェアした場合
      2200+(1000×5)=¥7200


    ◆ 3G版【つなぐ】
    3Gモデム(話し放題SIM入り)が接続されたIP-PBXのみで構成されます。
    常時持ち歩く端末はスマホ1台のみです。
    なお、発信者番号は、話し放題回線の番号が通知されます。


    <メリット>
  • 音声SIMカードをUSBモデムに直接差し込むため、別途ケータイを必要としない。
  • 導入費がBT-GW版【つなぐ】の約半額。

    <デメリット>
  • 使えるSIMはドコモとソフトバンク(Y!mobileの3G含む)のみ。

    <月額費用>
    話放題回線料(¥2200)
    MVNO料金(¥1000程度から)

    例)1人で利用した場合
      2200+1000=¥3200

    例)5人が個々に使った場合(カケホを2200円として計算)
      (2200+1000)×5=¥16000

    例)5人でシェアした場合
      2200+(1000×5)=¥7200


    ◆ BT版【つなぐ】
    話し放題ケータイとBluetooth接続されたIP-PBXで構成されます。
    常時持ち歩く端末はスマホ1台のみです。
    なお、発信者番号は、話し放題回線の番号が通知されます。

    <メリット>
  • 理屈上、PHS含めどのキャリアでも収容できる。
  • 導入費がBT-GW版【つなぐ】の約半額。

    <デメリット>
  • 非常に相性が強く、そのケータイを収容可能かどうかはやってみるまで分からない。(高確率で収容できない。)
  • LinuxとケータイとをBTペアリングさせる知識を要する。

    <月額費用>
    話放題回線料(¥1500~2200)
    MVNO料金(¥1000程度から)

    例)1人で利用した場合
      2200+1000=¥3200

    例)5人が個々に使った場合(カケホを2200円として計算)
      (2200+1000)×5=¥16000

    例)5人でシェアした場合
      2200+(1000×5)=¥7200


    ◆ アプリ版【つなぐ】
    今までの【つなぐ】とは異色の存在。
    話し放題回線の転送先を変更することにより、別の端末から無料発信が可能。
    家族間無料通話と話し放題回線とを組み合わせることにより実現する。
    上記操作をアプリで自動化することにより、シームレスな発信を行う。
    なお、発信者番号は話し放題回線の番号ではなく、アプリを入れた端末の電話番号が通知される。


    <メリット>
  • キャリア回線を使うため、安定した通話が可能。
  • 初期導入費が安価。
  • 発信者番号を自分の持つ(話し放題ではない)ケータイの電話番号にできる。
  • 着信時は話し放題回線を経由しない。

    <デメリット>
  • 発信するまでに少し時間がかかる。
  • 2台持ちになる。(通信不要であれば、ガラケーのみで1台持ち可)
  • ソフトバンク未対応。
  • (開発中のためまだ利用できない。)

    <月額費用>
    話放題回線料(¥2200)
    au最安料金プラン+Eメール(ガラケー:¥1043 スマホ:¥1234)
    MVNO料金(¥1000程度から)
    アプリ利用料(¥84)

    例)2人で利用した場合(1人で利用は無意味なので2人を掲載)
      2200+(1043~1234+1000+84)×2=¥6454~¥6836

    例)5人でシェアした場合
      2200+(1043~1234+1000+84)×5=¥12835~¥13790



    【 「つなぐ」の選び方 】

    まず、理解して頂いきたいのが、音質についてです。
    音質と言っても、音のキレイさではありません。
    「音声が途切れない」などの品質になります。

    「BT-GW版」、「3G版」、「BT版」はすべてVoIPと呼ばれる技術を用いて通話します。
    VoIPでの通話は、9割は完璧です。
    しかし、残りの1割(電波の弱い場所など)は通話相手がかなり聞き取りづらい状況となります。

    よって、この1割をも網羅するためには「アプリ版【つなぐ】」が必須となります。『VoIP版【つなぐ】』(※)は向きません。

    まず、以上が大前提となります。それを踏まえた上で、以降の導入編をお読みください。


    【つなぐ】を選ぶ上でまず必要なことは、導入費及び月額料金、そして用途です。

    導入費などの金額は、キャリアの施策によって大きく変動します。
    よって、ここでは金額については触れず、用途別に【つなぐ】の選び方の一例を紹介します。
    なお、それぞれの【つなぐ】で何ができるか?ではなく、「○○にはどの【つなぐ】が向いているか?」の形式で紹介したいと思います。


    ※ ここでは「BT-GW版」、「3G版」、「BT版」【つなぐ】を総称して、『VoIP版【つなぐ】』と言います。



    ◆ スマホの2台持ちになっても構わない。・・・アプリ版【つなぐ】

    ◆ 2台持ちは嫌だ、1台持ちにしたい。・・・VoIP版【つなぐ】

    ◆ 回線をシェアして且つ、発信者番号をそれぞれ異なるものとしたい。・・・アプリ版【つなぐ】

    ◆ キャリアの契約を極力減らしたい。・・・VoIP版【つなぐ】

    ◆ 家の固定回線が遅い、もしくは不安定。・・・アプリ版【つなぐ】

    ◆ 利用は自分一人。用途はプライベート。・・・VoIP版【つなぐ】

    ◆ とにかく安くすることが目的。安ければ大抵のことは許容できる。・・・VoIP版【つなぐ】



    【 まとめ 】

    スマホの2台持ちになっても構わない人や、VoIPが嫌な人は、アプリ版【つなぐ】がお勧めです。
    スマホやケータイの2台持ちから開放されたい、スマホ1台に集約したいという人は、VoIP版【つなぐ】がお勧めです。

    しかし、アプリ版【つなぐ】は現在まだ開発中です。(BitBadOldMan氏による)
    開発が完了した時点であらためて紹介するとともに、BitBadOldMan氏への利用申込手段も考えたいと思います。


  • アプリ版【つなぐ】オーダーフォームへ(未設置)

  • VoIP版【つなぐ】オーダーフォームへ(提供終了)



    VoIP版【つなぐ】は多少の英語とLinuxの知識さえあれば、自分でも製作可能です。
    上記のVoIP版【つなぐ】オーダーは自分で作れない人のために、私が一式製作してお送りするものです。
    可能であれば、自分で楽しみながら作ることをお勧めします。

    なお、アプリ版【つなぐ】も、プログラムが書ける人(スマホアプリが作れる人)であれば制作可能です。
    しかし、学生時代に友人の書いたプログラムを、丸写しして提出していたような私にはさっぱりわかりません\(^o^)/
  • 2015年2月26日木曜日

    IP電話(VoIP)に最適なSIPクライアント「Zoiper」

    行き着くところまで行き着いた気がする【つなぐ】ですが、まだまだ満足できず、いまだに色々と検証をすすめています。
    先日は電子レンジにスマホ入れて、電波の遮断試験なんてこともしていました。

    そのようなテストも、SIPクライアントの中では最強だと思っていたAcrobits社の「Groundwire」で行っていました。
    しかし、Android環境においては圧倒的なまでに、「Zoiper」の方が高音質であることがわかりました。




    今回は、その「Zoiper」(正式名称:Zoiper IAX SIP VOIP Softphone)について紹介したいと思います。

    ※【つなぐ】については以下の記事をご覧ください。
    ガラケー(話し放題)と、スマホ(MVNO)を【つなぐ】>(概要説明)
    MVNO(データSIM)で「話し放題」を実現する 【つなぐ】>(設定紹介)



    【 SIPクライアントについて 】

    SIPクライアントとは、IP電話などのVoIPを使う際には、必須となるアプリです。
    このアプリの性能が、音質や使い勝手に大きく影響します。

    高音質なSIPクライアントとしては以下の2つが有名です。
  • CSipSimple
  • Acrobits社製品全般(SoftphoneやGroundwireなど)

    この他にも、もちろん高音質なSIPクライアントもあるのですが、大抵何かが足りません。
    電池持ちだったり、使い勝手だったり・・・。
    すべてを兼ね備えたものとしては、やはり先の2アプリが最高で・・・した。“いまの”「Zoiper」を知るまでは。



    【 Zoiperについて 】

    「Zoiper」(正式名称は「Zoiper IAX SIP VOIP Softphone」)

    これはAndroid版からiPhone版、Windows版まであるかなり有名なアプリです。
    このブログでも今まで、幾度も「Zoiper」を検証してきました。
    検証している中、高音質なアプリだとは思っていましたが、それでも「CSipSimple」や「Acrobits Groundwire」には及びませんでした。

    しかし、「Zoiper」の更新頻度は早いです。
    積極的に開発を行い、不具合解消とともに高音質化にも務めていたようです。
    私の知らぬ間に、「Zoiper」はものすごい高音質なSIPクライアントへと変貌していました。

    また、高音質なだけでなく、電話帳からの発信も可能で、かつ面倒な回線の切替作業も必要としません。
    発信時に使用回線が選べるタイプなので、非常に使い勝手が良いです。



    【 音質の検証 】

    これ以上Zoiperについて語っても仕方がありませんので、早速、音質の検証を行います。

    音質については自分がどう聞こえるかより、自分の声が相手にどのように聞こえているかが重要なため、それを掲載します。
    なお、実際の使用環境に近づけるため、エアコンの音やパソコンの風切音など、環境ノイズのある状態で試験しています。
    また、パソコンのスピーカから出る音をスマホのマイクで拾っていますので、どうしても音質は悪くなります。

    そのあたりを考慮して音声データは聞いてください。
    (それでも、各SIPアプリの傾向は掴めるため、参考になると思います。)

    検証対象は以下のSIPクライアントとします。
  • Zoiper IAX SIP VOIP Softphone
  • Acrobits Groundwire
  • CSipSimple


    [検証環境]
  • WX12K(GP-712とBT接続済)
  • L-01F(Asteriskに接続)
  • SH-07D(遅延計測用 ドコモ音声SIM使用)

    [回線種別]
  • Wi-Fi(光回線)
  • LTE(ドコモ)

    [使用コーデック]
  • iLBC

    [録音環境]
  • 「FUSION IP-Phone SMART」の留守電(128kbps RIFF-WAVE)

    [遅延測定条件]
  • 「L-01Fから音声を発信してから、SH-07Dがそれを受信する」までのタイムラグの測定

    [音声の元データ]


    [検証結果]

    SIPクライアント 音質 遅延時間
    Wi-Fi LTE
    Zoiper

    353ms 423ms
    Acrobits Groundwire

    301ms 392ms
    CSipSimple

    478ms 369ms



    ◆ Zoiper の検証

    [音質]

    ザラザラした音の中に、さらに若干のノイズが混じっています。
    お世辞にも「高音質」とは言えません。
    実際にリアルタイムに耳で聞いてみても、あまり良い音質とは言えませんでした。

    遅延時間については問題ありません。Groundwireには及びませんが、十分高速です。

    ただ、やはり音が汚いのが気になります。
    これは同一環境で何度試験しても、このような結果となりました。

    しかし、なぜか通常の音声通話においては、非常にスムーズな会話が可能です。
    また、ゲームセンターのような騒々しい場所での通話も可能でした。


    [使い勝手]

    最高に使いやすいです。
    電話帳との連携も完璧で、VoIPを使っていることを意識しません。

    また、自前でSTUNサーバを持っているため、NAT超えの設定も非常にシンプルです。
    「STUN」にチェックするだけです。

    なお、3G/LTEとWi-Fiとで、いちいち発信アカウントを切り替える必要もありません。
    発信時に現在接続中のアカウントが簡単に選択できます。



    ◆ Acrobits Groundwire の検証

    [音質]

    バックミュージックが聞こえなくなるぐらいに、元の音質から変化します。
    そのぐらいに「音声部分のみ」取り出そうとしていることがわかります。

    独特の音質なのですが聞き取りやすい音声で、ノイズもありません。
    しかし、なんとなく声が震えているような、文節の始まりと終わりに波があるような、そんな印象はあります。(しかし、実際の会話ではそのようなことは一切ありません。)

    (騒々しい場所での通話は未検証です。)


    [使い勝手]

    電話帳との連携は完璧です。

    しかし、3G/LTEとWi-Fiとでいちいち発信アカウントを切り替える必要があり、これがかなり煩わしく感じます。
    「あれ?なんで発信できなんだ?」と思うと、アカウントの切替を忘れているためだったりします。



    ◆ CSipSimple の検証

    [音質]

    音は若干こもった感じに聞こえますが、一番忠実に音声を再現しているのは、やはりこれです。
    ただし、音声は忠実に再現すれば良いというわけではないため、音質については好みが分かれると思います。

    なお、騒音下においては、その騒音も忠実に再現され、話が聞き取りにくくなります。
    しかし、音声と環境ノイズとが混ざって、消去されてしまうようなこともありません。


    [使い勝手]

    電話帳との連携は完璧です。
    完璧どころか、電話番号によって利用先回線を切替えたり、別途プラグインによりコールバック機能を持たせたりと、様々なことができます。

    まさに、かゆいところに手が届く使い勝手となっています。
    これについては文句なしです。

    しかしネットワークの詳細設定をアカウントごとに変えられない不思議な仕様となっています。
    これが原因で「3G/LTE」と「Wi-Fi」をシームレスに使うことができません。
    (3G/LTEだけかWi-Fiだけかの運用になってしまいます。)



    【 まとめ 】

    今回は「Zoiper」を推奨したくて、本記事を書き始めたのですが、実際に検証してみると、結局は「Acrobits Groundwire」の音質が、頭一つ抜けていることがわかります。

    しかし、「Zoiper」はなぜだか使いやすく感じます。
    まず、相手から自分へ届く音声のクリアさにびっくりします。

    これは、「Groundwire」など比較にならないぐらい高音質です。
    今まで検証したSIPクライアントの中で、最も高音質に感じます。

    実は、Zoiperはこれが理由で「素晴らしく感じているだけ」のプラシーボなのかも知れません。



    なお、今回は取り上げませんでしたが、どんなSIPクライアントを使っても低音質になってしまう「SC-01F」(Galaxy Note3)が、唯一「Zoiper」では高音質で安定させられました。
    この機種が高音質で使えるとなると、他のどんな機種でも安定して使えそうな気がします。

    また、NAT越えもチェック一つで簡単にできます。


    Zoiperの良い所をまとめると以下のとおりです。

  • どんな機種でも高音質になる。(と予想する。)
  • NAT越えに悩まない。
  • 3G/LTEとWi-Fiの切り替えがない。
  • バッテリー消費量が少ない。

    以上のことから、「Zoiper」も「Groundwire」に負けないぐらい優れたSIPクライアントと言えます。
    さらに、これほどの性能を持っていながら、無料であることも非常に評価できます。

    今まではずっと「Groundwire」を使っていましたので、これからはしばらく「Zoiper」を使ってみて、その評価を確実なものにしていきたいと思います。



    [2015.03.02追記]

    【 Zoiperの設定について 】

    本記事を書いてからしばらく「Zoiper」を使っていました。
    結論として、私は「Groundwire」ではなく、「Zoiper」を常用しようと思います。

    なお、「Automatic Gain Control filter」という項目をOffにすることにより、音質が激的に改善しました。
    本記事の検証結果はこの項目が「On」(デフォルト)です。
    これだと音が汚いだけでなく、相手に届く音量が極めて小さくなります。

    以下に理屈ではなく、私の実使用環境において最適であった設定を紹介します。
    (音質やネットワーク及び使い勝手に関する部分のみ抜粋。赤字は音質に影響する部分。)


    <Accounts>
    Enable on start : ON (アカウント有効)
    Audio Codecs Settings : iLBC30 (高速回線であってもこれのみ)
    Network Settings → NAT : キャリアSIMとプライベートIP付与のMVNOは「Use STUN」 それ以外は「No」

    <Audio>
    Echo cancellation : Off (エコーがかからない状況ではOffが良い。)
    Automatic Gain Control filter : Off (On→Off必須)
    Incoming Call Vibration : On (マナーモード以外でもバイブを有効)
    Speaker Gain : 0dB (受話音量調整)
    Use Less CPU(Lower Quality) : Off (低速スマホでもOffで良い。)

    <Connectivity>
    Keep alive WiFi : On (WiFi切断防止)
    Stay awake : On (常時起動)
    Run in background : On (常時着信可能)

    <Advanced>
    Strip .-()[]{}/ in caller-id : On (電話帳から不要な文字列を削除して発信する。)
    Start with Android : On (スタート時起動)
    Dialer integration : On (電話帳連携)
    Use default account : Off (Offにしていると発信時にアカウントが選べる。)
  • 2015年2月22日日曜日

    インストールディスクを無くした「Windows7」をインストールする方法

    PCが不安定になってきたため、Windows7を再インストールすることにしました。

    どうせ再インストールするならということで、元々4GB積んでいたメモリを16GBまで増設します。
    さらに、Windows7の32ビット版から64ビット版に鞍替えすることにしました。

    しかし、私が持っているWindows7は32ビット版のみです。
    32ビット版のWindows7を所持しているにもかかわらず、64ビット版のWindows7を再度購入しなければならないのでしょうか。




    ・・・そういえば、妻が紅茶をこぼしてお亡くなりになったノートPCが「Windows7 Pro」の64ビット版でした。

    しかし、Windowsのインストールディスクなんてとっくに無くしました。
    もう、どこにあるのかわかりません。

    もしかするとHDDの中にリカバリ領域があり、そこから復旧するタイプだったのかもしれません。
    しかし、いずれにしても、そんな領域も妻のこぼした紅茶とともに流れ去りました。



    【 Windows7のプロダクトキーを探す 】

    とりあえず、Windowsのプロダクトキーさえあれば何とかなるだろうと考え、ミルクティーの香りが漂うノートPCを裏返します。
    数か月経ったにもかかわらず、ミルクティーの芳しい香りがします。
    これはアールグレイだな、などと思いつつ、プロダクトキーのシールを探します。

    プロダクトキーのシールは非常にわかりやすい場所に貼り付けられていました。
    まずはこれをメモします。


    ※ プリインストール版のWindowsを他のPCで使うことはライセンス違反となりますのでご注意ください。
      (このあたりの話は難しいので、わからない場合はMicrosoftに聞いてみてください。)



    【 Windows7のイメージを入手する 】

    単純に考えて、Windows7のインストールディスクなんて1枚1枚オリジナルであるはずがありません。
    ということは、何らかの手段でWindows7のイメージさえ入手できれば、先ほどメモしたプロダクトキーでインストールできるはずです。

    Google先生に聞いてみます。
    『Windows7 ダウンロード』っと・・・。

    いっぱい出てきます。
    以下、各種Windows7のイメージファイルのダウンロード先です。

    詳細はわかりませんが、イメージをダウンロードするだけなら合法らしいです。
    不正なライセンスキーの入手、及び使用は違反になります。

  • Windows 7 Home Premium x86 SP1

  • Windows 7 Home Premium x64 SP1

  • Windows 7 Professional x86 SP1

  • Windows 7 Professional x64 SP1

  • Windows 7 Ultimate x86 SP1

  • Windows 7 Ultimate x64 SP1


  • なお、Windows8やWindows8.1であっても、似たような方法で簡単に且つ合法的にインストールディスクが作成可能です。



    【 Windows7をインストールする 】

    Windows7は、Ultimate版以外は標準で日本語に対応していません。
    (通常利用でUltimate版なんて使いません。)

    普通の方法では、Ultimate版以外は日本語化できません。

    そこで、普通ではない方法でUltimate版以外の「Home Premium」及び「Professional」を日本語化する方法を考えます。
    なお、この方法で日本語化されたWindows7は、通常の日本語版のWindows7と全く同一のものになります。


    まずは、上記リンクよりダウンロードしたWindows7を、DVDメディアに焼くなどして、普通にインストールします。
    なお、プロダクトキーには、先ほどメモしたものを使います。

    インストール中のキーボード選択や時間設定は日本の環境に合わせます。


    ※ インストールメディアには何種類かあるようで、持っているプロダクトキーが通らない場合もあります。
    そうした場合は、上記インストールイメージ以外を探して試してみてください。
    実際、上記イメージでは、私の所有するWindows7のうちの1つが、通りませんでした。



    【 Windows7を日本語化する 】

    ここでは「Windows7 Professional x64」を例にして話を進めます。
    まず、前述の手順によりWindows7がインストールできていることを前提とします。

    まずは、日本語言語データを用意します。

    これはMicrosoftからDLできるものなのですが、多言語パックをダウンロードして、そのイメージでインストールメディアを作って、それから日本語部分だけを抽出して・・・
    と、かなり面倒くさい作業が必要になります。

    そのため、自分用として抽出済みのものを作成したので、もし使いたい方がいたらこれを使ってください。
  • Windows7用日本語言語パック


    管理者権限でコマンドプロンプトを開きます。
    スタートメニュー → All Programs → Accessories → Command Prompt  右クリック Run as administrator



    以下のコマンドを入力します。
    「E:\langpacks\ja-jp\lp.cab」には先程の「Windows7用日本語言語パック」の保存先を指定します。

    dism /online /add-package /packagepath:E:\langpacks\ja-jp\lp.cab


    以下のような画面になり・・・



    このように表示されれば成功です。

    The operation completed successfully.
    Restart Windows to complete this operation.
    Do you want to restart the computer now (Y/N)?


    ここでは「N」を選んで、まだ再起動しません。


    Winキー+R(ファイル名を指定して実行)から以下コマンドを入力します。

    regedit


    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\en-US
    を削除します。(※)

    ※ 上記の意味がわからない場合は、以下を保存・実行してください。
    なお、これはレジストリの該当部分のサブ・キーを削除する命令ですので、ご利用は自己責任にてお願いします。
  • en2jp.reg

    再起動します。


    スタートメニュー → すべてのプログラム → アクセサリ → コマンド プロンプト  右クリック 管理者として実行
    (すでにしっかりと日本語になっています。)

    以下コマンドを入力します。
    bcdedit /set {current} locale ja-jp
    bcdboot %WinDir% /l ja-jp


    以上で完成です。



    【 余談 】

    (数ヶ月前の話)

    紅茶をこぼした妻は、かなり切羽詰まった顔をしながら私のところに来て言いました。
    (この時、私はまだ妻が紅茶をこぼしたことを知りません。)


    「PCの電源がつかなくなったよ。」

    「え?なんでだろう?」

    「何度電源を入れても画面が付かないの。」

    「うーん・・・。見てみるよ。」

    「・・・さっきね。PCに紅茶がかかったの。そしたら電源が切れたみたい。」

    「えーと・・・?」

    「・・・・ちょっとキーボードの上に紅茶がこぼれたみたいなんだけど、そうしたら電源が切れたの。それからは何度も電源ボタンを押しても動かないよ。」

    「ちょっとこぼしたぐらいなら、乾けばまた動いたりするよ。どっちにしても見てみるね。」


    ノートPCの場所へ移動
    (ああ、確かにちょっと紅茶がこぼれてるわ・・・。)

    私がノートPCを持ち上げてみると、通風口やコネクタの隙間から紅茶が流れ出てきました・・・。
    (ちょっとどころじゃないし!)


    「“ちょっと”こぼしたの?」

    「ちゃんと拭いたよ?」

    「いや、そーじゃなくて・・・、もう一回聞くね。“ちょっと”こぼしたの?」

    「キーボードの上にコップが勝手に倒れたみたい。」

    「コップって勝手に倒れるの?」

    「・・・・倒れるよ?」



    私は一体、何歳児とお話をしているのだろうか・・・。
    ちなみに、この後、ちゃんと妻の「ごめんなさい」が聞けたわけですが、妻の「ごめん」はかなりレアなので、それだけでよしとします(笑)



    余談の余談ですが、ほとぼりが覚めた妻は、
    「ゲームができない。即日中にPCが必要だから何とかせよ。」
    との命令を私に下し、その日のうちにマウスコンピュータ(元本社)でPCを1台買ってきました・・・。

    余談ついでにひとつ、マウスコンピュータのPCはなかなかお勧めです。
    見た目にこだわらなければ、日本で一番コストパフォーマンスが高いと思います。