lunes, 9 de octubre de 2017

REGISTRO CRON DEBIAN


Los registros actuales se guardan en la siguiente ruta:
/var/log/syslog
Para crear un archivo log propio realizamos la siguiente configuración.

Abrir el archivo
/etc/rsyslog.d/50-default.conf
Encuentre la línea que comienza por:
#cron.*
descomente esa línea, guarde el archivo y reinicie rsyslog:
sudo service rsyslog restart
Ahora debe ver un archivo de registro cron aquí:
/var/log/cron.log
La actividad Cron se registrará en este archivo (además de syslog).

lunes, 19 de septiembre de 2016

Google TTS en ASTERISK


Instalar Google TTS en Centos 7
1.- Instalar Dependencias para su correcto funcionamiento.

yum install perl-libwww-perl perl-DBI perl-DBD-MySQL perl-GD

#cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:csbuild:Perl/CentOS_7/home:csbuild:Perl.repo

yum install perl-Crypt-SSLeay

# Esta librería es importante para la correcta ejecución del tts.
yum -y install perl-LWP-Protocol-https

yum -y install sox
yum install  libSDL*
Liberia Mpg123

#Instalando desde repositorio 
cd /etc/yum.repos.d/
wget http://downloads2.goautodial.org/centos/7/gotestwin.repo
yum update
yum -y install mpg123

# Instalando desde paquete Rpm.

wget http://downloads2.goautodial.org/centos/7/current/x86_64/RPMS/mpg123-1.20.1-1.x86_64.rpm
rpm -ivh mpg123-1.20.1-1.x86_64.rpm



2.- Descargar la libreria de GoogleTTS.
Ingresar a la siguiente ruta y descargar el repositorio por Git.

# cd /var/lib/asterisk/agi-bin/

# git clone git://github.com/zaf/asterisk-googletts
Descargado , brindamos permiso al directorio y su contenido

# chmod -R 777 asterisk-googletts/



3.-  Pruebas

Para que el TTS se encuentre funcional , creamos un .WAV desde un texto.

Ingresamos a la ruta : /var/lib/asterisk/agi-bin/asterisk-googletts/cli  .

Ejecutamos el comando perl con la librería para la creación, si todo salio bien 
se tiene que visualizar el .wav

# perl googletts-cli.pl -o miaudio.wav -l en -t "TEXTO DEL AUDIO"






4.- Dialplan para las pruebas desde Asterisk.

[Tucontexto]
exten => _105,1,Noop(-------------------Demo tts-------------------)
same => n,agi(/var/lib/asterisk/agi-bin/asterisk-googletts/googletts.agi,"Esta es una simple prueba en español.",es)




Si todo salio bien se debería escuchar el audio desde el texto .Saludos!!!





viernes, 22 de julio de 2016

Error al cargar libasteriskssl.so.1 en ASTERISK



Error al cargar libasteriskssl.so.1 en ASTERISK



1- Primero verificado todas las dependecias para el inicio de Asterisk.

Con el comando ldd podemos verificar  que el modulo libasteriskssl.so.1 no tiene ruta de directorio.

2.- Buscamos el archivo libasteriskssl.so.1 dentro de la raiz.


3.- Creamos el acceso directo .
Ingresamos a la ruta donde se encontró el archivo y creamos el acceso directo  . # cd /usr/lib64

root@ServerPBX:/usr/lib64#  ln -s /usr/lib64/libasteriskssl.so.1 /usr/lib


4.-  # Service asterisk restart

root@ServerPBX:/usr/lib64# asterisk -rvvvvvvvv
Asterisk certified/11.6-cert13, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk certified/11.6-cert13 currently running on ServerPBX (pid = 6776)
ServerPBX*CLI>

martes, 19 de julio de 2016

Cambiar ZONA horaria en Linux



Muchas veces al instalar un Server o VPS nos encontramos con una zona horaria distinto a nuestro Pais y nos toca cambiarlo a nivel de comando, para cambiar hay realizar los siguientes cambios.

Al ejecutar el comando "date" la información se obtiene del archivo:

/etc/localtime

Las zonas horarias disponibles se encuentra en la siguiente ruta :

/usr/share/zoneinfo/

Para establecer la zona horaria  a Perú Time(PET), hay que eliminar la zona horaria actual.

#rm -rf /etc/localtime

Luego hacer un enlace permanente de la ruta de las zonas horarias al LocalTime

#ln -sf /usr/share/zoneinfo/America/Lima /etc/localtime


Realizar pruebas lanzando nuevamente el comanto "date"









jueves, 23 de junio de 2016

Capturar traza SIP


