⚠️Tentative d’installation (Ne fonctionne pas). Je me suis inspiré de plusieurs source trouvé avec Google. Par contre ca ne semble pas fonctionner. Je mettrais cette page a jour si je trouve la solution.

Configuration HyperGrid

Installation des dépendances

sudo apt install build-essential pkg-config uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev unzip libavformat-dev libswscale-dev libavresample-dev liblua5.2-dev liblua5.2-0 cmake libpq-dev unixodbc-dev autoconf automake ntpdate libxml2-dev libpq-dev libpq5 sngrep

Installation des libraries

- libks

sudo git clone https://github.com/signalwire/libks.git /usr/local/src/libks
cd /usr/local/src/libks
sudo cmake .
sudo make && sudo make install


- libsignalwire

sudo git clone https://github.com/signalwire/signalwire-c.git /usr/local/src/signalwire-c
cd /usr/local/src/signalwire-c
sudo cmake .
sudo make && sudo make install


- Sofia-Sip

sudo git clone https://github.com/freeswitch/sofia-sip /usr/local/src/sofia-sip
cd /usr/local/src/sofia-sip
sudo ./bootstrap.sh
sudo ./configure
sudo make && sudo make install


- SpanDSP

sudo git clone https://github.com/freeswitch/spandsp /usr/local/src/spandsp
cd /usr/local/src/spandsp
sudo ./bootstrap.sh
sudo ./configure
sudo make && sudo make install


Executez ldconfig pour informer le systeme des nouvelles libraries installé:

sudo ldconfig


Verifier que les 4 libraries sont bien installé avant de continuer:

sudo ldconfig -p | grep -E 'libks|signalwire|sofia|spandsp'


