Freeswitch Module/de

From OpenSimulator

Revision as of 02:18, 15 March 2024 by Manni (Talk | contribs)

Jump to: navigation, search


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

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.

FreeSwitch Config

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

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.

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>

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>

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.

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>

OpenSimulator-Konfiguration

Konfiguration für OpenSimulator 0.7.1 und höher

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.

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

OpenSimulator 0.7.0.2 und früher

Standalone

Füge Folgendes zu deiner OpenSim.ini hinzu:

[FreeSwitchVoice] Enabled = true LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"

[FreeswitchService] ServerAddress = youropensimregionip Realm = "youropensimregionip"

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 Config

Basically open ports 1720 and 5060, and maybe 50505 must be open for listening.

Make sure that the ports used by Freeswitch are accessible though your firewall(s). In the example above the main port used is 5060 though other ports may be used for call initiation (port 1720 for H.323 Call Signalling) and dynamically assigned ports for specific call traffic. The usual H.323 and SIP traffic dynamic port handling on modern firewalls usually enables this.

Is port 50505 actually used, or is it just something that must be
reported by OpenSimulator when the Freeswitch service makes contact?


More details on the Freeswitch ports used and firewall configuration details are at http://wiki.freeswitch.org/wiki/Firewall

If you have problems with NAT/Routers look at using STUN (Simple Traversal of UDP through NATs). More information at http://wiki.freeswitch.org/wiki/NAT_Traversal

Starting everything up

1. Freeswitch fetches OpenSimulator related configuration from the OpenSimulator freeswitch voice module and service that we set up earlier. Therefore, you need to start OpenSimulator first. On startup you should see the lines

21:45:33 - [FreeSwitchVoice]: using FreeSwitch server <your ip address>
21:45:33 - [FreeSwitchVoice]: plugin enabled

2. Start freeswitch. This will complain about

 [ERR] mod_xml_curl.c:302 Error Parsing Result! [http://localhost:9000/fsapi/freeswitch-config] data: [hostname=fruitfly&section=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]

and

[ERR] mod_xml_curl.c:305 Received HTTP error 404 trying to fetch http://localhost:9000/fsapi/freeswitch-config data: [hostname=fruitfly&section=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]

You can ignore these errors for now - they should be fixed in the future but will not prevent Freeswitch from working.

On the OpenSimulator region (on standalone) or grid console (on grid) you should see the lines

[FreeSwitchVoice]: Received request for config section directory, event calling function 'config_sofia'
[FreeSwitchVoice]: Received request for config section directory, event calling function 'config_sofia'
[FreeSwitchVoice]: Received request for config section directory, event calling function 'switch_load_network_lists'

3. Now, make sure your parcel in the region has voice enabled in the parcel dialog. You may need to change this and then restart OpenSimulator if it wasn't previously set.

4. Login your client. Make sure you have voice enabled and it's working (probably by testing on another grid first).

5. If everything has gone according to plan, you should see something like the line

[FreeSwitchVoice]: OnRegisterCaps() called with agentID 0fe223e7-370a-46da-b935-b0831ddf6d08 caps OpenSim.Framework.Capabilities.Caps in scene test2

amongst others on the OpenSimulator region console. And on the freeswitch console you should see something like

2011-09-26 22:10:09.866918 [WARNING] sofia_reg.c:1241 SIP auth challenge (REGISTER) on sofia profile 'internal' for [xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] from ip 192.168.1.2
2011-09-26 22:10:10.046904 [ERR] mod_xml_curl.c:305 Received HTTP error 404 trying to fetch http://localhost:9000/fsapi/freeswitch-config
data: [hostname=fruitfly&section=directory&tag_name=domain&key_name=name&key_value=192.168.1.2&Event-Name=GENERAL&Core-UUID=da41cd40-e883-11e0-b7d8-07a2aa0d33c8&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2022%3A10%3A10&Event-Date-GMT=Mon,%2026%20Sep%202011%2021%3A10%3A10%20GMT&Event-Date-Timestamp=1317071410046904&Event-Calling-File=mod_voicemail.c&Event-Calling-Function=resolve_id&Event-Calling-Line-Number=1284&action=message-count&key=id&user=xD-Ij5zcKRtq5NbCDHd9tCA%3D%3D&domain=192.168.1.2]
2011-09-26 22:10:10.466949 [WARNING] sofia_reg.c:1241 SIP auth challenge (INVITE) on sofia profile 'internal' for [conf-xZGQ1Yjc3ZjgtYmY4OC00NWFjLWFhY2UtMzViZDc2NDI2Yzgx@192.168.1.2] from ip 192.168.1.2
2011-09-26 22:10:10.646923 [NOTICE] switch_channel.c:816 New Channel sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 [eb426488-e883-11e0-b7e2-07a2aa0d33c8]
2011-09-26 22:10:10.646923 [INFO] mod_dialplan_xml.c:331 Processing Justin Clark-Casey <xD-Ij5zcKRtq5NbCDHd9tCA==>->conf-xZGQ1Yjc3ZjgtYmY4OC00NWFjLWFhY2UtMzViZDc2NDI2Yzgx in context default
2011-09-26 22:10:10.646923 [NOTICE] mod_dptools.c:930 Channel [sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] has been answered
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6561 using channel sound prefix: /usr/local/freeswitch/sounds/en/us/callie
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '0' to 'mute'
2011-09-26 22:10:10.646923 [INFO] switch_ivr_async.c:163 Digit parser mod_conference: Setting realm to conf
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '*' to 'deaf mute'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '9' to 'energy up'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '8' to 'energy equ'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '7' to 'energy dn'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '3' to 'vol talk up'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '2' to 'vol talk zero'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '1' to 'vol talk dn'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '6' to 'vol listen up'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '5' to 'vol listen zero'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '4' to 'vol listen dn'
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '#' to 'hangup'

With any luck, the voice buttons on your client will now be active and working.

Issues and Solutions

Make sure that you have enabled voice in the "About Land"->"Voice" dialogue in the region, you will need to be a region admin to do this.

Check the plot also has voice enabled. You must be a plot owner or have suitable permisison to do this. Recent Linden Labs Second Life viewers do not offer this option, so use Hippo or another client which does.

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).



