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 .
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!!
sábado, 14 de mayo de 2016
Instalacion Asterisk 13 en Debian 8
1.- Instalar dependencias para una correcta instalacion de asterisk 13.
# apt-get update
# apt-get install build-essential checkinstall ncurses-dev libxml2-dev libsqlite3-dev libssl-dev uuid-dev build-essential libxml2-dev libssl-dev libncurses-dev libnewt-dev doxygen subversion libmysqlclient-dev unixodbc-dev libmyodbc sqlite3 libsqlite3-dev
# apt-get install linux-headers-'uname -r'
CURL
--------
apt-get install curl libcurl3 php5-curl
ODBC
-----------
apt-get install tdsodbc unixodbc
SNMP (opcional)
---------------------
apt-get install snmpd
2.- Descargar los paquetes para la compilacion de Asterisk 13.
- Ingresar al directorio -> cd /usr/src/
- Descargar Dahdi
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.0+2.10.0.tar.gz
- Desempaquetar Libpri # tar -xf dahdi-linux-complete-2.10.0+2.10.0.tar.gz
- Ingresar al directorio # cd dahdi-linux-complete-2.10.0+2.10.0/
- Compilar e instalar # make
# make install
# make config
- Descargar libpri
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
- Desempaquetar Libpri # tar -xf libpri-current.tar.gz
- Ingresar al directorio # cd libpri-1.5.0/
- Compilar e instalar # make && make install
wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-13.1-current.tar.gz
- Desempaquetar Libpri # tar -xf asterisk-certified-13.1-current.tar.gz
- Ingresar al directorio # cd asterisk-certified-13.1-cert7/
* Instalar los paquetes faltantes con un script que asterisk contiene en su direcctorio..
# ./usr/src/asterisk-certified-13.1-cert7/contrib/scripts/install_prereq install
#############################################
## install completed successfully
#############################################
# ./configure --libdir=/usr/lib64 -- En caso de 64bits
# make
* Si te muestra el siguiente error instalar el paquete PJSIP.
# cd /usr/src/
# wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
# tar -xjf pjproject-2.3.tar.bz2
# cd pjproject-2.3
# ./configure --prefix=/usr/lib --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
# make dep && make && make install
# ldconfig
* Volver a compilar
# make
# make install
# make samples
# make config
# ldconfig -v
# make install
# make samples
# make config
# ldconfig -v
Si la instalacion es exitosa debe mostras la siguiente imagen.
miércoles, 11 de mayo de 2016
Insertar datos de Txt a Mysql por PHP
1.- Contenido del archivo TXT.
123456789|43374708|945508914|demo
223456789|53374708|945508914|demo2
323456789|63374708|945508915|demo3
2.- Creamos la tabla para esta prueba .
CREATE TABLE nom_tabla
(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
num1 VARCHAR(50),
num2 VARCHAR(50),
num3 VARCHAR(50),
num4 VARCHAR(50)
)
3.- Creamos la conexion .
<?php
$db = mysqli_connect("localhost", "root", "12345678") or die("Could not connect.");
if(!$db)
die("no db");
if(!mysqli_select_db($db,"sms"))
die("No database selected.");
?>
4.- Creamos la logica para el insert
Saludos...
Suscribirse a:
Entradas (Atom)







