Blacklist en Asterisk

[Visto: 6594 veces]

Por: Ing Isaac Fernández Baca

Ayer estuve configurando listas negras en Asterisk.

Si nuestro numero de inbound es el 666666 y queremos evitar que nos llamen del numero 6262000, entonces modificamos el archivo extensions.conf

En este ejemplo se están redireccionando todas las llamadas que entran al 666666 a la extensión SIP 1000.

Cuando llamen de este número escucharan el audio blacklist.gsm

[inbound]
exten => 6666666,1,Answer()
exten => 6666666,n,LookupBlacklist()
exten => 6666666,n,GotoIf($[“${LOOKUPBLSTATUS}” = “FOUND”]?black,1)
exten => 6666666,n,Dial(SIP/1000,,tTrR)

exten => black,1,Playback(blacklist)
exten => black,n,Hangup()

Ahora bien, para agregar un número a la lista negra nos ubicamos en el CLI

database put blacklist 16262000 1

y para retirarlo de la lista negra

database del blacklist 16262000

Referencias:

[1]http://www.voip-info.org/wiki-Asterisk+cmd+LookupBlacklist
[2]http://www.the-asterisk-book.com/unstable/applikationen-lookupblacklist.html

Sigue leyendo

Callback + DISA

[Visto: 2699 veces]

Por Ing Isaac Fernandez Baca

Hoy me pidieron que configure un Callback mas DISA,

Bueno la idea era de poder llamar a la central, que nos cuelgue e inmediatamente la central nos devuelva la llamada(Callback) y ademas nos de tono de marcado(DISA).

Bueno lo primero es el inbound route, la ruta de entrada en el archivo extensions.conf declaramos el contexto de entrada

Si mi celular es el 99999999 y el numero de la central es el 666666

[entrada]
exten => 666666/999999999,1,System(/var/lib/asterisk/agi-bin/llamame.sh ${CALLERID(num)})
exten => 666666/999999999,n,Hangup()

Luego en el /var/lib/asterisk/agi-bin/ creamos el siguiente archivo llamame.sh el cual modifique un pokitin, pero es basicamente el mismo que aparece en un foro de asterisk-peru.com [1]

llamame.sh
#!/bin/bash
#
# /ruta/al/script/de/llamadas/llamame.sh {telefono}
#
DEST=”/var/spool/asterisk/outgoing”
CALL=`mktemp` # creas un archivo temporal, si no hay mktemp usa el tiempo.

# llenamos los datos de la llamada…
echo “Channel: Zap/g0/$1″>>$CALL # sabiendo que $1 es el numero que llamóho “MaxRetries: 1″>>$CALL
echo “RetryTime: 60″>>$CALL
echo “WaitTime: 30″>>$CALL
echo “Context: custom-disa-ifernandez”>>$CALL
echo “Extension: s”>>$CALL
echo “Priority: 1″>>$CALL

# mandemoslo un poco al futuro para darle tiempo de colgar.
NOW=`date +%s`
let NOW=$NOW+100 #100 segundos
TOUCH_TMSP=`date -d “1970-01-01 $NOW sec GMT” +%Y%m%d%H%M. %S`
touch -t $TOUCH_TMSP $CALL

# listo, lo movemos.
mv $CALL $DEST

#EOF

Este archivo llamame.sh genera la llamada y nos manda al contexto custom-disa-ifernandez, un contexto para disa cualquiera.

[custom-disa-ifernandez]
exten => s,1,Set(TIMEOUT(digit)=10)
exten => s,n,Set(TIMEOUT(response)=30)
exten => s,n,Set(REALCALLERIDNUM=104)
exten => s,n,Set(CALLERID(num)= 104)
exten => s,n,DISA(no-password|total)
exten => s,n(end),Hangup

y walaaaaaa listo….. “y ya!” (Recuerdo que esta frase de “y ya” de nosotros los peruanos, les disgustaba mucho a unos compañeros de trabajo chilenos, filo po)

Referencias:

[1] http://www.asterisk-peru.com/node/992 Sigue leyendo

Cambiar el passwor por ssh a varios servidores automaticamente

[Visto: 2647 veces]

