Installation FreeSwitch

Mit FreeSwitch können Sie die Voice-Funktion in OpenSIM nutzen um sich nicht nur über die Tastatur im Chat mit anderen Avataren zu unterhalten, sondern auch über ein Mikrofon mit Ihrer Stimme.

Erste Informationen zu FreeSwitch erhalten Sie auf der offiziellen Webseite: http://www.freeswitch.org

Linux Installation: Suse 32/64-bit

Installation und Konfiguration von Freeswitch für OpenSim unter Linux

Wichtige Linksplugin-autotooltip__small plugin-autotooltip_bigBookmarks

Der Bookmark-Server speichert zentral Bookmarks, Lesezeichen, Favoriten bzw. Links zu Internetseiten, Dokumenten und Quellen im Internet für einzelne Benutzer, Teams oder Arbeitsgruppen. Der Vorteil der zentralen Speicherung und Verwaltung an einem Ort ist der das man jederzeit und überall Zugriff auf seine BookmarksLinksBookmarksBookmarksLinksBookmarksLinks
:

FreeSwitch ist eine Kommunikationsplattform die unter MLP 1.1 lizensiert ist. Der Vorteil ist der modulare Aufbau und die SIP-Funktionalität die wir hier nutzen um Voice (Sprachkommunikation) in OpenSim zu integrieren. Die native Unterstützung der gängigen Viewer ist dabei das Schmankerl. Auf die Kompilierung von FreeSwitch werde ich hier nicht näher eingehen da sie ausreichend auf der FreeSwitch Website erläutert wird. Es gibt auch je nach Distribution fertig kompilierte Pakete die sich einfacher installieren lassen. Bitte vorher alle Abhängigkeiten überprüfen damit ein reibungsloses kompilieren möglich ist. Beim installieren von FreeSwitch ist dringend auf folgende Einstellungen zu achten damit es erfolgreich funktioniert:

Herunterladen von Freeswitch

Ich empfehle die svn in folgendes Verzeichnis zu laden:

/opt/scr/

der Ordner scr muss noch angelegt werden da er meistens nicht vorhanden ist.

md scr

dann FreeSwitch herunterladen:

svn checkout http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch

Der Quellcode befindet sich dann in:

/opt/scr/freeswitch

nach der Installation (make install) in:

/opt/freeswitch

Wichtige Schritte

Da FreeSwitch modular aufgebaut ist sind in der Grundkonfiguration nicht alle Module aktiviert. Manche werden auch erst nach der Aktivierung kompiliert. Für den reibungslosen Ablauf brauchen wir zwei dieser Module die nicht automatisch kompiliert werden:

codecs/mod_siren ←– siren 14 Codec (sozusagen die Sprachkomprimierung)
xml_int/mod_xml_curl ←– Ein Modul um automatische Konfiguration von FreeSwitch über XML zu ermöglichen.

Nach dem Herunterladen von FreeSwitch und der Vorbereitung der Kompilierung:

./bootstrap.sh
./configure –prefix=/usr/local/freeswitch ←– entspricht dem Pfad der späteren Installierung

muss man diese Module in:

../freeswitch/conf/autoload_configs/modules.conf.xml

aktivieren indem man die „#“ vor den entsprechenden Modulen entfernt.

Danach kann man den Quellcode mit

make
make install
make sounds-install
make moh-install
make samples

kompilieren und installieren. Hat das alles soweit erfolgreich funktioniert müssen noch 3 Konfigurationsdateien angepasst werden:

../freeswitch/conf/autoload_configs/modules.conf.xml

Hier müssen die beiden Module die wir gerade kompiliert haben aktiviert werden. Dazu entfernt man einfach die Auskommentierung.

Vorher:
<!– „<load module=„mod_xml_curl“/>–>
<!– <load module=„mod_siren“/>/>–>

Nachher:
<load module=„mod_xml_curl“/>
<load module=„mod_siren“/>

Dann müssen wir noch den Codec aktivieren. Dazu müssen wir folgende XML editieren:

../ freeswitch/conf/vars.xml

In dieser XML gibt es eine Zeile

Vorher:
<X-PRE-PROCESS cmd=„set“ data=„global_codec_prefs= G722,PCMU,PCMA,GSM“/>
dieser fügt bitte folgendes hinzu
G7221@32000h,G722

