Freeswitch Module/de
From OpenSimulator
(→configure conference.conf.xml) |
|||
(6 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
{{Quicklinks|Freeswitch_Module}} <br /> | {{Quicklinks|Freeswitch_Module}} <br /> | ||
− | {{thirdparty}} | + | {{thirdparty/de}} |
Das FreeSWITCH-Modul ermöglicht Sprachfunktionen in OpenSimulator, ohne dass Änderungen am Linden Labs Second Life Viewer erforderlich sind. Für OpenSimulator 0.7.0.2 und früher muss der Viewer zwischen den Versionen 1.22 und 1.23.5 liegen. Für OpenSimulator 0.7.1 und später werden auch 2.x-Viewer funktionieren. | Das FreeSWITCH-Modul ermöglicht Sprachfunktionen in OpenSimulator, ohne dass Änderungen am Linden Labs Second Life Viewer erforderlich sind. Für OpenSimulator 0.7.0.2 und früher muss der Viewer zwischen den Versionen 1.22 und 1.23.5 liegen. Für OpenSimulator 0.7.1 und später werden auch 2.x-Viewer funktionieren. | ||
Line 173: | Line 173: | ||
</pre> | </pre> | ||
− | == OpenSimulator | + | == OpenSimulator-Konfiguration == |
− | === | + | === Konfiguration für OpenSimulator 0.7.1 und höher === |
==== Standalone ==== | ==== Standalone ==== | ||
− | + | Die Konfiguration wird in OpenSim.ini.example erklärt. Hier ist ein Beispiel: | |
− | + | [FreeSwitchVoice] | |
Enabled = true | Enabled = true | ||
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | ||
− | + | [FreeswitchService] | |
ServerAddress = 192.168.1.2 | ServerAddress = 192.168.1.2 | ||
− | In | + | In diesem Fall läuft der FreeSWITCH-Server auf 192.168.1.2 und nur Viewer im lokalen LAN müssen darauf zugreifen. Wenn Personen auf den Standalone-Server zugreifen müssten (und damit auf den Voice-Dienst), müsste diese IP-Adresse eine sein, die von außen erreichbar ist (z. B. 80.175.122.1). Es müssen keine anderen Dateien konfiguriert werden. |
− | ==== Grid | + | ==== Grid-Modus ==== |
− | + | ||
− | + | Im Grid-Modus müssen [FreeSwitchVoice] in OpenSim.ini und [FreeswitchService] in Robust.ini oder Robust.HG.ini konfiguriert werden. Die Konfigurationsdetails werden sowohl in OpenSim.ini.example, Robust.ini.example als auch Robust.HG.ini.example angezeigt. Hier ist ein Beispiel für die Konfiguration in OpenSim.ini: | |
+ | |||
+ | [FreeSwitchVoice] | ||
Enabled = true | Enabled = true | ||
LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector | LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector | ||
FreeswitchServiceURL = http://192.168.1.3:8004/fsapi | FreeswitchServiceURL = http://192.168.1.3:8004/fsapi | ||
− | + | Hinzufügen für Robust.ini/Robust.HG.ini: | |
− | + | [FreeswitchService] | |
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | ||
ServerAddress = http://192.168.1.4 | ServerAddress = http://192.168.1.4 | ||
− | In | + | In diesem Fall läuft der Grid-Dienst auf 192.168.1.3 und der FreeSWITCH-Server auf 192.168.1.4. |
− | + | Für weitere Details zur FreeSWITCH-Konfiguration für diese Version kannst du folgende Links besuchen: | |
− | + | http://opensimulator.org/mantis/view.php?id=5267 | |
− | + | http://opensimulator.org/mantis/view.php?id=5274 | |
− | === OpenSimulator 0.7.0.2 | + | === OpenSimulator 0.7.0.2 und früher === |
==== Standalone ==== | ==== Standalone ==== | ||
− | + | Füge Folgendes zu deiner OpenSim.ini hinzu: | |
− | + | [FreeSwitchVoice] | |
− | + | Enabled = true | |
− | + | LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" | |
− | + | [FreeswitchService] | |
− | + | ServerAddress = youropensimregionip | |
− | + | Realm = "youropensimregionip" | |
− | ==== Grid | + | ==== Grid-Modus ==== |
− | + | ||
− | + | Füge Folgendes zu deiner OpenSim.ini hinzu: | |
− | + | ||
− | + | ||
− | + | ||
− | |||
− | + | [FreeSwitchVoice] | |
− | + | Enabled = true | |
− | + | LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector | |
− | + | FreeswitchServiceURL = http://ip.of.your.robust.server.for.freeswitch.connector:8004/fsapi | |
− | + | Füge Folgendes zu deiner Robust.ini oder Robust.HG.ini hinzu: | |
− | |||
− | + | [FreeswitchService] | |
+ | LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService | ||
+ | ServerAddress = ip.of.your.robust.server.for.freeswitch.connector | ||
+ | Realm = "ip.of.your.robust.server.for.freeswitch.connector" | ||
− | + | Wenn dein Freeswitch über eine unbekannte Domain beschwert, hast du wahrscheinlich IPs und Hostnamen gemischt. Du solltest immer mit Punktquad-IP-Adressen arbeiten, da in Freeswitch-Code Zeichenfolgenvergleiche durchgeführt werden und ein Name und die entsprechende Adresse nicht als gleich betrachtet werden! | |
− | + | == Firewall-Konfiguration == | |
− | + | ||
− | + | Im Grunde müssen die Ports 1720 und 5060 geöffnet sein, und möglicherweise muss auch Port 50505 für den Empfang geöffnet sein. | |
− | + | Stelle sicher, dass die von FreeSWITCH verwendeten Ports über deine Firewall(s) erreichbar sind. Im obigen Beispiel wird der Hauptport 5060 verwendet, obwohl andere Ports für den Verbindungsaufbau verwendet werden können (Port 1720 für die H.323-Anrufsignalisierung) und dynamisch zugewiesene Ports für spezifischen Anrufsverkehr. Die übliche Handhabung dynamischer Ports für H.323- und SIP-Verkehr auf modernen Firewalls ermöglicht dies normalerweise. | |
− | + | Wird Port 50505 tatsächlich verwendet, oder handelt es sich nur um eine Information, die von OpenSimulator gemeldet werden muss, wenn der Freeswitch-Dienst Kontakt aufnimmt? | |
− | + | Weitere Details zu den von FreeSWITCH verwendeten Ports und zur Firewall-Konfiguration findest du unter http://wiki.freeswitch.org/wiki/Firewall. | |
− | + | Wenn du Probleme mit NAT/Routern hast, solltest du STUN (Simple Traversal of UDP through NATs) in Betracht ziehen. Weitere Informationen findest du unter http://wiki.freeswitch.org/wiki/NAT_Traversal. | |
− | + | ||
− | + | == Alles hochfahren == | |
− | + | Freeswitch holt OpenSimulator-bezogene Konfigurationen aus dem zuvor eingerichteten OpenSimulator FreeSWITCH-Stimmenmodul und -Dienst ab. Daher musst du zuerst OpenSimulator starten. Beim Start solltest du die Zeilen sehen: | |
− | + | ||
− | + | ||
− | |||
− | [ | + | 21:45:33 - [FreeSwitchVoice]: Verwendung des FreeSwitch-Servers <Ihre IP-Adresse> |
+ | 21:45:33 - [FreeSwitchVoice]: Plugin aktiviert | ||
− | + | Starte Freeswitch. Es wird sich über folgende Fehler beschweren: | |
− | |||
− | + | [ERR] mod_xml_curl.c:302 Fehler beim Parsen des Ergebnisses! [http://localhost:9000/fsapi/freeswitch-config] Daten: [hostname=fruitfly§ion=directory&tag_name=&key_name=&key_value=&Event-Name=REQUEST_PARAMS&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A03&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A03%20GMT&Event-Date-Timestamp=1317069963782065&Event-Calling-File=sofia.c&Event-Calling-Function=config_sofia&Event-Calling-Line-Number=3965&purpose=gateways&profile=external] | |
− | + | ||
− | + | ||
− | + | und | |
− | |||
− | + | [ERR] mod_xml_curl.c:305 HTTP-Fehler 404 beim Abrufen von http://localhost:9000/fsapi/freeswitch-config Daten: [hostname=fruitfly§ion=directory&tag_name=domain&key_name=name&key_value=192.168.1.2&Event-Name=GENERAL&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A05&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A05%20GMT&Event-Date-Timestamp=1317069965442975&Event-Calling-File=switch_core.c&Event-Calling-Function=switch_load_network_lists&Event-Calling-Line-Number=1173&domain=192.168.1.2&purpose=network-list] | |
− | + | Diese Fehler können vorerst ignoriert werden - sie sollten in Zukunft behoben werden, beeinträchtigen jedoch nicht die Funktionsweise von Freeswitch. | |
− | + | Auf der OpenSimulator-Region (im Standalone-Modus) oder der Grid-Konsole (im Grid-Modus) sollten die folgenden Zeilen angezeigt werden: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'config_sofia' | |
+ | [FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'config_sofia' | ||
+ | [FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'switch_load_network_lists' | ||
+ | |||
+ | Stelle nun sicher, dass dein Bereich in der Region die Sprachfunktion im Bereichsdialog aktiviert hat. Wenn dies nicht zuvor eingestellt wurde, musst du dies möglicherweise ändern und OpenSimulator neu starten. | ||
+ | |||
+ | Melde dich bei deinem Client an. Stelle sicher, dass die Sprachfunktion aktiviert und funktionstüchtig ist (wahrscheinlich durch Testen auf einem anderen Grid zuerst). | ||
+ | |||
+ | Wenn alles nach Plan verlaufen ist, solltest du eine Zeile sehen wie: | ||
+ | |||
+ | |||
+ | [FreeSwitchVoice]: OnRegisterCaps() aufgerufen mit Agenten-ID 0fe223e7-370a-46da-b935-b0831ddf6d08 Caps OpenSim.Framework.Capabilities.Caps in Szene test2 | ||
+ | |||
+ | unter anderem auf der OpenSimulator-Region-Konsole. Und auf der Freeswitch-Konsole solltest du etwas sehen wie: | ||
+ | |||
+ | |||
+ | 2011-09-26 22:10:09.866918 [WARNING] sofia_reg.c:1241 SIP-Authentifizierungsaufforderung (REGISTER) im Sofiaprofil 'internal' für [xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] von IP 192.168.1.2 | ||
+ | |||
+ | Mit etwas Glück sind die Sprachtasten auf deinem Client jetzt aktiv und funktionieren. | ||
− | == | + | == Probleme und Lösungen == |
− | + | Stelle sicher, dass du die Sprachfunktion im Dialogfeld "Über das Land"->"Sprache" in der Region aktiviert hast. Du musst ein Regionsadministrator sein, um dies zu tun. | |
− | + | Überprüfe auch, ob das Grundstück ebenfalls Sprachaktiviert ist. Du musst Grundstückseigentümer sein oder die entsprechenden Berechtigungen haben, um dies zu tun. Aktuelle Second Life Viewer von Linden Labs bieten diese Option nicht mehr an, daher verwende Hippo oder einen anderen Client, der dies ermöglicht. | |
{| cellspacing="1" cellpadding="1" border="1" align="left" style="width: 1010px; height: 66px;" | {| cellspacing="1" cellpadding="1" border="1" align="left" style="width: 1010px; height: 66px;" | ||
Line 344: | Line 329: | ||
<br clear=all> | <br clear=all> | ||
− | + | Nutze einige der Debugging-Funktionen in FreeSWITCH: | |
− | * conference list <--- | + | * conference list <--- um zu sehen, ob du irgendwelche Konferenzen eingerichtet hast (beachte, dass du inworld sein musst, wenn du dies versuchst) |
− | * xml_curl debug_on <--- | + | * xml_curl debug_on <--- dieser Befehl schreibt die Transaktionen zwischen OpenSimulator und FreeSWITCH in eine Datei (auf Linux befindet sie sich in /tmp) |
− | * xml_curl debug_off <-- | + | * xml_curl debug_off <-- schalte es aus, nachdem du dich ein- und ausgeloggt hast |
− | == | + | == Notizen zur Einrichtung von FreeSwitch auf Openvue Grid == |
− | + | Verwendung von Windows Vista 32-Bit-Betriebssystem. Funktioniert mit FreeSwitch 1.0.4 und später (für ein spezifisches getestetes Beispiel, FreeSWITCH Version 1.0.head (git-e0c37c1 2010-11-05 18-20-09 -0500)). | |
− | + | Zusätzliche Hinweise, die hilfreich sein könnten: | |
− | + | * Wir haben ein einfaches OpenSim.exe auf dem SELBEN Host wie der FreeSwitch.exe-Dienst eingerichtet und eine einzelne einfache Insel darauf platziert (wir nannten sie "Talk"), da einige Leute beobachtet haben, dass FreeSwitch Probleme beim Verbinden hat, wenn es so konfiguriert ist, dass es mit einem anderen Server verknüpft ist, aber wir glauben nicht, dass dies notwendig ist. | |
− | + | * FreeSwitch bietet Dienste für alle OpenSim.exe-Instanzen auf beliebigen Servern, die du wünschst, obwohl es nur für eine konfiguriert ist. | |
− | + | * Es gibt einen FreeSwitch-Kanal pro Region, ändere die Region und du änderst den Kanal. Also müssen alle Benutzer, die sprechen möchten, sich in derselben Region befinden. Alle Grundstücke in einer Region teilen denselben einzigen Regionskanal. | |
− | + | * Du erscheinst als ein Benutzer in den SL-Viewern, ALLE anderen Benutzer erscheinen als einzelner "Benutzer" mit einem codierten Namen für die anderen Benutzer im Kanal - etwas wie conf-x9999999999999999999. | |
− | + | * Du musst die Sprachfunktion auf Regionsebene UND Grundstücksebene aktiviert haben. Dies ist mühsam, da die Standard-Einstellung in OpenSimulator ist, dass GRUNDSTÜCKE standardmäßig die Sprache deaktiviert haben. Die Standardviewer 1.23 und 2.x ermöglichen es dir nicht, dies wieder einzuschalten, daher musst du einen Viewer eines Drittanbieters verwenden, um die Sprache auf Grundstücksebene einzuschalten. Ich habe bereits vorgeschlagen, dass wir die Standardeinstellung beim Erstellen eines Grundstücks so ändern, dass diese standardmäßig aktiviert ist (oder aktiviert ist, wenn die Regionssprache aktiviert ist - was standardmäßig der Fall ist). | |
− | + | * Wir sind uns nicht sicher, ob du FreeSwitch.exe vor den Regionen starten musst, auf denen du Sprachfunktionen aktivieren möchtest. Aber wir tun dies aus Sicherheitsgründen. Es funktioniert problemlos über OpenSim.exe-Neustarts, ohne dass FreeSwitch erneut gestartet werden muss. | |
− | + | * Wenn du FreeSwitch über dein lokales Netzwerk hinaus verwenden möchtest, denke daran, für EXTERN zugängliche IP-Adressen zu konfigurieren. Verwende IP-Nummern für FreeSwitch... und wenn dort 192.168.x.x-Adressen für das lokale Netzwerk vorhanden sind, funktioniert FreeSwitch nicht mit externen Benutzern. Es kann durch eine Reihe von Firewalls mit geeigneten Mechanismen wie Portweiterleitung oder DMZs funktionieren, solange du definitiv zur extern sichtbaren IP-Adresse mappst. Stelle sicher, dass die entsprechenden Ports in deinen Firewalls geöffnet sind. Siehe separate Sektion im Wiki über erforderliche Ports. | |
− | + | * Es gibt einige rote Fehler beim Starten von FreeSwitch - zumindest in unserer Konfiguration - die anscheinend mit einer fehlenden Konfigurationsdatei zusammenhängen, die FreeSwitch von OpenSimulator abrufen soll (opensim-region-server-url:port/api/freeswitch-config), die nicht in der OpenSimulator-Setup vorhanden ist... Wir haben diese (sicher?) ignoriert, ohne Probleme... | |
2010-11-13 14:42:55.252361 [ERR] mod_xml_curl.c:252 Received HTTP error 0 trying | 2010-11-13 14:42:55.252361 [ERR] mod_xml_curl.c:252 Received HTTP error 0 trying | ||
Line 382: | Line 367: | ||
network_lists&Event-Calling-Line-Number=984&domain=129.215.219.143&purpose=network-list] | network_lists&Event-Calling-Line-Number=984&domain=129.215.219.143&purpose=network-list] | ||
− | + | Standardmäßig spielt FreeSwitch Hold-Musik ab, wenn nur ein Avatar in der Konferenz ist, und es gibt Töne für jeden, wenn Avatare kommen und gehen. Um dies zu deaktivieren, bearbeite /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml. Lokalisiere das "default"-Profil und kommentiere die relevanten Zeilen aus. Siehe Beispiele oben auf dieser Wiki-Seite. | |
[[Category:Voice]] | [[Category:Voice]] | ||
+ | [[Category:Configuration]] | ||
+ | [[Category:German Translations]] |
Latest revision as of 03:20, 27 July 2024
*** Diese Seite handelt von Drittanbieter Software *** Auch wenn diese Software mit OpenSimulator in Verbindung steht, kann hier keine Hilfe für diese Software angeboten werden. Bei Fragen und Problemen wende dich bitte an die Hersteller der Software oder an deren Community. Bitte wende dich nicht an das OpenSimulator Team mit fragen zu diesen Programmen. |
Das FreeSWITCH-Modul ermöglicht Sprachfunktionen in OpenSimulator, ohne dass Änderungen am Linden Labs Second Life Viewer erforderlich sind. Für OpenSimulator 0.7.0.2 und früher muss der Viewer zwischen den Versionen 1.22 und 1.23.5 liegen. Für OpenSimulator 0.7.1 und später werden auch 2.x-Viewer funktionieren.
Eine kleine Geschichte zur Entwicklung des FreeSWITCH-Moduls finden Sie hier:
So installieren Sie FreeSwitch PBX auf Ubuntu 20.04 und 18.04:
Contents |
[edit] FreeSwitch Installation
Folge den Kompilierungsanweisungen im FreeSWITCH-Wiki. Stelle sicher, dass du vorerst aus dem FreeSWITCH-Trunk kompilierst, bis wir eine Mindestversionsnummer veröffentlichen können (es gibt bekannte Probleme mit älteren Versionen). Für die Zwecke von OpenSim müssen zwei spezifische Module aktiviert werden.
Stelle sicher, dass du die Haltemusik installierst, wenn du sie nicht im Abschnitt "Konferenzkonfigurationsdatei konfigurieren" unten deaktivieren möchtest.
Wenn du den Abschnitt "Module.conf bearbeiten" der FreeSWITCH-Bauanleitung erreichst, bearbeite die modules.conf-Datei und kommentiere die Einträge für xml_curl und den siren14-Codec aus, um sie aktiv zu machen.
codecs/mod_siren und xml_int/mod_xml_curl
Hinweis: Der FreeSWITCH-Git-Masterstand vom 18. April 2011 hat bereits codecs/mod_siren konfiguriert
Aktualisierung vom Januar 2019: Das FreeSWITCH-Wiki befindet sich nun unter https://freeswitch.org/confluence/. Wie angegeben, «Der Sprint, der die verbleibenden Seiten vom alten MediaWiki nach Confluence kopiert hat, hat uns alle druckfähigen Dokumentationen geliefert, aber sie sind nicht gut organisiert. Die Suche ist dein Freund.»
Die Installationsseite findest du unter https://freeswitch.org/confluence/display/FREESWITCH/Installation.
Konfigurationsseite: https://freeswitch.org/confluence/display/FREESWITCH/Configuring+FreeSWITCH
Beachte, dass Debian, Ubuntu und CentOS/RHEL Pakete haben, wie jeweils erklärt hier für Debian 9 Stretch, hier für Ubuntu 16.04 Xenial, und hier für CentOS 7 und RHEL 7.
[edit] FreeSwitch Config
[edit] Aktivieren von mod_xml_curl
Nachdem du FreeSWITCH kompiliert und installiert hast, musst du mod_siren und mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml aktivieren, da sie standardmäßig bei einer Neuinstallation deaktiviert sind.
Entkommentiere die Zeilen...
<load module="mod_xml_curl"/>
und
<load module="mod_siren"/>
Hinweis: Der FreeSWITCH-Git-Masterstand vom 18. April 2011 hat bereits mod_siren konfiguriert
[edit] Konfigurieren von mod_xml_curl
mod_xml_curl ist ein FreeSWITCH-Modul, das die dynamische Konfiguration von FreeSWITCH von einem Webserver aus ermöglicht. In diesem Fall handelt es sich um den OpenSim-Regions-Server.
Die Konfiguration des xml_curl-Moduls sollte auf eine OpenSim-Region zeigen, die das Freeswitch-Sprachmodul aktiviert hat (die Sprachfunktion muss auch in den Immobilieneinstellungen für alle Regionen aktiviert sein, die unterstützt werden sollen).
Du kannst dies einrichten, indem du die Datei /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml bearbeitest.
[edit] OpenSimulator 0.7.1 und später
Du kannst die vorhandene Konfiguration durch die folgenden Einstellungen ersetzen oder einfach das Verzeichnis und die Wählplan-Bindungen hinzufügen. Die IP-Adresse wird vom Freeswitch-Server verwendet, um den Freeswitch-Dienst von OpenSimulator zu erreichen und dessen Konfigurationsdetails abzurufen. Wenn du alles auf einem einzigen Server ausführst und dein System nur eine IP-Adresse hat, kann dies einfach localhost sein. Wenn du Freeswitch auf einem anderen Server ausführst oder mehrere IP-Adressen hast, muss dies explizit die Adresse deines Standalone-Servers sein.
Du musst auch die Portnummer ändern, wenn du einen anderen Standalone-HTTP-Port als den Standard (9000) verwendest.
Im Grid-Modus musst du "localhost" durch die IP des ROBUST-Instanz ersetzen, auf der der FreeSwitch-Grid-Dienst ausgeführt wird, und den Port durch den Dienstport (normalerweise 8004) ersetzen.
Diese Konfiguration gibt Freeswitch an, wo er die Konfiguration für "Wählplan" und "Verzeichnis" von OpenSim erhalten kann (wie in den Bindungsattributen erwähnt). Weitere Details zum Modul mod_xml_curl findest du hier.
<configuration name="xml_curl.conf" description="cURL XML Gateway"> <bindings> <binding name="directory"> <param name="gateway-url" value="http://localhost:9000/fsapi/freeswitch-config" bindings="directory"/> <param name="gateway-credentials" value="freeswitch:password"/> <param name="disable-100-continue" value="true"/> </binding> <binding name="dialplan"> <param name="gateway-url" value="http://localhost:9000/fsapi/freeswitch-config" bindings="dialplan"/> <param name="gateway-credentials" value="freeswitch:password"/> <param name="disable-100-continue" value="true"/> </binding> </bindings> </configuration>
[edit] OpenSimulator 0.7.0.2 und früher
Für OpenSimulator 0.7.0.2 und früher ist die Einrichtung identisch, nur dass die Pfade der gateway-url mit /api anstatt /fsapi beginnen.
<configuration name="xml_curl.conf" description="cURL XML Gateway"> <bindings> <binding name="directory"> <param name="gateway-url" value="http://localhost:9000/api/freeswitch-config" bindings="directory"/> <param name="gateway-credentials" value="freeswitch:password"/> <param name="disable-100-continue" value="true"/> </binding> <binding name="dialplan"> <param name="gateway-url" value="http://localhost:9000/api/freeswitch-config" bindings="dialplan"/> <param name="gateway-credentials" value="freeswitch:password"/> <param name="disable-100-continue" value="true"/> </binding> </bindings> </configuration>
[edit] Konfigurieren von vars.xml
Hinweis: Der FreeSWITCH-Git-Masterstand vom 18. April 2011 hat dies bereits konfiguriert
Die Datei /usr/local/freeswitch/conf/vars.xml muss geändert werden, um den siren14-Codec zu aktivieren.
Suche in vars.xml nach global_codec_prefs und ändere die Zeile wie folgt:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G722,PCMU,PCMA,GSM"/>
oder
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
G7221@32000h ist der siren14-Codec.
[edit] Konfigurieren von conference.conf.xml
Standardmäßig spielt FreeSwitch Haltemusik ab, wenn sich nur ein Avatar in der Konferenz befindet, und es piept für alle, wenn Avatare eintreffen und die Konferenz verlassen. Um dies zu deaktivieren, bearbeite die Datei /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml. Finde das "default" Profil und kommentiere die Zeilen für die Sounddateien aus, wie im folgenden Beispiel gezeigt.
<!-- Profiles are collections of settings you can reference by name. --> <profiles> <!--If no profile is specified it will default to "default"--> <profile name="default"> ... <!-- If TTS is enabled all audio-file params beginning with --> <!-- 'say:' will be considered text to say with TTS --> <!-- Override the default path here, after which you use relative paths in the other sound params --> <!-- Note: The default path is the conference's first caller's sound_prefix --> <!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>--> <!-- File to play to acknowledge succees --> <!--<param name="ack-sound" value="beep.wav"/>--> <!-- File to play to acknowledge failure --> <!--<param name="nack-sound" value="beeperr.wav"/>--> <!-- File to play to acknowledge muted --> <!-- <param name="muted-sound" value="conference/conf-muted.wav"/> --> <!-- File to play to acknowledge unmuted --> <!-- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/> --> <!-- File to play if you are alone in the conference --> <!-- <param name="alone-sound" value="conference/conf-alone.wav"/> --> <!-- File to play endlessly (nobody will ever be able to talk) --> <!--<param name="perpetual-sound" value="perpetual.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"/> --> <!-- File to play when the conference is locked --> <!-- <param name="locked-sound" value="conference/conf-locked.wav"/> --> <!-- File to play when the conference is locked during the call--> <!-- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/> --> <!-- File to play when the conference is unlocked during the call--> <!-- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/> --> <!-- File to play to prompt for a pin --> <!-- <param name="pin-sound" value="conference/conf-pin.wav"/> --> <!-- File to play to when the pin is invalid --> <!-- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/> --> ... </profile> ... </profiles>
[edit] OpenSimulator-Konfiguration
[edit] Konfiguration für OpenSimulator 0.7.1 und höher
[edit] Standalone
Die Konfiguration wird in OpenSim.ini.example erklärt. Hier ist ein Beispiel:
[FreeSwitchVoice]
Enabled = true LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService
[FreeswitchService]
ServerAddress = 192.168.1.2
In diesem Fall läuft der FreeSWITCH-Server auf 192.168.1.2 und nur Viewer im lokalen LAN müssen darauf zugreifen. Wenn Personen auf den Standalone-Server zugreifen müssten (und damit auf den Voice-Dienst), müsste diese IP-Adresse eine sein, die von außen erreichbar ist (z. B. 80.175.122.1). Es müssen keine anderen Dateien konfiguriert werden.
[edit] Grid-Modus
Im Grid-Modus müssen [FreeSwitchVoice] in OpenSim.ini und [FreeswitchService] in Robust.ini oder Robust.HG.ini konfiguriert werden. Die Konfigurationsdetails werden sowohl in OpenSim.ini.example, Robust.ini.example als auch Robust.HG.ini.example angezeigt. Hier ist ein Beispiel für die Konfiguration in OpenSim.ini:
[FreeSwitchVoice]
Enabled = true LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector FreeswitchServiceURL = http://192.168.1.3:8004/fsapi
Hinzufügen für Robust.ini/Robust.HG.ini:
[FreeswitchService]
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService ServerAddress = http://192.168.1.4
In diesem Fall läuft der Grid-Dienst auf 192.168.1.3 und der FreeSWITCH-Server auf 192.168.1.4.
Für weitere Details zur FreeSWITCH-Konfiguration für diese Version kannst du folgende Links besuchen:
http://opensimulator.org/mantis/view.php?id=5267 http://opensimulator.org/mantis/view.php?id=5274
[edit] OpenSimulator 0.7.0.2 und früher
[edit] Standalone
Füge Folgendes zu deiner OpenSim.ini hinzu:
[FreeSwitchVoice] Enabled = true LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
[FreeswitchService] ServerAddress = youropensimregionip Realm = "youropensimregionip"
[edit] Grid-Modus
Füge Folgendes zu deiner OpenSim.ini hinzu:
[FreeSwitchVoice]
Enabled = true
LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector
FreeswitchServiceURL = http://ip.of.your.robust.server.for.freeswitch.connector:8004/fsapi
Füge Folgendes zu deiner Robust.ini oder Robust.HG.ini hinzu:
[FreeswitchService]
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService
ServerAddress = ip.of.your.robust.server.for.freeswitch.connector
Realm = "ip.of.your.robust.server.for.freeswitch.connector"
Wenn dein Freeswitch über eine unbekannte Domain beschwert, hast du wahrscheinlich IPs und Hostnamen gemischt. Du solltest immer mit Punktquad-IP-Adressen arbeiten, da in Freeswitch-Code Zeichenfolgenvergleiche durchgeführt werden und ein Name und die entsprechende Adresse nicht als gleich betrachtet werden!
[edit] Firewall-Konfiguration
Im Grunde müssen die Ports 1720 und 5060 geöffnet sein, und möglicherweise muss auch Port 50505 für den Empfang geöffnet sein.
Stelle sicher, dass die von FreeSWITCH verwendeten Ports über deine Firewall(s) erreichbar sind. Im obigen Beispiel wird der Hauptport 5060 verwendet, obwohl andere Ports für den Verbindungsaufbau verwendet werden können (Port 1720 für die H.323-Anrufsignalisierung) und dynamisch zugewiesene Ports für spezifischen Anrufsverkehr. Die übliche Handhabung dynamischer Ports für H.323- und SIP-Verkehr auf modernen Firewalls ermöglicht dies normalerweise.
Wird Port 50505 tatsächlich verwendet, oder handelt es sich nur um eine Information, die von OpenSimulator gemeldet werden muss, wenn der Freeswitch-Dienst Kontakt aufnimmt?
Weitere Details zu den von FreeSWITCH verwendeten Ports und zur Firewall-Konfiguration findest du unter http://wiki.freeswitch.org/wiki/Firewall.
Wenn du Probleme mit NAT/Routern hast, solltest du STUN (Simple Traversal of UDP through NATs) in Betracht ziehen. Weitere Informationen findest du unter http://wiki.freeswitch.org/wiki/NAT_Traversal.
[edit] Alles hochfahren
Freeswitch holt OpenSimulator-bezogene Konfigurationen aus dem zuvor eingerichteten OpenSimulator FreeSWITCH-Stimmenmodul und -Dienst ab. Daher musst du zuerst OpenSimulator starten. Beim Start solltest du die Zeilen sehen:
21:45:33 - [FreeSwitchVoice]: Verwendung des FreeSwitch-Servers <Ihre IP-Adresse> 21:45:33 - [FreeSwitchVoice]: Plugin aktiviert
Starte Freeswitch. Es wird sich über folgende Fehler beschweren:
[ERR] mod_xml_curl.c:302 Fehler beim Parsen des Ergebnisses! [1] Daten: [hostname=fruitfly§ion=directory&tag_name=&key_name=&key_value=&Event-Name=REQUEST_PARAMS&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A03&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A03%20GMT&Event-Date-Timestamp=1317069963782065&Event-Calling-File=sofia.c&Event-Calling-Function=config_sofia&Event-Calling-Line-Number=3965&purpose=gateways&profile=external]
und
[ERR] mod_xml_curl.c:305 HTTP-Fehler 404 beim Abrufen von http://localhost:9000/fsapi/freeswitch-config Daten: [hostname=fruitfly§ion=directory&tag_name=domain&key_name=name&key_value=192.168.1.2&Event-Name=GENERAL&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A05&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A05%20GMT&Event-Date-Timestamp=1317069965442975&Event-Calling-File=switch_core.c&Event-Calling-Function=switch_load_network_lists&Event-Calling-Line-Number=1173&domain=192.168.1.2&purpose=network-list]
Diese Fehler können vorerst ignoriert werden - sie sollten in Zukunft behoben werden, beeinträchtigen jedoch nicht die Funktionsweise von Freeswitch.
Auf der OpenSimulator-Region (im Standalone-Modus) oder der Grid-Konsole (im Grid-Modus) sollten die folgenden Zeilen angezeigt werden:
[FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'config_sofia'
[FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'config_sofia'
[FreeSwitchVoice]: Anforderung für Konfigurationsabschnitt Verzeichnis empfangen, Aufruffunktion 'switch_load_network_lists'
Stelle nun sicher, dass dein Bereich in der Region die Sprachfunktion im Bereichsdialog aktiviert hat. Wenn dies nicht zuvor eingestellt wurde, musst du dies möglicherweise ändern und OpenSimulator neu starten.
Melde dich bei deinem Client an. Stelle sicher, dass die Sprachfunktion aktiviert und funktionstüchtig ist (wahrscheinlich durch Testen auf einem anderen Grid zuerst).
Wenn alles nach Plan verlaufen ist, solltest du eine Zeile sehen wie:
[FreeSwitchVoice]: OnRegisterCaps() aufgerufen mit Agenten-ID 0fe223e7-370a-46da-b935-b0831ddf6d08 Caps OpenSim.Framework.Capabilities.Caps in Szene test2
unter anderem auf der OpenSimulator-Region-Konsole. Und auf der Freeswitch-Konsole solltest du etwas sehen wie:
2011-09-26 22:10:09.866918 [WARNING] sofia_reg.c:1241 SIP-Authentifizierungsaufforderung (REGISTER) im Sofiaprofil 'internal' für [xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] von IP 192.168.1.2
Mit etwas Glück sind die Sprachtasten auf deinem Client jetzt aktiv und funktionieren.
[edit] Probleme und Lösungen
Stelle sicher, dass du die Sprachfunktion im Dialogfeld "Über das Land"->"Sprache" in der Region aktiviert hast. Du musst ein Regionsadministrator sein, um dies zu tun.
Überprüfe auch, ob das Grundstück ebenfalls Sprachaktiviert ist. Du musst Grundstückseigentümer sein oder die entsprechenden Berechtigungen haben, um dies zu tun. Aktuelle Second Life Viewer von Linden Labs bieten diese Option nicht mehr an, daher verwende Hippo oder einen anderen Client, der dies ermöglicht.
Issue |
Resolution |
---|---|
--[ERR] mod_xml_curl.c:230 xml_url_fetch() Received HTTP error 0 trying to fetch: |
To solve this error, get the last GIT of FreeSwitch, follow this instructions (for Ubuntu) here |
--mod_event_socket.c -> Socket Error Could not listen on 127.0.0.1:5060: |
This means something is using the port 5060, usually freeswitch is already running, on Ubuntu, try the following command: netstat -npl | grep 85060 If freeswitch is running, close is with: sudo freeswitch -stop OR sudo invoke-rc.d freeswitch stop |
--[ERR] [WARNING] sofia_reg.c:1540 sofia_reg_parse_auth()Can't find user [x8cOXAiIzTVC6xqf-nquLkw==@"some ip or domain here"] etc ... | a solutions to this error is, mod your vars.xml replacing the domain lines <X-PRE-PROCESS cmd="set" data="domain=whatever is in the realm setting of your freeswitch config"/> <X-PRE-PROCESS cmd="set" data="domain_name=whatever is in the realm setting of your freeswitch config"/> - Now this will most likely break your freeswitch for anything other than your opensim. But should get you closer |
--[WARNING] mod_local_stream.c:393 Unknown source moh, trying 'default'
[ERR] mod_local_stream.c:402 Unknown source default |
If you see these log messages continuously on the Freeswitch console, then you have either not disabled the conference sounds or you have not installed them (see earlier). |
Nutze einige der Debugging-Funktionen in FreeSWITCH:
- conference list <--- um zu sehen, ob du irgendwelche Konferenzen eingerichtet hast (beachte, dass du inworld sein musst, wenn du dies versuchst)
- xml_curl debug_on <--- dieser Befehl schreibt die Transaktionen zwischen OpenSimulator und FreeSWITCH in eine Datei (auf Linux befindet sie sich in /tmp)
- xml_curl debug_off <-- schalte es aus, nachdem du dich ein- und ausgeloggt hast
[edit] Notizen zur Einrichtung von FreeSwitch auf Openvue Grid
Verwendung von Windows Vista 32-Bit-Betriebssystem. Funktioniert mit FreeSwitch 1.0.4 und später (für ein spezifisches getestetes Beispiel, FreeSWITCH Version 1.0.head (git-e0c37c1 2010-11-05 18-20-09 -0500)).
Zusätzliche Hinweise, die hilfreich sein könnten:
- Wir haben ein einfaches OpenSim.exe auf dem SELBEN Host wie der FreeSwitch.exe-Dienst eingerichtet und eine einzelne einfache Insel darauf platziert (wir nannten sie "Talk"), da einige Leute beobachtet haben, dass FreeSwitch Probleme beim Verbinden hat, wenn es so konfiguriert ist, dass es mit einem anderen Server verknüpft ist, aber wir glauben nicht, dass dies notwendig ist.
- FreeSwitch bietet Dienste für alle OpenSim.exe-Instanzen auf beliebigen Servern, die du wünschst, obwohl es nur für eine konfiguriert ist.
- Es gibt einen FreeSwitch-Kanal pro Region, ändere die Region und du änderst den Kanal. Also müssen alle Benutzer, die sprechen möchten, sich in derselben Region befinden. Alle Grundstücke in einer Region teilen denselben einzigen Regionskanal.
- Du erscheinst als ein Benutzer in den SL-Viewern, ALLE anderen Benutzer erscheinen als einzelner "Benutzer" mit einem codierten Namen für die anderen Benutzer im Kanal - etwas wie conf-x9999999999999999999.
- Du musst die Sprachfunktion auf Regionsebene UND Grundstücksebene aktiviert haben. Dies ist mühsam, da die Standard-Einstellung in OpenSimulator ist, dass GRUNDSTÜCKE standardmäßig die Sprache deaktiviert haben. Die Standardviewer 1.23 und 2.x ermöglichen es dir nicht, dies wieder einzuschalten, daher musst du einen Viewer eines Drittanbieters verwenden, um die Sprache auf Grundstücksebene einzuschalten. Ich habe bereits vorgeschlagen, dass wir die Standardeinstellung beim Erstellen eines Grundstücks so ändern, dass diese standardmäßig aktiviert ist (oder aktiviert ist, wenn die Regionssprache aktiviert ist - was standardmäßig der Fall ist).
- Wir sind uns nicht sicher, ob du FreeSwitch.exe vor den Regionen starten musst, auf denen du Sprachfunktionen aktivieren möchtest. Aber wir tun dies aus Sicherheitsgründen. Es funktioniert problemlos über OpenSim.exe-Neustarts, ohne dass FreeSwitch erneut gestartet werden muss.
- Wenn du FreeSwitch über dein lokales Netzwerk hinaus verwenden möchtest, denke daran, für EXTERN zugängliche IP-Adressen zu konfigurieren. Verwende IP-Nummern für FreeSwitch... und wenn dort 192.168.x.x-Adressen für das lokale Netzwerk vorhanden sind, funktioniert FreeSwitch nicht mit externen Benutzern. Es kann durch eine Reihe von Firewalls mit geeigneten Mechanismen wie Portweiterleitung oder DMZs funktionieren, solange du definitiv zur extern sichtbaren IP-Adresse mappst. Stelle sicher, dass die entsprechenden Ports in deinen Firewalls geöffnet sind. Siehe separate Sektion im Wiki über erforderliche Ports.
- Es gibt einige rote Fehler beim Starten von FreeSwitch - zumindest in unserer Konfiguration - die anscheinend mit einer fehlenden Konfigurationsdatei zusammenhängen, die FreeSwitch von OpenSimulator abrufen soll (opensim-region-server-url:port/api/freeswitch-config), die nicht in der OpenSimulator-Setup vorhanden ist... Wir haben diese (sicher?) ignoriert, ohne Probleme...
2010-11-13 14:42:55.252361 [ERR] mod_xml_curl.c:252 Received HTTP error 0 trying to fetch http://129.215.219.143:9000/api/freeswitch-config data: [hostname=shuna§ion=directory&tag_name=domain&key_name=name&key_value= 129.215.219.143&Event-Name=GENERAL&Core-UUID=cb64ea40-aa92-494b-be13-65d9c468efe c&FreeSWITCH-Hostname=shuna&FreeSWITCH-IPv4=129.215.219.143&FreeSWITCH-IPv6=2002 %3A81d7%3Adb8f%3A%3A81d7%3Adb8f&Event-Date-Local=2010-11-13%2014%3A42%3A54&Event -Date-GMT=Sat,%2013%20Nov%202010%2014%3A42%3A54%20GMT&Event-Date-Timestamp=12896 59374247361&Event-Calling-File=switch_core.c&Event-Calling-Function=switch_load_ network_lists&Event-Calling-Line-Number=984&domain=129.215.219.143&purpose=network-list]
Standardmäßig spielt FreeSwitch Hold-Musik ab, wenn nur ein Avatar in der Konferenz ist, und es gibt Töne für jeden, wenn Avatare kommen und gehen. Um dies zu deaktivieren, bearbeite /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml. Lokalisiere das "default"-Profil und kommentiere die relevanten Zeilen aus. Siehe Beispiele oben auf dieser Wiki-Seite.