Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

archiv:opensim:konfiguration:freeswitch [2024/01/09 22:25] – ↷ Seite von archiv:opensim:konfiguration:freeswitch nach intern:work:archiv:opensim:konfiguration:freeswitch verschoben mikearchiv:opensim:konfiguration:freeswitch [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 +===== 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 Links:
 +
 +  * http://wiki.freeswitch.org/wiki/Main_Page
 +  * http://www.freeswitch.de
 +  * http://opensimulator.org/wiki/Freeswitch_Module
 +
 +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:
 +
 +<code>
 +[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
 +</code>
 +
 +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 |
  
Navigation

Alternative Startseite
Helpdesk
Links
Maps
Radio
Suchmaschine


Drucken/exportieren