martes, 16 de abril de 2013

Windows 7 : Actualización KB2823324



Desde el jueves pasado me han llegado reportes sobre equipos con Windows 7 que realizan chequeo de disco cada vez que prenden.

Un compañero de trabajo dio con la solución y la quiero compartir:

Seguir los siguientes pasos:


1) Modificar la siguiente llave de registro y borrar todo su contenido como aparece aquí.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute "Sin Valor"

2) Desinstalar la actualizacion KB2823324.

Después de esto el equipo pedirá reiniciar.

Recuerden también deshabilitar las actualizaciones automáticas mientras Microsoft soluciona este problema.

lunes, 15 de abril de 2013

Asterisk 11 + Cdr-Mysql + Centos

La siguiente es una guia de como instalar y configurar asterisk 11, ademas agregamos usaremos mysql para guardar nuestro registro de llamadas.

Después de tener instalado Centos siempre es bueno actualizar:

yum update -y

También es recomendable des habilitar Selinux y no lo manejamos muy bien.

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot

Instalando dependencias básicas

yum install -y make wget openssl-devel ncurses-devel  newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel

Instalando Dependencias necesarias para el conector ODBC y para CDR

yum install mysql-server unixODBC unixODBC-dev libmyodbc libtool-ltdl-devel unixODBC-devel mysql-connector-odbc

Descargamos Asterisk

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
tar zxvf asterisk*

Instalación de Asterisk

cd /usr/src/asterisk*
./configure --libdir=/usr/lib64 && make menuselect && make && make install

En el menú de módulos que aparecerá hay que marcar cdr_adaptative_odbc y res_odbc.
Después de verificar 'guardar y cerrar' continuara con la configuración.

Después hay que crear las maquetas de configuración básica

make samples

Agregar el servicio asterisk a /etc/init.d

make config

Iniciar asterisk

service asterisk start

Con esto nuestro servidor asterisk esta corriendo con lo minimo.
Tambien hay que configurar asterisk para que parta cada vez que se inicie el Servidor.

chkconfig asterisk on

Si por X motivo nuestra instalacion de asterisk no fue exitosa o se nos olvido agregar un modulo podemos volver desinstalar e iniciar nievamente la instalacion de este.

make clean && make distclean

Configuracion del CDR

Ingresamos a MySql para crear un usuario y configurar nuestra base de datos

mysql -u root -p


CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'miclave';
GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' WITH GRANT OPTION;


CREATE SCHEMA IF NOT EXISTS `asteriskcdr` DEFAULT CHARACTER SET utf8;
CREATE  TABLE IF NOT EXISTS `asteriskcdr`.`cdr` (
  `uniqueid` VARCHAR(32) NOT NULL DEFAULT '' ,
  `linkedid` VARCHAR(32) NOT NULL DEFAULT '' ,
  `clid` VARCHAR(80) NOT NULL DEFAULT '' ,
  `src` VARCHAR(80) NOT NULL DEFAULT '' ,
  `dst` VARCHAR(80) NOT NULL DEFAULT '' ,
  `dcontext` VARCHAR(80) NOT NULL DEFAULT '' ,
  `channel` VARCHAR(80) NOT NULL DEFAULT '' ,
  `dstchannel` VARCHAR(80) NOT NULL DEFAULT '' ,
  `lastapp` VARCHAR(80) NOT NULL DEFAULT '' ,
  `lastdata` VARCHAR(80) NOT NULL DEFAULT '' ,
  `start` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  `answer` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  `end` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  `duration` INT(11) NOT NULL DEFAULT '0' ,
  `billsec` INT(11) NOT NULL DEFAULT '0' ,
  `disposition` VARCHAR(45) NOT NULL DEFAULT '' ,
  `amaflags` INT(11) NOT NULL DEFAULT '0' ,
  `accountcode` VARCHAR(20) NOT NULL DEFAULT '' ,
  `userfield` VARCHAR(255) NOT NULL DEFAULT '' ,
  `sequence` VARCHAR(32) NOT NULL DEFAULT '' ,
  `peeraccount` VARCHAR(32) NOT NULL DEFAULT '' ,
  PRIMARY KEY (`uniqueid`) ,
  INDEX `start` (`start` ASC) ,
  INDEX `dst` (`dst` ASC) ,
  INDEX `accountcode` (`accountcode` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

Configuracion de ODBC

En /etc/odbc.ini



[asteriskcdr]
Description = MySQL ODBC CDR
Driver = MySQL
Database = asteriskcdr
Server = localhost
User = root
Password = miclave
Port = 3306
Option = 3


Para verificar que este correcto ejecutar : isql asteriskcdr root asteriskcdr

Agregar en /etc/asterisk/res_odbc.conf


[asteriskcdr]
enabled => yes
dsn => asteriskcdr
username => root
password => miclave
pre-connect => yes

Agregar en /etc/asterisk/cdr_adaptive_odbc.conf


[asteriskcdr]
connection=asteriskcdr
table=cdr
alias start => calldate

Con esto estaríamos listo, basta con crear un par de anexos y durante una llamada de prueba realizar lo siguiente:

asterisk -vgr
core set verbose 25

Al final de la llamada podríamos ver algo similar a esto:

 [INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,uniqueid,linkedid,userfield) VALUES ({ ts '2012-11-14 17:26:01' },'"Junior Peluche" <216>','216','4320483','usuario','SIP/0000FFFF0002-00002a5e','SIP/troncalSIP-00002a6f','Dial','SIP/troncalSIP/4320483',98,75,'ANSWERED',3,'13523431962.11721','13523431962.11721','Fijo')]


FIN.

Fuentes:

http://nalvarhu.blogspot.com/2012/11/cdr-en-asterisk-con-cdradaptive-odbc.html
http://www.rodolfomenardi.com.br/cdr-do-asterisk-com-mysql-e-odbc/
http://blogs.digium.com/2012/11/05/how-to-install-asterisk-11-on-centos-6/

NOTA: Gracias a Alejandro Rios nos pudimos dar cuenta de un error en la guía, este ya fue corregido.