ここで3CXのネットワーク構成をば

こんなエンタープライズ向けの製品ですがネットワーク的に非常に取扱がビミョーですw

なぜならば外部からの通信を待受する(携帯の3CXアプリと)くせに内部情報を内包(企業内電話帳など)するうえ、宅内(社内ネットワーク等)の電話機と通信するためです。

基本的にSIP通信をするため一般的なリバプロ構成がとれません(通信プロトコルがWebではないため)Exchangeのようにエッジサーバーなどを建てられると良いのですが。
もしかしたらBridge機能を使えばそのような構成にできるのかもしれません。
しかしながらFreeライセンスではBridge機能が使えないため、とりえあず宅内のDMZネットワークに配置することにし、3CXサーバー(Win2012)と内部ネットワークとの通信を必要最低限に絞りセキュリティ性を確保してみました。

イメージ 1

ところがワタクシの自宅のインターネット回線

au光

だったものでau光はデフォルトでルーターが5060番を専有している関係でSIPの外部通信ができませんw

よって”サーバー自体にグローバルIPを持たせる(VPNで)”ことでソレを回避しています。

マイIP

このサービスを利用することにより固定IPをGetしつつ、(危険ながらも)サーバー単体にグローバルIPを持たせることが可能です。

こんなつまんない制約(5060ポートが使えない)さえなければ。。。と思いますが、実のところこのサービスでなきゃいけない理由がもう一つあるんです。

3CXはセットアップ時に自分のグローバルIPと3CXから配布されるSSL証明書を紐付けます。
よって引っ越し時や自分のインターネット環境の変化(プロバイダの変更等)に耐えうる必要があります。
要はグローバルIPをコロコロ変えちゃイケませんw

普通であればフレッツ光等で固定IPを拾得するところでしょうか。
ソレでも良いのですがそうなると環境が変化するたびに設定変更をしなければなりません。

その点、サーバー自体がVPNを張りグローバルIPを持つタイプにしておけば引っ越ししても何も気にする必要がありません(よって、Windowsファイアウォールその他サードパティ製ホスト型ファイアウォール等をキチンと設定導入しておく必要があります)

おかげでつい先日引っ越ししてプロバイダを変更しましたが何も気にする必要がありませんでしたw
仕組みとしては次の図のとおりです。


イメージ 2