Por Ing. Isaac Fernandez Baca

Creamos un Script
El cual podemos usar para todos los servidores que necesitemos, agrandando un poco el archivo,
cuando tengas mas tiempo voy a invertigar en como ponerle un for y un arreglo

#!/usr/bin/expect -f
set pwd [lindex $argv 0]
set npwd [lindex $argv 1]
spawn ssh root@200.6.137.54 -p 2006
match_max 100000
# Look for passwod prompt
expect “*?assword:*”
send — “$pwd”
# send blank line (r) to make sure we get back to gui
send — “r”
expect “*?#*”
send — “r”
send — “passwdr”
expect “*?assword:*”
send — “$npwdr”
expect “*?assword:*”
send — “$npwdr”
send — “r”
expect eof
Sigue leyendo

Configuración fácil de un DISA

[Visto: 7777 veces]

Por Ing. Isaac Fernandez Baca

DISA (Direct Inward System Access)
Acceso directo al interior del sistema, el DISA permite a alguien llamar desde fuera de una central y obtener tono de marcado desde el interior del sistema, y así poder realizar llamadas como si estaría dentro. El DISA permite ponerle un contraseña la cual debe ser precedida de la tecla michi #. Si no se le pone contraseña, al llamar al numero DISA, se marca directamente.

Para este ejemplo vamos a configurar en una central Asterisk que al llamar de mi celular a un numero fijo de la central me brinde tono de marcado, así de esta manera puedo realizar llamadas internacionales desde mi celular, y la llamada es enrutada por el Asterisk por VoIP.
Mi celular es el 00511997090306 y el numero fijo que de la central asterisk es 005116666666 (Estos datos no son reales, solo son para el ejemplo)
Y ya que solo va aceptar llamadas desde mi celular, no necesito ponerle contraseña.

Debemos crear la ruta de ingreso Inbound route

Podemos hacerlo por freepbx o bien modificamos el archivo extension.conf o uno de sus dependientes

Acá definimos que cuando el numero 997090306 llame al numero 666666, se vaya al contexto custom-disa-isaacfernandezbaca

[ext-did]
….
exten => 511666666/997090306,1,Set(__FROM_DID=${EXTEN})
exten => 511666666/997090306,n,GotoIf($[ “${CALLERID(name)}” != ” ] ?cidok)
exten => 511666666/997090306,n,Set(CALLERID(name)=${CALLERID(num)})
exten => 511666666/997090306,n(cidok),Noop(CallerID is ${CALLERID(all)})
exten => 511666666/997090306,n,Goto(custom-disa-isaacfernandezbaca,s,1)
….

Luego declaramos el contexto custom-disa-isaacfernandezbaca en el el archivo extension.conf o uno de sus dependientes

En este contexto estamos declarando que espere 10 segundos para empezar el envío de tonos, luego seteamos el callerid con 516666666, esto para que cuando el Asterisk tarifique ubique esta llamada como hecha por ese anexo. Después la función DISA en la cual se declara que no lleva contraseña y que la llamada en curso use el contexto from-internal. Si no contesta, se corta.

[custom-disa-isaacfernandezbaca]
exten => s,1,Set(TIMEOUT(digit)=10)
exten => s,n,Set(TIMEOUT(response)=30)
exten => s,n,Set(REALCALLERIDNUM=511666666)
exten => s,n,Set(CALLERID(num)= 511666666)
exten => s,n,DISA(no-password|from-internal)
exten => s,n(end),Hangup

Finalmente para que se realice una correcta negociación de los tonos DTMF que se envía del celular, modificamos el archivo sip.conf o uno de sus dependientes

[general]

dtmfmode=auto

Referencias

http://www.voip-info.org/wiki-Asterisk+cmd+DISA
Sigue leyendo

Levantar un Servidor FTP para dar accesos a un programador y un diseñador en una web

[Visto: 5719 veces]

Por Ing. Isaac Fernandez Baca

En esta ocasión deseamos configurar un servidor FTP para que un diseñador y un programador PHP puedan acceder desde Dreamweaver al servidor y modificar sus trabajos.

Definimos los usuarios