Nachher:
<X-PRE-PROCESS cmd=„set“ data=„global_codec_prefs=G7221@32000h,G722,PCMU,PCMA,GSM“/>

Dann nur noch die Anbindung an OpenSim. Dazu editieren wir die XML:

../ freeswitch/conf/autoload_configs/xml_curl.conf.xml

Bitte ersetzt folgendes mit dem kompletten Inhalt und achtet darauf das Ihr die IP Eures OpenSim-Servers an den dafür vorgesehenen Platz einfügt.

<configuration name=„xml_curl.conf“ description=„cURL XML Gateway“>
<bindings>
<binding name=„example“>
<param name=„gateway-url“ value=„http://EureOpenSimIP:9000/api/freeswitch-config“ bindings=„directory“/>
<param name=„disable-100-continue“ value=„true“/>
</binding>
<binding name=„local“>
<param name=„gateway-url“ value=„http://EureOpenSimIP:9000/api/freeswitch-config“ bindings=„dialplan“/>
<param name=„disable-100-continue“ value=„true“/>
</binding>
</bindings>
</configuration>

Der Port 9000 ist natürlich auch an Eure Sim anzupassen falls dieser vom Standard abweicht. Danach könnt Ihr FreeSwitch starten.

../freeswitch/bin/./freeswitch

Der Freeswitch-Service sollte immer vor dem OpenSim-Service gestartet sein.

OpenSim Konfiguration

Hier müssen wir nur in der OpenSim.ini folgendes ergänzen:

[FreeSwitchVoice]
enabled = true
;FreeSwitch server is going to contact us and ask us all
;sorts of things.
freeswitch_server_user = freeswitch
freeswitch_server_pass = password
freeswitch_api_prefix = /api
;The IP address of your opensim voice region
freeswitch_service_server = IP_Adresse_des_OpenSimServers
;the port your region is running on
freeswitch_service_port = 9000
;your freewitch IP address
freeswitch_realm = IP_Adresse_des_FreeSwitch_Services
freeswitch_sip_proxy = IP_Adresse_des_FreeSwitch_Services:5060
freeswitch_attempt_stun = false
freeswitch_stun_server = IP_Adresse_des_FreeSwitch_Services
freeswitch_echo_server = IP_Adresse_des_FreeSwitch_Services
freeswitch_echo_port = 50505
freeswitch_well_known_ip = IP_Adresse_des_FreeSwitch_Services
freeswitch_default_timeout = 5000
freeswitch_subscribe_retry = 120

Achtet auch hier bitte auf den Port Eurer Sim ! Danach einfach den OpenSim-Server starten.

WICHTIG

Der Freeswitch-Service ist nur in den aktuellsten Versionen von OpenSim möglich. Achtet darauf das beim starten von OpenSim im CLI ein [FreeSwitchVoice] Eintrag zu sehen ist. Dann nur noch InWorld auf der Region bei den Landeinstellungen Voice aktivieren und dann solltet Ihr diesen putzigen Punkt über dem Kopf sehen und wenn Ihr alleine auf der Region seit eine Warteschleifenmusik hören. Zum testen empfand ich diese als sehr hilfreich. Diese kann man folgendermassen ausschalten:

../ freeswitch/conf/autoload_configs/conference.conf.xml

einfach die Sounds auskommentieren:

[…]
<!– File to play if you are alone in the conference –>
<!– <param name=„alone-sound“ value=„conference/conf-alone.wav“/> –>
[…]
<!– File to play when you're alone (music on hold)–>
<!– <param name=„moh-sound“ value=„$${hold_music}“/> –>
<!– File to play when you join the conference –>
<!– <param name=„enter-sound“ value=„tone_stream:%(200,0,500,600,700)“/> [^] –>
<!– File to play when you leave the conference –>
<!– <param name=„exit-sound“ value=„tone_stream:
%(500,0,300,200,100,50,25)“/> [^] –>
<!– File to play when you ae ejected from the conference –>
<!– <param name=„kicked-sound“ value=„conference/conf-kicked.wav“/> –>
[…]

Natürlich auch an die Firewall denken um die von FreeSwitch benötigten Ports zu öffnen:

