Installation Flashcoms Community Chat auf FreeBSD

Der Flashcoms Chat basiert auf dem opensource Red5 Flash Server. Also installieren wir diesen als erstes:

Server Installation

Red5 Flash Media Server

Die Installation von Red5 auf FreeBSD behandle ich in einem separaten Artikel.

FlashComs Community Chat

Chatserver

Ab der Version 7.1 gibt es noch einen separaten Chatserver (Schnittstelle zum Mediaserver – in meinem Fall also Red5)

Ich installiere den Server nun ins folgende Verzeichnis:

mkdir /usr/local/software/flashcoms_v71/

Hier kommt nun das Verzeichnis chat_server aus dem Package rein. Nun das Startup Script anpassen:

cd chat_server/
vi flashcoms_chat_server.sh 

Hier folgendes anpassen:

#!/bin/bash

ersetzen mit

#!/bin/sh

sowie die SERVER_DIR Variabel anpassen:

#SERVER_DIR=/home/flashcoms/flashcoms-chat-server-7.1
SERVER_DIR=/usr/local/software/flashcoms_v71/chat_server

Permissions setzen

chmod 775 *.sh

Startup Script

cd /usr/local/etc/rc.d/
ln -s /usr/local/software/flashcoms_v71/chat_server/flashcoms_chat_server.sh .

Bestehende Settings kopieren

Nun die bestehenden Settings kopieren. Da vorher die Settings im Red5 Verzeichnis gespeichert wurden, muss man die Daten dort abholen:

cp -r settings settings_dist
cd settings
cp -r /usr/local/red5/webapps/chat/WEB-INF/settings/* .

Nun sind alle Settings vorhanden. ACHTUNG! Die Settings vom Admin Panel sind nicht dabei. Vorher wurden diese Einstellungen im File

/usr/local/red5/webapps/chat/persistence/SharedObject/settings.red5 

gespeichert. Dies ist aber kein XML File und kann daher nicht einfach kopiert werden. Meine einzige Lösung war, alle Admin Settings manuell zu Notieren und nach dem Start der neuen Server Version im Admin Panel die Konfigurationen neu einzustellen.

Danach werden die Admin Settings in diesem File gespeichert – und man kann sie dann zukünftig auch Backupen:

admin.settings.xml
log4j.properties

Nun kann man die FlashComs Logfiles einfacher verwalten. Einfach in der Datei

vi log4j.properties

die Zeilen für die Location anpassen:

log4j.appender.RollingFile.File=/var/log/red5/flashcoms.chat-server.log
log4j.appender.Statistics.File=/var/log/red5/flashcoms.statistics.log

ChatClient

Zuerst einmal den Trial Chat runterladen und entpacken:

mkdir /usr/local/software/
fetch http://www.flashcoms.com/products/community_video_chat/download_trial/download/2/
mv fetch.out trial-chat7.zip
unzip trial-chat7.zip

Und jetzt die FlashComs Server Config ins red5 Verzeichnis kopieren:

cp -r trial-chat7/trial-chat7/red5/chat7_trial /usr/local/red5/webapps/
chown -R www:www /usr/local/red5/

Nun noch die Configfiles so anpassen, dass sie den eigenen Bedürfnissen entsprechen (eigene Verzeichnisstruktur etc.) Ich arbeite ab jetzt mit der Vollversion – also nicht verwirrt sein, dass das Verzeichnis nun plötzlich chat7 statt trial-chat7 heisst:

vi /usr/local/red5/webapps/chat7/WEB-INF/red5-web.properties 

Hier schauen, dass die Verzeichnisstruktur stimmt bei (möchte man mehrere Domains / Subdomains hinzufügen, kann man das auch mit diesen Settings machen):

webapp.fcHttpRoot
webapp.fcAcceptDomains

Ok, soweit ist nun alles fertig. Nun den red5 Server starten (oder rebooten, falls er bereits läuft)

Client Installation

Der Client wird soweit fixfertig geliefert. Es müssen nur noch die Integrationsanpassungen für die eigene Community gemacht werden. Wichtig auch, wenn sich nicht alles auf dem Localhost befindet (bei mir ist Server/Client auf zwei verschiedenen Servern), muss man das entsprechend anpassen.

In der Trial Version ist alles auf localhost eingestellt. Damit der ChatClient funktioniert, müssen diese Files unbedingt angepasst werden:

# grep localhost *
chat.htm:               z5chat.rtmp = 'rtmp://localhost/chat7_trial/';
chat_embeded.htm:               z5chat.rtmp = 'rtmp://localhost/chat7_trial/';
sample.htm:     z5chat.rtmp = 'rtmp://localhost/chat7_trial/';
sample.htm:     z5chat.rtmp = 'rtmp://localhost/chat7_trial/';
sample.htm:     z5chat.rtmp = 'rtmp://localhost/chat7_trial/';
js/flashcoms.js:var projectRootUrl = 'http://localhost/chat7/';
admin/admin.htm:                var flashvars = {rtmp:'rtmp://localhost/chat7_trial/'};

Also:

  • Befindet sich der Chatserver auf einem Remote Host, muss rtmp://localhost/chat7_trial/ in rtmp:///chat7_trial/ geändert werden.
  • Dann noch die http URL des Chat Clients im flashcoms js file: http://localhost/chat7/ in http://example.com/member/chat7/

Nun sollte man bereits connecten können.

  • Chat: http://example.com/member/chat7/sample.htm / chat_embeded.htm / chat.htm
  • Admin: http://example.com/member/chat7/admin/  (user: admin / pass: admin)

Als nächstes kommen die diversen Handlers für Auto-Login etc.

Fehlermeldungen / Problembehebung

Alle Fehlermeldungen von Red5 werden in diesem Artikel behandelt.

Flashcomms Fehlermeldungen:

Error #2 / Connection refused

Die ErrorCodes sind grundsätzlich im mitgelieferten ChatManual aufgelistet. /manual/#error_codes

Bei diesem Error bedeutet es, dass der Medien Server (also Red5) die Connection refused hat. Meine Ports sind jedoch alle offen… Nach langem hin- und her habe ich die Lösung gefunden:

Der FlashComs Chat V7.1.3 benötigt den Ray5 Server Version 1.0 RC1. Und zwar GENAU RC1. Ich hatte RC2 installiert, daher kam beim Startup dieser Fehler. Obwohl das Video Streamen funktioniert hat (Nachdem man 2x den „enable A/V“ Button geklickt hatte). Nachdem ich auf RC1 gedowngraded habe, war der Fehler beim Startup weg (wie auch immer, man muss weiterhin 2x klicken um die Webcam zu aktivieren.)

RC1 muss man per Tarball installieren. Das bereitet viele Probleme, daher hab ich hier eine Schritt-für-Schritt Anleitung gemacht.

Error #0 / Application not started

Nach einem Flashcoms Upgrade ging plötzlich gar nichts mehr. Das hat den Fehler verursacht:

Cannot find class [org.red5.server.scope.WebScope] for bean with name 'web.scope' defined in ServletContext resource [/WEB-INF/red5-web.xml]; nested exception is java.lang.ClassNotFoundException: org.red5.server.scope.WebScope;

Problem scheint irgendwo in den neu angelieferten Webapps von Flashcoms zu liegen. Habe momentan wieder die alten Backups von

/usr/local/red5/webapps/chat71
/usr/local/red5/webapps/chat71_log_pro

zurückgespielt, und jetzt geht’s wieder.

Wenn man das File chat71/WEB-INF/lib/chat71.jar jedoch genauer anschaut, sieht man, dass sich eine Location geändert hat:

Vorher stand im chat71.jar\com\flashdevs\f7\chat\red5\Chat71.class

org/red5/server/api/IScope 

-> in der neuen Version ist es jedoch

org/red5/server/api/scope/IScope

Das deutet darauf hin, dass die webapps für eine neuere Red5 Version kompiliert wurden… Bin noch am abchecken für welche Version…

Ah… Flashcoms auf red5-1.0.0.tar.gz geupgradet. Daher hat es weder mit RC1 noch RC2 korrekt funktioniert. Also Updaten! Aber Achtung! Version 1.0.1 ist bereits draussen – und die Wahrscheinlichkeit ist gross, dass es mit der neusten Version nicht funktioniert. Also unbedingt 1.0.0 verwenden!

Flattr this!

  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben