April 24, 2009 da Carlos Roundel
- Preparazione dell ambiente
apt-get update
apt-get install -y autoconf automake libtool build-essential subversion libxml2
apt-get install -y libxml2-dev libtiff4 libtiff4-dev php5 php5-cli
apt-get install -y php5-common php5-mcrypt php5-mysql php5-gd php5-pgsql php-pear php-db
apt-get install -y libmysqlclient15-dev curl sox libssl-dev libncurses5-dev bison
apt-get install -y libaudiofile-dev libnewt-dev libcurl4-gnutls-dev
apt-get install -y libnet-ssleay-perl openssl ssl-cert libauthen-pam-perl
apt-get install -y libio-pty-perl libmd5-perl
apt-get install -y libpg-perl libdbd-pg-perl sqlite3
apt-get install -y libsqlite3-dev openssl ssl-cert
apt-get install -y libapache2-mod-php5 libmcrypt-dev
mkdir /home/opensim/freeswitch
cd /home/opensim/freeswitch
- download, compilazione e installazione del trunk corrente di freeswitch
svn checkout http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch
cd freeswitch
cd build
cp modules.conf.in modules.conf
vi modules.conf
individuare la riga:
#codecs/mod_siren
e levare il #
individuare la riga
#xml_int/mod_xml_curl
e levare il #
salvare il file (con vi esc:wq)
cd ..
AUTOCONF=/usr/bin/autoconf ./bootstrap.sh
attendere una decina di minuti sino al termine dell operazione.
./configure –prefix=/usr/local/freeswitch
attendere altri 10 minuti (caffe, sigaretta, pipi).
make
attendere altri 10 minuti (cazzeggio su skype, secondlife, facebook).
make install
make mod_siren-install
make mod_xml_curl-install
make sounds-install
make sounds-install
make moh-install
make moh-install
notare che i due comandi vanno ripetuti due volte non e’ un errore!!
make samples
- Configurazione di Freswitch per opensim
supponiamo che il nostro server sia connesso ad internet con un IP pubblico del tipo: 192.111.222.33
supponiamo che non esista alcun firewall che limita alcunche ne in ingresso ne in uscita
supponiamo che opensim gira con la porta tcp 9000 sulla stessa macchina dove abbiamo installato freeswitch.
cd /usr/local/freeswitch/conf/autoload_configs/
vi modules.conf.xml
individuare la riga:
<!– <load module=”mod_xml_curl”/> –>
e sostituirla con:
<load module=”mod_xml_curl”/>
individuare la riga:
<!–<load module=”mod_siren”/>–>
e sostituirla con:
<load module=”mod_siren”/>
salvare il file (esc:wq)
cd /usr/local/freeswitch/conf/autoload_configs
vi xml_curl.conf.xml
posizionarsi sotto la riga:
<binding name=”example”>
cancellare tutte le righe (premendo dd piu volte su vi)
e sostituire con:
<configuration name=”xml_curl.conf” description=”cURL XML Gateway”>
<bindings>
<binding name=”example”>
<param name=”gateway-url” value=”http://192.111.222.33:9000/api/freeswitch-config” bindings=”directory”/>
<param name=”disable-100-continue” value=”true”/>
</binding>
<binding name=”local”>
<param name=”gateway-url” value=”http://192.111.222.33:9000/api/freeswitch-config” bindings=”dialplan”/>
<param name=”disable-100-continue” value=”true”/>
</binding>
</bindings>
</configuration>
(al posto di 192.111.222.33 va messo l’ip pubblico del server dove gira opensim.).
salvare il file.
cd /usr/local/freeswitch/conf/
vi vars.xml
individuare la riga:
<X-PRE-PROCESS cmd=”set” data=”global_codec_prefs=G722,PCMU,PCMA,GSM”/>
e sostituirla con:
<X-PRE-PROCESS cmd=”set” data=”global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h”/>
- Avvio di Freeswitch
screen invio
cd /usr/local/freeswitch/bin/
./freeswitch
ignorare qualunque messaggio o errore piu o meno colorato
e detachare screen
control+maiuscolo a
control+maiuscolo d
- Configurazione di Opensim
editare il file OpenSim.ini e inserire questa configurazione in coda
[FreeSwitchVoice]
enabled = true
;FreeSwitch server is going to contact us and ask us all
;sorts of things.
freeswitch_server_user = freeswitch
freeswitch_server_pass = password
freeswitch_api_prefix = /api
;The IP address of your opensim voice region
freeswitch_service_server = youropensimexternalIP
;the port your region is running on
freeswitch_service_port = 9000
;your freewitch IP address
freeswitch_realm = 192.111.222.33
freeswitch_sip_proxy = 192.111.222.33:5060
freeswitch_attempt_stun = false
freeswitch_stun_server = 192.111.222.33
freeswitch_echo_server = 192.111.222.33
freeswitch_echo_port = 50505
freeswitch_well_known_ip = 192.111.222.33
freeswitch_default_timeout = 5000
freeswitch_subscribe_retry = 120
Fine.
avviare normalemente opensim, da questo momento in poi la sim ha il voice abilitato.
Verificare che nelle impostazioni della parcell il voice sia attivo
verificare le impostaizoni di cuffia e microfono
Ho seguito la configurazione ufficiale suggerita sul sito http://www.opensimulator.org
integrandola su come settare i moduli e con alcuni suggerimenti sia dai bug mantis
che dalle mailing list di opensimulator, se qualcuno puo tradurre in inglese quanto ho scritto
e ripostarlo da qualche parte (citando sia me che cyberlandia come fonte, questo documento e’ rilasciato con licenza cc)
credo che possa essere utile a quanti stanno sbattendosi a far funzionare il voice in questo periodo.
—————————————
Naturalmente la region o la parcell dove si vuole parlare deve avere il voice abilitato:
menu world -> about land -> media -> voice -> spuntare Use the estate spatial channel
Il voice funziona con hippo opensim viewer 0.5.1 abilitando le impostazioni alla scheda:
edit-> preferences -> voice chat -> Enable voice chat.
segnalo alcune note da parte di chi e’ riuscito con sucesso a far andare freeswitch:
la parte di aggiornamento installazione con apt-get install e’ fondamentale, la ho divisa in diverse righe invece che inserirla in un unico comando, perche’ alcuni pacchetti potrebbero non venire installati mancando altri pacchetti dipendenti, accertarsi che l’installazione avvenga con successo
alcuni possono essere gia presenti nel sistema, dipende dalla configurazione preesistente.
freeswitch_service_server = youropensimexternalIP in Opensim.ini e’ l’ip pubblico del server
lo stesso ip che va settato al posto di 192.111.222.33 sempre in Opensim.ini
il file: xml_curl.conf.xml va svuotato completamente e sostituito eliminando tutte le righe prima.
———————————
Dopo 6 ore di prove…confermo che funziona tutto! Un immenso grazie a Carlos per la guida chiara e precisa! E finalmente si parla tutti in voice!
———————————-
Ebbene si, mi ero illuso che tutto funzionasse, il tasto talk era cliccabile anche nelle mie sim, ma in realtà era solo un residuo del teleport da Cyberlandia…ma almeno ho trovato l’errore, all’avvio di Freeswitch mi compare in rosso questo:
[ERR] mod_xml_curl.c:252 xml_url_fetch() Received HTTP error 0 trying to fetch http://91.121.200.16:9000/api/freeswitch-config
Help!
AlexZavino Itano 45 giorni fa
—————————————
e’ un buon segno, intanto freeswitch sta andando ed il mod_xml_curl e’ attivo
prova a verificare l’OpenSim.ini e riavvia la region. 91.121.200.16 deve essere l’ip dell interfaccia eth0
nel tuo opensim.ini devi avere quindi questa sezione:
[FreeSwitchVoice]
enabled = true
;FreeSwitch server is going to contact us and ask us all
;sorts of things.
freeswitch_server_user = freeswitch
freeswitch_server_pass = password
freeswitch_api_prefix = /api
;The IP address of your opensim voice region
freeswitch_service_server = 91.121.200.16
;the port your region is running on
freeswitch_service_port = 9000
;your freewitch IP address
freeswitch_realm = 91.121.200.16
freeswitch_sip_proxy = 91.121.200.16:5060
freeswitch_attempt_stun = false
freeswitch_stun_server = 91.121.200.16
freeswitch_echo_server = 91.121.200.16
freeswitch_echo_port = 50505
freeswitch_well_known_ip = 91.121.200.16
freeswitch_default_timeout = 5000
freeswitch_subscribe_retry = 120
attiva se non lo hai fatto il voice nelle impostazioni della region.
Carlos Roundel
—————————–
This guide is also traslate in english (tanks to Olivier Battini owner of newworldgrid )
see this link http://www.olivierbattini.fr/freeswitch-install-tutorial/
—————————————–
sudo ./configure –prefix=/usr/local/freeswitch
mi genera questo errore
(
configure: error: invalid variable name: –prefix
————————————
sudo ./configure –prefix=/usr/local/freeswitch
credo sia un problema dei caratteri del terminale che stai usando
prova a scriverlo digitandolo sul terminale, non a copiaincollarlo, lo da se non ha preso il – (meno)