むー便屋さんの配達記録

とりあえず営業を開始してみました。配達時間は不定期です。配達ミスもあります。ご利用は慎重に・・・。

カテゴリ: IP-PBX

表題の通りです。

RT107eやRTX1100でPPPoE接続してる場合、ブラステルの050と携帯や固定への通信が1分ぐらいで切れてしまう問題。

最近ちょっと時間があったので、フィルターを解除(フィルターレベル3:「セキュリティレベル3:中弱(予期しない発呼+NetBIOS+Ingress)」)にして実験したら切れませんでした。
フィルターについてはこちら

やっぱりフィルターだったか・・・。ただ、どのフィルターが原因なのかまでは時間がなくて断念。
レベル5でも7でも状況が変わらなかったため、おそらく静的フィルターのどれかがダメなのだと思います。
原因となっているフィルターを解除さえすれば、レベル7をベースにして常時接続ができるのでそうしたいんですが、いかんせんフィルターの数が多すぎて試すのが面倒ww。

あたりを付けてやってみるか・・・

追伸:ついでにRT107eでIPv6IPoEの設定をしてIPv6使えるようにしちゃいました。ASAHIネットは無料でIPv6IPoEが使えるので、試してる人が多いのか、IPv6でもあまりスピードがでません。
とはいえIPv4よりは断然早いですが。


最近はギガルータ使っても100Mも行かないので、ならrt107eでいいやって感じで。
でもRT107eってIP電話切れちゃう問題があったから敬遠してたんですが、解決する目途がついたので再登場したところでした。

IP-PBXで流浪の旅をしていますww。

IP-PBX(スマホ内線連携)化を検討している中で、大手キャリアの提案が全然なので自分で検証してたんですが、それぞれの特徴がなんとなくわかってきました。
一番長く検証してたのは3CXですが、今時点で思うメリットとデメリットを列挙。

(補足説明)
3CXで着信率の悪さからサーバをアップグレードしてみようかとか考えたてたんですが、どう考えてもアプリの問題だったので、解決しないだろうと諦め、旅をすることにしました。
今回は、クライアントアプリで選んでみました。アプリはAGEPhoneで国産。で、有料だけどパークやピックアップボタンがあるものもあるため、それとの親和性を重視してサーバを選定し、テストしてます。
クラウドではなく、オンプレ可能っていうのも条件です。


3CX
http://www.3cx.jp/
メリット
 ALL in One!!
  例:Push対応、独自電話帳対応、録音、デジタル受付、モーニングコール、ホテルモジュールあり、外部データの連携(ODBC、Exhengeなど)、etc・・・
 スマホアプリのプロビジョニング
 管理画面が使いやすい

デメリット
 スマホアプリの作りが悪い(いつの間にか終了していて着信しないとか、デザインもいまいち)
 導入実績例がなさすぎる
 サポートが不安(こちらの不安要素を全然取り除いてくれる気配がない)
 トランクの設定項目が少なすぎて対応できない場合がある。
  (設定項目が少ないので、設定に迷うことが少ないためそれは逆にメリットでもあるが)
 いちいち電話帳を読み込みに行くので起動が遅い!

Brekeke
http://brekeke.jp/
メリット
 Agephoneを使えばPush対応(AGEPhoneは国産!)
 海外だが導入実績の例がある(ということがわかる)
 国内でもあるらしい(H社からの特別パッケージという形で)
 Windows用がある。

デメリット
 評価版が60日という日数制限があるのに、機能まで大幅制限があってはっきり言って評価にならない。
 (例えば、Pushを試したければ買ってください、ということらしい。あほか!そのための評価版だろう!!)
 AgePhoneでPush対応なのに、AGEPhoneビジネスのパークやピックアップボタンには対応していない
 管理画面が使いにくい。
 電話帳がない


FreePBX
http://www.qloog.com/freepbx/(日本の総代理店)
メリット
 ある程度の機能が無料で使える、試せる。
 AGEPhoneビジネスのパークやピックアップボタンに対応してるらしい。
 ベースはAsteriskなので、資料が比較的たくさん見つかる

デメリット
 Push非対応
 管理ツールとAsteriskの連携がちょっと不安定っぽい。
 電話帳がない。
 日本語化が中途半端なので、若干わかりにくい部分がある。

意外とダメだったのがBrekekeです。制限ありすぎ。1日1回必ずダウンするんですよ。評価版の試用らしいですが。もうね、そこまで使わせたくないんだったら評価版出すなって感じ。その点3CXは太っ腹ですね。評価します。
メリットデメリットあって迷うところですが、スマホメインで考えるならFreePBXかなーと思って評価続行中です。
とりあえず3CXはアプリがダメダメなので、魅力半減です。そこだけなんですが・・・。