Vous devriez avoir ce resultat:

        libspandsp.so.3 (libc6,x86-64) => /usr/local/lib/libspandsp.so.3
        libspandsp.so (libc6,x86-64) => /usr/local/lib/libspandsp.so
        libsofia-sip-ua.so.0 (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua.so.0
        libsofia-sip-ua.so (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua.so
        libsignalwire_client.so.1 (libc6,x86-64) => /usr/local/lib/libsignalwire_client.so.1
        libsignalwire_client.so (libc6,x86-64) => /usr/local/lib/libsignalwire_client.so
        libksba.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libksba.so.8
        libks.so.1 (libc6,x86-64) => /lib/libks.so.1
        libks.so (libc6,x86-64) => /lib/libks.so

Installation de FreeSwitch

sudo wget -c https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.7.-release.tar.gz -P /usr/local/src
cd /usr/local/src
sudo tar -zxvf freeswitch-1.10.7.-release.tar.gz
cd freeswitch-1.10.7.-release
sudo ./configure
sudo make
sudo make install


Si tout c'est bien passé vous avez du voir cet écran lors du make

Puis celui ci lors du make install

 

Par défaut, FreeSwitch s'installera dans /usr/local/bin et /usr/local/freeswitch, pour le rendre disponible sur tout le système vous pouvez créer les liens symboliques suivants.

sudo ln -s /usr/local/freeswitch/conf /etc/freeswitch 
sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli 
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/sbin/freeswitch

Creez un Daemon

sudo groupadd freeswitch 
sudo adduser --quiet --system --home /usr/local/freeswitch --gecos 'FreeSWITCH open source softswitch' --ingroup freeswitch freeswitch --disabled-password 
sudo chown -R freeswitch:freeswitch /usr/local/freeswitch/ 
sudo chmod -R ug=rwX,o= /usr/local/freeswitch/ 
sudo chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/
sudo nano /etc/systemd/system/freeswitch.service

Collez ces lignes:

[Unit] 
Description=FreeSWITCH open source softswitch 
Wants=network-online.target
Requires=network.target local-fs.target 
After=network.target network-online.target local-fs.target 

[Service] 
; service 
Type=forking 
PIDFile=/usr/local/freeswitch/run/freeswitch.pid 
Environment="DAEMON_OPTS=-nonat" 
Environment="USER=freeswitch" 
Environment="GROUP=freeswitch" 
EnvironmentFile=-/etc/default/freeswitch 
ExecStartPre=/bin/chown -R ${USER}:${GROUP} /usr/local/freeswitch 
ExecStart=/usr/local/freeswitch/bin/freeswitch -u ${USER} -g ${GROUP} -ncwait ${DAEMON_OPTS} 
TimeoutSec=45s 
Restart=always 

[Install] 
WantedBy=multi-user.target

Ctrl+X pour sauvegarder

Rechargez systemctl:

sudo systemctl daemon-reload


Demarrez FreeSwitch

sudo systemctl start freeswitch


Verifiez que le service est bien fonctionnel:

sudo systemctl status freeswitch


Vous devriez avoir ce résultat:

La ou ca devient la merde

Je suis cette documentation: http://opensimulator.org/wiki/Freeswitch_Module

sudo nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml

Dé-commentez ces lignes...
<load module="mod_xml_curl"/> et <load module="mod_siren"/>


Ctrl+X pour sauvegarder

Tronquez le fichier /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml

sudo truncate -s 0 /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml


Éditez le fichier /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml
Remplacezdomain.com par votre nom de domaine.

sudo nano /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml
<configuration name="xml_curl.conf" description="cURL XML Gateway">
<bindings>
   <binding name="directory">
           <param name="gateway-url" value="http://domain.com:8004/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://domain.com:8004/fsapi/freeswitch-config" bindings="dialplan"/>
           <param name="gateway-credentials" value="freeswitch:password"/>
           <param name="disable-100-continue" value="true"/>
   </binding>
</bindings>
</configuration>

Ctrl+X pour sauvegarder

Configurez le fichier /usr/local/freeswitch/conf/vars.xml

sudo nano /usr/local/freeswitch/conf/vars.xml

Cherchez global_codec_prefs et remplacez la ligne par:

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


Configurez le fichier /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml

sudo nano /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml


Recherchez ces lignes en commentez les:
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>

Ctrl+X pour sauvegarder

Redémarrez FreeSwitch:

sudo systemctl restart freeswitch


Éditez OpenSim.ini

nano -c ~/HG/bin/OpenSim.ini
[FreeSwitchVoice]
    ;; In order for this to work you need a functioning FreeSWITCH PBX set up.
    ;; Configuration details at http://opensimulator.org/wiki/Freeswitch_Module
    Enabled = true

    ;; You need to load a local service for a standalone, and a remote service
    ;; for a grid region. Use one of the lines below, as appropriate
    ;; If you're using Freeswitch on a standalone then you will also need to configure the [FreeswitchService] section in config-include/StandaloneCommon.ini
    ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService
    LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector

    ;; If using a remote connector, specify the server URL
    FreeswitchServiceURL = http://domain.com:8004/fsapi


Éditez Robust.HG.ini

nano -c ~/HG/bin/Robust.HG.ini
[ServiceList]
    AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
    InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
    ;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below)
    VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
...
[FreeswitchService]
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"

    ;; The IP address of your FreeSWITCH server.
    ;; This address must be reachable by viewers.
    ServerAddress = PUBLIC.SERVER.IP.ADDRESS


Demarrez Robust et OpenSim:

cd ~/HG/bin/
screen -d -m -S "Robust" mono Robust.exe -inifile=Robust.HG.ini
screen -d -m -S "OpenSim" mono OpenSim.exe


Dans Robust.log vous devriez avoir ce resultat:
2022-07-05 09:36:36,264 INFO (1) - OpenSim.Server.OpenSimServer [SERVER]: Loading FreeswitchServerConnector on port 8004
2022-07-05 09:36:36,266 INFO (1) - OpenSim.Server.OpenSimServer [SERVER]: FreeswitchServerConnector loaded successfully

Dans OpenSim.log:
2022-07-05 09:37:48,494 INFO [FreeSwitchVoice]: using FreeSwitch server 51.89.8.116
2022-07-05 09:37:48,494 INFO [FreeSwitchVoice]: plugin enabled
...
2022-07-05 09:37:48,995 INFO [FreeSwitchVoice]: registering IVoiceModule with the scene

A ce point je suis capable d'activer la voix mais FireStorm n'affiche pas le point au dessus de l'avatar et il ne semble pas avoir de son dans la région.

J'ai ceci dals les logs de Firestorm:

2022-07-05T09:46:33Z INFO #Voice# newview/llvoicevivox.cpp(1218) LLVivoxVoiceClient::provisionVoiceAccount : Provisioning voice account.
2022-07-05T09:46:34Z INFO #Voice# newview/llvoicevivox.cpp(1338) LLVivoxVoiceClient::establishVoiceConnection : Requesting connection to voice service
2022-07-05T09:46:34Z INFO #Voice# newview/llvoicevivox.cpp(3719) LLVivoxVoiceClient::connectorCreateResponse : Connector.Create succeeded, Vivox SDK version is 4.10.0000.32327
2022-07-05T09:46:34Z INFO #Voice# newview/llvoicevivox.cpp(3650) LLVivoxVoiceClient::setupVADParams : Setting the automatic VAD to False and discrete values to VadHangover = 2000, VadSensitivity = 0, VadNoiseFloor = 576
2022-07-05T09:46:34Z INFO #Voice# newview/llvoicevivox.cpp(2029) LLVivoxVoiceClient::waitForChannel : Waiting for channel
2022-07-05T09:46:34Z INFO #Voice# newview/llvoicevivox.cpp(2623) LLVivoxVoiceClient::loginSendMessage : Attempting voice login
2022-07-05T09:46:35Z WARNING #Voice# newview/llvoicevivox.cpp(1701) LLVivoxVoiceClient::requestParcelVoiceInfo : No voice channel credentials
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(1721) LLVivoxVoiceClient::addAndJoinSession : Adding or joining voice session
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(3822) LLVivoxVoiceClient::sessionCreateResponse : Session.Create response received (success), session handle is 5
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(3948) LLVivoxVoiceClient::sessionAddedEvent : session sip:Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser., alias , name handle 5
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(3975) LLVivoxVoiceClient::sessionAddedEvent : Could not generate caller id from uri, using hash of uri sip:Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(3994) LLVivoxVoiceClient::sessionAddedEvent : caller ID: e3bbf549-d487-2579-5796-96e30b762233
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(1825) LLVivoxVoiceClient::addAndJoinSession : event={'handle':'5','session':'created'}
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(1825) LLVivoxVoiceClient::addAndJoinSession : event={'handle':'5','session':'removed'}
2022-07-05T09:46:35Z WARNING #Voice# newview/llvoicevivox.cpp(1866) LLVivoxVoiceClient::addAndJoinSession : session 'removed'
2022-07-05T09:46:35Z INFO #Voice# newview/llvoicevivox.cpp(4083) LLVivoxVoiceClient::sessionRemovedEvent : handle 5
2022-07-05T09:46:35Z WARNING #Voice# newview/llvoicevivox.cpp(6351) LLVivoxVoiceClient::clearSessionHandle : Session has empty handle!

2022-07-05T09:47:37Z WARNING #Voice# newview/llvoicevivox.cpp(1866) LLVivoxVoiceClient::addAndJoinSession : session 'timeout'
2022-07-05T09:47:38Z WARNING #Voice# newview/llvoicevivox.cpp(1701) LLVivoxVoiceClient::requestParcelVoiceInfo : No voice channel credentials
2022-07-05T09:47:39Z INFO #Voice# newview/llvoicevivox.cpp(2201) LLVivoxVoiceClient::runSession : running new voice session 5
2022-07-05T09:47:39Z INFO #Voice# newview/llvoicevivox.cpp(1721) LLVivoxVoiceClient::addAndJoinSession : Adding or joining voice session 5

Quelques liens qui m'ont permis d’écrire ce tutoriel:

Mumble:
https://angefg.wordpress.com/

FreeSwitch:
http://opensimulator.org/mantis/view.php?id=5267
http://opensimulator.org/mantis/view.php?id=5740
http://opensimulator.org/mantis/view.php?id=6316
http://opensimulator.org/wiki/Freeswitch
http://opensimulator.org/wiki/Freeswitch_Module
https://www.opensourcelisting.com/freeswitch-ubuntu/
https://gist.github.com/cyrenity/96cc1ad7979b719b1c684f90aa0f526d
http://zaki.asia/2008/08/28/getting-voice-chat-in-opensim.html
https://computingforgeeks.com/how-to-install-freeswitch-pbx-on-ubuntu/
https://forums.osgrid.org/viewtopic.php?f=15&t=1973
https://github.com/OpenSim-NGC/OpenSim-Sasquatch/wiki/FreeSwitch
https://opensimnobrasil.blogspot.com/2010/12/instalando-e-configurando-modulo-de-voz.html
https://www.hypergridbusiness.com/2021/06/free-vivox-still-available-needs-new-plugin/
https://github.com/IslandzVW/halcyon/tree/master/MOSES/FreeswitchVoice



17 opinions sur “Installer FreeSwitch 1.10.7 pour OpenSim 0.9.2.2 (Ubuntu 20.04)”

  1. mercredi 17 janvier 2024 12:20
  2. mercredi 17 janvier 2024 12:20
  3. mercredi 17 janvier 2024 12:20
  4. mercredi 17 janvier 2024 12:20
  5. mercredi 17 janvier 2024 12:21
  6. mercredi 17 janvier 2024 12:21
  7. mercredi 17 janvier 2024 12:21
  8. mercredi 17 janvier 2024 12:21
  9. mercredi 17 janvier 2024 12:21
  10. mercredi 17 janvier 2024 12:21
  11. mercredi 17 janvier 2024 12:21
  12. mercredi 17 janvier 2024 12:21
  13. mercredi 17 janvier 2024 12:21
  14. mercredi 17 janvier 2024 12:21
  15. mercredi 17 janvier 2024 12:21
    (.(,('"(,)
  16. mercredi 17 janvier 2024 12:21
    'TbVRan&lt;'"&gt;HszeQJ