むー便屋さんの配達記録

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

カテゴリ:IP-PBX > 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通知でハマったところを書きたいと思います。

↑このページのトップヘ