■CommuniGate ProでiPhone/Androidとメール同期&SIP利用
このBlogのタイトルにもなっているCommuniGate Pro(CGP)は5ユーザまで無償利用可能な統合メッセージングサーバである。CommuniGate ProにはMS ExchangeのActiveSync互換のAirSyncという機能がありExchage同期設定が可能になっており、iPhoneやAndroid2.1以降の端末と簡単にメールのプッシュ同期設定ができる。また統合メッセージングサーバらしく、メール用に作成したアカウントのID/パスワードがそのままSIPアカウントとして利用可能で、ポート設定さえ適切に行えば、外部アカウントともSIPで音声通話/ビデオ通話が可能になるので非常に面白い。5ユーザまでは個人法人問わず無償利用可能なので、ここでその設定方法を紹介する。
CommuniGate System日本語ページ
http://lang.communigate.com/jp/
CommuniGate Pro ダウンロードページ
http://www.communigate.com/pub/CGatePro/
■CommuniGate Proのインストール
CommuniGate Pro自体は上記ダウンロードページを参照すると判る通り、非常に多くのOS及びプラットホームに対応している。バージョンが同じであればOSの種類を問わずデータは互換性があるので、必要なパフォーマンスによってOSの移行も容易である(データディレクトリをコピーするだけ)。ここでは過去にCentOS5向けに高パフォーマンス環境のインストール記事があるので、そのリンクを紹介しておく。こちらの記事のプロセス1〜6までがインストール手順となる。
カスタム版MyNETSとCentOS5で1万人規模のSNSを構築する
http://blog.isnext.net/issy/archives/384
以下の項目は上記インストール手順を前提にそれ以降の設定となる。
■CommuniGate Proにアカウントを追加する
サンプル設定に従い、sns.example.comにアカウントを追加するため「https://192.168.0.100:9010/」へブラウザでアクセス。user01を作成する。
管理画面>アカウント>ドメイン>sns.example.com
アカウント作成ボタン横の入力フィールドにuser01と入力
アカウント作成ボタンを押す
user01のアカウント設定画面が開く
「CommuniGateパスワード」にuser01のパスワードを入力
「更新」ボタンを押して保存する
■CommuniGate ProをExchange同期可能に設定する
上記で作成したuser01とuser02のアカウントがExchange同期できるように設定する。CommuniGate ProではExchange同期するにはhttp/httpsのいずれかでアクセスする必要があるので、まずはhttp/httpsを有効にする。
1)apacheが同時に稼働していない場合(TCP80/443が未利用)
管理画面>設定>サービス>HTTPU
HTTPU設定画面、「処理」項目の右端にある「リスナー」をクリック
ポート、ローカルIPアドレス、SSL/TLS初期化の項目に以下を入力
80、全てのアドレス、オフ
「更新」ボタンを押して保存
ポート、ローカルIPアドレス、SSL/TLS初期化の項目に以下を入力
443、全てのアドレス、オン
「更新」ボタンを押して保存
(リモートIPアドレス制限はどちらも「なし」でOK)
2)apacheが同時に稼働している場合
sns.example.comをapacheが使うように設定されている場合、Communigate ProにWebアクセスできるように、別のホスト名を割当てproxyを設定することでapache経由での同期を可能にする。ここでは別ホスト名をmail.example.comとする。(DNSにも適切に設定すること)
管理画面>アカウント>ドメイン>sns.example.com>ドメイン設定
ドメイン設定画面の一番下左にある「ドメインエイリアス」に
mail.example.comと入力
「更新」ボタンを押して保存
apacheにproxy設定を追加する(mod_proxyが有効になっていること)
以下のような設定を追加してapacheを再起動
SSL設定例(証明書とキーが別途必要です)
[code]
ServerName mail.example.com:443
ErrorLog logs/mail_ssl_error_log
TransferLog logs/mail_ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite
ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/mail/mail.crt
SSLCertificateKeyFile /etc/mail/mail.key
ProxyRequests Off
ProxyPass / http://localhost:8100/
ProxyPassReverse http://localhost:8100/
ProxyPassReverseCookieDomain localhost mail.example.com
ProxyPassReverseCookiePath / /
Order allow,deny
Allow from all
[/code]
https://mail.example.com/ にアクセスしてWebMail画面が開くことを確認
■CommuniGate ProをSIP利用可能に設定する
CommuniGate Proではインストール直後からSIPサーバ機能が有効になっているので、CGP側で特に設定することはない。サーバOS側でiptablesの設定を追加してSIP通信が外部と可能な状態にする。/etc/sysconfig/iptables に以下を追記してiptablesを再起動する。
[code] -A RH-Firewall-1-INPUT -p udp -m udp –dport 5060 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5060 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5061 -j ACCEPT[/code]
以上でCommuniGate ProにてExchange同期とSIPが利用可能になる。iPhone/Androidでの設定方法は以下の通り。
■iPhone/iPadでのExchange同期設定
設定>メール/連絡先/カレンダー>アカウントを追加…
Exchange選択
メール:user01@sns.example.com
ドメイン:sns.example.com
ユーザ名:user01
パスワード:設定したパスワード
「次へ」
(必要なら証明書を受け入れる)
サーバ:sns.example.com(apache併用の時はmail.example.com)
「次へ」
(アカウントの確認ができないと言われたら)
「保存」
保存後、アカウントの設定を開くとSSLを試用するかどうか設定できるようになるので、やむを得ない場合はSSLをオフにして試してみる。
iOS4では複数のExchange同期が設定できるが全てプッシュ設定しているとうまく動作しないようなので注意。iPhone/iPadはこの設定をすることで、リモートワイプ等も実行することが可能。
リモートワイプは以下の手順で実行
管理画面>アカウント>ドメイン>sns.example.com>user01>モバイル
AirSyncクライアントにiPhoneやiPadが表示されるので、ワイプする端末にチェックを付けて「消去」ボタンを押す。するとワイプが設定されて、次回端末がアクセスしてきた時にリモートワイプが実行される。
■AndroidでのExchange同期設定
機種ごとに若干差異があるので、ここではNexusOne (froyo)の設定方法を紹介。
設定>アカウントと同期>アカウントを追加
Microsoft Exchange ActiveSyncを選択
メールアドレス:user01@sns.example.com
パスワード:設定したパスワード
「次へ」
ドメイン/ユーザー名:user01
パスワード:設定したパスワード
サーバー:sns.example.com(apache併用の時はmail.example.com)
安全な接続(SSL)を試用する チェック
全てのSSL証明書を承認 自己証明の場合はチェック
「次へ」
新着メール自動確認:自動(プッシュ)
同期する量:3日間
いつもこのアカウントでメールを送信 必要ならチェック
メールの着信を知らせる チェック
このアカウントから連絡先を同期します チェック
このアカウントからカレンダーを同期 チェック
「次へ」
このアカウントに名前を付ける:省略
「完了」
Android端末では2.1以降でExchage同期が標準実装されるが、リモートワイプ機能は2.2以降が対象となる。残念ながらCommuniGate Proでは一部非互換があるため、カレンダー同期とリモートワイプが5.3.xのバージョンでは実行できない。5.4系で修正されるということなので、来年初めには問題が解決されると期待している。
Androidのリモートワイプ対応状況については以下を参照。
AndroidのExchange連携(リモートワイプ)対応状況
http://blog.isnext.net/issy/archives/280
■SIPアプリケーションのアカウント設定
こちらは別途アプリ比較等を行った時に記事にしたいと思う。原則的にはユーザでuser01@sns.example.com、パスワードに指定パスワードを入れて、サーバにsns.example.comを入力すれば、多くのSIPアプリではSIPレジストまでは可能だと思われる。CommuniGate Proは音声/映像コーデックの変換機能はないので、SIPクライアント同士が同じコーデックを持っていることが必須になることに注意。
CommuniGate Proで動作実績のあるSIPソフトは以下。
http://www.communigate.com/Papers/VoicePlus_Technical_DataSheet_A4-c.pdf
AndroidのSIPアプリで確認した状況は以下も参照。
AndroidとSIP/VoIP
http://blog.isnext.net/issy/archives/292