Usuario: programmer
Acceso a su directorio: /var/www/html/web1
Sin shell en el sistema y en un entorno chroot

Usuario: designer
Acceso a su directorio: /var/www/html/web2
Sin shell en el sistema y en un entorno chroot

Usuario: webmaster
Acceso a su directorio: /var/www
Sin shell en el sistema y en un entorno chroot

Creamos los usuarios
# groupadd ftp

#useradd -g ftp -d /var/www/html/web1 -c ” Programador PHP ” programmer
#useradd -g ftp -d /var/www/html/web2 -c ” Diseñador ” designer
#useradd -g ftp -d /var/www -c ” webmaster ” webmaster

Les agreganos password con el commando passwd

Modificamos el archivo etc/shells, le agregamos las siguientes lineas, las cuales nos permitiran crear el shell falso.

programmer:x:1005:1005: programmer :/var/www/html/web1:/bin/ftp
designer:x:1006:1005: designer :/var/www/html/web2:/bin/ftp
webmaster:x:1007:1005: webmaster :/var/www:/bin/ftp

Instalamos el servidor FTP en Linux, Vsftp que se maneja con comandos:

Lo instalamos

#yum install vsftpd

Luego tenemos que modificar algunos parámetros del archivo /etc/vsftpd.conf
#permite conexiones
listen=YES
#no permite usuarios anonimos
anonymous_enable=NO
local_enable=YES
# Permitimos a usuarios locales escribir
write_enable=YES
# Permite conexiones por el puerto 20 (ftp-data).
connect_from_port_20=YES

# Se descomenta esto para crear una jaula
chroot_local_user=YES

chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO

En el archivo vsftpd.chroot_list se definen los usuarios que no tendrán acceso al servidor:

Creamos /etc/vsftpd.user_list y definimos en el los usuarios con acceso ftp

#usuarios con acceso
webmaster
programmer
designer
Luego abrimos el Dreanweaver e ingresamos alguno de los usuarios en la parte de configuración de servidores de FTP, es simple.
Y ya!

Sigue leyendo

Le arranca la cabeza a Adolf Hitler

[Visto: 2907 veces]

Que noticia para polémica, en el Museo Madame Tussaud de Berlín, Alemania, han puesto la figura de cera del dictador nazi Adolf Hitler, y tras unos minutos de abierta la exposición, un visitante le arranco la cabeza, gritando “Nunca más guerra”.

Ustedes que piensan?, el lugar donde se decidió exterminar a los judíos y ahora la imagen en cera puesta ahí. Algunos piensan que deberían quitarla.

En mi humilde opinión, se debe mantener pues es parte de la Historia, quizá añadirle por ahí la frase que fue gritando el visitante, “Nunca más guerra”, como un mensaje para que nunca más se repita. Después de todo para eso sirve conocer Historia, para no repetir los mismos errores.

Tras leer está noticia le pregunté a un chileno, pues me encuentro en Santiago, qué pensaría el si pusieran una figura en cera de Augusto Pinochet, “Me gustaría mucho, lo iría a visitar, aunque la mitad de la gente estaría en contra, pues Chile esta divido en dos”-respondió

Adolf Hitler - figura en cera
Mas:
la-sombria-mirada-hitler-volvera-berlin
Presentan figura de cera Hitler en Berlín en medio de críticas
Sigue leyendo

Instalar Internet explorer en Ubuntu

[Visto: 3245 veces]

Por Ing. Isaac Fernandez Baca

IE4Linux Internet Explorer for Linux.

Aqui un manual muy eficaz de como instalarlo hecho por d2rapi2.

Copy paste de:
http://uspalinux.cl/instalar-internet-explorer-en-ubuntu-linux

Hace un año o dos me tope con un problema, algunas paginas nacionales de bancos y entidades educativas están desarrolladas para ser usadas únicamente en el navegador de Microsoft, en aquel entonces resolví el problema instalando IE5 con ayuda de CrossOver, pero esta aplicación es de pago y después de que Flash se actualizara y pasara a ser de Adobe ya no funcionaba correctamente es por eso que investigue una nueva manera de solucionar este problema.

