8 nov 2008

Ranking de GUIs - asterisk-es | Grupos de Google

Ranking de GUIs - asterisk-es | Grupos de Google: "No voy a valorarlas, pero puedes probar las siguientes:
VoiceOne,
Druid,
Asterisk-GUI,
FreePBX,
RaGUI,
Elastic
..."

7 nov 2008

VoipJots.com: Click-to-Call with your Asterisk@Home Box

VoipJots.com: Click-to-Call with your Asterisk@Home Box: "Click-to-Call with your Asterisk@Home Box


It seems everyone is talking about Click-to-Call functionality these days. Google has announced they are going to do it, EBay will be doing it before too long, and there are other websites out there that I've recently noticed are offering this service.

Click-to-Call seems like it would be a complicated task to setup; enabling a website visitor to click a button to allow them to submit their phone number, and receive a call from someone a few seconds later, with no long distance charges for the visitor.
If you have an AAH or Asterisk box, it really is not that difficult to add such a feature to your website. A very simple PHP page hosted either on your AAH box, or another PHP-capable web server (that has TCP connectivity to your AAH/Asterisk box) is all you need. Last night I developed such a script, and though it is rather simple, it's effective. I plan on doing more with it later, but thought I'd share it will all of you so that you can begin playing with it, or customizing it yourself. This script was written for AAH, so it probably will not work with a regular Asterisk box without some modifications, or even a heavily customized AAH box. However, it's very straight-forward, and should not be hard to debug if you have problems with it."

To the expert PHP'ers out there, this was my first attempt at doing anything with PHP (I'm an ASP guy), so have pity on me!:)

Ok, here it goes.

I'm going to be explaining how to set this script up on an AAH box, but as I said before, it should work on any PHP server that can communicate with your AAH/Asterisk box. Also, I have only tested this on AAH 2.4, so I don't make any guarantees that it works on anything else. In fact, I don't make any guarantees that it works on any AAH 2.4 box besides my own, though it should. :) While I'm at it, I may as well also mention that if you decide to use this script, you do so at your own risk.

Step 1:

Login to your AAH box and enter these commands:


cd /tmp
wget http://downloads.voipjots.com/scripts/click-to-call.zip
unzip click-to-call.zip
mv click-to-call.php /var/www/html/click-to-call.php
rm click-to-call.zip



Step 2:
Now we have to slightly edit the script to get it to work for you.


cd /var/www/html
nano -w click-to-call.php


For a typical AAH box, you should only need to edit one line in the script. Change the line:
:


$strChannel = "IAX2/250";


to reflect one of your extensions. In my case, I am using my Idefisk IAX2 softphone that has an extension number of 250. For instance, if you have a SIP soft/hard phone that has an extension number of 1234, you would change this line to:


$strChannel = "SIP/1234";



Ok, at this point, we should have everything properly configure on our AAH box. Now we can try it!

Step 3:

In a web browser, go to http://my-aah-ip-address/click-to-call.php

You should see this:




While near the soft/hard phone belonging to the extension you specified above, enter a valid 11 digit phone number, and click on the Call Us! button.

The soft/hard phone should begin ringing, showing "Web Call " as the caller id. When you answer the call, you will briefly hear... nothing (something I'm going to be working on in the near future), but after a few seconds, you will hear ringing as it calls the number that was entered on the web page.

The click-to-call web page should now be this:




This script is very simple, and probably not best hosted on your aah box, but on another web server that hosts the site you would want to add click-to-call functionality to. However, I hope that this provides a good demonstration as to exactly how simple it is to implement click-to-call with AAH, and leave it to you and your creativity on exactly how you wish to offer this feature. The sky's the limit, really.

I hope this has been helpful to someone. If you have any ideas on how to improve the script, please let me know by leaving your comments. If you make significant improvements to the script, I would appreciate it if you shared them with all of us.

Enjoy!
Olin

6 nov 2008

Implementing VLAN trunking

Implementing VLAN trunking: "Windows configuration with Intel Pro Series adapters
Conceptually, trunking a Windows workstation or server to a switch is the same a trunking a router to a switch. The only difference is the procedure, and a much easier one I might add. The ubiquitous Intel Pro Series adapters provide a simple to use graphical tool called PROSet that any one can learn within a minute or even someone who is just winging it. Note that the same Intel adapters with the ANS drivers can provide similar capabilities on Linux. You can get more information on Linux here from Intel.

To get started, simply invoke the Intel PROSet or PROSet II utility (assuming PROSet is installed). This can be done by simply double clicking the PROSet icon in the system tray on the lower right hand corner of the desktop. The following utility should come up.


Next we must add a VLAN interface. Simply right click on Intel adapter with the PCI Card icon and click �Add VLAN�. Note in the following screen capture, the virtual interface for VLAN 100 is already there and we are adding an additional one.


The �Add New VLAN� window comes up. Enter the VLAN ID you want this interface to trunk in to in the ID field, then give it a name that describes the VLAN function. In this case, we will be adding VLAN 69 labeled the W"

22 oct 2008

VoIP para novatos - Configurar un DNS SRV para SIP

VoIP para novatos - Configurar un DNS SRV para SIP: "Configurar un DNS SRV para SIP
Usando BIND es fácil tener un balanceo de carga a una granja de servidores Asterisk.

Si esta granja obtiene los usuarios de un mismo lugar, cualquier endpoint SIP podrá registrase en cada uno de ellos, sin importarle que servidor es, ya que todos harán el mismo cometido.

Una configuración por ejemplo para 5 servidores Asterisk que recibirán las peticiones de igual forma, en el archivo de dominio sería la siguiente:

; Configuración de dominio.com
$TTL 86400
@ IN SOA dns administrador (
200706247 ; Serial formato: yyyymmddn donde n es un número cualquiera
10800 ; Refresh después de tres horas
3600 ; Reintentar después de una hora
604800 ; Expirar después de una semana
86400 ) ; TTL(Time to Live) mínimo de un día

IN NS dns
dominio.com. IN A 195.222.222.222
IN MX 10 dominio.com.
dns IN CNAME dominio.com.
www IN CNAME dominio.com.
ns1 IN A 195.222.222.222
ns2 IN A 195.222.222.222

sip IN A 195.222.222.221
sip2 IN A 195.222.222.222
sip3 IN A 195.222.222.223
sip4 IN A 195.222.222.224
sip5 IN A 195.222.222.225
backup IN A 195.222.222.226

_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip2.dominio.com.
_sip._udp.dominio.com."

20 oct 2008

20 consejos de Gartner para reducir el gasto en TI - Computerworld

20 consejos de Gartner para reducir el gasto en TI - Computerworld: "20 consejos de Gartner para reducir el gasto en TI

Votar esta noticia (10 votos) Versión para imprimir Versión impresora

En momentos económicos como los actuales, todos los departamentos de la empresa deben apretarse el cinturón. Para ayudar a los responsables de TI a sobrellevar una situación de recorte presupuestario, Gartner ofrece 20 consejos, con los que pretende ayudarles a recudir drásticamente sus gastos.

Los 20 consejos de Gartner para ayudar a ajustar o reducir gastos en el departamento de TI son los siguientes:

1. El sitio más obvio para empezar a recortar en los costes de personal. Gartner estima que el 37% del prepuesto medio de TI se dedica a la plantilla, lo que representa una gran oportunidad para ahorrar dinero. La consultora recomienda la combinación de congelar los procesos de contratación, reducir o eliminar los bonus especiales y reducir los contratos con proveedores externos. Además, las compañías globales que han inaugurado oficinas en áreas remotas deberían considerar la posibilidad de traer de vuelta a casa al personal.

2. Optimice los mandos intermedios. Es decir, en vez de tener una persona que gestiona a seis o siete empleados, ajuste un poco los mandos intermedios de forma que puedan gestionar alrededor de 20 personas. De esta, no sólo ahorra dinero, sino que también gana en eficacia.

3. Migrar hacia servicios compartidos. En otras palabras, consolidar cosas como los centros de atención en un grupo que dé servicio a toda la compañía.

4. Incluso si usted tiene que tomar prestado alguien de otra parte de la empresa, es conveniente que una persona de finanzas se incorpore a su equipo con el objetivo de analizar presupuestos y encontrar modos de ayudarle a ajustar gastos.

5. No ignore los costes “no gestionados” como la energía de las impresoras y de los data centers.

6. Compruebe sus facturas para asegurarse de que sus vendedores le cobran lo que viene en su contrato. Un ejemplo: si su proveedor inalámbrico hubiera acordado con usted no cobrarle el envío de nuevos teléfonos móviles a sus trabajadores remotos y, unos meses más tarde, empiezan a aparecer este tipo de cargos en su factura de telefonía móvil. Si no lo comprueba, nunca lo sabrá.

7. Elimine software y módulos que no están siendo utilizados.

8. Sea fuerte a la hora de negociar los contratos. No tenga miedo a cambiar de proveedor o al menos de dar el primer paso de estimar lo que le costaría el cambio.

9. Compre un servicio de gestión del gasto de telecomunicaciones, ya que el retorno de la inversión es considerable.

10. Despliegue un plan que abarque toda la organización a la hora de adquirir telefonía móvil. Esto será más barato que dejar que el personal se compre sus propios teléfonos y planes y que después lo pasen como gasto.

11. Si hay áreas de la empresa donde no es necesario cinco 9 de disponibilidad, apueste, por ejemplo, por tres 9. Esto le ayudará a ahorrar dinero cuando negocie con su proveedor.

12. Considere la posibilidad de comprar un sistema de videoconferencia más que estar continuamente alquilándolo.

13. Donde sea posible, utilice Internet como un sustituto a los caros servicios de transporte WAN.

14. Aplace la migración a Vista. Si el hardware PC todavía sirve, considere la posibilidad de realizarlo otro año.

15. Utilice productos commodity donde sea posible y evite lo mejor de cada caso en zonas donde con lo necesario es suficiente.

16. Consolide y virtualice servidores.

17. Reduzca los costes de almacenamiento a través de técnicas como la de-duplicación.

18. Utilice mejor los procesos y la política para optimizar el uso de las herramientas existentes.

19. Despliegue telefonía IP y VoIP como una forma de recortar gastos para traslados, incorporaciones y cambios.

20. Recoja licencias de software no usadas y reutilícelas cuando un nuevo empleado haga una petición.

18 oct 2008

OpenVPN (RoadWarrior)

SercH: "OpenVPN (RoadWarrior)

Que tal lectores, aqui les dejo un breve pero muy buen articulo para que puedan configurar y poner a trabajar OpenVPN en la forma RoadWarrior.

Preparando el Servidor"

Para poder hacer los siguiente ya debemos de tener instalado OpenVPN en nuestro servidor.

Lo primero que debemos de hacer es crear los certificados y claves, esto es facil en openvpn ya que cuenta con algunos scripts ya armados que nos ayudaran a hacer esto. Por eso lo primero que recomiendo que hagamos es copiar el directorio donde estan almacenados los scripts a /etc/openvpn que sera el directorio donde tendremos los archivos de configuracion.Para hacer lo que acabamos de mencionar ejecutamos el siguiente comando:


#cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
#cd /etc/openvpn/easy-rsa


Creando el Certificado de Autoridad

Una vez copiado los scripts y estando en la carpeta a donde los copiamos ahora lo que vamos a hacer es generar el certificado de autoridad (CA); este se genera por unica vez en el servidor y sera uno de los arcivos que tendremos que copiar y enviar a los clientes, para que al intentar conectarse con el server se verifique este certificado y el servidor de los correspondientes permisos. Bueno empezemos con el siguiente comando:

#. vars

al ejecutar este comando estaremos inicializando las variales de ambiente y nos debera aparecer algo como esto:

#NOTE: when you run ./clean-all, I will be doing a rm -rf on
/etc/openvpn/easy-rsa/keys

Despues vamos a inicializar el directorio de las claves si ubiese algun archivo este script se encarga de limpiarlo:

#sh clean-all

Y por ultimo, ejecutamos el siguiente script:

#sh build-ca

con este ultimo script nos generara elcertificado de autoridad (CA) y nos pedira varios datos los cuales recomiendo que sean lo mas reales posibles ya que en futuras configuraciones se nos va a pedir alguno de estos datos lo que nos aparecera y los datos que nos pedira sera algo como esto:

Generating a 1024 bit RSA private key
...........................................................................................
.................................++++++.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:openvpnserver
Email Address [me@myhost.mydomain]:serch@hotmail.com

OJO: NO DEJAR EN BLANCO Common Name

Creando Certificado Certificado y Clave para Servidor

Ahora vamos a generar el correspondiente certifatiado del servidor como tambien su clave de encriptacion para lo cual vamos a hacer lo siguiente:

#sh build-key-server servidor

nos va a pedir ciertos datos nuevamente, estos tendran que ser iguales a los que ingresamos en el certificado de CA como son Country Name, State or Province Name, Locality Name y Organization Name y el resto podra ser distinto:


sh build-key-server servidor
Generating a 1024 bit RSA private key
......................++++++
.........................++++++
writing new private key to 'servidor.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:servidor
Email Address [me@myhost.mydomain]:serch@hotmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok


Esto creara dos archivos ( servidor.crt y servidor.key ) en la carpeta /etc/openvpn/easy-rsa/keys los cuales debemos de copiarlos a /etc/openvpn


Creando Certificados y Claves de Encriptacion para los Clientes


Lo mismo que hicimos en el paso anterior lo haremos pero ahora para los clientes, esto lo debemos de hacer el numero de veces que sea necesario para crear los certificados para los clientes que se vallan a conectar, ahora ejecutamos el siguiente script:

#sh build-key cliente

De la misma forma que con el servidor nos va a pedir datos de nuevo entre los cuales seran Country Name, State or Province Name, Locality Name y Organization Name estos tambien tendran que ser identicos a los antes ingresados el resto sera diferente:

sh build-key client1

Generating a 1024 bit RSA private key

...............................................................................................++++++

......++++++

writing new private key to 'cliente.key'

-----

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:cliente
Email Address [me@myhost.mydomain]:serch@hotmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok

Al ejecutar el script le pasamos el parametro "cliente", que sera el nombre que tendra el certificado y claves de encriptacion. Si necesitas generar nuevos certificados y llaves para mas clientes se ejecuta el script cambiando solo que le pasamos ejemplo:

#sh build-key cliente2

de esta forma generaremos certificado y llave de encriptacion con el nombre cliente2.

Generando Parametro De Diffie-Hellman

Ejecutando el siguiente script, generaremos el parametro Diffie-Hellman. Este lo que hara es generarnos el cambio de llaves de forma segura, para ello ejecutamos el siguiente comando:

#sh build-dh

Al hacer esto se creara un archivo dh1024.pem dentro del directorio /etc/openvpn/easy-rsa/keys y lo deberemos de copiar dentro de /etc/openvpn, como se explica a continuacion.


Copiando Cada Cosa En Su Lugar

Una vez hecho todo lo anterior tendremo varios archivos en el directorio /etc/openvpn/easy-rsa/key: algunos se copiaran en el cliente y otros en el servidor, vamos a ver cuales hay que copiar y a donde.

SERVIDOR: En el servidor copiaremos al directorio /etc/openvpn los siguientes archivos:

*ca.crt
*ca.key
*servidor.key
*servidor.crt
*dh1024.pem

Nota: En el caso de que creemos mas adelante mas certificados y claves para mas cleintes se nos pedira que los archivos ca.crt y ca.key esten dentro de /etc/openvpn/easy-rsa/keys, ya que al ejecutar el script sh clear-all lo que hariamos sera limpiar todo lo que este en este directorio, es por eso que debemos copiarlos de regreso si vamos a crear nuevos certificados para clientes, lo podremos hacer de la siguiente manera:

cp /etc/openvpn/ca.crt /etc/openvpn/easy-rsa/keys
cp /etc/openvpn/ca.key /etc/openvpn/easy-rsa/keys

CLIENTE: Como lo hicmos con el servidor, ahora pasaremos los archivos necesarios al directorio /etc/openvpn de cada cliente. Estos son:

*ca.crt
*cliente.crt
*cliente.key


Configuracion Del Servidor

Para la configuracion necesitaremos crear un archivo de configuracion tanto para el servidor como para los clientes.Este contendra todos los parametros de configuracion y debera que tener la extension .conf y debera de estar alojado en /etc/openvpn. Veamos los parametros que debemos de poner al archivo, que en este caso se llamara servidor.conf.

port 1194
proto udp
dev tun
ca ca.crt
cert ca.crt
key servidor.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
persist-key
persist-tun
status openvpn-status.log
verb 4

Parametros a destacar:

* ca: indica como se llama el certificado de autoridad.
* cert: indica como se llama el certificado del servidor.
* key: nombre de la clave de encriptacion.
* dh: indica como se llama el parametro Diffie-Hellman.
* Server: indica las direcciones que se le asignaran a las interfaces TUN/TAP
de los clientes, el servidro siempre tendra la .1.
*push: le indica al servidor que red podra tener alcance los clientes que se
conecten con el.


Configuracion Del Cliente

Como lo habiamos dicho anteriormente los clientes tambien deberan de tener su archivo de configuracion que tendra al igual que el servidor la extension .conf y estar ubicado en /etc/openvpn. Estos con los parametros del archivo de configuracion del cliente llamado cliente.conf.


client
dev tun
proto udp
remote miempresa.dyndns.org
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert cliente.crt
key cliente.key
comp-lzo
verb 4

Parametros a destacar:

* client: actuara como cliente, y algunas configuraciones las tomara del servidor.
* nobind: que no actue como servidor, que solamente vaya como cliente
* ca: indica como se llama el certificado de autoridad.
* cert: indica como se llama el certificado del servidor.
* key: nombre de la clave de encriptacion.

Configuracion Cliente Windows

Una de las virtudes de OpenVPN es que esta preparado para trabajar entre distintas plataformas que seguramente a muchos de nosotros nos suceda. Es por esto que vamos a ver de donde y como configurar la aplicacion para windows asi como donde se tienen que alojar los diferentes archivos que mencionamos con anterioridad.

Bueno al Grano:

Primero descargaremos el paquete para windows de la siguiente pagina http://openvpn.net/index.php/downloads.html de donde bajaremos la version OpenVPN 2.1_rc12 -- released on 2008.09.23 o la mas reciente que sea rc ya que esta ya viene preparada para trabajar con el problematico pero muy vendido windows vista. Lo instalamos como cualquier programa de windows y nos lo instalara en C:\Archvivos de programa\OpenVPN aqui dentro hay otro directorio que se llama config y sera dentro de este donde debemos de copiar los certificados y las cables de encriptacion generados por el servidor, tambien aqui sera donde crearemos el archivo de configuracion tal cual lo hicimos con GNU/LINUX. La unica diferencia es que este archivo de configuracion llevara la extension .ovpn para que pueda ser reconocido por el programa; y ademas debemos de comentar las lineas user nobody y group nobody, ya que windows necesita ejecutar la aplicacion como administrador. Otra diferencia es que hay que indicarle la ubicacion del certificado y llave de encpritacion usando "\\" para indicar los directorios. A continuacion veremos un ejemplo del archivo cliente.ovpn:

client
dev tun
proto udp
float
remote miempresa.dyndns.org
nobind
persist-key
persist-tun
ca "c:\\Archivos de programa\\OpenVPN\\config\\ca.crt
cert "c:\\Archivos de programa\\OpenVPN\\config\\cliente.crt
key "c:\\Archivos de programa\\OpenVPN\\config\\cliente.key
comp-lzo
verb 4

Con esto tendremos el archivo de configuracion de nuestro cliente.


Iniciando Cliente Bajo Windows

En la parte inferior derecha (a un lado del reloj) tendremos dos computadoras en rojo y un mundo para iniciar el cleinte debemos de dar doble click en el icono e inmediatamente se abrira una ventana donde nos mostrara el proceso de conexion con el servidor hasta que se nos asigne una direccion IP que estara en el rango 10.8.0.0
y las dos computadores se deberan de poner en verde y una vez realizada esto tambien se conectara nuestra interface TUN/TAP.


IPTABLES

En Iptables solo hay que permitir el trafico entre la interface tun0 y la red interna de la siguiente manera:

/sbin/iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.1.0/24 -j ACCEPT


Con esto tendremos configurado y Funcionado un Servidor OpenVPN en RoadWarrior

15 oct 2008

blog.aliax.net: Aclarando SIP y NAT

blog.aliax.net: Aclarando SIP y NAT: "Aclarando SIP y NAT

En vista de la ensalada de soluciones existentes para abordar el tema de SIP y NAT me propongo tratar de explicar algunas de ellas. Igualmente trataré de desmentir algunas hipótesis que se escuchan de vez en cuando.
Problema del NAT en SIP y RTP

No voy a excederme relatando los problemas que ocasiona el NAT para las comunicaciones SIP. Supongamos un cliente SIP detrás de NAT que trata de comunicarse con otro fuera de su NAT, ambos usuarios usan el mismo proxy SIP:
Usuario SIP origen:

* SIP URI: ibc@mydomain.org
* IP privada: 192.168.1.33
* IP pública del router NAT: 81.35.221.20

Usuario SIP destino:

* SIP URI: destino@mydomain.org
* IP pública: 88.95.20.130

Proxy SIP:

* Dominio: mydomain.org
* IP pública: 60.55.201.100

El mensaje SIP INVITE que enviaría mi usuario sería así:
INVITE sip:destino@mydomain.org SIP/2.0
Via: SIP/2.0/UDP 192.168.1.33:5060;rport;branch=z9hG4bKjyofoqmp
Max-Forwards: 70
To:
From: 'Iñaki' ;tag=nrrrx
Call-ID: xetazdjyktlpsfo@192.168.1.33
CSeq: 800 INVITE
Contact:
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,N"