Muchas veces se quier leer la señalizacion SIP y capturar la traza para su lectura, hasta ahora eh usado el TCDUMP lo cual me va bien , pero también hay uno que se puede leer desde consola llamado SNGREP que también funciona perfecto, aquí les dejo las 2 formas .

1.- Usando TCPdump.

  -Para instalar ejecutar el siguiente comando .

  # yum install tcpdump

  - Ejecución:

tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /var/www/html/name.pcap

-i           tarjeta de red donde se quiere capturar los paquetes
-n          no se convierten las direcciones IP en nombres de dominio
-s          cuanto bytes capturar para cada paquete. 0 significa que no se ponen limites
-vvv     el nivel de verbosidad en los paquetes capturados
-w        guardar los paquetes en formato PCAP para ser leido por Wireshark


#También podemos capturar por IPS de origen y destino con el siguiente comando :

tcpdump -i eth0 -s0 -w /var/www/html/name.pcap \(dst 192.168.1.1 or 205.16.17.18\)
and \(src 192.168.1.1 or 204.16.17.18\) -vvv


Para finalizar y guardar todo lo capturado presionar (CRTL-C).


2.- Usando SNGREP :

- Se añaden los repositorios IRONTEC:

vim /etc/yum.repos.d/irontec.repo

 - Se copian las siguiente lineas al archivo y lo guardamos.

[irontec]
name=Irontec RPMs repository
baseurl=http://packages.irontec.com/centos/$releasever/$basearch/

- Se añade la clave publica de IRONTEC

rpm --import http://packages.irontec.com/public.key

- Para la instalación ejecutar el comando

yum install sngrep


Para activar la captura en una interfaz de red :

sngrep -d eth0

Abrir un archivo pcap:

sngrep -I archivo.pcap

Guardar la captura en un archivo pcap:

sngrep –O archivo.pcap


Saludos,

miércoles, 1 de junio de 2016

Error “no crontab for root”



Al ejecutar "crontab -e" nos da el error Error "no crontab for root"


Solución:

Este erro figura porque no se tiene el archivo cargado para la ejecucion del crond.

#crontab /etc/crontab

Reiniciar el crontab

#service crond restart

Volvemos a ejecutar el comando "crontab -e" y listo .

Saludos!!

lunes, 23 de mayo de 2016

CDR EN ASTERISK




1.- Ingresar como root a mysql  :

# mysql -u root -p

2.- Crear usuario mysql para el cdr :

# Grant all privileges on  asteriskcdr.* to 'userbd'@'%' identified by 'password' with grant option;

3.- Crear la tabla para guardar los datos del cdr.

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;

4.- Editamos  el archivo  /etc/asterisk/cdr_mysql.so , y agregamos las siguientes lineas.

[global]
hostname=ip de la BD
dbname=asteriskCDR
table=cdr
password=de la bd
user=asterisk
port=3306
sock=/tmp/mysql.sock

[columns]
;static "" => ;alias => alias start => calldate
alias callerid => clid
;alias src => src
;alias dst => dst
;alias dcontext => dcontext
;alias channel => channel
;alias dstchannel => dstchannel
;alias lastapp => lastapp
;alias lastdata => lastdata
;alias duration => duration
;alias billsec => billsec
;alias disposition => disposition
;alias amaflags => amaflags
;alias accountcode => accountcode
;alias userfield => userfield
;alias uniqueid => uniqueid

Guardamos el archivo y luego ingresamos a CLI de asterisk .

5.- Verificamos si contamos con el modulo instalado .

CLI> module show like cdr_mysql.so
Module                         Description                              Use Count
cdr_mysql.so                   MySQL CDR Backend                        0
1 modules loaded

6.- Para iniciar la grabación del  CDR en la database descargamos y cargamos el módulo:

CLI> module unload cdr_mysql.so
== Unregistered 'mysql' CDR backend


*CLI> module load cdr_mysql.so
Loaded cdr_mysql.so
  == Parsing '/etc/asterisk/cdr_mysql.conf': Found
 Loaded cdr_mysql.so => (MySQL CDR Backend)

7.- Luego comprobar si  todo esta  bien:

*CLI> cdr mysql status
Connected to asteriskcdr@localhost, port 3306 using table cdr for 51 seconds.
  Wrote 0 records since last restart.


*CLI> cdr show status

Call Detail Record (CDR) settings
----------------------------------
  Logging:                    Enabled
  Mode:                       Simple
  Log unanswered calls:       No
  Log congestion:             No

* Registered Backends
  -------------------
    mysql
    Adaptive ODBC
    csv
    cdr-custom



Saludos!!