2015年12月20日日曜日

Asteriskを使わないでケータイを【つなぐ】方法

久しぶりに【つなぐ】(※)シリーズの記事を書きたいと思います。

先日、ブログのコメントで「GP-712を使ってIVRで発信したい」との相談を頂きました。
(IVRとは「Interactive Voice Response」の略で、自動音声応答による発信システムです。)

結論から言うと、AsteriskでGP-712を制御すれば実現できます。
しかし、Asteriskが必要ということはLinux環境の構築やExtensionの記述等、どうしても難易度が高くなってしまいます。
また、別途「Raspberry Pi 2」などのハードウェアも必要となります。


※)【つなぐ】とは何かを簡単に説明すると、「MVNOデータ」+「カケホ」を1台のスマホで実現するための術です。
  また、同技術で、話し放題回線を複数人でシェアすることもできます。




そこで、「簡単かつ無料」をコンセプトとして、Asteriskを使わないケータイの制御方法を考えました。
その結果、2つのパターンを思いつきましたので、それらを紹介したいと思います。

なお、GP-712に収容するケータイは、話し放題契約(カケホ)であることを前提に話を進めます。
また、GP-710でも同様のことができますので、以降はGP-712とGP-710とを総称して「GP-71x」と表記します。

無料のIP電話との組み合わせ (1つ目の方法)
通常、GP-71xのSIPサービスの設定には、LAN上に設置したAsteriskなどのPBXを登録します。
メーカもそのような利用を想定して説明を行っていますが・・・。

ここに「ブラステル」や「IP-Phone SMART」などの、無料のIP電話サービスのSIPサーバを登録してしまいます。
これが1つ目の方法です。

登録した050番号に発信することで、IVRによってGP-71xに収容したカケホ回線から発信ができるようになります。
なお、スマホ側に、もう1回線別アカウントの「ブラステル」や「IP-Phone SMART」をレジストすることで、IVR時に発生する音声通話料を無料にできます。

ただし、この方法ではカケホ回線での着信ができないため、カケホ回線の着信は、スマホに登録した「ブラステル」や「IP-Phone SMART」に着信転送されるよう設定します。(キャリアの転送サービスを使う。)
なお、ケータイのカケホは着信転送が無料ですが、PHSの「スーパーだれとでも定額」は、PHS以外への転送は有料となるため注意が必要です。


◆【設定方法】

<手順1>
GP-71xとケータイとをBluetooth(HFP)でペアリングします。
ケータイからBTペアリングを行えば、GP-71xはすぐに見つかります。(ペアリングコードは初期設定で「0000」)

<手順2>
GP-71xの設定画面を開き、「System」→「Settings」と進みます。
「BT Dialouted」を選択し、「Volume」と「Mic Gain」を適切な値に設定します。
(下の画像では私の環境に合わせていますが、大体このぐらいが適切だとは思います。)



<手順3>
「SIP」→「Service」と進みます。
無料のIP電話サービスのアカウントを入力します。(例ではブラステルを使用しています。)



<手順4>
「Route」→「Downlink」と進み、「Free Dialout」を選択します。



これでIP電話サービスの050番号に発信すると「ピロリローン」(ドレミファの音階)と音が流れますので、続けてDTMFで発信先を入力すれば、BT収容したケータイから発信されます。

着信は前述のとおり、キャリアの転送サービスで設定を行います。(全キャリアともこのサービスの月額費用はかかりません。)

PBXesとの組み合わせ (2つ目の方法)
2つ目の方法は、WEB上の無料PBXサービス「PBXes」を使います。(※)
これは厳密に言うとAsteriskを使ってはいるのですが、難しい設定は皆無でユーザ側はそれを意識する必要はありません。

ここでのポイントは言語です。必ずEnglishを選んでください。
私は最初「日本語」を選んで失敗しました。翻訳がひどくて解読不能な日本語となります。


PBXesは多少の柔軟性があるため、キャリア転送をすることなく着信を受けられます。
また、IVRを意識しないで『電話帳からダイレクトに』カケホ回線を使った発信も可能です。


※) PBXesの無料版は、月間通話時間が2000分(約33時間)までという制限があります。


◆【設定方法】

<手順1>
PBXesのアカウントを取得する。
PBXesのサイトへ行き、「ACCOUNT ERSTELLEN」へ進みます。(ドイツ語?)
https://www2.pbxes.com/(PBXesトップページ)



