⚠️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