Iniciando el cacharreo con Asterisk me dia a la tarea de instalar el servidor de telefonia y crear una cuenta telefonica que pudiera utilizar con un telefono por software como el Ekiga (que ya viene preinstalado en la version de escritorio de Ubuntu), para al menos realizar una prueba de como funciona el software y como se configura.
Instalar Servidor :
En el servidor donde vamos a montar el Asterisk abrimos una consola.
Instalamos el asterisk
sudo apt-get install asterisk
Listo, esto descarga los paquetes e inicia el servicio.
Configurar Servidor y Cuenta de Prueba :
Editar la configuracion del Protocolo de Inicio de Sesion :
sudo vi /etc/asterisk/sip.conf
Buscamos la linea :
context=default
y adicionamos debajo las siguientes lineas :
srvlookup=yes
videosupport=yes
disallow=all ; First disallow all codecs
allow=ulaw
allow=alaw ; Allow codecs in order of
allow=ilbc ; preference
allow=gsm
allow=h261
Vamos al final del archivo y adicionamos nuestra extension telefonica 101 :
[101]
type=friend
secret=welcome
qualify=yes ; Qualify peer is not more than 2000 mS away
nat=no ; This phone is not natted
host=dynamic ; This device registers with us
canreinvite=no ; Asterisk by default tries to redirect
context=home
;port=5061 ; Uncomment this line if Ekiga and Asterisk are on the same host
Abrimos el archivo de extensiones para configuramos la extension recien creada y el servicio de eco :
sudo vi /etc/asterisk/extensions.conf
Al final del archivo adicionamos la configuracion :
[home]
exten => 101,1,Dial(SIP/101)
exten => 600,1,Answer()
exten => 600,2,Playback(demo-echotest) ; Let them know what is going on
exten => 600,3,Echo() ; Do the echo test
exten => 600,4,Playback(demo-echodone) ; Let them know it is over
exten => 600,5,Hangup()
La primera linea nos permite llamarnos a nosotros mismos, cosa extraña pero que algunos telefonos permite, Ekiga no, sale Ocupado
Las lineas restantes crean un servicio de eco que reproduce una grabacion y luego envia los datos que uno le ha mandado en una especie de eco.
Reiniciamos el servicio de Asterisk
sudo service asterisk restart
Configuracion del Cliente :
En un Ubuntu 8.10 Desktop abrimos Applications -> Internet -> Ekiga softphone
Realizamos la configuracion inicial si no lo hemos configurado.
Con el Ekiga ya en ejecucion vamos al menu Edit -> Accounts
Pulsamos el boton Add
Le colocamos un nombre a la cuenta, por ejemplo Asterisk
Dejamos el Protocolo en SIP
En Registar colocamos la IP de nuestro servidor
En el usuario colocamos 101
En el password colocamos welcome
(Los datos del usuario se especificaron en el archivo sip.conf en el servidor)
Habilitamos la cuenta activando el checkbox
Cerramos la ventana de cuentas
En la ventana del telefono colocamos sip:600 y <ENTER>
Esto llamara a la extension 600 la cual nos permite realizar la prueba del eco
Para adicionar mas cuentas en otros equipos abrimos el archico sip.conf en el servidor adicionamos otras secciones como la [101] que acabamos de configurar, esto es simplemente una demostracion del uso basico de Asterisk. Para obtener mas informacion de la configuracion vaya a los enlaces.
Asterisk es una aplicacion de fuente abierta para telefonia, la cual permite configurar una maquina para que haga el despacho de las llamadas, el redireccionamiento, entre muchas otras cosas ... como quien dice es una central telefonica completa o PBX que tambien soporta VoIP.
Soporta los sistemas operativos Linux, hardware especilizado en telefonia, protocolos estandares para la comunicacion de audio y un monton de caracteristicas para crear servicios telefonicos que van desde oficinas interconectadas hasta call centers.
Hoy por fin he tenido tiempo de leer un poquito acerca de tan mencionado software.
Hasta el momento he utilizado el OpenSimulator con SQLite que ejecuta el motor directamente con el simulador y no tenemos que crear bases de datos para almacenar la informacion pero algunas veces los datos son muchos o se quieren tener en una base de datos externa como MySQL, a continuacion haremos los cambios necesarios para alojar los assets y el inventario :
Requerimientos : (ver antiguas entradas)
Instalar el OpenSimulator
Instalar MySQL
Configuracion :
Abrir una terminar y abrir el directorio donde esta el opensimulator instalado :
cd opensim
Editar el archivo de configuracion
vi bin/OpenSim.ini
Cambiar las siguientes propiedades a los valores dados :
storage_plugin = OpenSim.Data.MySQL.dll
storage_connection_string = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;"
asset_database = local
inventory_plugin = OpenSim.Data.MySQL.dll
inventory_source = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;"
userDatabase_plugin = OpenSim.Data.MySQL.dll
user_source = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;"
asset_plugin = OpenSim.Data.MySQL.dll
asset_source = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;"
Abrir el cliente de mysql :
mysql -u root -p mysql
Ejecutar el siguiente sql (modifique las claves)
CREATE USER 'opensim'@'%' IDENTIFIED BY 'opensim';
GRANT USAGE ON *.* TO 'opensim'@'%' IDENTIFIED BY 'opensim';
CREATE DATABASE IF NOT EXISTS `opensim`;
GRANT ALL PRIVILEGES ON `opensim`.* TO 'opensim'@'%';
Cambiar al directorio bin del opensimulator
cd bin
Ejecutar el OpenSim :
./OpenSim.exe
El OpenSimulator se encarga de crear las tablas e iniciarlizar sus datos
Crear un directorio de trabajo :
mkdir modulo
cd modulo
Descargar el modulo de ejemplo :
wget http://wonderland.dev.java.net/wiki/modules/example-module.tar.gz
Descomprimir el archivo :
tar -zxvf example-module.tar.gz
Cambiar al directorio recien creado :
cd example-module
Configuracion :
Abrir el archivo de configuracion del modulo :
vi my.module.properties
Buscar la propiedad wonderland.dir y cambiar por el directorio donde tenemos instalado el wonderland, por ejemplo :
wonderland.dir=/home/<usuario>/projects/wonderland
Modificar los Fuentes : Al parecer por cambios en la version se deben modificar los fuentes
Abrir el archivo del servidor :
vi src/classes/org/jdesktop/wonderland/modules/example/server/ExampleCellMO.java
Buscar la linea
import com.sun.sgs.app.ClientSession;
Reemplazar por
import org.jdesktop.wonderland.server.comms.WonderlandClientID;
Buscar (aparece dos veces)
ClientSession clientSession
Reemplazar por
WonderlandClientID clientID
Compilacion y Emplazamiento :
Compilamos utilizando ANT :
ant
Ejecutar el servidor una vez
ant run-server
Verifique que el siguiente directorio exista :
/home/<usuario>/.wonderland-server/0.5-dev/wfs/worlds/default-wfs
Si no existe crearlo
Crear el archivo para alojar la celda
vi /home/marlonj/.wonderland-server/0.5-dev/wfs/wordls/default-wfs/cell1-wlc.xml
Abrir el administrador de modulos web
http://192.168.1.3:8080/wonderland-web-front/admin?pageURL=/wonderland-web-modules
Instalar el modulo, buscando el archivo example.jar en el directorio dist del modulo
Reiniciar el servidor utilizando la interface web, seleccionar Restart All
http://192.168.1.3:8080/wonderland-web-front/admin?pageURL=/wonderland-web-runner
Abrir la pagina principal y lanzar el cliente
http://192.168.1.3:8080/wonderland-web-front/
o lanzarlo desde linea de comando
javaws http://192.168.1.3:8080/wonderland-web-front/app/Wonderland.jnlp
Despues de conocer que Intel estaba creando un mundo virtual llamado ScienceSim basado en OpenSimulator, ni corto ni perezoso trate de bajar e instalar sus servidores pero todavia no estan disponibles al publico en general, entonces opte por solicitar una cuenta para echarle un vistazo y mirar en que estan trabajando. Hoy me llego un correo con mi usuario y utilizando HippoViewer entre a pasear un rato.
Comence entonces entrando a la pagina web del simulador la cual esta desarrollada en PHP que permite solicitar una cuenta, actualizar los datos de la cuenta, visualizar las ultimas noticias, listado de regiones, estado de las regiones y mapas de estas. En el wiki encontre como acceder a las regiones utilizando el HippoViewer que hace poco descargue.
Lo primero que hice al llegar a las islas fue personalizar mi avatar (para luego darme cuenta que una seccion de bienvenida existen avatars gratis), luego me fui por los diferentes sitios donde encontre una zona de bienvenida donde existen imagenes con datos acerca de como moverse, usar la camara, modificar la apariencia y demas, en otro lugar hay edificios administrativos y al parecer algunas oficinas, tambien encontre un edificio como un observatorio y debajo del agua una cupula transparente a la cual no pude entrar. Tambien a los lados de un puente encontre unas pantallas donde se pueden observar varios tutoriales de Torley acerca de Second Life.
Las islas estan en construccion pero ya tengo mi usuario.
Por fin funciono la version 0.5 de Wonderland, para esto me baje la version actual del repositorio y cree mi archivo de configuracion con la IP del servidor, tambien aproveche para probar el cliente en Windows pero el servidor sigue estando en Ubuntu.
Crear un directorio para descargar el software
mkdir wonderland
cd wonderland
Descargar fuentes, cambiar <usuario> por el nombre de usuario en java.net :
svn checkout https://wonderland.dev.java.net/svn/wonderland/trunk wonderland --username <usuario>
Compilar :
Cambiar al directorio de trabajo :
cd wonderland
Ejecutar el comando ant :
ant
Configuracion :
Crear el archivo my.run.properties
vi my.run.properties
Adicionar las propiedades del url y direccion del servidor :
wonderland.web.server.url=http://192.168.1.3:8080
Ejecutar Servidor :
Simplemente ejecute el comando :
ant run-server
Se puede apreciar que esta version esta en desarrollo, el avatar es una tetera y algunas cosas todavia no funcionan como deberia ser, pero es mejor cacharriarle a esta version que saldra en Enero de 2009
Despues de compilar la version 0.4 de Wonderland en Ubuntu 8.10, probaremos compilando la version 0.5 la cual esta en desarrollo y no esta en estado de produccion por lo cual todavia no cuenta con versiones binarias.
Crear un directorio para descargar el software
mkdir wonderland0.5
cd wonderland0.5
Descargar fuentes, cambiar <usuario> por el nombre de usuario en java.net :
svn checkout https://wonderland.dev.java.net/svn/wonderland/tags/0.5-dev1 wonderland --username <usuario>
Compilar :
Cambiar al directorio de trabajo :
cd wonderland
Ejecutar el comando ant :
ant
Configuracion :
Crear el archivo my.run.properties
vi my.run.properties
Adicionar las propiedades del url y direccion del servidor :
wonderland.web.server.url=http://192.168.1.3:8080
voicebridge.local.hostAddress=192.168.1.3
Ejecutar Servidor :
Simplemente ejecute el comando :
ant run-server
Nota :
Tengo algunos problemas al lanzar el cliente desde Java Web Start pues no puede cargar los recursos, como tambien en el servidor de voz que no toma la direccion, ya trate cambiando las propiedades desde el administrador web pero no funciona.
En una entrada anterior se describio como instalar Wonderland utilizando la distribucion binaria, ahora realizaremos la compilacion de el codigo fuente.
Crear un directorio para descargar el software
mkdir wonderland
cd wonderland
Autenticarse con el servidor de versiones,
cambiar <usuario> por el nombre de usuario de java.net :
cvs -d :pserver:<usuario>@cvs.dev.java.net:/cvs login
Descarga los fuentes, esto puede tomar varios minutos :
cvs -d :pserver:<username>@cvs.dev.java.net:/cvs checkout lg3d-wonderland
Descargar Modulos :
Descargar modulos adicionales,
por el nombre de usuario de java.net :
svn checkout https://wonderland-modules.dev.java.net/svn/wonderland-modules/trunk wonderland-modules --username <usuario>
Configuracion :
Cambiar al directorio principal :
cd lg3d-wonderland
Editar el archivo build.properties y modificar las propiedades que considere necesarias :
vi build.properties
Ejecutar el servidor para compartir aplicaciones X11 (Solo en Solaris o Linux ) :
./src/scripts/runsmc
Ejecutar el cliente :
ant run
Ejecutar como Servidor :
Para ejecutar todos los servidores sin necesidad de abrir varias consolas ejecute
./src/scripts/server.sh
Esto crea los archivos de log :
wonderland-bridge.log
wonderland-sgs.log
wonderland-smc.log
Nota :
Al tratar de probar el cliente en la transmision de audio este no encontraba los archivos .au, los cuales tampoco pude encontrar en los directorios de fuentes, asi que esta caracteristica no me llego a funcionar.