何とか着信率を上げようと、自分達でできる範囲は挑戦しましたが、限界があるため、アプリの仕様を変更してほしいと代理店や3CXにメールを送っているのですが、どちらからもスルー。やっぱり海外製品はサポートがダメダメなのか・・・。まあ、そう簡単に要求通るわけないですが、せめて返信がほしい。テンプレでもいいから。


まあ、購入してるわけではないので、半分以上聞き流されている感じはありますね。

で、今問い合わせをしている内容は3CXのアプリの仕様。
比較対象はブラステルの050Freeアプリ(AcrobisのOEM)

050Free、よくできてます。
タスクキラーしても消えないし、ネットワークの状態を監視し、変化があったら登録しなおしてるようなんですよね。ネットワークを切断するとアイコンが変化し、ネットワーク接続が復活するとまたもやアイコンが変わり、Push待機となるんです。こういった動きが着信率に大きな差になって出てると思います。

かたや3CXは、タスクキラーでほぼ100%終了します。また、気づいたら消えてることがあり、タスクに残ってるときは、050Freeと同じような再登録動作をしているようですが、タスクから消えると、アイコンは残っていても動作していないというお粗末ぶり。もうちょっと頑張ってよ。

ここを改善するだけでかなり違うと思うんですよね。
やみくもに再登録動作はバッテリーに負担をかけるので、そこはうまくやってほしいところです。

NATテーブルはだいたい15分という場合が多いため、接続情報を保持しておき、15分未満に切断前のネットワークに戻ればそのままでいいし、それ以外は再登録とかね。
それぐらいの動作ならバッテリーにもそんなに負担かけないんじゃないかと思いますがどうなんでしょうか。

あと、タスクキラーで消えないようにしてほしい。
終了はアプリの終了から行うようにすればいいわけだし、気が付いたら着信しない状態とか、業務利用には無理やって!!

3CXさん、よろしく!!

音が悪い、通話にならない。という苦情が。
具体的にいうと、「相手がこちらの声をちゃんと聞き取れない」という状況。

実際に通話してみると、「話し始めが聞こえない」「切れる」「そもそも小さい」という印象。
端末にもよるみたい。
自分のNexus5Xはそのまでの苦情がない。arrowsM02はひどいみたい。

そこで調査開始。

解決策として、2つほど施しました。
 1.コーデックの優先順位を変える
 2.マイクゲインを変更する

です。
では設定変更してみましょう。
説明はAndroid用です。すみません。iPhone持ってないんで。

1.コーデックを変更する
「設定」→「アカウント」→「オーディオコード」
で、優先順位を
G.711(uLaw)
G.711(aLaw)
G.722
GSM

としました。(G.722はおまけ)
これは、音質の改善のためです。
デフォルトではGSMが優先になっているため、音質は決して良くないです。

Screenshot_20161010-120347

















2.マイクゲインを変更する
「設定」→「オーディオオプション」→「マイクゲイン」
とりあえず「2」にすれば大丈夫だと思います。

Screenshot_20161010-120516
















Screenshot_20161010-120522
















おまけ
「設定」→「オーディオオプション」の中に、「Microphone Source」という項目があります。
タップしてみると、
 AdvancedMode
 BasicMode
の2種類があり、通常は「AdvancedMode」が有効になっていると思います。
Screenshot_20161010-120527















これ、BasicModeにすると、マイクの入力レベルが上がるので、マイクゲインはそのままでも行けますが、エコーがひどくなります。
(数秒遅れて自分の声が聞こえる)
なので「AdvancedMode」で「マイクゲインを上げる」のがいいと思います。

マイクゲインをあげすぎると、音が割れて逆に聞き取りづらくなるので、2か4ぐらいで普通はいいと思います。


P.S. V15が出てるみたいなので、試してみようかなあ。でも着信率はクライアントの問題だからあんまり期待できないな・・・。
続きを読む

着信率が若干あがりました。

といっても、外線転送のお蔭ではありません。
ちゃんと内線着信です。

変更したポイントとしてはやっぱり?ネットワークの設定
NATテーブルの保持時間とDHCPのリリース期限の時間を変更しました。