<手順2>
最初に言語を英語にします。
下の画像ではリストに隠れていますが、「Speichern」を押します。



<手順3>
設定項目が英語に変わりますので、必要事項を入力し「Submit & Start」を押します。
これですぐにPBXesが使えるようになります。



<手順4>
PBXes内に内線番号を作成し、それを使えるようにします。
「Add Extension」→「SIP」と進みます。



<手順5>
「Extension Number」と「password」を決めて、「Submit Changes」を押します。
passwordはわかりづらいものにしてください。
なお、Extension Numberが内線番号となります。(例では6001としました。)



<手順6>
続けて、同様の方法で内線番号をもう一つ作ります。(例では6002としました。)
作成が終わって画面が切り替わったら、一番上の赤帯「You have made changes - when finished, click here to APPLY them」を押します。



<手順7>
音声パケットはPBXesを経由させないように変更します。
「Extensions」の<6001>を選び、「audio bypass」を「no」から「yes」にします。
そして、画像中には見えませんが、「Submit Changes」を押します。
同様に<6002>の設定も変更します。
設定変更後は一番上に出てくる赤帯「You have made changes - when finished, click here to APPLY them」を押すのを忘れないようにします。



以上で、PBXesの設定は完了です。
続いてGP-71xの設定を行います。


<手順8>
前述と同様にケータイとGP-71xをペアリングし、「SIP」→「Service」と進み、スマホの内線で使わない側(例では「6002」)を登録します。

ユーザ名:[PBXesのアカウント名]-[内線番号]
パスワード:Add SIP Extensionで決めたもの
SIPサーバ:pbxes.org



<手順9>
カケホ回線の着信で内線を鳴動させます。
「Route」→「Uplink」と進み、「Fix Number」にチェックを入れ、スマホに登録する内線番号(例では「6001」)を登録します。



<手順10>
「Route」→「Downlink」と進み、「Free Dialout」を選択します。



<手順11>
続いてスマホの設定を行います。
SIPクライアントに以下を登録します。(画像はGroundwireを使っています。)

ユーザ名:[PBXesのアカウント名]-[内線番号]
パスワード:Add SIP Extensionで決めたもの
SIPサーバ:pbxes.org
コーデック:G.711u(uLaw)もしくはiLBC
DTMF:RFC2833(G.711u)もしくはSIP INFO(iLBC)



以上で、PBXesを使う場合の設定は全て完了です。

スマホやガラケーからの発信方法
発信の都度、IVR回線(050番号やPBXesの内線番号)にかけてから相手の番号を打ち込んでも良いのですが、それでは電話帳から発信できません。
いちいち電話帳から相手の電話番号をメモって、その後IVR回線に発信していたのでは非常に手間です。

そこで、スマホやガラケーのプレフィックス機能を使ってこの問題をクリアします。


◆【スマホの場合(PBXes)】
Acrobits製のアプリを使った例を紹介します。

「設定」 → 「環境設定」 → 「番号の書き換え」 と進みます。
「書き換えルール」右側の「+」をタップします。
「条件」右側の「+」をタップします。
「開始します」を選び、接頭に「0」を入力します。
「アクション」右側の「+」をタップします。
「前に付ける」を選び、接頭に「6002,」を入力します。(「,」の入力はPauseで可)

なお、私の環境では、「,」1つでは発信に失敗するときがありました。
そういった場合は「,」を2つ入力します。(「6002,,」のようにする。)

◆【スマホの場合(050番号)】
Prefixerなどのプレフィックスを付加するアプリを使って「05012345678,」(IVR回線の番号+ポーズ)をプレフィックスに追加します。
「,」はポーズを意味し、『05012345678に発信後、少し待つ』という動作になります。
なお、iPhoneの場合や環境によっては「,」を2つ以上入れる必要があるかもしれません。


◆【ガラケーの場合(050番号)】
ガラケーの場合はPBXesの内線番号は扱えないため、必然的に050番号を使うこととなります。
なお、ガラケーのプレフィックスは機種によって設定方法が様々なためここでは紹介できないのですが、楽天でんわのサイトで各ガラケーごとに非常に詳しく説明されていましたので、そちらを参考にしてください。
http://denwa.rakuten.co.jp/column/featurephone.html

