Enviado por admin el
Ya hemos hablado en distintas ocasiones de como instalar y configurar Homer SIP Capture Server. En esta entrada veremos como instalar la ultima versión disponible en CentOS 7.X y recibir la señalización SIP y las estadisticas del flujo media desde una Asterisk 13.9.1 (funciona de forma nativa solamente con el canal PJSIP).
Empezamos con la instalación que se ha realizado en un VPS de Digital Ocean de 4GB de RAM (el minimo indispensable). Accedemos vía SSH y actualizamos el sistema:
yum update -y
La hora:
rm /etc/localtime
ln -s /usr/share/zoneinfo/America/Bogota /etc/localtime
El servidor para sincronizar la hora remotamente:
yum install ntp -y
systemctl enable ntpd
systemctl start ntpd
Reiniciamos el VPS:
rebooot
Volvemos a acceder vía SSH e instalamos Homer SIP Capture server a Partir del script disponible:
cd /usr/src
wget https://cdn.rawgit.com/sipcapture/homer-installer/master/homer_installer.sh
chmod +x homer_installer.sh
./homer_installer.sh
La contraseña que aparecerá en la primera linea (cambia en cada instalación) tendremos que utilizarla en la dos lineas donde se solicita y también en esta parte:
Luego una vez terminada la ejecución del script tenemos que finalizar la instalación con:
yum install perl-DBI perl-DBD* -y
nano /var/www/html/api/preferences.php
donde modificamos la zona horaria para que quede (para Colombia):
define('HOMER_TIMEZONE', "America/Bogota");
Guardamos los cambios y modificamos la configuración de MySQL:
nano /etc/my.cnf
borramos todo el contenido previo del archivo y pegamos:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections = 8000
myisam_sort_buffer_size = 128M
join_buffer_size = 4M
read_buffer_size = 4M
sort_buffer_size = 8M
#table_cache = 1800
thread_cache_size = 384
wait_timeout = 7200
connect_timeout = 10
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 1000
read_rnd_buffer_size = 524288
bulk_insert_buffer_size = 8M
query_cache_limit = 4M
query_cache_size =128M
query_cache_type = 1
query_prealloc_size = 65536
query_alloc_block_size = 131072
thread_cache_size = 16
open_files_limit = 24000
table_open_cache = 1024
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 128M
delayed_insert_limit = 8000
delayed_queue_size = 1000000
delayed_insert_timeout = 600
max_delayed_threads = 600
max_heap_table_size=2G
validate-password=off
Reiniciamos MySQL:
systemctl restart mysqld
Ejecutamos el script que creará la tablas diarias para guardar los datos recogidos por el servidor:
/opt/homer_rotate
Esta operación se ejecuta solamente una vez ya que luego un cronjob configurado por el script se encargará de la tarea.
Se vuelve a la centralita Asterisk donde se configura el archivo hep.conf para que quede:
[general]
enabled = yes
capture_address=1.2.3.4:9060
capture_id = 2464
En la tercera linea se pone la IP del servidor de captura y el puerto (predefinido 9060). Ahí estará a la escucha el servidor Kamailio que luego enviará todos los datos capturados a la base de datos homer_data.
Luego se accede a la parte Web de Homer SIP Capture Server:
donde se pone:
usuario: admin
contraseña: test1234
Si todo ha funcionado bien, en CALLS:
Asterisk 13.9.1 parece tener problemas a enviar el trafico RTCP. Personalmente lo he solucionado como sigue (aunque no creo que sea la mejor opción):
nano res_hep.c
se modifica este bloque:
if (ast_sockaddr_is_ipv4(&capture_info->src_addr) != ast_sockaddr_is_ipv4(&capture_info->dst_addr)) {
ast_log(AST_LOG_NOTICE, "Unable to send packet: Address Family mismatch between source/destination\n");
return -1;
}
Para que quede (comentado):
/*
if (ast_sockaddr_is_ipv4(&capture_info->src_addr) != ast_sockaddr_is_ipv4(&capture_info->dst_addr)) {
ast_log(AST_LOG_NOTICE, "Unable to send packet: Address Family mismatch between source/destination\n");
return -1;
}
*/
Se guardan los cambioy y se vuelve a compilar Asterisk. Primero se para:
systemctl stop asterisk
cd ..
make distclean
./configure --libdir=/usr/lib64 --with-pjproject-bundled
make
make install
Si aparece esta advertencia:
WARNING WARNING WARNING
Your Asterisk modules directory, located at
/usr/lib64/asterisk/modules
contains modules that were not installed by this
version of Asterisk. Please ensure that these
modules are compatible with this version before
attempting to run Asterisk.
cdr_mysql.so
format_mp3.so
chan_rtp.so
res_config_mysql.so
app_meetme.so
codec_g729-ast130-gcc4-glibc2.2-x86_64-barcelona.so
res_pjsip_empty_info.so
app_mysql.so
WARNING WARNING WARNING
No hay que preocuparse ya que todos los modulos indicados han sido compilados con la misma versión de Asterisk.
Me cuentan.
2 comentarios
Buenas, Andrea tienes
Enviado por andy el
Buenas,
Andrea tienes pensado liberar el libro de Asterisk 13?
Libro Asterisk 13.X
Enviado por admin el
Hola,
si lo tengo planeado para septiembre más o menos.
Saludos