Este es un pequeño resumen para instalar y configurar el driver en Linux para poder registrar las llamadas de Asterisk en la base de datos de un MS SQL
Primero vamos a instalar el los drivers para la conexion al SQL de Windows
# yum install freetds unixODBC -y
Luego de instalar el driver freetds lo agregamos a unixODBC, para ello editamos el archivo odbcinst.ini de la siguiente manera
# vim /etc/odbcinst.ini
...
[FreeTDS]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsS.so.1
FileUsage = 1
...
Luego de esto configuramos el ODBC para la conexion del Asterisk a la base datos del SQL
# vim /etc/odbc.ini
...
[ODBC Data Sources]
MSSQL = MSSQL Log-Server for Asterisk
[MSSQL-asterisk2]
description = Asterisk ODBC for MSSQL
driver = FreeTDS
server = 172.16.0.42
port = 1433
database = Central
tds_version = 8.0
language = us_english
...
Donde:
driver -> Es el driver freetds que se configuro en odbcinst.ini
server -> Es la direccion IP del servidor SQL
database -> La base de datos donde se almacenara los registros de las llamadas
Hacemos una prueba de conexion, para ello ejecuatmos lo siguiente:
# isql -v MSSQL-asterisk2 sa 1234567
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
Datos:
sa -> usuario administrador de la base de datos
1234567 -> clave de sa
Listo, ahora en el archivo cdr_odbc.conf del Asterisk configuramos de la siguiente manera
# vim cdr_odbc.conf
...
[global]
dsn=MSSQL-asterisk2
username=sa
password=1234567
loguniqueid=yes
dispositionstring=yes
table=cdr ;"cdr" is default table name
usegmtime=no
...
Ahora en el servidor SQL debemos crear la base de datos Central con la tabla cdr, la estructura de la tabla es la siguiente
CREATE TABLE cdr (
[calldate] [datetime] NOT NULL ,
[clid] [varchar] (80) NOT NULL ,
[src] [varchar] (80) NOT NULL ,
[dst] [varchar] (80) NOT NULL ,
[dcontext] [varchar] (80) NOT NULL ,
[channel] [varchar] (80) NOT NULL ,
[dstchannel] [varchar] (80) NOT NULL ,
[lastapp] [varchar] (80) NOT NULL ,
[lastdata] [varchar] (80) NOT NULL ,
[duration] [int] NOT NULL ,
[billsec] [int] NOT NULL ,
[disposition] [varchar] (45) NOT NULL ,
[amaflags] [int] NOT NULL ,
[accountcode] [varchar] (20) NOT NULL ,
[uniqueid] [varchar] (150) NOT NULL ,
[userfield] [varchar] (255) NOT NULL
)
Listo con esto ya tendremos registrados en el SQL las llamadas de nuestra central Asterisk
viernes, 27 de julio de 2012
viernes, 13 de julio de 2012
Lightsquid sobre SuSE
Lightsquid es una herramienta que analiza los logs del Squid y nos muestra un reporte gráfico a través de una interfaz web.
En este caso vamos a instalar dicha herramienta en SLES 11.
Descargamos el archivo del siguiente enlace:
http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Luego de descargarlo hacemos lo siguiente:
# tar xzf lightsquid-1.8.tgz
# mv lightsquid-1.8 /srv/www/htdocs/lightsquid
# cd /srv/www/htdocs/lightsquid/
Cambiamos las rutas en el archivo lightsquid.cfg
# vim lightsquid.cfg
...
$cfgpath ="/srv/www/htdocs/lightsquid";
$tplpath ="/srv/www/htdocs/lightsquid/tpl";
$langpath ="/srv/www/htdocs/lightsquid/lang";
$reportpath ="/srv/www/htdocs/lightsquid/report";
$logpath ="/var/log/squid";
$ip2namepath ="/srv/www/htdocs/lightsquid/ip2name";
En este caso vamos a instalar dicha herramienta en SLES 11.
Descargamos el archivo del siguiente enlace:
http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Luego de descargarlo hacemos lo siguiente:
# tar xzf lightsquid-1.8.tgz
# mv lightsquid-1.8 /srv/www/htdocs/lightsquid
# cd /srv/www/htdocs/lightsquid/
Cambiamos las rutas en el archivo lightsquid.cfg
# vim lightsquid.cfg
...
$cfgpath ="/srv/www/htdocs/lightsquid";
$tplpath ="/srv/www/htdocs/lightsquid/tpl";
$langpath ="/srv/www/htdocs/lightsquid/lang";
$reportpath ="/srv/www/htdocs/lightsquid/report";
$logpath ="/var/log/squid";
$ip2namepath ="/srv/www/htdocs/lightsquid/ip2name";
...
Podemos revisar si nos falta algún modulo de perl ejecutando lo siguiente:
# perl /srv/www/htdocs/lightsquid/check-setup.pl
Ahora editamos el archivo default-server.conf, para esto se sobrentiendo que tenemos instalado el apache2
# vim /etc/apache2/default-server.conf
...
<Directory "/srv/www/htdocs/lightsquid">
AddHandler cgi-script .cgi
Options None
AllowOverride all
Order allow,deny
Allow from all
</Directory>
...
Listo, ahora reiniciamos el servicio del apache2
# rcapache2 restart
Ejecutamos
# /usr/bin/perl /srv/www/htdocs/lightsquid/lightparser.pl
Dejamos un cron para que se ejecute periodicamente ..
# crontab -e
*/50 * * * * /usr/bin/perl /srv/www/htdocs/lightsquid/lightparser.pl
Reiniciamos el servicio del cron
# rccron restart
Ahora podemos acceder via web y vere los reportes del squid ...
http://IPdelservidor/lightsquid/
martes, 5 de junio de 2012
Asterisk VoiceMail Smarthost Gmail
Los pasos descritos fueron realizados debido a la necesidad de un amigo de querer enviar los buzones de voz a varias cuentas por cada anexo .... hasta donde recuerdo no se puede poner directamente en el voicemail.conf si se pudiera imagino que los que lean esto me lo harán saber .. en fin ...
En el archivo voicemail.conf dejo lo siguiente:
502 => 502,,doscuentas@dominiolocal,,attach=yes|saycid=no|envelope=no|delete=no
En este caso mi pata tenia Debian y Exim para los envíos de correo ... haciendo unos ajustes a su configuración deje lo siguiente:
#vim /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='dominiolocal'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
En el archivo voicemail.conf dejo lo siguiente:
502 => 502,,doscuentas@dominiolocal,,attach=yes|saycid=no|envelope=no|delete=no
En este caso mi pata tenia Debian y Exim para los envíos de correo ... haciendo unos ajustes a su configuración deje lo siguiente:
#vim /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='dominiolocal'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
No explicare el proceso de configuracion del Gmail ...eso no me pidio mi pata jeje ...
Dentro del archivo /etc/aliases hacemos lo siguiente:
# vim /etc/aliases
doscuentas: cuenta1@dominiodestino.com,cuenta2@dominiodestino.com
Ejecutamos
#newaliases
Listo, con esto ya tenemos listo lo solicitado ..!!
Plugin DAM Google Ghrome
Un tiempo instale el DAM en mi PC, y mi navegador predeterminado es Google Ghrome, cada ves que quería realizar una descarga lo hacia mediante el DAM y cuando desinstale dicho programa igual seguía buscando el DAM ....
Para esto en el mismo navegador puse:
chrome://plugins/
Ahi deshabilite el DAM ...
Para esto en el mismo navegador puse:
chrome://plugins/
Ahi deshabilite el DAM ...
sábado, 2 de junio de 2012
Linksys SPA3102 con Asterisk
Debido a la necesidad de poner una linea analógica a la central Asterisk vamos a configurar una troncal SIP entre un SPA3102 y la Central, tal ves no sea la mejor forma de hacerlo pero hasta el momento me funciona bien.
Para esto ya tenemos instalado Asterisk con FreePBX.
Datos:
Para esto ya tenemos instalado Asterisk con FreePBX.
Datos:
- IP Asterisk : 192.168.1.5
- IP SPA3102 : 192.168.1.240
- Numero de linea analógica 485107
En el FreePBX nos dirigimos a la sección Trunk, Add SIP Trunk y llenamos los siguientes datos ...
Ahora accederemos al SPA3102 para esto ya tengo configurado con la IP 192.168.1.240, ambos (Asterisk y ATA) estan en la misma red ... pondré una secuencia de imágenes que se tendrá en cuenta para la configuración ...
El numero 485107 es el que enviara al Asterisk para poder enrutar la llamada ..
Con esto ya tenemos listo la troncal, ahora para las llamadas entrantes por ejemplo ... dentro de FreePBX configuramos en Inbound Routes ... del siguiente modo
Lo demás se entiende que uno ya lo deriva al IVR o Anexo ...etc .. Para el caso de llamadas salientes, basta con poner el dialplan y seleccionar la troncal creada. Espero no haber omitido algún paso ...
martes, 29 de mayo de 2012
Servidor FTP con VSFTPD sobre CentOS
En esta pequeña guía se mostrara la instalación de un servidor FTP con usuarios virtuales.
La plataforma es CentOS 6.2
Datos:
IP del FTP : 172.16.0.84
El proceso sera sencillo, comenzamos instalando el programa
# yum install vsftpd -y
Editamos el archivo /etc/vsftpd/vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf
background=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd-virtual
xferlog_file=/var/log/vsftpd.log
user_sub_token=$USER
local_root=/var/www/html/$USER
anon_root=/var/www/ftp
chroot_local_user=YES
hide_ids=YES
listen=YES
listen_port=21
ftp_data_port=20
pasv_min_port=65500
pasv_max_port=65535
connect_from_port_20=YES
local_umask=022
max_clients=20
max_per_ip=10
secure_chroot_dir=/usr/share/empty
Guardamos los cambios y listo ahora falta la creación de usuarios ....
Elabore un pequeño script para la creación de los usuarios ... lo llamaremos ftpadduser
# vi /usr/local/sbin/ftpadduser
#!/bin/bash
if [ -z "$1" ]; then
echo "Ingrese el usuario ..."
exit 1
fi
if [ -z "$2" ]; then
echo "Ingrese la clave ..."
exit 1
fi
echo "$1" >> /opt/virtual-users.txt
echo "$2" >> /opt/virtual-users.txt
db_load -T -t hash -f /opt/virtual-users.txt /etc/vsftpd/virtual-users.db
mkdir /var/www/html/$1
chown -R ftp:ftp /var/www/html/$1
La plataforma es CentOS 6.2
Datos:
IP del FTP : 172.16.0.84
El proceso sera sencillo, comenzamos instalando el programa
# yum install vsftpd -y
Editamos el archivo /etc/vsftpd/vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf
background=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd-virtual
xferlog_file=/var/log/vsftpd.log
user_sub_token=$USER
local_root=/var/www/html/$USER
anon_root=/var/www/ftp
chroot_local_user=YES
hide_ids=YES
listen=YES
listen_port=21
ftp_data_port=20
pasv_min_port=65500
pasv_max_port=65535
connect_from_port_20=YES
local_umask=022
max_clients=20
max_per_ip=10
secure_chroot_dir=/usr/share/empty
Guardamos los cambios y listo ahora falta la creación de usuarios ....
Elabore un pequeño script para la creación de los usuarios ... lo llamaremos ftpadduser
# vi /usr/local/sbin/ftpadduser
#!/bin/bash
if [ -z "$1" ]; then
echo "Ingrese el usuario ..."
exit 1
fi
if [ -z "$2" ]; then
echo "Ingrese la clave ..."
exit 1
fi
echo "$1" >> /opt/virtual-users.txt
echo "$2" >> /opt/virtual-users.txt
db_load -T -t hash -f /opt/virtual-users.txt /etc/vsftpd/virtual-users.db
mkdir /var/www/html/$1
chown -R ftp:ftp /var/www/html/$1
Listo ejecutando ese script se podra crear las cuentas FTP
Ahora debemos ver el selinux, podriamos deshabilitarlo pero por temas de seguridad lo conservamos(Enforcing) y ejecutamos lo siguiente
setsebool allow_ftpd_full_access on
setsebool ftp_home_dir on
Ahora el servidor FTP ya esta operativo ... En nuestro Firewall(iptables) haremos el respectivo NAT
Dentro de nuestro script de iptables, cargaremos algunos módulos
#Definiendo variables
IPT="/sbin/iptables"
EXT_IP="IP Externa"
FTP="172.16.0.84"
# Cargando módulos
...
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
...
#Realizando el NAT
$IPT -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j DNAT --to-destination $FTP
$IPT -A FORWARD -d $FTP -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -s $FTP -p tcp --sport 20:21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Listo ... con esto ya debería estar operativo al 100% ... se entiende que falta el enmascaramiento en el script del firewall ...
Servidor de correo Zimbra sobre Centos 6
En mi trabajo por temas de licencia me pidieron instalar un servidor de correo bajo Linux, por temas de facilidad de administracion se escogio la version OpenSource de Zimbra.
Para esto en mi red, ya se contaba con un Active Directory y servidor DNS en el mismo equipo, escogi Cent0S 6.2 de 64 bits como plataforma para la instalacion de Zimbra, la version de Zimbra que use es 7.2
Datos:
Pasos iniciales:
Para esto en mi red, ya se contaba con un Active Directory y servidor DNS en el mismo equipo, escogi Cent0S 6.2 de 64 bits como plataforma para la instalacion de Zimbra, la version de Zimbra que use es 7.2
Datos:
- IP del AD : 172.16.0.33
- Dominio: mydominio.com
- IP de Zimbra: 172.16.0.55
- Hostname de Zimbra: mail.mydominio.com
Pasos iniciales:
- En el servidor DNS se creo el registro MX apuntando a mail.mydominio.com
- En el archivo hosts del Linux se puso lo siguiente:
cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
172.16.0.55 mail.mydominio.com mail
Desactivamos el selinux
vi /etc/sysconfig/selinux
SELINUX=disabled
Comentamos la siguiente seccion dentro del archivo sudoers
vi /etc/sudoers
#Defaults requiretty
Instalacion de dependencias:
yum install -y perl bind-utils sysstat nc file sudo
Luego de descomprimir el archivo tar.gz, ingresamos al directorio y ejecutamos lo siguiente:
[root@mail zcs-7.2.0_GA_2669.RHEL6_64.20120410002025]# ./install.sh --platform-override
De aqui solo queda responder las preguntas ...
Le damos Y a modificar la plataforma ...
En una seccion me sale la siguiente pregunta
Change domain name?[yes]
Esto debido a que detecta como dominio lo siguiente: mail.mydominio.com
Le respondo que si (Y) y pongo mi dominio
Change domain name?[yes] Y
mydominio.com
Listo .. el resto es terminar de responder algunas preguntas que hara .. de hecho habra que ponerle una clave para el acceso del admin ...
Luego de esto accedo:
https://mail.mydominio.com:7071/zimbraAdmin/
Cuando voy a la seccion de Mail Queues ... me sale algunos mensajes de error, las cuales las he resuelto gracias a este blog http://blog.spanger.org/?p=501
Por ahora estoy creando los usuarios tanto en el servidor de correo como en el Active Directory para la validacion. Para esto sigo los siguientes pasos:
- Seleccionar el dominio, debajo de Domains
- Ir a la seccion de Autenticacion
- Configure Autenticacion
- Escoger external active directory
- Pongo la IP 172.16.0.33
- En username pongo administrator@mydominio.com, ingreso la clave y ya esta ....
Luego de esto hago lo siguiente:
- Server Settings
- MTA
- Dentro de MTA Trusted Network, dejo lo siguiente: 127.0.0.1/32 172.16.0.55/32
Por ahora lo he dejado asi ... ya estare haciendo mas ajustes y mas cosas que las ire publicando ....
Suscribirse a:
Entradas (Atom)