Port(s) Protokoll Bezeichnung
1719 UDP H.323 Gatekeeper RAS-Port
1720 TCP H.323 Call Signalling
3478 UDP STUN Service, für NAT traversal
3479 UDP STUN Service, für NAT traversal
5002 TCP MLP Protocol Server
5003 UDP Neighborhood Service
5060 UDP & TCP SIP UAS, für SIP Signalisierung (Standard SIP-Port, für default intern Profil)
5070 UDP & TCP SIP UAS, für SIP Signalisierung (für default „NAT“ Profil)
5080 UDP & TCP SIP UAS, für SIP Signalisierung (für default „External“ Profil)
16384-32768 UDP RTP/RTCP Multimedia Streaming, für Audio/Video Daten in SIP und anderen Protokollen

Linux Installation: Ubuntu 32-bit

1. Vorbereitung

apt-get update

apt-get install -y autoconf automake libtool build-essential subversion libxml2
apt-get install -y libxml2-dev libtiff4 libtiff4-dev php5 php5-cli
apt-get install -y php5-common php5-mcrypt php5-mysql php5-gd php5-pgsql php-pear php-db
apt-get install -y libmysqlclient15-dev curl sox libssl-dev libncurses5-dev bison
apt-get install -y libaudiofile-dev libnewt-dev libcurl4-gnutls-dev
apt-get install -y libnet-ssleay-perl openssl ssl-cert libauthen-pam-perl
apt-get install -y libio-pty-perl libmd5-perl
apt-get install -y libpg-perl libdbd-pg-perl sqlite3
apt-get install -y libsqlite3-dev openssl ssl-cert
apt-get install -y libapache2-mod-php5 libmcrypt-dev

mkdir /home/opensim/freeswitch
cd /home/opensim/freeswitch

2. FreeSwitch Installation

svn checkout http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch

cd freeswitch
cd build
cp modules.conf.in modules.conf

vi modules.conf

Suchen Sie die Zeile:

#codecs/mod_siren

und entfernen Sie das # Zeichen.

Suchen Sie die Zeile:

#xml_int/mod_xml_curl

und entfernen Sie das # Zeichen.

Speichern Sie die Datei.

cd ..
AUTOCONF=/usr/bin/autoconf ./bootstrap.sh

Warten Sie bis die Operationen abgeschlossen sind, dann weiter mit:

./configure –prefix=/usr/local/freeswitch

Warten Sie wieder bis alles abgeschlossen ist, dann weiter mit:

make

Warten Sie wiederrum bis alles abgeschlossen ist, dann weiter mit:

make install
make mod_siren-install

make mod_xml_curl-install
make sounds-install

make sounds-install

make moh-install
make moh-install

Bitte beachten Sie das die obige Wiederholung des Kommandos kein Fehler ist ! Dann weiter mit:

make samples

3. FreeSwitch Konfiguration für OpenSIM

Wir nehmen bei der folgenden Konfiguration folgendes an. Bei Abweichungen auf Ihrem Computer und Netzwerk müssen Sie entsprechend anders konfigurieren. Dies ist quasi nur ein Beispiel von vielen möglichen Konfigurationen:

  • der Server ist direkt an das Internet angeschlossen und verfügt über die öffentliche IP-Adresse 192.111.222.33
  • es gibt keine Firewall die den ein- und ausgehenden Datenfluss irgendwie einschränkt
  • OpenSIM läuft auf dem TCP-Port 9000 und ist auf demselben Computer installiert wie FreeSwitch

Geben Sie nun folgendes ein:

cd /usr/local/freeswitch/conf/autoload_configs/

vi modules.conf.xml

Suchen Sie die Zeile:

<!– <load module=„mod_xml_curl“/> –>

und ändern Sie diese in:

<load module=„mod_xml_curl“/>

Suchen Sie die Zeile:

<!–<load module=„mod_siren“/>–>

und ändern Sie diese in:

<load module=„mod_siren“/>

Speichern Sie die Datei. Weiter mit:

cd /usr/local/freeswitch/conf/autoload_configs

vi xml_curl.conf.xml

Gehen Sie eine Zeile unter diese:

<binding name=„example“>

und tauschen die dort noch vorhandene Beispiel-Konfiguration mit Ihrer Konfiguration:

