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通知でハマったところを書きたいと思います。