RTX1100使ってるので、そのコンフィグを抜粋すると、
-----------------------------
nat descriptor timer 1 tcpfin 10
nat descriptor timer 1 protocol=tcp port=www 180
nat descriptor timer 1 protocol=tcp port=5228 172800
nat descriptor timer 1 protocol=tcp port=5229 172800
nat descriptor timer 1 protocol=tcp port=5230 172800
nat descriptor timer 1 protocol=tcp port=2195 172800
nat descriptor timer 1 protocol=tcp port=2196 172800
nat descriptor timer 1 protocol=tcp port=5223 172800

dhcp scope 1 192.168.***.20-192.168.***.199/24 expire 48:00 maxexpire 48:00
-----------------------------

という具合。

要するに、
 NATテーブルにある、Push通知用の情報は2日保持。
 DHCPも2日に設定。

です。こうすることで、一度そのネットワークでPush通知の通信用設定が確立すると、2日経つまでに戻ってくれば着信するという具合。実験済みです。

これはある意味諸刃の剣で、DHCPのリリース期間が長いので、大量の不特定多数の接続端末がつながる環境だと、IPアドレスが枯渇して接続できない!っていう問題を起こす可能性がありますが、端末が決まっているような場合ならとても有効じゃないかと思います。





一通り設定できてるんですが、いかんせん、着信率が悪い。

うーん、こういったスマホ内線システムがいまいち主流にならない理由がちょっとわかったような気がします。

原因としては
 1.アプリの仕様
 2.ネットワークの問題(Pushの仕組みやTCPの仕組みなど)

があります。
個人ではどうしようもできないところがあります。

そこで考えた!苦肉の策!!

内線着信できなかったら、ボイスメールになるのがデフォルトの設定だが、それを
「mobile number」、すなわち携帯番号へ転送するようにしちゃえばいいのだ!!
(いいのかそれで・・・・・)

3cx_chakushin






IP電話料金発生しちゃうけど、着信しないよりはいいだろう!ということでさっそく設定変更ww


これは意外に簡単でした。
簡単といっても、それなりにハマりましたのでメモです。

まず、SIPトランクを追加しますが、3CXにはFusionが標準で準備されています。
が、これを使ってもできませんでしたが、とりあえずそれを雛形に設定しました。

SmarTalkを使う場合は、SmarTalkの情報画面にある情報を使います。
samrtalk01










↑こんなやつです。
ポート番号などはそのままで大丈夫です。


で、着信はできましたが、発信ができない。ちょっとハマりましたが、発信パラメータを適当にいじってたらできたのでそれをそのまま載せます。
smartalk02

























で、あとは、
 ○IPに着信があったときに、どの内線を鳴らすか?
 ○どの端末でIP発信を許可するか?

を設定すれば準備OKです。

以上です。
SmarTalkは標準的な設定で、とても素直に設定できてとてもいい印象です。
それに比べて050Plusは反応すらしない・・・。

Asteriskだと設定方法が載ってますが、3CXではどうやったらできるんだろう・・・・。
気が向いたらちょこちょこやってみようかな。

これ結構苦労しましたww。

いくらHELP探しても英語の3CXのサイトしか出てこんし。
そこはみたっつーの、みたいな。

原因の究明も大変。サーバ問題?クライアントのネットワークの問題か?とか。
それがあって最初はNAT配下に置いていたサーバをグローバルにおくことにしました。
まあ、結果的には設定手順とクライアントのネットワークの問題でしたが。

試行錯誤した結果、以下の手順で行う必要がありそうでした。

1.Google Developer Console https://developers.google.com/console/ で、 “Create Project” で何でもいいのでとりあえずプロジェクトを作成する。ここで作成される「プロジェクトナンバー」が必要になります。
2.メニュータグからAPIマネージャを開き、「
Cloud Messaging for Android」を有効にします。
3.認証情報にて、「新しい認証情報」⇒「APIキー」⇒「ブラウザキー」で、APIキーを作成します。
4.3CXの管理画面の「設定」⇒「Push」で先ほどの「プロジェクトナンバー」と「APIキー」を設定します。
5.3CXの管理画面の「内線」の中から、設定させる内線に対し、「send mail」で設定ファイルを送ります。
6.送られてきた設定ファイルを読み込めばOK。
 ※サーバ側の内線設定で、Pushが有効になってないとだめですよ!!

でした。
ポイント設定する順番。
 1.まずPush設定をする
 2.そのあと、設定ファイルをメールで送り、その設定ファイルでクライアントを設定する
っぽいです。やってみた感じでは。

こんなこと書いてないし。再起動すればいいっぽくしか書いてないし。確かに再設定を最新にとか書いてあるけど・・・。そういう意味なのか?