Use some of the debugging features in FreeSWITCH:

  • conference list <--- to see if you have any conferences setup (note you have to be inworld when you try this)
  • xml_curl debug_on <--- this command will dump the transactions between OpenSimulator and FreeSWITCH into a file (on linux it is in /tmp)
  • xml_curl debug_off <-- turn it off after you login/logout a few times

Notes from Openvue Grid setup for FreeSwitch

Using Windows Vista 32 bit OS. Works with FreeSwitch 1.0.4 and later (for a specific tested example, FreeSWITCH Version 1.0.head (git-e0c37c1 2010-11-05 18-20-09 -0500)).

Additional notes that might help:

1. We established a simple OpenSim.exe on the SAME host as the FreeSwitch.exe service and put a single simple island on that (we called it "Talk") as some folks observed that FreeSwitch had problems with connecting if it was CONFIGURED to link to another server, but we don't believe this is necessary.

2. FreeSwitch provides service to all OpenSim.exe instances on any servers you wish even though its only configured for one.

3. There is one FreeSwitch channel per region, change regions and you change channel. So all users to talk must be on the same region. All plots on one region share the same single region channel.

4. You appear as one user in the SL Viewers, ALL other users appear as a single "user" with a coded name for the other users on the channel - something like conf-x9999999999999999999.

5. You must have voice enabled at the region, AND the plot level. This is a pain, as the default setting in OpenSimulator is that PLOTS have voice turned off. The standard viewers 1.23 and 2.x do not allow you to turn this back on, so you must use a third party viewer to turn on PLOT voice. I have asked before that we change the default setting when a plot is created to have this on by default (or on if the region voice is on - which it is by default).

6. We are not sure if you MUST start FreeSwitch.exe before the regions that you want voice to work on. But we do so for safety. It works fine over OpenSim.exe restarts without FreeSwitch being started again.

7. If you wish to use FreeSwitch beyond your local network, remember to configure for EXTERNALLY accessible IP addresses. Use IP numbers for FreeSwitch... and if there are 192.168.x.x style local net addresses in there you will not get FreeSwitch to work with external users. It can work through a range of firewalls with suitable mechanisms such as port forwarding or DMZs, so long as you definitely map to the externally visible IP address. Ensure you have the appropriate ports open in your Firewall(s). See separate section in Wiki on ports required.

8. There are some red errors on startup of FreeSwitch - at least in our setup - which appears to be related to a missing config file that FreeSwitch tries to retrieve from OpenSimulator (opensim-region-server-url:port/api/freeswitch-config) that is not in the OpenSimulator setup... We have (safely?) ignored those without problems...

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&section=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]

9. By default, FreeSwitch plays hold music when there is only one avatar in the conference and beeps for everyone when avatars arrive and leave. To disable, edit /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml. Locate the "default" profile and comment out the relevant lines. See examples above on this Wiki page.

Personal tools
General
About This Wiki