SlideShare a Scribd company logo
1 of 42
Download to read offline
Acerca de mi
Y mi trabajo
Ingeniero en Sistemas Computacionales
Administrador de Sistemas
Lider de VoIP/CTI
PriceTravel Holdings
Acerca de mi Trabajo
1800 Empleados / 16 Instalaciones Fisicas Asterisk PBX / 22000 - 44000
Llamadas por Dia / 1000 Max I/O Llamadas Concurrentes
Open Source (Caso de Uso):
Infraestructura de ciente de
Telecomunicaciones
El gran problema
[root@PBX01 ~]# asterisk -rx 'mfcr2 show channels'
Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS
1 MX 20 4 No No IDLE BLOCK
2 MX 20 4 No No IDLE BLOCK
3 MX 20 4 No No IDLE BLOCK
4 MX 20 4 No No IDLE BLOCK
5 MX 20 4 No No IDLE BLOCK
6 MX 20 4 No No IDLE BLOCK
7 MX 20 4 No No IDLE BLOCK
8 MX 20 4 No No IDLE BLOCK
9 MX 20 4 No No IDLE BLOCK
10 MX 20 4 No No IDLE BLOCK
.....
Ninguna llamada I/O en Fallas de Proveedores
Ninguna alerta o aviso en Degradaciones del Sistema
Falta de conocimiento del estado de infraestructura
Monitoreo de Infraestructura
Antes del 2016
=> Con ar en el Servicio del Proveedor
=> Reportes de Usuario y Mesa de Servicio
=> Alertas y scripts muy mal implementadas
=> Uso de la CLI para determinar fallas
=> Ninguna implementacion de Monitoreo a Fallas
Manos a la obra, dar
una solucion
Insight (Monitoreo Automatico Activo & Enriquecido)
Primeros Pasos
Conocer el Estado de la Infraestructura
Algunos scripts en
bash...
Script para reconectar IAX2
#!/bin/bash
if [ -a /usr/sbin/asterisk ] then
IAXTOTALPEERS=$(asterisk -rx 'iax2 show peers' | grep 'iax2 peers' | cut -d' ' -
IAXONLINE=$(asterisk -rx 'iax2 show peers' | grep -o '[0-9]* online' | head -1
IAXOFFLINE=$(asterisk -rx 'iax2 show peers' | grep -o '[0-9]* offline' | head -1
echo "Total IAX2 Peers:$IAXTOTALPEERS"
echo "IAX2 Peers Online:$IAXONLINE"
echo "IAX2 Peers Offline: $IAXOFFLINE"
if [ $IAXOFFLINE != 0 ]; then
IAXOFFLINE=$(service asterisk reload)
echo "Trying to reconnect IAX2 peers by SERVCE ASTERISK RELOAD"
else echo "All IAX2 Peers Online"
fi
fi
Algunos scripts en
bash...
Estado de los dispositivos SIP
#!/bin/bash
####### Asterisk Telephony SIP Peers Monitoring
if [ -a /usr/sbin/asterisk ]; then
SIPTOTALPEERS=$(/usr/sbin/asterisk -rx 'sip show peers' | grep 'sip peers' | cut
SIPONLINE=$(/usr/sbin/asterisk -rx 'sip show peers' | grep -o '[0-9]* online' |
UPTIMEDATA=$(/usr/sbin/asterisk -rx 'core show uptime')
BODY="UPTIME DATA $UPTIMEDATA, SIP Peers(Total): $SIPTOTALPEERS, SIP Peers (onli
curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=psb" --dat
if [ $SIPTOTALPEERS != $SIPONLINE ]; then
curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=psb"
curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=sms"
fi
fi
Software de Monitoreo de
Redes
Observium
Software de Monitoreo de
Redes
DataDog
Desarrollar Integraciones
Asterisk DataDog Module
Available at https://github.com/mafairnet/Asterisk-PBX-Integration-for-Datadog/
Desarrollar Integraciones
Asterisk DataDog Module
Desarrollar Integraciones
Sangoma Vega DataDog Module
Available at https://github.com/mafairnet/datadog-vega-agent/
Desarrollar Integraciones
Sangoma Vega DataDog Module
Insight Primera Fase
Monitoro Activo
Insight Segunda Fase
Monitoreo Enriquecido
Monitoreo Enriquecido
Infraestructura ELK
Monitoreo Enriquecido
Infraestructura ELK
Monitoreo Enriquecido
ElastAlert
=> Analisis en Tiempo Real de Logs
=> Alertas Personalizadas
=> Multiples Servicios de Noti cation Soportados
Monitoreo Enriquecido
Ejemplo de Reglas de ElastAlert
name: Check Operations Director Extension
type: frequency
index: filebeat-*
num_events: 1
timeframe:
minutes: 1
realert:
minutes: 0
filter:
- query:
query_string:
query: "message:unreachable AND 16600"
alert:
- "slack"
alert_text: "nCheck extension 16600nPBX:n{0}nINFO:{1}"
alert_text_type: "alert_text_only"
alert_text_args:
Monitoreo Enriquecido
Noti caciones en Slack por ElastAlert
Insight Tercera Fase
Fallas por parte de Proveedores de
Telecomunicaciones
Insight Tercera Fase
Script de Marcado Automatico de Numeros
#!/usr/bin/python -W ignore::DeprecationWarning
import os
import
import csv
with open('/home/test_numbers.csv', 'r') as f:
reader = csv.reader(f)
numbers_list = list(reader)
print(numbers_list)
for number_to_call in numbers_list:
number_to_call = str(number_to_call[0])
print(number_to_call)
f = open('/var/spool/asterisk/outgoing/calltest_'+number_to_call+'.call','w')
f.write('Channel: Local/s@callmenow/nnCallerId: "TestCall<'+number_to_call+':
f.close()
IVR-AVP
Que es? Y para que un IVR AVP?
=> Validar Servicios de Proveedores de Telecomunicaciones
IVR-AVP
La idea
IVR-AVP
Dejavu
IVR-AVP
Dejavu, como trabaja?
IVR-AVP
Ejemplo Dejavu Python
#!/usr/bin/python
import warnings
import json
warnings.filterwarnings("ignore")
from dejavu import Dejavu
from dejavu.recognize import FileRecognizer, MicrophoneRecognizer
# load config from a JSON file (or anything outputting a python dictionary)
with open("dejavu.cnf") as f:
config = json.load(f)
if __name__ == '__main__':
# create a Dejavu instance
djv = Dejavu(config)
# Fingerprint all the mp3's in the directory we give it
djv.fingerprint_directory("/opt/dejavu/mp3/", [".mp3"])
# Recognize audio from a file
audio = djv.recognize(FileRecognizer, "/opt/dejavu/mp3/test.mp3")
print "From file we recognized: %sn" % audio
IVR-AVP
Arquitectura del Sistema
IVR-AVP
Creacion de Base de Datos de Huellas Digitales
#!/usr/bin/python
import warnings
import json
warnings.filterwarnings("ignore")
from dejavu import Dejavu
from dejavu.recognize import FileRecognizer, MicrophoneRecognizer
# load config from a JSON file (or anything outputting a python dictionary)
with open("/opt/dejavu/dejavu.cnf") as f:
config = json.load(f)
if __name__ == '__main__':
# create a Dejavu instance
djv = Dejavu(config)
#fingerprint new audios
djv.fingerprint_directory("/var/www/html/dejavu/audios/", [".wav",".mp3"])
IVR-AVP
Generador de Llamadas
def writeCallFile(number,id):
f= open("/var/spool/asterisk/outgoing/call_"+number+".call","w+")
f.write('Channel: Local/'+number+'@from-internal-xferrnCallerId: "Aloha"
f.close()
IVR-AVP
Modi cacion en el Dialplan
[wait-ivr]
exten => wait,1,Answer()
exten => wait,n,Wait(300)
exten => wait,n,Hangup()
[macro-aloha]
exten => s,1,NoOp(to-customer)
exten => s,n,Set(CALLERID(num)=9999)
exten => s,n,Set(CALLERID(name)=Aloha)
exten => s,n,Set(TIMEOUT(absolute)=30)
exten => s,n,Answer()
exten => s,n,Playback(/var/lib/asterisk/sounds/en/mrwhite)
IVR-AVP
Procesamiento de Huellas Digitales de Audio
#Obtain pending calls
pendingCalls = obtainPendingCalls()
#Process pending calls
for row in pendingCalls:
id = row[0]
print "ID="+str(id)
callRecordingData = getCallRecording(id)
if not callRecordingData:
print "Not recording found"
else:
fingerPrintingData = checkAudioFingerprintig(callRecordingData)
updateCallsData(callRecordingData[0],fingerPrintingData)
delete_temp_files(tempFolder)
Aloha
RC1
Disponible en https://github.com/mafairnet/aloha/
Dangerous Demo
Pruebas Automatica de Aloha
Conclusions
=> Lidiar con Proveedores de Telecomunicaciones es Di cil
=> Usar / Crear Herramientas de Monitoreo basadas en Open
Source
=> Usar Monitoreo Enriquecido y Automatizar Acciones
=> Automatizar Pequeñas tareas para Resolver Problemas
Q&A
C'est ni
Muchas Gracias
miguel.torres@pricetravel.com - miguel@maf.mx -mafairnet

More Related Content

Similar to Monitoreando estructura de VoIP con open source

Tecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsTecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsn3xasec
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasRafael Seg
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...RootedCON
 
Rompiendo el protocolo: Usos y abusos de TCP/IP
Rompiendo el protocolo: Usos y abusos de TCP/IPRompiendo el protocolo: Usos y abusos de TCP/IP
Rompiendo el protocolo: Usos y abusos de TCP/IPDaniel Torres
 
Curso Avanzado Seguridad Redes
Curso Avanzado Seguridad RedesCurso Avanzado Seguridad Redes
Curso Avanzado Seguridad RedesAntonio Durán
 
Practica 1 iptables
Practica 1 iptablesPractica 1 iptables
Practica 1 iptables1 2d
 
Xc lab-7-nat
Xc lab-7-natXc lab-7-nat
Xc lab-7-nat1 2d
 
ITN_Module_10.pptx
ITN_Module_10.pptxITN_Module_10.pptx
ITN_Module_10.pptxssuser2fc2be
 
6sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_06sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_0Victor Garcia Vara
 
Firewall iptables
Firewall iptablesFirewall iptables
Firewall iptablescercer
 
Comandos dispositivos
Comandos dispositivosComandos dispositivos
Comandos dispositivosJoan Diiz
 
7.1.2.4 packet tracer configuring vp ns (optional) instructions
7.1.2.4 packet tracer   configuring vp ns (optional) instructions7.1.2.4 packet tracer   configuring vp ns (optional) instructions
7.1.2.4 packet tracer configuring vp ns (optional) instructionsJaab Mikrotik
 
Charla Asterisk - UPCI
Charla Asterisk - UPCICharla Asterisk - UPCI
Charla Asterisk - UPCIguest1e22df3
 
Tcpdump
TcpdumpTcpdump
TcpdumpTensor
 
511591245-Comandos-CCNA-v7.pptx
511591245-Comandos-CCNA-v7.pptx511591245-Comandos-CCNA-v7.pptx
511591245-Comandos-CCNA-v7.pptxRonaldoRomero7
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter@ otsuka752
 

Similar to Monitoreando estructura de VoIP con open source (20)

Firewall hw
Firewall hwFirewall hw
Firewall hw
 
Voice OVER IP
Voice OVER IPVoice OVER IP
Voice OVER IP
 
Tecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsTecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con ids
 
Seguridad so pii_2011
Seguridad so pii_2011Seguridad so pii_2011
Seguridad so pii_2011
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemas
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
 
Rompiendo el protocolo: Usos y abusos de TCP/IP
Rompiendo el protocolo: Usos y abusos de TCP/IPRompiendo el protocolo: Usos y abusos de TCP/IP
Rompiendo el protocolo: Usos y abusos de TCP/IP
 
Curso Avanzado Seguridad Redes
Curso Avanzado Seguridad RedesCurso Avanzado Seguridad Redes
Curso Avanzado Seguridad Redes
 
Practica 1 iptables
Practica 1 iptablesPractica 1 iptables
Practica 1 iptables
 
Xc lab-7-nat
Xc lab-7-natXc lab-7-nat
Xc lab-7-nat
 
ITN_Module_10.pptx
ITN_Module_10.pptxITN_Module_10.pptx
ITN_Module_10.pptx
 
6sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_06sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_0
 
Firewall iptables
Firewall iptablesFirewall iptables
Firewall iptables
 
Comandos dispositivos
Comandos dispositivosComandos dispositivos
Comandos dispositivos
 
7.1.2.4 packet tracer configuring vp ns (optional) instructions
7.1.2.4 packet tracer   configuring vp ns (optional) instructions7.1.2.4 packet tracer   configuring vp ns (optional) instructions
7.1.2.4 packet tracer configuring vp ns (optional) instructions
 
Lab2 bluetooth.docx
Lab2 bluetooth.docxLab2 bluetooth.docx
Lab2 bluetooth.docx
 
Charla Asterisk - UPCI
Charla Asterisk - UPCICharla Asterisk - UPCI
Charla Asterisk - UPCI
 
Tcpdump
TcpdumpTcpdump
Tcpdump
 
511591245-Comandos-CCNA-v7.pptx
511591245-Comandos-CCNA-v7.pptx511591245-Comandos-CCNA-v7.pptx
511591245-Comandos-CCNA-v7.pptx
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter
 

More from Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

More from Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Recently uploaded

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 

Recently uploaded (19)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 

Monitoreando estructura de VoIP con open source

  • 1.
  • 2.
  • 3. Acerca de mi Y mi trabajo Ingeniero en Sistemas Computacionales Administrador de Sistemas Lider de VoIP/CTI PriceTravel Holdings
  • 4. Acerca de mi Trabajo 1800 Empleados / 16 Instalaciones Fisicas Asterisk PBX / 22000 - 44000 Llamadas por Dia / 1000 Max I/O Llamadas Concurrentes
  • 5. Open Source (Caso de Uso): Infraestructura de ciente de Telecomunicaciones
  • 6. El gran problema [root@PBX01 ~]# asterisk -rx 'mfcr2 show channels' Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS 1 MX 20 4 No No IDLE BLOCK 2 MX 20 4 No No IDLE BLOCK 3 MX 20 4 No No IDLE BLOCK 4 MX 20 4 No No IDLE BLOCK 5 MX 20 4 No No IDLE BLOCK 6 MX 20 4 No No IDLE BLOCK 7 MX 20 4 No No IDLE BLOCK 8 MX 20 4 No No IDLE BLOCK 9 MX 20 4 No No IDLE BLOCK 10 MX 20 4 No No IDLE BLOCK ..... Ninguna llamada I/O en Fallas de Proveedores Ninguna alerta o aviso en Degradaciones del Sistema Falta de conocimiento del estado de infraestructura
  • 7. Monitoreo de Infraestructura Antes del 2016 => Con ar en el Servicio del Proveedor => Reportes de Usuario y Mesa de Servicio => Alertas y scripts muy mal implementadas => Uso de la CLI para determinar fallas => Ninguna implementacion de Monitoreo a Fallas
  • 8. Manos a la obra, dar una solucion Insight (Monitoreo Automatico Activo & Enriquecido)
  • 9. Primeros Pasos Conocer el Estado de la Infraestructura
  • 10. Algunos scripts en bash... Script para reconectar IAX2 #!/bin/bash if [ -a /usr/sbin/asterisk ] then IAXTOTALPEERS=$(asterisk -rx 'iax2 show peers' | grep 'iax2 peers' | cut -d' ' - IAXONLINE=$(asterisk -rx 'iax2 show peers' | grep -o '[0-9]* online' | head -1 IAXOFFLINE=$(asterisk -rx 'iax2 show peers' | grep -o '[0-9]* offline' | head -1 echo "Total IAX2 Peers:$IAXTOTALPEERS" echo "IAX2 Peers Online:$IAXONLINE" echo "IAX2 Peers Offline: $IAXOFFLINE" if [ $IAXOFFLINE != 0 ]; then IAXOFFLINE=$(service asterisk reload) echo "Trying to reconnect IAX2 peers by SERVCE ASTERISK RELOAD" else echo "All IAX2 Peers Online" fi fi
  • 11. Algunos scripts en bash... Estado de los dispositivos SIP #!/bin/bash ####### Asterisk Telephony SIP Peers Monitoring if [ -a /usr/sbin/asterisk ]; then SIPTOTALPEERS=$(/usr/sbin/asterisk -rx 'sip show peers' | grep 'sip peers' | cut SIPONLINE=$(/usr/sbin/asterisk -rx 'sip show peers' | grep -o '[0-9]* online' | UPTIMEDATA=$(/usr/sbin/asterisk -rx 'core show uptime') BODY="UPTIME DATA $UPTIMEDATA, SIP Peers(Total): $SIPTOTALPEERS, SIP Peers (onli curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=psb" --dat if [ $SIPTOTALPEERS != $SIPONLINE ]; then curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=psb" curl -G -v http://127.0.0.1:88/ucom/index.php --data-urlencode "media=sms" fi fi
  • 12. Software de Monitoreo de Redes Observium
  • 13. Software de Monitoreo de Redes DataDog
  • 14. Desarrollar Integraciones Asterisk DataDog Module Available at https://github.com/mafairnet/Asterisk-PBX-Integration-for-Datadog/
  • 16. Desarrollar Integraciones Sangoma Vega DataDog Module Available at https://github.com/mafairnet/datadog-vega-agent/
  • 22. Monitoreo Enriquecido ElastAlert => Analisis en Tiempo Real de Logs => Alertas Personalizadas => Multiples Servicios de Noti cation Soportados
  • 23. Monitoreo Enriquecido Ejemplo de Reglas de ElastAlert name: Check Operations Director Extension type: frequency index: filebeat-* num_events: 1 timeframe: minutes: 1 realert: minutes: 0 filter: - query: query_string: query: "message:unreachable AND 16600" alert: - "slack" alert_text: "nCheck extension 16600nPBX:n{0}nINFO:{1}" alert_text_type: "alert_text_only" alert_text_args:
  • 24. Monitoreo Enriquecido Noti caciones en Slack por ElastAlert
  • 25. Insight Tercera Fase Fallas por parte de Proveedores de Telecomunicaciones
  • 26. Insight Tercera Fase Script de Marcado Automatico de Numeros #!/usr/bin/python -W ignore::DeprecationWarning import os import import csv with open('/home/test_numbers.csv', 'r') as f: reader = csv.reader(f) numbers_list = list(reader) print(numbers_list) for number_to_call in numbers_list: number_to_call = str(number_to_call[0]) print(number_to_call) f = open('/var/spool/asterisk/outgoing/calltest_'+number_to_call+'.call','w') f.write('Channel: Local/s@callmenow/nnCallerId: "TestCall<'+number_to_call+': f.close()
  • 27. IVR-AVP Que es? Y para que un IVR AVP? => Validar Servicios de Proveedores de Telecomunicaciones
  • 29.
  • 32. IVR-AVP Ejemplo Dejavu Python #!/usr/bin/python import warnings import json warnings.filterwarnings("ignore") from dejavu import Dejavu from dejavu.recognize import FileRecognizer, MicrophoneRecognizer # load config from a JSON file (or anything outputting a python dictionary) with open("dejavu.cnf") as f: config = json.load(f) if __name__ == '__main__': # create a Dejavu instance djv = Dejavu(config) # Fingerprint all the mp3's in the directory we give it djv.fingerprint_directory("/opt/dejavu/mp3/", [".mp3"]) # Recognize audio from a file audio = djv.recognize(FileRecognizer, "/opt/dejavu/mp3/test.mp3") print "From file we recognized: %sn" % audio
  • 34. IVR-AVP Creacion de Base de Datos de Huellas Digitales #!/usr/bin/python import warnings import json warnings.filterwarnings("ignore") from dejavu import Dejavu from dejavu.recognize import FileRecognizer, MicrophoneRecognizer # load config from a JSON file (or anything outputting a python dictionary) with open("/opt/dejavu/dejavu.cnf") as f: config = json.load(f) if __name__ == '__main__': # create a Dejavu instance djv = Dejavu(config) #fingerprint new audios djv.fingerprint_directory("/var/www/html/dejavu/audios/", [".wav",".mp3"])
  • 35. IVR-AVP Generador de Llamadas def writeCallFile(number,id): f= open("/var/spool/asterisk/outgoing/call_"+number+".call","w+") f.write('Channel: Local/'+number+'@from-internal-xferrnCallerId: "Aloha" f.close()
  • 36. IVR-AVP Modi cacion en el Dialplan [wait-ivr] exten => wait,1,Answer() exten => wait,n,Wait(300) exten => wait,n,Hangup() [macro-aloha] exten => s,1,NoOp(to-customer) exten => s,n,Set(CALLERID(num)=9999) exten => s,n,Set(CALLERID(name)=Aloha) exten => s,n,Set(TIMEOUT(absolute)=30) exten => s,n,Answer() exten => s,n,Playback(/var/lib/asterisk/sounds/en/mrwhite)
  • 37. IVR-AVP Procesamiento de Huellas Digitales de Audio #Obtain pending calls pendingCalls = obtainPendingCalls() #Process pending calls for row in pendingCalls: id = row[0] print "ID="+str(id) callRecordingData = getCallRecording(id) if not callRecordingData: print "Not recording found" else: fingerPrintingData = checkAudioFingerprintig(callRecordingData) updateCallsData(callRecordingData[0],fingerPrintingData) delete_temp_files(tempFolder)
  • 40. Conclusions => Lidiar con Proveedores de Telecomunicaciones es Di cil => Usar / Crear Herramientas de Monitoreo basadas en Open Source => Usar Monitoreo Enriquecido y Automatizar Acciones => Automatizar Pequeñas tareas para Resolver Problemas
  • 41. Q&A