※ポート情報に5060とありますが正しくはトンネリング用の5090です。
  管理用の5001も開けていないとダメのようで怖いですが5001も開けています(3CX自体がアタック防止機能がついているのでとりあえずソレでなんとかなってるようです、たまにアタックしに来たIPが自動ブラックリストされてます
基本的には

<プレゼンス機能>
同じグループに所属している内線の一覧とその内戦がOnlineかどうかまでリアルタイムに表示できます。
イメージ 1


<電話帳機能>
携帯本体の電話帳を参照します。
3CX側で電話帳の設定をすることにより、企業内電話帳として参照することが可能です。

<録音機能>
通話を録音する機能でデフォルトで使えます。
録音データはサーバー側で管理され、アプリから参照可能です。

<カンファレンス機能>
電話会議です。
3CXアプリからInvoiceを作成し、カンファレンスの開催通知を送信することが可能です。(カレンダーで日程調整可能
送られた側にはメールで会議開催通知が送信されます。
この辺は3CXはExchangeサーバーとの連携が可能です。
イメージ 2


3CXの最大の利点それは

携帯(スマートデバイス)と密接な連携が可能

である点です。

外出先でもスマホで受電が可能、発信も3CXアプリを使うことでIP-PBXの電話番号を使って発信が可能です。

仕組みとしては図のとおり

イメージ 1

スマートデバイスではつねにアプリを立ち上げておくことができないため、
Androidの場合はGoogleCloudプッシュ通知サービス
iOSの場合はApplePush通知サービス
を利用して携帯に着信させ、発信、通話の際はアプリが3CXにセッションを張って通信し通話を実現しています。

ちなみに宅内(社内)にいる場合は着信の仕組みはそのままで、WiFiで3CXにポート5060にてセッションを張ります。(3CXではWiFiOn/Offをチェックしています)
IP-PBXを導入するということはもちろん

外線受発信

シなきゃネ♪

ってことでSIPトランクの設定をします。

3CXは世界中の各社向けのテンプレートを内包してます。
ちなみに日本は

FusionCom

しかありませんw

これじゃ国内で本格的に利用されるのはまだまだ先だなぁ

何かしら適当なテンプレートを設定するとConfigを自分でいじれるのでもしかしたらSIPを喋れるVoIPプロバイダなら頑張ればどこでも対応するかもしれません。
※私は Phytter、アジルフォン、050Plusともに試しましたが挫折しましたw

よってテンプレートにあるFusionCom=SmartTalkを利用することにしました(できました)
Ver14のときはダメでしたが15にした途端うまくいきました。

FusionComを選択後以下のようにResistors(SmatTalkのURI)の項目とOutboundProxy(SmartalkのIPアドレス)の項目とDIDs(電話番号)の項目だけ変更します。
設定を保存すると絵のようにグリーンになり、レジストができたことが確認できます。
※繰り返しですがV14のときはこの設定ではうまくレジストはできましたが発着信はできても通話ができませんでした。その他の情報ではInboundParameter、OutboundParameterをいじることにより可能となったようでしたが同じように設定してもダメでしたw

イメージ 1
イメージ 2

イメージ 1

あのTwentyFour のCTU でも使われてたIP電話です。

実は以前Cisco7960を半年前くらいに購入していたのですが定番ですがCCSP版なのでファームウェアをSIPに書き換えるのに挫折して放置してました(5000円もしたのに。。。

先日ふとおもいついてリトライを試みたところうまくいったので記録しておきます。

この電話機、3CXが公式に条件付きで対応してます。

3CXからCISCOのファームをDLしてTFTP経由で書き込めばOKと書いてありますが

そんなかんたんじゃねっす

多分、XMLDefault.cnf.xml経由でファームを認識する仕様のためかと思われます。

3CXからDLできるファイルだけでは足りません^^;

よって以下ファイルを自力で作成します。

XMLDefault.cnf.xml
SIPDefault.cnf
SEP00175AEBF720.cnf.xml ← 00175AEBF720 の部分は使用する7960のMACアドレスにします

<XMLDefault.cnf.xml>
<Default>
  <callManagerGroup>
     <members>
        <member priority="0">
           <callManager>
              <ports>
                 <ethernetPhonePort>2000</ethernetPhonePort>
                 <mgcpPorts>
                    <listen>2427</listen>
                    <keepAlive>2428</keepAlive>
                 </mgcpPorts>
              </ports>
              <processNodeName></processNodeName>
           </callManager>
        </member>
     </members>
  </callManagerGroup>
  <loadInformation7  model="Cisco 7960">P0S3-8-12-00</loadInformation7>
<authenticationURL></authenticationURL>
 <directoryURL></directoryURL>
 <idleURL></idleURL>
 <informationURL></informationURL>
 <messagesURL></messagesURL>
 <servicesURL></servicesURL>
</Default>

#編集箇所は以下#
 <loadInformation7  model="Cisco 7960">P0S3-8-12-00</loadInformation7>


P0S3-8-12-00

の部分を3CXからDLしたファームウェアのファイル名(拡張子除く)にします。

<SIPDefault.cnf>
image_version: P0S3-8-12-00
proxy1_address: "192.168.77.185"            ; Can be dotted IP or FQDN
proxy2_address: ""              ; Can be dotted IP or FQDN
proxy3_address: ""              ; Can be dotted IP or FQDN
proxy4_address: ""              ; Can be dotted IP or FQDN
proxy5_address: ""              ; Can be dotted IP or FQDN
proxy6_address: ""              ; Can be dotted IP or FQDN
proxy_register: 1
messages_uri:   "1"
phone_password: "cisco" ; Limited to 31 characters (Default - cisco)
sntp_mode: unicast
sntp_server: "192.168.1.241"
time_zone: "GMT" ; assuming you're in GMT
time_format_24hr: 1 ; to show the time in 24hour format
date_format: "Y/M/D"  ; format you would like the date in
dial_template: dialplan

※Proxyaddressの項目をSIPサーバーのアドレスにします
※sntp_serverの項目は自宅内ないし外部のntpサーバーにします

<SEP00175AEBF720.cnf.xml>
<device>
<loadInformation model="IP Phone 7960">P0S3-8-12-00</loadInformation>
</device>

以上、3ファイルを作成し、DLしたファイル群と同じ場所に配置し、
TFTPサーバー経由でファームウェアを更新します。

そこんとこの仕組みは以下を参照願います。


TwentyFourを見ながらの7960Gはまた格別ですw
イメージ 2