Lion ServerでiChatサーバーを設置する

Pocket

ちょっと必要があってLion Server上にプライベートなチャットサービスを立ち上げるべく、iChatサーバーの設定に挑戦しました。

Lion ServerのiChatサービスには基本的にほとんど設定の余地はなく、

  • 他のサーバーと連携するか(する場合はドメイン指定)
  • チャットログを保存するか

しかありません。ぶっちゃけスイッチをONにするだけで起動します。

ただしウチ限定の現象かも知れませんがハマったので覚え書き。

■ポート開放

ルーターで開放(Lion Serverにリダイレクト)する必要があるポートは、

ポート番号 プロトコル 備考
5222 TCP チャット
5223 TCP チャット(SSL)
7777 TCP ファイル送受信
5678 UDP  
16384-16403 UDP ビデオチャット

という感じでした。この辺りを見ると他にもあるっぽいですが、とりあえずウチでは上記のみで一通り使えてる気がします。全クライアントにSSL利用を強制できるなら5222は開けなくてもいいかも。サーバー間連携を使う場合は5269(TCP)とかも必要でしょう。またウチのルーターはポート番号を範囲指定できす、ビデオチャット用のポートを全て個別に指定することはできず、欄がある限りで16384-16390のみ開放していますが、これもいまのところ問題なさげです。同時利用者数が増えたりすると足りなくなるのかも知れません。

■認証が通らない

次にハマったのが認証で蹴られてログインできない現象。「サーバー」アプリの「ログ」でiChatのサービスログをみると、

Jul 12 20:25:55 jabberd/c2s[52503]: SASL callback for non-existing host: hoge.com

というエラーが記録されています。どうも、アカウント名として、ホスト名無しの「ユーザ名@ドメイン名」形式は標準では受け付けないようです。「ユーザ名@ホスト名.ドメイン名」なら問題ないんですが、ウチの場合Lion Serverを外向けDNSに登録してなかったし、無駄にアドレスが長くなるし、ということで、こちらを参考に設定ファイルを直接書き換えました。

/etc/jabberd/sm.xml:

<local>
        <!– Who we identify ourselves as.
         Users will have this as the domain part of their JID.
         If you want your server to be accessible from other
         Jabber servers, this IDs must be FQDN resolvable by DNSes.
         If not set, the SM id is used. –>
        <id><myserver>.<mydomain>.com</id>

/etc/jabberd/c2s.xml:

<id require-starttls="true" pemfile="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.concat.pem" private-key-password="C4D239B3-87B9-4F58-9D3E-541587EFD7EF" cachain="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.chain.pem"><myserver>.<mydomain>.com</id>

それぞれ赤字部分を削除し、iChatサービスを再起動すればOKです。この手の編集はバージョンアップなどで元に戻ってしまう可能性もありますが、まぁ当面様子をみようと思います。

■クライアント

Lion まではiChat、Mountain Lion以降は「メッセージ」を使います。Lion + β版「メッセージ」で動作確認しました。またiChatサーバーはJabberのXMPPというプロトコル互換なので、Windows用の互換ツールでも(少なくともプレゼンスやテキストチャットのレベルは)問題ないと思います。

また残念ながらAppleからiChatクライアントはリリースされていませんが、Jabber/XMPPアプリは数多くあります。例えばimo instant messengerは日本語も含めて大丈夫っぽいです。画像もアップできますが、imo社のサーバーに置かれてURLが先方に届く形式のようで、プライベートな写真のやりとりには向かないかも知れません。

他にMonalはデザインも良く無料でなかなかなのですが、残念ながらiOS5の日本語キーボードサイズ変更問題に対処できておらず、日本語<->英語と切り替えると入力欄に文字が打てなくなる問題を孕んでいます。更新されたら是非こちらを使いたいとは思います。

その他、Cisco Jabber IM for iPhoneはログインできず、ボイスチャットも対応というOctro Talkはすぐにログイン、ログアウトを繰り返して実用にはなりませんでした。有料アプリではBeejiveIMシリーズ辺りが評価が高いようですが、まぁimoで必要最低限のことができそうなので試していません。

■iChatでできること

で、そもそもな話、iChatでなにができるのか、SkypeやiMessageとなにが違うのか、という話。

まず大きなのは自前のサーバーを立てることで、クローズドなチャットシステムを構築できるということですね。企業内でのやりとりをするのにSkypeやLive Messengerなどの半ば公のサービスを使えないところも少なくないでしょう。

Mountain Lionになって「メッセージ」アプリと統合されるので、iChatのために別アプリを立ち上げておかなくても良くなるのも嬉しいです。

機能面では、オンラインプレゼンス(退席中などのステータス表示)、テキストチャ
ット、ボイスチャット、ビデオチャット、画面共有など競合サービスにひけをとらない感じです。ただしビデオチャットの画質はSkype HD等には及ばず、従来のSkypeやLiveなどと同レベルという印象です。またiChat Theaterという機能で動画やPDFなどを共有することができます。ビデオチャット中に動画ファイルをドロップすると、ファイル転送するか再生するのか選択肢が表示され、再生すると向こうとこちらで同期して動画視聴ができます。この時、スライダーを動かしたり一時停止したりといった操作はファイルをドロップした側の人のみ可能です。これも残念ながら画質はVGA程度です。また常に相手のカメラ映像も並んで表示され、全画面で動画を表示することはできません。でもまぁ動画を観ながらチャットというのはなかなか楽しげな気はします(ちなみにYouTube上の動画であればGoogleのHangoutで似たようなことが可能です)。

2012.07.15追記:

画面共有は相手側の操作もできますね。これはSkypeなどでもできないのでWindows同士でのLive Messengerに匹敵するメリットです。遠隔のMacをサポートする時などは便利です。Live Messengerはルーター環境によってつながらないこともあって、最近はSkypeで画面を”見るだけ”で操作は相手に口頭で伝えてやってもらうことが多かったんですが、Mac同士ならウチのサーバーにアカウント発行してつないでもらうのがヨサゲ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)