<configuration name=„xml_curl.conf“ description=„cURL XML Gateway“>
<bindings>
<binding name=„example“>
<param name=„gateway-url“ value=„http://192.111.222.33:9000/api/freeswitch-config“ bindings=„directory“/>
<param name=„disable-100-continue“ value=„true“/>
</binding>
<binding name=„local“>
<param name=„gateway-url“ value=„http://192.111.222.33:9000/api/freeswitch-config“ bindings=„dialplan“/>
<param name=„disable-100-continue“ value=„true“/>
</binding>
</bindings>
</configuration>

Tauschen Sie die oben verwendete Beispiel IP-Adresse 192.111.222.33 mit Ihrer eigenen öffentlichen IP-Adresse aus. Falls Sie einen anderen Port als den Standard-Port 9000 verwenden, passen Sie auch diesen an den bei Ihnen verwendeten Port an.

Speichern Sie die Datei. Weiter geht es mit:

cd /usr/local/freeswitch/conf/

vi vars.xml

Suchen Sie die Zeile:

<X-PRE-PROCESS cmd=„set“ data=„global_codec_prefs=G722,PCMU,PCMA,GSM“/>

und ändern Sie diese in:

<X-PRE-PROCESS cmd=„set“ data=„global_codec_prefs=G7221@32000h,G722,PCMU,PCMA,GSM“/>

4. Starten von FreeSwitch

screen -S voice

cd /usr/local/freeswitch/bin/
./freeswitch

Ignorieren Sie die rot markierten Fehlermeldungen und Warnungen. Weiter mit:

[CTRL][A][D]

5. OpenSIM-Konfiguration

Editieren Sie die OpenSIM-Konfigurationsdatei und fügen Sie am Ende der Datei folgende Zeilen ein:

[FreeSwitchVoice]
   enabled = true
   ;FreeSwitch server is going to contact us and ask us all
   ;sorts of things.
   freeswitch_server_user = freeswitch
   freeswitch_server_pass = password
   freeswitch_api_prefix = /api
   ;The  IP address of your opensim voice region
   freeswitch_service_server = IP_Adresse_des_OpenSimServers
   ;the port your region is running on
   freeswitch_service_port = 9000 
   ;your freewitch IP address
   freeswitch_realm = IP_Adresse_des_FreeSwitch_Services
   freeswitch_sip_proxy = IP_Adresse_des_FreeSwitch_Services:5060
   freeswitch_attempt_stun = false
   freeswitch_stun_server = IP_Adresse_des_FreeSwitch_Services
   freeswitch_echo_server = IP_Adresse_des_FreeSwitch_Services
   freeswitch_echo_port = 50505
   freeswitch_well_known_ip = IP_Adresse_des_FreeSwitch_Services
   freeswitch_default_timeout = 5000
   freeswitch_subscribe_retry = 120

Starten Sie jetzt den OpenSIM-Server. Ab diesem Moment ist Voice in OpenSIM grundsätzlich möglich. Um aber Voice nutzen zu können muß in den Estate-Einstellungen und den Region-Einstellungen auch Voice aktiviert werden. Ausserdem müssen die Avatare einen 3D-Viewer ab Version 1.22 oder später benutzen.

Sollte es dennoch nicht funktionieren haben Sie möglicherweise eine zu alte OpenSIM-Server Version. Voice wird derzeit nur in sehr aktuellen Trunk-Versionen unterstützt.

Natürlich auch an die Firewall denken um die von FreeSwitch benötigten Ports zu öffnen:

Port(s) Protokoll Bezeichnung
1719 UDP H.323 Gatekeeper RAS-Port
1720 TCP H.323 Call Signalling
3478 UDP STUN Service, für NAT traversal
3479 UDP STUN Service, für NAT traversal
5002 TCP MLP Protocol Server
5003 UDP Neighborhood Service
5060 UDP & TCP SIP UAS, für SIP Signalisierung (Standard SIP-Port, für default intern Profil)
5070 UDP & TCP SIP UAS, für SIP Signalisierung (für default „NAT“ Profil)
5080 UDP & TCP SIP UAS, für SIP Signalisierung (für default „External“ Profil)
16384-32768 UDP RTP/RTCP Multimedia Streaming, für Audio/Video Daten in SIP und anderen Protokollen
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
Navigation
Drucken/exportieren