IE4Linux:
No se engañen lo de “4” es por la pronunciación ( four similar a for ) que vendría a ser “Internet Explorer para Linux”. Es una pequeña script que utiliza wine y además cabextract, se preocupa de descargar IE (5, 5.5, ó 6) y posteriormente instalarlo creando accesos directos en nuestros escritorios, además instala los plugins de flash.

Pasos previos a instalar:
Antes de instalar tenemos que asegurarnos de tener el wine y el cabextract instalados en el sistema. para ello revisa que tengas habilitados los repositorios Universe y luego:

$ sudo aptitude install wine cabextract

Instalación:
Baja y descomprime el el archivo del IE4Linux, Clic para Descargar

tar zxvf ies4linux-latest.tar.gz

Ingresa al directorio y ejecuta la script:

cd ies4linux-*
./ies4linux

Luego sige las instrucciones de la script y listo. la instalación debería dejar un enlace en el escritorio, pero también puedes ejecutar escribiendo en la consola:

$ ie6

En la imagen, en la esquina inferior izquierda es IE6 navegando en este sitio.

Sigue leyendo

Mi tesis SCTP

[Visto: 3518 veces]

Por Ing. Isaac Fernandez Baca

Considero que uno tiene realizado el 10% de la tesis cuando ha elegido el tema y esta decidido a terminarlo. Cuando comencé no encontraba tema que me gustará quería un reto fuerte. Así fue que logre contactar con mi profesor de Redes, Genghis Ríos, y le pedí que me planteara un tema vanguardista. Al inicio el no creía que terminaría, pues tenia mala suerte con los anteriores tesistas, por uno o por otro motivo ninguno había culminado. Así que me deseo suerte, yo le prometí que sería el primer tesista que bajo su asesoramiento terminaría y así fue. Y estoy muy contento y orgulloso de haber aprobado la tesis con Sobresaliente.

En la tesis se toca teóricamente los protocolos TCP, UDP y SCTP en el primer capitulo, en el segundo se habla sobre los API´s de programación en C de TCP y SCTP, en el tercer capitulo se habla sobre algunas aplicaciones que utilizan SCTP, en el ultimo capitulo se utilizan las aplicaciones del anterior capitulo para hacer una comparación entre los protocolos. En el primer anexo se encuentra el código utilizado, en el segundo imágenes, cuadros del análisis comparativo, y en el anexo 3 un poco de redes inalámbricas en Linux.

LA TESIS:

ESTUDIO DE DESEMPEÑO DEL PROTOCOLO SCTP (STREAM CONTROL TRANSMISSION PROTOCOL) Y ANÁLISIS COMPARATIVO CON LOS PROTOCOLOS TCP Y UDP

RESUMEN

El objetivo de este trabajo de Tesis es realizar un estudio de las características y del desempeño del protocolo SCTP (Stream Control Transmission Protocol) y contrastarlo con los protocolos clásicos de la capa de transporte. SCTP es un protocolo que trabaja en la capa de transporte, el cual diferencia de TCP que permite crear un solo canal de transmisión, con SCTP se puede crear diversos canales de conexión que trabajan en paralelo, de esta manera la transmisión es más rápida entre cliente y servidor. Todo el trabajo se realiza con aplicaciones existentes que funcionan bajo el entorno de Linux con el objetivo de mostrar los beneficios al usar SCTP en lugar de TCP, además se muestran herramientas útiles para crear aplicaciones que trabajen sobre SCTP ya que este trabajo de Tesis de Pregrado es el trabajo previo para una posterior Tesis de Maestría o de Doctorado.

Descargar Tesis SCTP- Documento Principal

Descargar Tesis SCTP- Anexo 1
Descargar Tesis SCTP- Anexo 2
Descargar Tesis SCTP- Anexo 3

En marzo, en el ciclo de conferencias LINUX WEEK 2008 que ofrece mi Universidad (PUCP), presente el tema con el título: “SCTP: Una alternativa al protocolo TCP en Linux” a continuación el video. Considero que me puse un poco nervioso, pues quería explicar bastante pero solo tenía media hora, así que corrí un poco, si tienen alguna duda no duden en contactarme.

Sigue leyendo