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!!


jueves, 19 de mayo de 2016

Compara campos de 2 tablas en SQL SERVER 2014



1) encontrar los registros de Tabla1 que no existen en Tabla2 de la siguiente manera:

SELECT [Tabla1].* FROM [Tabla1] LEFT JOIN [Tabla2] ON [Tabla1].[ID] =
[Tabla2].[ID] WHERE [Tabla2].[ID] IS NULL

2) encontrar los registros de Tabla2 que no existen en Tabla1 de la siguiente manera:

SELECT [Tabla2].* FROM [Tabla1] RIGHT JOIN [Tabla2] ON [Tabla1].[ID] =
[Tabla2].[ID] WHERE [Tabla1].[ID] IS NULL

3) encontrar los registros de Tabla1 y Tabla2 que, con la misma clave,tienen alguna diferencia en el valor de alguno de los otros campos, de la siguiente manera:

SELECT [Tabla1].*, [Tabla2].* FROM [Tabla1] INNER JOIN [Tabla2] ON
[Tabla1].[ID] = [Tabla2].[ID] WHERE [Tabla1].[Campo1] <> [Tabla2].[Campo1]
OR [Tabla1].[Campo2] <> [Tabla2].[Campo2]




-------Saludos!!!


domingo, 15 de mayo de 2016

Instalar Codec g729 Asterisk 13


1.- Descargar el Codec g729 Free.

En el siguiente link , se encuentra todos los codec de acuerdo a la arquitectura del computador.
http://asterisk.hosting.lv/

2.- En nuestro caso vamos a instalar el codec para 64 bits en nuestro caso el barcelona lo cual funciona bien.

* Ingresar a la ruta y descargar el codec # cd /usr/lib/asterisk/modules/

wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc2.2-x86_64-barcelona.so


3.- Renombrar el archivo a codec_g729.so

 mv codec_g729-ast130-gcc4-glibc2.2-x86_64-barcelona.so codec_g729.so

4.- Dar permiso de escritura al archivo .

# chmod +X codec_g729.so

5.- Ingresar a Asterisk y cargar el modulo .

asterisk*CLI> module load codec_g729.so


5.- Verificar si el modulo se cargo bien con el comando # asterisk*CLI> core show codecs

* Si todo sale bien debería figurar el codec instalado.



Saludos!!