Ultimamente he implementado algunos conmutadores de Voz sobre IP para casetas telefonicas, para ello he usado AsterBilling el cuál me ha parecido un software bastante bueno para el manejo de distribuidores de telefonía, casetas y cabinas telefonicas, funciona mediante AMI y a traves de una aplicacion web para poder llevar el control de casetas telefonicas, tarifas por tipos de prefijos, reportes, creditos prepagos y postpagos, entre otras cosas.
Lo unico que le faltaba era una versión en español, por lo que me meti a editar los archivos de lenguajes y adaptarlos a Mexico. Por ello pongo aquí en este post el archivo en español para AsterBilling esperando pueda ser util para alguien más en la implementación de Asterisk como solución de Casetas Telefónicas, entre otras cosas.
El archivo puede ser descargado de http://files.mexrom.net
entrar como:
login:invitado
Password:invitado:
Y entrar al directorio es_MX-AsterBilling, descargar el archivo es_MX.tar
Este archivo descompactarlo en
/var/www/astercc/asterbilling/includes/language
Despues solo editar los archivos de
/var/www/astercc/asterbilling/login.php
/var/www/astercc/asterbilling/manager_login.php
Y agregar una opcion en el campo select para español
Con esto ya se tendria en español AsterBilling y listo para empezar a funcionar en casetas telefonicas usando Asterisk y aprovechando los servicios de Telefonia IP.
Hace unos días me pidieron un conmutador de voz sobre IP con más de 150 extensiones VoIP, por lo que me puse a ver como insertar 200 extensiones configuradas en el conmutador mediante un script de forma automática siguiendo un patrón recursivo ya que no había prácticamente cambios en las extensiones más que el número de la extensión, password y correo de voz, de tal forma que si hacía esto a mano me iba a llevar algunos minutos con posibles errores de captura humanos.
Lo primero que se me ocurrió es generar un script que agregara las cuentas SIP a /etc/asterisk/sip_custom.conf y las extensiones en /etc/asterisk/extensions_custom.conf, el detalle que habría es que FreePBX no podría manejarlas desde el módulo de extensions, ni tampoco flash panel podría operarlas, por lo que se me ocurrió insertar la información de las cuentas en la base de datos de freepbx y luego dejar que freepbx leyera la información de la base de datos para que generara los archivos correspondientes.
Básicamente hay 3 tablas de la base de datos de FreePBX que se relacionan con las cuentas SIP, extensiones y correos de voz.
users
sip
devices
La tabla users se refiere a la configuración de la extensión del usuario tal como grabación de llamadas, tiempo de espera para mandar a correo de voz cuándo le marquen, nombre SIP, correo de voz, etc..
La tabla SIP tiene la información detallada de la cuenta SIP configurada, tal como cuenta, contraseña, codec permitidos y no permitidos, contexto, dtmfmode, etc..
La tabla devices se refiere al tipo de dispotivo si es SIP, IAX, etc.
Entonces por ejemplo si quisiera agregar manualmente la extensión 109 tendría que ejecutar las siguientes consultas sql.
Obviamente la tabla sip se le puede insertar toda la información en una sola consulta en vez de ir haciéndola una por una como la muestra, pero para fines de mostrar el proceso lo vale.
Entonces en el script solo se requirió generar consultas similares a las anteriores al vuelo, indicándole solo de que rango a que rango se configurarían las extensiones.
Obviamente para algo simple como agregar n extensiones no es complicado, pero cuándo se requiere una configuración específica por extensión también podría usarse un script pero sería algo más complejo.
Lo interesante en la tabla sip son los keywords, estos no deben tener espacios en blanco que si no al momento de decirle a freepbx que genere los archivos de configuración de asterisk, tomaría solo los keywords correctos, pero al momento de hacer pruebas no funcionarían las extensiones, por eso es importante que los keywords de la tabla sip no tengan espacios en blanco al igual que los valores dónde no lo requieran.
Probando el uso de AMI (Asterisk Manager Interface) para controlar de forma externa acciones, eventos y comandos de Asterisk desde algún script, me he metido a estudiar esta tecnología interesante que potencializa el uso de Asterisk y permite crear diversas aplicaciones externas e integrarlas a aplicaciones terceras, tales como CRM, ERPs, Encuestas, etc.
Como demo he intentado hacer un script en php que buscará información de una extensión dada, si está estuviera llamando, entonces que buscara información del canal, para luego mandar a colgar esa extensión.
El código que hice para poder hacer este ejemplo es el siguiente:
/*
Script creado por Filein Rommel Leon(aka Phylevn)
Licencia GPL
Script de demostración del uso de AMI con PHP, este script cuelga una extensión si estuviera en uso, ocupada ó no disponible, como demo agrego la opción de que si una extensión está en una llamada(uso) para que se pueda hacer la prueba
0=> Disponible
1=>Use: Si una extension esta llamando
2=>Busy: Si una extensión esta ocupada
4=>Unavailable: Si una extensión está ocupada
En este caso comparo si las extensiones tienen el status 1,2 ó 4, entonces obtengo el canal correspondiente a la extensión y luego la cuelgo.
Para probar este script hacer una llamada de la extensión a colgar a otra extensión y correr el script paraver su funcionamiento. */ $amiHost="localhost"; //servidor de AMI $amiUser="asterisk"; //login AMI $amiSecret="4st3r1sk";//password AMI $amiExten="102"; $amiChannel="SIP/$amiExten"; //extension a buscar para colgar $amiContext="from-internal";//contexto $getTextSearched=0;
$amiStatusExt=0;
//Estados de una extension $_extStatus=array(-1=>"Extension not found",0=>"Idle",1=>"Use",2=>"Busy",4=>"Unavailable",8=>"Ringing",16=>"On Hold");
//Nos validamos dentro de AMI fputs($oSocket,"Action: login\r\n"); fputs($oSocket,"Events: off\r\n"); fputs($oSocket,"Username: $amiUser\r\n"); fputs($oSocket,"Secret: $amiSecret\r\n\r\n");
//Obtenemos el status de la extension deseada fputs($oSocket,"Action: ExtensionState\r\n"); fputs($oSocket,"exten: $exten\r\n"); fputs($oSocket,"context: default\r\n"); fputs($oSocket,"actionid: 1\r\n\r\n"); $echo="ok"; while($echo!=""){ if(strstr($echo,"Status:")!=""){ $amiStatusExt=ereg_replace("[^0-9]","",$echo); echo"Exten : ".$_extStatus[$amiStatusExt]."\n"; $echo=""; }else{ //echo ":::".$echo; $echo=fgets($oSocket); } }
//Obtiene la información de canales y buscamos informacion sobre nuestro canal if($amiStatusExt==2 or $amiStatusExt==4 or $amiStatusExt==1){ fputs($oSocket,"Action: command\r\n"); fputs($oSocket,"command: show channels\r\n\r\n"); echo$echo="getting SIP Channels\n"; while($echo!="" or $echo=="--END COMMAND--"){ if(strstr($echo,$amiChannel)!=""){ $_values=split("[\s]+|[\t]",$echo); $_values[0]=ereg_replace("[^(SIP/)0-9a-zA-Z-]","",$_values[0]); echo$_values[0]."\n"; $echo=""; }else{ //echo ":::".$echo; $echo=fgets($oSocket); } } }
//Si se encontró nuestro canal entonces lo colgamos if($_values[0]!=""){ fputs($oSocket,"Action: Hangup\r\n"); fputs($oSocket,"channel: $_values[0]\r\n\r\n"); echo"hanging channel: $_values[0]\r\n"; }
//Salismo de AMI fputs($oSocket,"Action: Logoff\r\n\r\n"); sleep(2);
solo basta correr el script de alguna forma como esta:
php hangup.php
Antes solo hay que checar la configuración de AMI en /etc/asterisk/manager.conf ó /etc/asterisk/manager_custom.conf si están usando freepbx.
Entender el protocolo de AMI no es tan complicado, pero lo interesante es la potencia que le brinda a Asterisk para desarrollos más avanzados, este código está hecho a pelo precisamente para entender como se interactua con AMI, aunque ya hay librerías que disminuyen la chamba tal como asterisk-perl ó por ahí el nuevo killer app de Ruby creo que se llama AdHearsion o algo asi que luce muy interesante para hacer este tipo de cosas..
Para conocer un poco más sobre la tecnología de Asterisk Manager Interface entrar a la siguiente URL: http://www.voipinfo.org/wiki/view/Asterisk+manager+API
Has de cuenta que es como la red inalámbrica que tienes en tú casa u oficina, con aquellos routers de infinitum tienes WiFI, con los CPE tendrías WiMax, solo que WiMax es una red inalámbrica que puede tener hasta decenas de kilómetros de alcance al igual que varias decenas de Megabits de ancho de banda, y si al igual que el WiFi también podría no tener costo usar la red.
¿ Porqué no tendría costo ?
Porqué al igual que el WiFi, en WiMax hay frecuencias libres que no son licenciadas, lo que significa que no requieres de permisos de la COFETEL aquí en México para poder instalarlas en tú casa, oficina, pueblo, ciudad ó región.
¿Es caro WiMax?
Implementar WiMax en una ciudad no lo es, requieres de un CPE Base Multipunto que permite radiar la señal de WiMax en toda la ciudad, dependiendo de la potencia del radio será la cobertura de la señal en algunos casos puede sobrepasar los 50 Km, requieres también PC Cards(para notebooks) WiMax para poder recibir la señal desde cualquier punto dónde andes, como si fuera un WiFi solo que en grande, obviamente los CPE Base y CPE Clientes aún no están a precios de risa como los router Linksys o 2Wire, pero para proyectos empresariales el precio ya es asequible y la inversión vale mucho la pena en comparación de rentar una red 3G.
¿ Que aplicaciones se le podrían dar a WiMax ?
Imagínate que desde tú notebook ó PDA pudieras ver las cámaras que tuvieras en tú casa en tiempo real y con alta definición sin pagar ninguna renta o uso de ancho de banda, imagina tener conversaciones de voz con tús amigos, tener una videoconferencia ó transmitir a todos tús contactos un videostream de lo que estás viendo, imagina que desde tú PDA pudieras controlas las luces de tu casa, apagar ó prender dispositivos eléctricos mediante una tecnología de domótica como X10, si eres dueño de una empresa, imagina que en cualquier parte de la calle estes haciendo ventas, tomando pedidos, consultando información de tu base de datos, realizando un inventario, estes llevando tú extensión telefónica vía voz sobre IP con el nuevo dispositivo de VoIP-WiMax y tener lo que es realmente una oficina virtual móvil..
¿ Porqué ayudaría WiMax a México ?
Porqué podría ser una forma económica y rápida de poder llevar las telecomunicaciones a los pueblos marginados de nuestro país y acercar la tecnología a los niños de los pueblos de México. Porqué a las empresas les permitiría llevar sus negocio hasta la puerta del cliente y así generar más movimientos y tener lo que realmente sería "movilidad empresarial", porqué aumentaría la innovación de los jóvenes al tener el conocimiento más cerca.
Definitivamente las aplicaciones de WiMax pueden ser muchas.
¿ Porqué WiMax aun no sé usa en México ?
Por desconocimiento de la tecnología.. también porqué la COFETEL aún no termina de revisar el protocolo, de definir que dispositivos pudieran ser permitidos para usarse en la frecuencia libre, entre otras cosas.. pero definitivamente por el costo No, pues un CPE Base está alrededor de los 1,500 dlls, y una PC Card alrededor de los 200 dlls.. en un inicio quizá sea algo caro pero se abaratarían sin duda estos costos cuándo el uso sea masivo, recuerdo hace unos 10 años cuándo el costo de un Access Point era de $ 1,000.00 dlls el más barato ahora los puedes conseguir hasta en $ 20.00 dólares.
¿ Ya hay productos WiMax disponibles en México ?
Si ya hay varios distribuidores de dispositivos WiMax como Canopy Wireless, MotoWi4, RedLine, solo basta que hagas una búsqueda en google sobre distribuidores de esta tecnología.
Festival es un software Text to Speech (texto a voz) que es un desarrollo basado en la filosofia del Software Libre impulsado por la Universidad de Edimburgo, este desarrollo permite tener parlantes en diversos para poder pronunciar textos en otros idiomas.. Asterisk el proyecto open source de conmutador de telefonía de voz sobre IP(VoIP) permite hacer aplicaciones de Voz sobre IP con una tecnología que incorpora llamada AGI(Asterisk Gateway Interface) con lo cuál es posible hacer aplicaciones de texto a voz, lo que permite a alguien que llama al conmutador de telefonía de voz sobre ip darles respuestas automatizadas mediante un parlante implementado con Festival y Asterisk.
Por default Festival viene con un parlante en Ingles, pero para los que hablamos idioma en español es muy incómodo escuchar a un parlante con acento ingles hablar palabras en español, por ello pongo un corto y rápido tutorial de como modificar esta parte para cambiar el parlante en español.
Si aun no tienes instalado Festival puedes echarle un ojo a este post para configurar e instalar Festival.. http://phylevn.binniza.com/index.php/blog/show/_Como_configurar_Festival_en_Asterisk_.html
Ya que se tenga instalado Festival y configurado..
Ir a este sitio http://forja.guadalinex.org/repositorio/frs/?group_id=21&release_id=110
Y bajar las siguientes voces :
http://forja.guadalinex.org/repositorio/frs/download.php/153/festvox-palpc16k_1.0-1_all.deb
Estas voces son de Silvia Y Pedro.. voces implementadas en Festival por la Junta de Andalucía para personalizar aun más las voces que vienen preinstaladas en Festival ya que se escuchan más robotizadas y con estas implementaciones se trató de que fueran menos robotizadas y aceptables.
Ya que descarguemos los archivos los instalamos con:
Voz de Silvia:
sudo dpkg -i festvox-sflpc16k_1.0-1_all.deb
Voz de Pedro:
sudo dpkg -i festvox-palpc16k_1.0-1_all.deb
Ahora editaremos el archivo /etc/festival.scm
Buscaremos una línea como esta:
(set! voice_default 'voice_el_diphone)
Y la cambiaremos por la siguiente para voz de Silvia:
(set! voice_default 'voice_JuntaDeAndalucia_es_sf_diphone)
Para la voz de Pedro sería:
(set! voice_default 'voice_JuntaDeAndalucia_es_pa_diphone)
Despues de editar el archivo, guardarlo.. y solo bastaría reiniciar festival para oirlo funcionar con Asterisk
sudo /etc/init.d/festival restart
Ahora solo echarle un ojo a la liga del tutorial que puse arriba para probar la nueva voz configurada con Festival..
Tutorial de como instalar la última versión de Asterisk PBX 1.4.23.1 y el administrador web FreePBX 2.5.1 para crear un conmutador de Voz sobre IP Open Source con soporte de IVRs, DISA, Fax Virtual, Grupos de Marcación, Marcación por Horarios, Troncales VoIP, DAHDI, Correos de Voz, Grabación de llamadas, Ruteo de llamadas entrantes y salientes entre otras muchas características de este gran magnífico conmutador de VoIP Asterisk y la mancuerna perfecta FreePBX para su administración desde una aplicación web.
#Procedimiento para Instalar Asterisk VoIP en Ubuntu Server # Servidor: Ubuntu Server 8.04 TLS # Conmutador de VoIP : Asterisk asterisk-1.4.23.1 # Admninistrador Web : FreePBX 2.5.1 #Cambiamos el password de root despues de instalar Ubuntu Server
~$ sudopasswd root #Actualizamos el repositorio de Ubuntu
~$ sudoapt-get update #Lo primero que instalamos es un servidor SSH para que podamos conectarnos desde cualquier parte
~$ sudoapt-getinstall--yes openssh-server ssh openssl #Creamos un directorio dónde descargaremos los archivos necesarios para la instalación
~$ mkdir asterisk
~$ cd asterisk # Instalar librerias para acceso via SSH sudoapt-getinstall--yes openssl libssl-dev ssh # librerías de compilación de software, sirve para compilar Asterisk sudoapt-getinstall--yesgccmakeg++ # verificar que versiones de kernel tengo instalado en el servidor uname-a # el comando me regresa algo como esto
Linux CloudVooxServer 2.6.27-7-generic #1 SMP Fri Oct 24 06:42:44 UTC 2008 i686 GNU/Linux
# Buscar las fuentes del kernel con las versiones instaladas en el server 2.6.17 apt-cache search 2.6.27-7-generic # Instalamos los encabezados para el kernel 2.6.17 especificos para el procesador (linux-headers-2.6.17-10-generic , linux-source-2.6.17 , linux-image-2.6.17-10-generic ) sudoapt-getinstall--yes linux-headers-2.6.27-7-generic linux-source-2.6.27 linux-image-2.6.27-7-generic # Instalamos algunas utilerias de linux, Lynx es un navegador web de texto, nmap es sniffer depuertos, emacs es un editor de textos potente aunque puedes usar editor instalado ya en Ubuntu y sencillo de usar sudoapt-getinstall--yesnmaplynx emacs21 # Festival son paquetes para el manejo de texto a voz en diversos Idiomas, y funcionará con asterisk para hacer aplicaciones de texto a voz sudoapt-getinstall--yes festival festival-dev # Librerias para poder usar la consola de asterisk sudoapt-getinstall--yes ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev # Librerias de compresion para Asterisk sudoapt-getinstall--yes zlib1g zlib1g-dev # librerias requeridas por el servicio web de FreePBX sudoapt-getinstall--yesbison bison-doc libxml2 libxml2-dev libtiff4 libtiff4-dev # librerias requeridas por el servicio web de FreePBX sudoapt-getinstall--yes libasound2 libgsm1 libltdl7 libpq5 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev mpg123 # En caso que se vaya a usar una tarjeta sangoma, se requiere instalar flex para que funcione el driver wanpipe sudoapt-getinstall--yesflex # Librerias requeridas por Asterisk para el manejo de ayuda y de extraccion de archivos del CVS sudoapt-getinstall--yes subversion curl doxygen # librerias requeridas por el servicio web de FreePBX sudoapt-getinstall--yes libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl #Si desean incorporar envios de SMS desde Asterisk sudoapt-getinstall libgnokii3 libgnokii3-dev gnokii gnokii-common gnokii-cli gnokii-smsd gnokii-smsd-mysq # Servidor web para FreePBX sudoapt-getinstall--yes apache2 # Librerias requeridas por el servicio web de FreePBX sudoapt-getinstall--yes php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl ph5-gd php-db # Base de datos para el CDR y FreePBX sudoapt-getinstall--yes mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev
****
2da Parte.. Compilacion e Instalacion de Asterisk 1.4 + FreePBX
** # creamos un repositorio local para almacenar los archivos fuente de asterisk mkdir ~/asterisk cd asterisk # Comenzamos a obtener los archivos y los almacenamos en el directorio creado requeridos para Asterisk # Obtenemos los archivos para Asterisk 1.4, ir al directorio http://asterisk.org/downloads y descargar los archivos de la version 1.4 #asterisk-perl wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz #sox wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.2.0.tar.gz #lame wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz #freepbx wget http://mirror.freepbx.org/freepbx-2.5.1.tar.gz #asterisk wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.23.1.tar.gz #sounds wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz && wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz && wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-gsm.tar.gz #DAHDI wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz && wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz #addons wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz #libpri wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz #spandsp wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.3.tgz #obtenemos func_devstate.c wget http://svn.digium.com/view/asterisk/trunk/funcs/func_devstate.c?revision=81784&view=co&pathrev=81784 mv http://svn.digium.com/view/asterisk/trunk/funcs/func_devstate.c?revision=81784&view=co&pathrev=81784 func_devstate.c ###**Descarga conjunta**** wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz && wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.2.0.tar.gz && wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz && wget http://mirror.freepbx.org/freepbx-2.5.1.tar.gz && wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.23.1.tar.gz && wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz && wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz && wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-gsm.tar.gz && wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz && wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz && wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz && wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz && wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.3.tgz ###**Descarga conjunta****
# Instalamos el manipulador de Sonidos para Asterisk cd/usr/src/&& sudotar-xvzf ~/asterisk/lame-398-2.tar.gz && cd lame-398-2&& sudo ./configure --prefix=/usr --sysconfdir=/etc && sudomake&&sudomakeinstall # Instalamos SOX, utileria para manejar los archivos de sonido en Asterisk cd/usr/src/&& sudotar-xzvf ~/asterisk/sox-14.2.0.tar.gz && cd sox-14.2.0 && sudo ./configure && sudomake&&sudomakeinstall # Instalamos el gateway entre Asterisk y FreePBX cd/usr/src/&& sudotar-xzvf ~/asterisk/asterisk-perl-0.10.tar.gz && cd asterisk-perl-0.10&& sudoperl Makefile.PL && sudomake all && sudomakeinstall
# Instalamos SpanDSP/softfax y parchamos asterisk cd/usr/src/&& sudotar-xzvf/home/cloudvoox/asterisk/spandsp-0.0.3.tgz && cd spandsp-0.0.3 && sudo ./configure && sudomake&&sudomakeinstall
#Agregar el directorio /usr/local/lib/ al LD_LIBRARY_PATH y también al archivo /etc/ld.so.conf y despues correr ldconfig sudo emacs /etc/ld.so.conf
include /usr/local/lib/ sudo ldconfig # Instalamos FreeBX el Administrador Web de Asterisk, aqui podemos tambien instalar la version 2.2.1 en vez de la 2.1.1 cd/usr/src && sudotar-xzvf ~/asterisk/freepbx-2.5.1.tar.gz && cd freepbx-2.5.1/ # Comenzamos a instalar la Base de Datos para el Administrador Web FreePBX y para los CDR. # Iniciacilizacion de la implementacion de Bases de Datos en Mysql para Asterisk # Accedemos a MySQL si no han configurado su 4st3r1sk de root mysql, solo presionar Enter
mysql -u root -p
ENTER
show databases;
use mysql ;
show tables; select* from user; # Creamos las bases de datos para FreePBX y para el CDR, cambiamos los 4st3r1sk de root y creamos un usuario para Asterisk
update user set 4st3r1sk = 4st3r1sk("4st3r1sk") where user = "root";
create database asteriskcdrdb;
create database asterisk;
grant all privileges on asteriskcdrdb.* to asterisk@localhost identified by "4st3r1sk";
grant all privileges on asterisk.* to asterisk@localhost identified by "4st3r1sk";
flush privileges; exit; # Pasamos el esquema y la informacion de los scripts de bases de datos por default de FreePBX
mysql -u asterisk -p4st3r1sk asterisk </usr/src/freepbx-2.5.1/SQL/newinstall.sql &&
mysql -u asterisk -p4st3r1sk asteriskcdrdb </usr/src/freepbx-2.5.1/SQL/cdr_mysql_table.sql # Termina la implementacion de Bases de Datos en Mysql para Asterisk # creacion del usuario y grupo que manejara los procesos de asterisk sudo groupadd asterisk sudo useradd -c"Asterisk PBX"-d/var/lib/asterisk -g asterisk asterisk sudomkdir/var/run/asterisk sudochown asterisk:asterisk /var/run/asterisk # Cambiamo el usuario propietario de Apache ,para guardar presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c sudo emacs /etc/group
www-data:x:33:asterisk # editamos el archivo de apache sudo emacs /etc/apache2/envvars #en emacs para buscar, presionar Ctrl+s y cambiar de www-data a asterisk exportAPACHE_RUN_USER=www-data exportAPACHE_RUN_GROUP=www-data # por exportAPACHE_RUN_USER=asterisk exportAPACHE_RUN_GROUP=asterisk # guardamos para guardar es presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c # cambiamos los permisos para el directorio de sesiones de PHP sudochown-R asterisk /var/lib/php5 # edicion de php para aumentar el tama?o de archivos que se suben al servidor web sudo emacs /etc/php5/apache2/php.ini
default_charset = "utf8"
# creamos un directorio para la instalacion de los paquetes de Asterisk sudomkdir/usr/src/asterisk cd/usr/src/asterisk # libreria o drivers para tarjetas line PRI en caso de que se usen tarjetas de ese tipo sudotar-xzvf ~/asterisk/libpri-1.4-current.tar.gz # librerias o drivers para tarjetas ZAPTEL en caso de que se usen tarjetas digium sudotar-xzvf ~/asterisk/dahdi-linux-current.tar.gz && ~/asterisk/dahdi-tools-current.tar.gz # El PBX Asterisk sudotar-xzvf ~/asterisk/asterisk-1.4.23.1.tar.gz # utilerias de asterisk(cdr, rep music on hold. etc) sudotar-xzvf ~/asterisk/asterisk-addons-1.4-current.tar.gz # archivos de IVR por default sudomkdir sounds && cd sounds && sudotar-xzvf ~/asterisk/asterisk-core-sounds-en-gsm-current.tar.gz && sudotar-xzvf ~/asterisk/asterisk-moh-freeplay-gsm.tar.gz && sudotar-xzvf ~/asterisk/asterisk-extra-sounds-en-gsm-current.tar.gz # Iniciamos la compilacion de las librerias PRI (aunque no se usaran) cd/usr/src/asterisk && cd/usr/src/asterisk/libpri-1.4.9/&& sudomake&sudomakeinstall # Compilamos las librerias de DAHDI cd/usr/src/asterisk/dahdi-linux-2.1.0.3/&& sudomake clean && sudomake&&sudomakeinstall
cd/usr/src/asterisk/dahdi-tools-2.1.0.2/&&
./configure && sudomake&& sudomakeinstall&& sudomake config # compilacion de Asterisk cd/usr/src/asterisk/asterisk-1.4.23.1 && sudocp ~/asterisk/func_devstate.c apps/func_devstate.c && sudomake clean && sudo ./configure && sudomake&&sudomakeinstall&& sudomake samples &&sudomake progdocs # compilacion de Utilerias de Asterisk cd/usr/src/asterisk/asterisk-addons-1.4.7 && sudo ./configure && sudomake&&sudomakeinstall&& sudomake samples # reiniciamos el servidor web apache sudo/etc/init.d/apache2 restart # creamos directorios temporales para asterisk sudomkdir/var/lib/asterisk/tmp && sudochown-R asterisk:asterisk /var/lib/asterisk/tmp # Editamos el archivo de configuraci?n de Asterisk sudo emacs /etc/asterisk/asterisk.conf
# Y editamos la siguiente línea para que quede de la siguiente forma
ASTRUNDIR =>/var/run/asterisk RUNASTERISK=/var/run/asterisk # continuamos con la instalacion de FreePBX cd/usr/src/freepbx-2.5.1/ sudo pear install db sudo pear install mdb2 #en caso de que no se pueda hacer la instalación automática de pear-db, descargar el paquete e instalarlo manualmente sudo pear install db.17.0.0.tgz #wget http://download.pear.php.net/package/DB-1.7.13.tgz
sudomkdir/var/www/asterisk/&& sudomkdir/var/www/asterisk/cgi-bin && sudochown-R asterisk:asterisk /var/www/asterisk # Ejecutamos el script de asterisk antes de instalar freepbx sudo asterisk start #Obtenemos la IP del servidor ifconfig | grep"inet" #Ejecutamos el script de instalacion y configuracion de asterisk, si existe una configuracion previa de FreePBX, eliminar el archivo en/etc/amportal.conf sudo ./install_amp #La instalacion de Asterisk pedira los siguientes valores
Enter your USERNAME to connect to the 'asterisk' database:
asterisk
Enter your 4st3r1sk to connect to the 'asterisk' database:
4st3r1sk
Enter the hostname of the 'asterisk' database:
localhost
Enter a USERNAME to connect to the Asterisk Manager interface:
asterisk
Enter a 4st3r1sk to connect to the Asterisk Manager interface:
4st3r1sk
Enter the path to use for your AMP web root: /var/www/asterisk
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
192.168.10.129
Enter a 4st3r1sk to perform call transfers with the Flash Operator Panel:
4st3r1sk
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
extensions
Enter directory inwhich to store AMP executable scripts: /var/lib/asterisk/bin
Enter directory inwhich to store super-user scripts: /usr/sbin /etc/amportal.conf writtenAssuming new install, --install-moh added to command line
OK
Reading /etc/amportal.conf..OK
Checking for/etc/asterisk/asterisk.conf..OK
Reading /etc/asterisk/asterisk.conf..OK
Using asterisk as PBX Engine
Checking for Asterisk version..Checking for selinux..OK
Connecting to database..OK
Checking current version of AMP..2.3.0beta1
Installing new FreePBX files..OK (328 files copied, 0 skipped)
Configuring installfor your environment..OK
Setting permissions on files..OK
Checking for upgrades..0 found
Checking framework.. already at 2.3.0beta1.0
Checking core.. already at 2.3.0beta1.2
Generating AMP configs..
Generating Configurations.conf, (if Asterisk is not running, you will get an error
In case of error, start Asterisk and hit the red bar in the GUI to generate the Configuraions.conf files
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Running module install.php and install.sql scripts
Checking for/etc/amportal.conf..OK
Reading /etc/amportal.conf..OK
Reading /etc/asterisk/asterisk.conf..OK
Connecting to database..OK
Connecting to Asterisk manager interface..Mon, 02 Jul 2007 02:02:25-0500 - Unable to connect to manager 127.0.0.1:5038(111): Connection refused
FAILED [FATAL] Cannot connect to manager interface
Generating AMP configs..OK
Restarting Flash Operator Panel..op_server.pl: no process killed
OK
Please update your modules and reload Asterisk by visiting http://192.168.1.4/asterisk/ #*** #* Note: It's possible that if you click the red 'Update Now' bar BEFORE * #* updating your modules, your machine will start dropping calls. Ensure * #* that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long * #* as this is observed, your machine will be fully functional whilst the * #* upgrade is in progress. * #*** #Probablemente la primera vez envie un error como este [FATAL] Cannot connect to manager interface,debido que aun no se ha ejecutado Asterisk para que escuche en el pueto de AMI # si marcara otro error ./installamp revisar usuarios de base de datos, librerías de php y de mysql, reiniciar apache y peardb, php-db # en caso de que tuviera un error al ejecutar FreePBX para reconfigurarlo previamente elimine el archivo de configuracion en /etc/amportal.conf #Despues de que se haya instalado freepbx, creamos un enlace dinámico en el directorio root del servidor web, esto para que se pueda ver el panel desde el menú de freepbx en nuetro conmutador cd/var/www sudoln-s/var/www/asterisk/panel /var/www/panel sudoln-s/var/www/asterisk/recordings /var/www/recordings sudochown asterisk.asterisk /var/www/ # creamos la carpeta donde se almacenaran los sonidos del IVR y configuramos los permisos para el directorio de Asterisk sudomkdir/var/lib/asterisk/sounds/custom && sudochown-R asterisk:asterisk /var/lib/asterisk/
#Creamos el directorio para almacenar los archivos grabados sudomkdir/var/lib/asterisk/recordings sudochown-R asterisk.asterisk /var/lib/asterisk/recordings
# Editamos el siguiente archivo /etc/amportal y cambiamos la siguiente linea AUTHTYPE=none a database, esto para que pida autenticación de administración de usuarios sudo emacs /etc/amportal.conf AUTHTYPE=database
#guardamos y ejecutamos el siguiente comando sudo/usr/src/freepbx-2.5.1/apply_conf.sh # Si al ejecutar amportal enviara un error parecido "error: Bad fd number", entonces editamos el archivo /usr/sbin/safe_asterisk y cambiamos la primera linea de /bin/sh a /bin/bash # Si al ejecutar amportal enviara un error parecido "/op_server.pl: not found", entonces editamos el archivo /var/www/asterisk/panel/safe_opserver ó /var/www/asterisk/safe_opserver y cambiamos la primera linea de #!/usr/bin/env sh a #!/usr/bin/env bash #Editamos el siguiente archivo y modificamos la siguiente línea sudo emacs /etc/default/asterisk RUNASTERISK=yes
# ejecutamos amportal sudo amportal stop sudo amportal start # verificamos que efectivamente se haya ejecutado correctamente y deberiamos ver algo parecido ps aux
asterisk 23800.00.13852724 pts/1 S 16:53 0:00 /bin/bash/usr/sbin/safe_asterisk -U asterisk -G asterisk
asterisk 23870.01.8193768388 pts/1 Sl 16:53 0:00 /usr/sbin/asterisk -f-U asterisk -G asterisk -vvvg-c
asterisk 24190.00.11756500 pts/1 S 16:53 0:00 sh/var/www/asterisk/panel/safe_opserver
asterisk 24200.11.8110768356 pts/1 S 16:53 0:00 /usr/bin/perl-w/var/www/asterisk/panel/op_server.pl # Abrir en un navegador de preferencia Firefox la direccion del servidor Asterisk por ejemplo que el servidor corra en una IP 192.168.1.4
http://192.168.1.76/asterisk/ #Introducimos el login y password (4st3r1sk) configurado:
asterisk
4st3r1sk #Ahora tenemos habilitado El conmutador de Voz Sobre IP Asterisk #Y el administrador Web de Asterisk FreePBX. #Descargar modulos de administracion de Asterisk.
#***Instalando voces en español*****# cd ~/asterisk && sudowget http://www.voipnovatos.es/voces/voipnovatos-core-sounds-es-gsm-1.4.tar.gz && sudowget http://www.voipnovatos.es/voces/voipnovatos-extra-sounds-es-gsm-1.4.tar.gz && cd/var/lib/asterisk/sounds/&& sudomkdir es && cd es && sudotar-xzvf ~/asterisk/voipnovatos-core-sounds-es-gsm-1.4.tar.gz && sudotar-xzvf ~/asterisk/voipnovatos-extra-sounds-es-gsm-1.4.tar.gz && mv es/* . && rm-rf es && mv digits/es/* digits && mv dictate/es/* dictate && mv phonetic/es/* phonetic && mv letters/es/* letters && mv followme/es/* followme && mv silence/es/* silence #***Instalando voces en español*******#
SJPhone desarrollado por la empresa SJ Labs fué uno de los primeros Softphones gratuitos que salieron hace algunos años, estos softphones son compatibles con el protocolo SIP por lo que no hay problemas para usarlos con Asterisk.
Los Softphones lo que permites es hacer llamadas vía VoIP, por lo que desde una página web es posible llamar a un teléfono de casa, a un celular ó a otro teléfono IP.
Ahora me encuentro con que SJLabs saco hace tiempo un Softphone compatible con Firefox aunque este Softphone solo funciona para versiones 2.0.0.X y anteriores de Firefox pero no dudo que pronto haya una versión FireFox 3.0, lo interesante de este Softphone es que es posible tener un Telefono IP desde nuestro navegador, por lo que permitiría a diversos usuarios remotos instalarlo sin tantas pegas en el navegador.
Para tenerlo funcionando solo basta instalar la extensión firefox y se puede hacer desde la siguiente URL: https://addons.mozilla.org/es-ES/firefox/addon/2589
Acabo de probar el set de voces que la empresa Nucleum liberó para Asterisk, un detallazo de Juán Carlos Huerta y la empresa para la cuál trabaja... Con esto ya es grato escuchar voces en español para asterisk mexicanizados.
Para poder poner Asterisk a español mexicano solo basta descargar el siguiente archivo de la página de Nucleum: http://nucleum.com.mx/extras/asterisk-sounds-1.4-Hombre.tar.gz
De ahí ir al directorio dónde se encuentran los archivos de sonidos de Asterisk
cd /var/lib/asterisk/sounds
Y a continuación solo descomprimir los archivos de sonido
sudo tar -xzvf asterisk-sounds-1.4-Hombre.tar.gz
Esto creará un directorio asterisk-sounds
Lo importante está en asterisk-sounds/sounds/
Ahí se verán los siguientes directorios
dictate digits es letters phonetic
Copiar todos los directorios a /var/lib/asterisk/sounds
Por alguna razón no me funcionó poner los directorios debajo del directorio /var/lib/asterisk/sounds directamente, ya que haciendo esto al configurar el sistema de Asterisk a español los mensajes del IVR si me los manda en español, pero las letras, números y demas me los sigue diciendo en ingles, por lo que tuve que modificar el path original de como vienen en el paquete a la siguiente forma:
Copiando los directorios como vienen en el paquete proveído por Nucleum al directorio sounds quedaŕian de la siguiente manera:
/var/lib/asterisk/sounds/
/var/lib/asterisk/sounds/es
/var/lib/asterisk/sounds/letters/es
/var/lib/asterisk/sounds/phonetic/es
/var/lib/asterisk/sounds/dictate/es
/var/lib/asterisk/sounds/digits/es
El detalle del asterisco cuándo configuro en sip_general_additional.conf la opción de
language=es
Los IVR en español que están bajo el directorio /var/lib/asterisk/sounds/es funcionan, el detalle es que los números, letras y demás me los sigue dando en ingles.
Para esto lo que hice fué mover los directorios siguientes
/var/lib/asterisk/sounds/digits/es => /var/lib/asterisk/sounds/es/digits
Ya con esto mi sistema de Asterisk quedó completamente en español.
Igual y mi configuración estaba mal que no reconoció el path que usa Nucleum, pero ya moviendo los directorios debajo del directorio /var/lib/asterisk/sounds/es ya ahora si todos los IVRs son en español..
Gracias por la contribución..
Hace unos días un cliente me contrató un equipo de voz sobre IP base, la idea fué agregarle un par de números telefónicos con 5 líneas por número, el número telefónico costó 9.00 us dlls por mes y cada línea adicional 8.00 us dlls + 35.00 us dlls de la configuración mensual que cobró el carrier, pero ayer otra persona me contactó para saber cuánto le costaría integrar dentro de mi solución base de Voz sobre IP 25 líneas IP y confiado le comenté el costo por DID + canal adicional y configuración adicional, la sorpresa vino cuándo entré al sitio del carrier y me encuentro con la novedad de que los canales de VoIP adicionales al DID ya subieron de precio un 300% pues ahora están en 24.95 dlls, por lo que habrá que replantear si es negocio tener canales adicionales por DID vía VoIP ó hacerlo de la forma tradicional.
Afortunadamente el precio del DID (No del canal adicional) sigue en el mismo precio, por lo que esto ya es un aventaja más aun aparte que de inicio cada DID soporta 2 canales de VoIP que ya es una ventaja, más aun el soporte del códec G729.
Algunos amigos me han preguntado como publicar su sitio web usando su propio internet y su máquina como servidor de páginas web para publicar su blog, alguna página o hacer sus pininos con esto de la programación web, les he comentado sobre como hacerlo con DynDNS. y por ello público este post para comentar a grandes rasgos como publicar sitios webs usando las IP Públicas Dinámicas que nos proveen el servicio de Prodigy, eGo o algun otro proveedor de internet. Lo básico
Antes hay que comenzar con lo básico saber que es una IP Pública y una IP Privada, pero antes de eso ¿Qué es una IP?
IP significa "Internet Protocol", qué es el mecanismo que usan las computadoras para poder identificarse en internet y en una red local.
Una IP es cómo un número de teléfono por ejemplo, para poder llamar a la casa de mis padres a Oaxaca marco su número telefónico, al igual que para poder marcar a mis conocidos aquí en el D.F. igual marco un número de celular ó fijo el cuál es único y no se repite, igual es una IP es un número con el cuál las computadoras se conectan entre si en internet, solo que también aparte de tener ese número las computadoras también tienen nombres que nos ayudan a recordar de manera más fácil que los números, asi por ejemplo podemos identificar gmail.com, phylevn.binniza.com, mozilla.org, OpenOffice.org de tal forma que es más fácil aprendernos los nombres ó dominios que los números de IP.
Una IP está conformado por 4 números de 8 bits. 8 bits es la representación binaria de un número de 0 hasta 255. Por lo tanto en las ips podemos tener números como:
75.126.179.110 para una ip pública
192.168.1.1 para una ip privada por ejemplo
¿Qué es una IP Pública y que es una IP Privada ? IP Pública
Volviendo al ejemplo de los teléfonos, una IP Pública es una dirección que puede accederse directamente desde cualquier parte de internet, al igual que un número de teléfono puede marcarse desde cualquier casa, ciudad ó pais, entonces podemos entrar a SourceForge por su nombre http://www.sourceforge.net ó por su IP 216.34.181.60. IP Privada
Una IP Privada es una dirección de uso interno en una red local, por ejemplo en un cybercafé, en una oficina, en tú casa, las IP que regularmente usan tús máquinas son IPs privadas. Estas IP no pueden accederse directamente desde internet, usando el ejemplo del teléfono una IP Privada sería como un número de extensión por ejempo el 5055, 1012, etc. las extensiones no pueden marcarse directamente desde otra casa, ciudad ó pais, primero se marca el número y despues la extensión. Por lo que una IP Privada se puede repetir en otras redes locales pero no en la misma, al igual que una extensión no se repite en la misma oficina, pero en otras empresas seguro pueden estar usando la misma numeración de extensiones. ¿Qué es una IP Dinámica?
Las IP Dinámicas pueden ser usadas tanto en IP Públicas como fijas, una IP Dinámica es una dirección que alguien nos asigna automáticamente al conectarnos a una red, esta dirección puede ir cambiando cada vez que nos conectemos a internet, o por ejemplo en el caso de los routers ó modems de Infinitum, Ego o de algún otro proveedor cada vez que lo reiniciemos estaría cambiando de dirección, volviendo al ejemplo de los teléfonos es como si dijéramos que cada que conéctaramos el teléfono a la línea nos cambiara de número telefónico.
Para el caso de una IP Dinámica cambiar de IP constantemente no representa problema a que si cambiáramos de número telefónico todos los días, esto porque a nuestras PC nadie se conecta directamente, pues nosotros somos los que nos conectams a paginas wes, messenger, chat, y otros servicios y al conectarnos abrimos un canal de comunicación.
Pero que pasa si quisiéramos que alguien se conectara directamente a nuestra máquina en algún momento ? entonces si sería un caos eso de que nuestra IP cambiara todos los días, al igual que si alguien quisiera llamarnos y nuestro número cambiara. ¿Como permitir que se conecten a nuestra máquina si tengo una IP Dinámica ?
Supongamos el siguiente caso:
Tenemos un router módem (2Wire) de Infinitum que nos dá la IP Pública189.181.154.37, Para saber qué IP Pública usa tú router entra a http://www.tuip.info, pues cada vez que entras a una página de internet se registra la IP Pública del router a traves del cuál sales a internet, no tú IP Privada.
Ese router lo tenemos en la casa en dónde hay 4 máquinas con las siguientes IP privadas:
Máquina IP Privada
A 192.168.1.90
B 192.168.1.101
C 192.168.1.103
phylevnMobile 192.168.1.176
router 192.168.1.254
Lo que quiero hacer es que desde cualquier parte de internet puedan entrar a una página web que tengo instalada en la máquina de PhylevnMobile.
Si alguien teclea en alguna otra parte de internet directamente en la barra de direcciones de su navegador firefox192.168.1.176 probablemente vea un error, ya que es una IP privada que en este caso uso dentro de mi red local.
Para que alguien pueda acceder a mi página web desde otra parte de internet primero tendría que decirle al router que cuándo alguien pregunte por el puerto 80 lo mande a mi dirección IP, volviendo al ejemplo telefónico para con los números telefónico y las extensiones, para que alguien de fuera pueda entrar a una extensión, entonces el agente externo marca al número telefónico de la empresa y el que redirecciona la llamada es el conmutador, que en este caso análogamente es el caso de un router para con las IP y Puertos. ¿Qué es un puerto ? ¿Porqué el puerto 80?
Las máquinas aparte de tener direcciones IP, tiene puertos, un puerto es la forma de acceder a un servicio de una computadora, por ejemplo para bajar archivos, para poder enviarle un mensaje en el chat, para ver páginas web que hay en la máquina, para poder ver una cámara conectada a la PC, para poder apagar la computadora desde otra máquina, etc., los ejemplos que estoy mencionando coloquialmente se llaman servicios, porque son los que sirve la computadora a otras computadoras.
Entonces el puerto 80 es el puerto estándar para brindar servicios web a otras computadoras, igualmente puede usarse algún otro puerto pero vámonos por la fácil .
Entonces para poder mostrar al mundo mi página web colocada en mi computadora, tengo que decirle al router que cuándo alguien pregunte por el puerto 80 lo mánde a la IP de mi máquina de phylevnMobile que tiene la IP 192.168.1.176.
Para esto usando el más común de los routers los 2Wires de Prodigy Infinitum, bastaría con ir a la dirección IP 192.168.1.254 que es la IP default del servicio de Prodigy para el router.
Seleccionar Bloqueo de Intrusos->Configuración del bloqueo de intrusos
Pedirá un password que es la clave WEP del router.
En la página en dónde dice Seleccionar una computadora, seleccionaremos el nombre de nuestra máquina, en este caso phylevnMobile. -esto no es muy práctico, prefiero otros routers como los que usan el firmware dd-wrt dónde de un mismo paso indico la IP local, el puerto remoto y a que puerto local irá, pero en fin sigamos-
Seleccionamos abajo del listado de aplicaciones de la página la opción que dice : Agregar una nueva aplicación definida por el usuario
Y nos aparecerá una nueva página dónde daremos los siguientes datos:
Nombre de aplicación: Servicio Web local
Protocolo: TCP -Generalmente es TCP salvo algunos casos se usa UDP(VPNs, Streaming, etc) -
Puerto (o intervalo): De: 80 A:80 -Aqui decimos el puerto externo que usaremos, generalmente es el mismo que el interno, a menos que tengamos ya apartado el puerto 80 para otra máquina, si ya se definió un puerto no es válido repetirlo-
Tiempo de espera del protocolo (segundos): 86400
Asignar al puerto de host: 80-Aqui introducimos el puerto que usa internamente nuestro servicio en este caso 80, pero por ejemplo si es un VNC 5900, un FTP 21,un SSH 23, etc.
Tipo de Aplicación: Ninguno
Y para finalizar presionamos el botón que dice Agregar Definición y esperar unos segundos.
Despues de presionar el botón al final de la página se mostrará el servicio agregado:
Protocolo Puerto (o intervalo) Puerto de host Tiempo de espera (seg.)
TCP 80 80 86400
Presionamos el botón atras y volveremos a la página de configuración del sistema de bloqueo de intrusos
Seleccionar Permitir aplicaciones individuales y escogemos del listado Servicio Web Local y presionamos el botón agregar para pasarlo al listado de aplicaciones alojadas.
Presionamos el botón Aceptar y veremos una página como la que sigue:
Configuración actual: Personalizada
Dispositivo Aplicaciones permitidas
PhylevnMobile Servicio Web Local 192.168.1.64
Si la damos ver detalles veremos algo como lo siguiente:
Configuración actual: Personalizada
Dispositivo Aplicaciones permitidas Tipo de aplicación Protocolo Números de puerto IP Pública
PhylevnMobile Servicio Web Local - TCP 80 189.181.154.37
Con esto ya cualquiera puede acceder desde internet a nuestra página local introduciendo la IP 189.181.154.37 en su Navegador Web de FireFox. Peroooooooooo
189.181.154.37 es una IP Dinámica, ¿ Que pasa si al rato cambia de IP el router ? obviamente ya no podrían entrar nuestros amigos con la IP que les dimos ó igual entrarían al servicio de alguna otra máquina que no sería la nuestra, porqué ya no es nuestra IP.
Para resolver esto usaremos el servicio de DynDNS.org ¿Qué es lo que hace DynDNS.org?
DynDns lo que hace es darle un nombre a tú máquina, por ejemplo phylevnmobile.dyndns.org
Dónde dyndns.org es el nombre global del servicio.
phylevnmobile es el nombre que elegirías y que no debería ser usado por otros usuarios de dyndns.org.
Ya con el nombre ó subdominio asignado, entonces usando alguna de las herramientas de DynDNS cada vez que la IP de tú máquina cambie entonces DynDNS.org redireccionara tú subdominio a la nueva IP.
Por ejemplo hoy amaneciste con la IP.
189.181.154.37 DynDNS apuntará phylevnmobile.dyndns.org a esa IP, entonces cuándo alguien entré a phylevnmobile.dyndns.org irá a 189.181.154.37.
Si mañana cambiá tú IP a 189.181.150.42, DynDns nuevamente redireccionará tú subdominio phylevnmobile.dyndns.org a la ip 189.181.150.42, y asi sucesivamente.
De tal forma que en internet entrarán a traves de phylevnmobile.dyndns.org a tu página sin importar que todos los días tú IP Pública cambié. ¿Cómo me registro en DynDNS?
Muy fácil..
Vé a Dyndns.org y selecciona "create account".
Da tus datos de registro y despues de eso confima el registro dandole click a la url que te llega al correo que diste.
Válidate en el servicio de DynDNS con tu login y password y ve a: Services->DNS Services->Dynamic DNS(DDNS)->Manage Hosts->Add New HostName
Y ahí te pedirá los datos para crear tú dominio dinámico:
Hostname: phylevnMobile -puedes poner el que gustes-, selecciona igual el servidor de tú gusto
WildCard: Seleccionalo si quieres tener subdominios.
Service Type: Host with Ip Address
IP Address: Pon aquí tú IP Pública abajo del text box mostrará tú ip pública. También la puedes conocer a traves de http://www.tuip.info
Mail Routing: Para este ejemplo no aplica, pero es útil en otros casos.
Solo Presionar el botón Create host para guardar los cambios.
Con esto ya tendríamos configurado el servicio DDNS, para verificar solo basta hacer un ping a phylevn.dyndns.org ó al dominio creado, y veremos que al hacer ping nos responderá nuestra IP Pública.
Con esto ya pueden acceder desde internet usando por ejemplo el dominio phylevn.dyndns.org.
Ahora solo faltaría ver como actualizar la IP en DynDNS cada vez que el router cambie de IP, para esto DynDNS provee algunas herramientas: https://www.dyndns.com/support/tools/
En otros routers ya incorporan el protocolo DDNS que es compatible con DynDNS y solo es necesario dar el login y password de DynDNS.
Espero haya servido de algo la explicación que aqui pongo, cualquier duda escribanlo aquí abajo como comentario.
Comentarios Recientes