それでもだめ場合。

疑うのはネットワークの問題。一番大きいのはuPnP←業者談NATテーブルのTTL←自分の経験)
これが原因の場合、LTEおよび3G回線ならうまく着信するはずです。

もしWifi環境などで端末がpushで着信しない場合は、WIFiルータを再起動する、またはルータのuPnP設定がどうなっているかを確認してみましょう。
 →後述してますが、NATテーブルのTTLも要注意!!30分~60分を設定してみましょう。
もしuPnP設定ができない場合は、独自でポートを開けるしかないですね。でも3CXはSTUNでNAT越えができるハズなので、uPnPはあまり関係ないかもしれません。YAMAHAルータで状態をみてますが、uPnPのテーブルには何も表示されないので・・・。
GCMのポートについては以下の内容を参考にするといいと思います。

You need to configure the firewall to allow connectivity with GCM in order for your Android devices to receive messages. The ports that you have to open on your firewall are: 5228, 5229, and 5230 TCP. GCM typically only uses 5228, but ports 5229 and 5230 are also used sometimes. GCM doesn't provide specific IPs, so you should allow your firewall to allow outgoing connections to all IP addresses contained in the IP blocks listed in Google's ASN of 15169.


ちなみに、iOSは試してないです。
自分はAndroidしか持ってないのでww。
おそらく同じでいけると思いますが。
iOSの場合のファイアーウォールの設定は以下のような感じ。ただしバージョン12のヘルプから。

Push providers, iOS devices, and Mac computers are often behind firewalls. To send push notifications, you will need to allow inbound and outbound TCP packets on port 2195. To reach the feedback service, you will need to allow inbound and outbound TCP packets on port 2196. Devices and computers connecting to the push service over Wi-Fi will need to allow inbound and outbound TCP packets through port 5223.

The IP address range for the push service is subject to change. The reason being that providers will connect by hostname, rather than IP address. The push service uses a load balancing scheme that yields a different IP address for the same hostname. However, the entire 17.0.0.0/8 address block is assigned to Apple, so you can specify that range in your firewall rules.


iOS試したらまた追記したいと思いますが、とりあえず3CXのバージョン14では設定項目がないので、設定する必要はないんだろうな、と思っています。


続きを読む

IP-PBXのソフトは結構ありますが、Linuxベースがほとんどです。

そんな中、WindowsベースのソフトSIPサーバが「3CX」です。

3cxicon















ざっくり特徴としては
 Windowsベース
 同時通話数によるライセンス課金(同時1通話までなら全機能が無料で使える)
 パーク保留OK
 Push通知OK(Android,iOS)
 SIPtrunk
 OutlookやExchengeとの連携
 ・・・・etc

とても魅力的です。
これを何とか使ってみよう!ということでいろいろやってみました。
全部記載すると面倒なので、特にハマったところを書いてきたいと思います。

まあ、とりあえずはインストール。
以下のサイトからダウンロード。
http://www.3cx.jp/ip-pbx/download/

インストールしていきますが、NAT環境下ではネットワークの設定がちょっと大変です。SNATとかできる環境でなければグローバルIPの環境が一番素直でやりやすいです。
3CXで利用するポートは以下の通り(一部はデフォルトの設定なので変わる可能性あり)。
NAT環境で行う場合は以下を参考にしてポートフォワーディングなどの設定をするといいと思います。
http://www.3cx.com/docs/firewall-router-configuration-voip/

2195-2196,5223 tcp(APNS:Apple Push Notification Server Infomation)
5060 tcp/udp (sip)
5061 tcp (secure sip)
5090 tcp/udp (3cx tunnel)
5228-5230 tcp (GCM:Google Cloud Messaging)
9000-9255 udp (外線通話用、1通話2ポート使用)
9256-9499 udp (WebRTC)

80 tcp(http access for iis)
443 tcp(https access for iis)
5000 tcp(http access for Abyss Web Server)
5001 tcp(https access for Abyss Web Server)

Linksysのルータの設定例が載ってますので、それを参考にしてもいいと思います。
http://www.3cx.com/blog/voip-howto/linksys-router-configuration/

自分はごりごりIPtablesを書きましたが、イヤー面倒。うまくいかないときに、何が原因なのかがわからない!!
なので、結局グローバルIPを振りましたww。
(Pushがうまくいかなかったんでグローバルを振ったのですが、結局NATの問題ではなかったので、ちゃんと設定すればPush通知もうまくいくと思います。)

というわけで、次回はPush通知でハマったところを書きたいと思います。

↑このページのトップヘ