上記サイトの説明どおりに進め、「003768」の代わりに、「05012345678P」(IVR回線の番号+ポーズ)をプレフィックスとして登録します。
ここでは「P」が重要です。
Pとはポーズのことで、ケータイによって表現方法が異なります。ガラケーであっても「,」で表現される時もあります。


◆【電話帳に直登録】
今まで紹介した方法でうまくいかない場合は、電話帳に直接プレフィックスを登録してください。
電話帳に直接登録する際は「05012345678,09055556666」のように登録します。


(応用編)カケホ2台を1台にまとめる
会社で支給されたケータイやプライベートのケータイなど、常に2台以上持ち歩かなければならない人向けの情報です。

片方のケータイをIVRによる【つなぐ】とすることで、1台のケータイから複数の発信者番号を使い分けることができるようになります。
GP-712を使えば3台までのケータイを1台に集約可能です。

考え方だけ整理すればやり方は簡単です。


過去何回か紹介しましたが、固定回線を用いたIP電話(050番号)は、固定回線と同等かそれ以上の音質となります。
これとケータイとを組み合わせることにより、安定した回線品質のまま自局番号以外からの発信を可能とします。

要するに、モバイル回線にはIP網を使わずPSTNを用いることで、安定した品質を確保するということです。
そして、IP網は必ず固定回線(WAN-LAN)上で接続します。
着信にはキャリア転送を用います。

まだ少しわかりにくいため、以下にフローを掲載します。
このフローを見ると、モバイル回線上にIP網が無いことがわかります。


A:持ち歩くケータイ(カケホ)
B:GP-71xに収容するケータイ(カケホ)
C:ブラステル等のIP電話

◆ 発信時
(Aの番号を通知する場合)
A →(カケホ回線)→ 相手先

(AからBの番号を通知する場合)
A →(カケホ回線)→ C →(光回線等)→ GP-71x →(Bluetooth)→ B →(カケホ回線)→ 相手先

◆ 着信時
(Bに着信した場合)
相手先 → B →(着信転送)→ A

(Aに着信した場合)
相手先 → A


プレフィックスをうまく用いれば、発信の都度、Aからの発信とするかBからの発信とするかを選べるようになります。

あとがき
ローカルにAsteriskを設置し、それでGP-71xを制御すれば非常に自由度は広がります。
と言うよりもそれがGP-71xの使い方であり、「普通」であり、そうすべきなのはわかります。

しかし、Linuxの知識を持たない人が、Asteriskをゼロから構築することは、決して簡単なことではありません。
相当数の人がその難しさから、挫折する以前にチャレンジすらしないと思います。(私も最初はそうでした・・・。)

今回はLinuxの知識を必要とせず、Asteriskに触れることなく、いかに簡単に【つなぐ】を構築できるかを念頭に考えました。
本記事で紹介した方法であれば、GP-712かGP-710さえあれば、難なく【つなぐ】の構築が可能です。
(海外通販でGP-71xを購入するのが、1つのハードルではあるのですが・・・)


さらに、今回の2つの方法は組み合わせることもできます。
GP-71xのRealm #1と#2とにそれぞれを登録することで、SIPでもPSTN(普通の電話)でも、どちらからでも利用が可能になります。

また、この他にも、アイディア次第で様々な使い方が想像できます。
特に「無料のIP電話との組み合わせ」は使い方によっては面白く、仮に固定電話や公衆電話からでも自分のケータイ番号を相手に通知することができます。
さらに、このIP電話番号さえ知っていれば、誰でもこの回線を使うことができるため、カケホ回線のシェアも簡単です。

ただしその反面、IP電話番号を知っていれば誰でも使えてしまうことから、セキュリティ対策は必須です。
知らずにIVR用のIP電話番号にかけた人が「ピロリローン」の後に、別の電話番号を入力するとは非常に考えにくいのですが、全く考えられないわけでもありません。
最低限の対策として国際電話の使用を無効にするか、通話料の上限は設ける必要があると思いますので、その点だけはご注意ください。

PBXesにブラステルなどのIP電話をレジストし、SIPトランクとしてブラステルを用い、指定電話番号以外からのIVRを拒否することも可能とは思われます。
しかし、これは難しくなりそうなので、「簡単に」がモットーであった今回はパスし、また別の機会にしたいと思います。
    

0 件のコメント :

コメントを投稿