SlideShare a Scribd company logo
Homer VoIP Monitoring
From zero to hero
Workshop - Kamailio World 2017
Giacomo Vacca
@giavac
About me
I design, develop and maintain RTC platforms based on Open
Source applications since 2001.
Using Kamailio since it was still OpenSER as core component
for fixed, mobile and WebRTC services (Truphone, Libon,
Nexmo and many others).
Currently owner of RTCSoft (rtcsoft.net), member of sipcapture team, RTC
Architect at Nexmo
@giavac - https://github.com/giavac
Kamailio World 2017 - Homer Workshop
Interact in real time during the workshop
The Homer team is available now at
https://gitter.im/sipcapture/home
Kamailio World 2017 - Homer Workshop
Introduction
The need for Homer - VoIP Monitoring
and Troubleshooting
- Understand exactly what happened in your platform,
analysing specific calls or events.
- Search through a massive amount of collected data
- Born with a SIP-centric view, then evolved (and still evolving)
towards QoS, RTCP, logs and custom events.
- Homer is already integrated with the most successful
Open Source RTC applications (Kamailio, OpenSIPS,
FreeSWITCH, Asterisk, RTPEngine, Janus).
- Homer can be used in other cases too (with captagent,
sngrep, hepipe.js).
Kamailio World 2017 - Homer Workshop
Key Features
- Open Source, modular
- Easy to deploy in various scenarios
- Easy to extend/adapt
- This is how many become contributors
- Very high performances, with a clear scaling strategy
- Carrier grade networks but also smaller deployments
- Can be useful during development
- Hosted vs Cloud
- http://sipcapture.org/#cloud
Kamailio World 2017 - Homer Workshop
The ecosystem - native support
- A dedicated binary protocol: HEP
- https://github.com/sipcapture/HEP/blob/master/docs/HEP3_rev12.pdf
- Wireshark dissector: https://github.com/sipcapture/hep-wireshark
- OSS apps native support
- Kamailio (siptrace, sipcapture)
- OpenSIPS (siptrace, sipcapture, proto_hep)
- FreeSWITCH (sofia)
- Asterisk (res_hep)
- RTPEngine (--homer=...)
- sngrep
Kamailio World 2017 - Homer Workshop
The ecosystem - external support
- External support
- Janus (via events plugin)
- FreeSWITCH for non-SIP events (via ESL)
- captagent for any other need (including ERSPAN encapsulation)
- sngrep
- Libraries in various languages
- C
- Java
- JS
- Go
- Perl
- Python
- Erlang
Kamailio World 2017 - Homer Workshop
Architecture
Main Architectural Components
● Kamailio: a high-performance collector of data
○ Store in DB
○ Send to ElasticSearch
● A DB: mysql/postgres
● An API (PHP-based, easy to debug and extend)
○ https://github.com/sipcapture/homer-api
● A GUI (Angular) and web server (nginx, apache)
○ https://github.com/sipcapture/homer-ui
Kamailio World 2017 - Homer Workshop
Data
- SIP signalling
- RTCP (and RTCP-XR) reports
- Logs
- End of call QoS reports
- WebRTC
- ISUP
- Periodic QoS reports from RTPAgent
Kamailio World 2017 - Homer Workshop
Call Info
- Full SIP/SDP storage with precise timestamps
- RTCP reports
- Custom events/logs correlated to call flows
- Multiple-legs correlation
- Need to carry other leg’s Call ID in custom SIP header
Kamailio World 2017 - Homer Workshop
A search result with packet list and details
Kamailio World 2017 - Homer Workshop
Call Flows
- One key feature: Correlation of separate SIP legs into
one “call”
- Use custom SIP headers to carry info on other legs’ Call IDs
Kamailio World 2017 - Homer Workshop
A simple call flow
Kamailio World 2017 - Homer Workshop
Collaboration Tools
Call flows can be shared by:
- Extracting pcaps
- Extracting PNGs
- Sharing a link
This is where collaborative debugging really gets a boost
Kamailio World 2017 - Homer Workshop
Customizations - examples
- Stats on SIP error codes per country
- Needs a custom SIP header (P-Dest-Stats) from producers
- ASR/ACD per destination/source IP/group
- ASR/ACD per component
- Define your own stats and alarms
#!ifdef WITH_HOMER_DEST_STATS
route(PARSE_DEST_STATS);
#!endif
Kamailio World 2017 - Homer Workshop
The Key Role of Kamailio
- Receive and decode HEP data
- With kamailio 5: nonsip_hook and event_route[sipcapture:request]
- Write on DB
- Generate statistics
- Custom statistics
- Optionally GeoIP details
- Can transmit data to ElasticSearch
Kamailio World 2017 - Homer Workshop
Homer kamailio.cfg 1/2
#!substdef "!HOMER_DB_USER!homer!g"
#!substdef "!HOMER_DB_PASSWORD!homer_password!g"
#!substdef "!HOMER_LISTEN_PROTO!udp!g"
#!substdef "!HOMER_LISTEN_IF!0.0.0.0!g"
#!substdef "!HOMER_LISTEN_PORT!9060!g"
…
listen=HOMER_LISTEN_PROTO:HOMER_LISTEN_IF:HOMER_LISTEN_PORT
…
sip_capture($var(dest_table));
Kamailio World 2017 - Homer Workshop
Homer kamailio.cfg 2/2
modparam("sipcapture", "db_url", "mysql://HOMER_DB_USER:HOMER_DB_PASSWORD@127.0.0.1/homer_data")
modparam("sipcapture", "capture_on", 1)
modparam("sipcapture", "hep_capture_on", 1)
modparam("sipcapture", "insert_retries", 5)
modparam("sipcapture", "insert_retry_timeout", 10)
Kamailio World 2017 - Homer Workshop
Multi-node And Scaling
- Write rate is the bottleneck
- Kamailio is a key component for fast writes
- Sharding by method or Call ID
- Distribute writes across multiple mysql instances
- Sharding upported by siptrace module and captagent
- Producers of data in separate data centres
- Keep the data local when possible
- Reads can be performed across several nodes
- Acceptable to be much slower than writes
- Other approaches
- UDP-level load balancing
Kamailio World 2017 - Homer Workshop
Distribution across Data Centres
Kamailio World 2017 - Homer Workshop
Sharding
Kamailio World 2017 - Homer Workshop
Deployments
Installation Strategies
- Bash script
- Docker
- Single and Multi-Container
- Suitable for Kubernetes & Co.
- Puppet
- Master/Slave
- Standalone
- To manage Docker containers
- Custom
- Often the DB installation and setup is delegated to a DBA team
Kamailio World 2017 - Homer Workshop
A Minimalistic Installation
- Homer can fit into one single host
- Useful for small deployments and development
- https://github.com/sipcapture/homer-installer
- Debian 8 and CentOS 7
bash <( curl -s https://cdn.rawgit.com/sipcapture/homer-installer/master/homer_installer.sh )
Default credentials: admin/test123
Kamailio World 2017 - Homer Workshop
Docker Installation
https://github.com/sipcapture/homer-docker
- Based on Docker Compose
- One container for all or...
- One container per service
- Kamailio
- mysql
- API/Web
- An additional container for dashboard persistence
- Integrates well with external DBs
- USE_REMOTE_MYSQL=true in homer.env
Kamailio World 2017 - Homer Workshop
Containers in action
- git clone
https://github.com/sipcapture/homer-docker.git
- cd homer-docker
- docker-compose build
- docker-compose up -d
- docker ps
Kamailio World 2017 - Homer Workshop
Puppet module
- Debian, Ubuntu, CentOS
- small elements changing, e.g. PHP version and installation paths
- See also “pre-install” bash script for max automation
- Various parameters
- mysql management is optional
- Can manage a Docker-based installation via Compose
https://github.com/sipcapture/homer-puppet
node default {
class { 'homer':
manage_mysql => false,
mysql_host => '10.0.0.10',
Mysql_password => 'da_mysql_pass',
}
}
Kamailio World 2017 - Homer Workshop
More
Debugging The... Debugging Tool
- hepgen.js
- https://github.com/sipcapture/hepgen.js
- Generate HEP data to smoke-test Homer
- A reference to learn HEP format
- Wireshark dissector
- https://github.com/sipcapture/hep-wireshark
- HEP with SIP, ISUP, logs, RTCP reports, and other payload types
- Contributions to extend to other protocols are welcome
Kamailio World 2017 - Homer Workshop
HEP in Wireshark
Kamailio as Producer
- Configure siptrace
- Homer IP address and port
- Filter messages in kamailio.cfg
- With Kamailio 5 siptrace module has:
- HEPv3 support
- heplog() command to send a log item directly from the .cfg
Kamailio World 2017 - Homer Workshop
Kamailio siptrace configuration
modparam("siptrace", "duplicate_uri", "sip:HOMER_IP:9060");
modparam("siptrace", "hep_mode_on", 1);
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "trace_to_database", 0)
modparam("siptrace", "trace_flag", 24)
modparam("siptrace", "hep_version", 3);
…
sip_trace();
setflag(24);
Kamailio World 2017 - Homer Workshop
FreeSWITCH as Producer
- Configure sofia profile
- <param name=“sip-capture” value=”yes/no”/>
- <param name=“capture-server” value=”udp:10.0.0.10:9060”/>
- Example with A-leg off and B-leg ON
- hepipe.js to get non-SIP events via ESL
See also “Mastering FreeSWITCH”, chapter 13
https://www.packtpub.com/networking-and-servers/mastering-freeswitch
Kamailio World 2017 - Homer Workshop
Captagent for all other cases
https://github.com/sipcapture/captagent
- Configure the tracing filters
- SIP, ISUP, RTP reports
- Configure where Homer is located and launch
sudo apt-get update && apt-get install -y libexpat-dev libpcap-dev libjson0-dev libtool automake
flex bison libuv-dev make
./build.sh && ./configure && make && sudo make install
- Edit socket_pcap (/usr/local/captagent/etc/captagent/socket_pcap.xml)
- Edit transport_hep (/usr/local/captagent/etc/captagent/transport_hep.xml)
Kamailio World 2017 - Homer Workshop
Wrapping up
Conclusions
- Homer is a must have for VoIP/RTC troubleshooting
- Open Source, modular, can be deployed in various ways
- The future is… HEPIC
- Collect/Correlate/Graph Everything
- paStash: generic-purpose nodejs correlator
- Latest HEPIC presentation by Lorenzo:
http://tinyurl.com/hepic-homer
- “RTC-TIE: Distributed Backlist for Fraud Prevention”
- Don’t miss Alexandr’s presentation on Wednesday!
Kamailio World 2017 - Homer Workshop
Thanks And Q&A
Questions?
Special thanks to:
Lorenzo Mangani
Alexandr Dubovikov
Federico Cabiddu
Doug Smith
@giavac for more questions later
Additional slides
Configuration
- Users
- Nodes
- Aliases
- Links to share
- Groups
- Alarms
Kamailio World 2017 - Homer Workshop
Statistics
- Packets count
- Replies by method
- Destination replies
- IP addresses
- Geolocation
- User Agents
- ASR, NER
- Custom stats (with dedicated Stats server - ElasticSearch)
Kamailio World 2017 - Homer Workshop
Alarms
- “Friendly” scanners
- mysql injections attempts
- Loops
- Timeouts
- etc + configurable in Homer kamailio.cfg
Kamailio World 2017 - Homer Workshop
Data Retention Policies
- A cron job rotates mysql tables
- Default: daily
- Only limitation is disk space
- Retention policies are configurable in rotation.ini
- Also configure max size of data (e.g. for large SDPs…)
Kamailio World 2017 - Homer Workshop
QoS Info, Logs, etc
- Homer can collect RTCP reports and correlate them with
the SIP signalling
- Also correlate log lines to SIP signalling
Kamailio World 2017 - Homer Workshop

More Related Content

What's hot

FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
Chien Cheng Wu
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
stefansayer
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
Fred Posner
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
Daniel-Constantin Mierla
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
建澄 吳
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
Moises Silva
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
Andreas Granig
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
Daniel-Constantin Mierla
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
Hossein Yavari
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
Chien Cheng Wu
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
Moises Silva
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
Andreas Granig
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with Kamailio
Fred Posner
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
Fred Posner
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
Andreas Granig
 
VoIP Security
VoIP SecurityVoIP Security
VoIP Security
Dayanand Prabhakar
 
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load BalancersKamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
Daniel-Constantin Mierla
 
Aynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration FileAynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration File
Daniel-Constantin Mierla
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
Thomas Graf
 

What's hot (20)

FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
Getting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshopGetting started with SIP Express Media Server SIP app server and SBC - workshop
Getting started with SIP Express Media Server SIP app server and SBC - workshop
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
rtpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scalertpengine and kamailio - or how to simulate calls at scale
rtpengine and kamailio - or how to simulate calls at scale
 
Kamailio - SIP Routing in Lua
Kamailio - SIP Routing in LuaKamailio - SIP Routing in Lua
Kamailio - SIP Routing in Lua
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Sipwise rtpengine
Sipwise rtpengineSipwise rtpengine
Sipwise rtpengine
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with Kamailio
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
 
VoIP Security
VoIP SecurityVoIP Security
VoIP Security
 
Kamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load BalancersKamailio - Load Balancing Load Balancers
Kamailio - Load Balancing Load Balancers
 
Aynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration FileAynchronous Processing in Kamailio Configuration File
Aynchronous Processing in Kamailio Configuration File
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 

Similar to Homer - Workshop at Kamailio World 2017

Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
Daniel-Constantin Mierla
 
Kamailio Updates - VUC 588
Kamailio Updates - VUC 588Kamailio Updates - VUC 588
Kamailio Updates - VUC 588
Daniel-Constantin Mierla
 
SIP Router Project
SIP Router ProjectSIP Router Project
SIP Router Project
Daniel-Constantin Mierla
 
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
VOIP2DAY
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
Ansible, voyage au centre de l'automatisation
Ansible, voyage au centre de l'automatisationAnsible, voyage au centre de l'automatisation
Ansible, voyage au centre de l'automatisation
Mickael Hubert
 
FOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and KamailioFOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and Kamailio
Daniel-Constantin Mierla
 
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Spain
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
Robert Lemke
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
Jos Boumans
 
MariaDB pres at LeMUG
MariaDB pres at LeMUGMariaDB pres at LeMUG
MariaDB pres at LeMUG
Serge Frezefond
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
Joel W. King
 
php & performance
 php & performance php & performance
php & performance
simon8410
 
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
IoT  Edge Data Processing with NVidia Jetson Nano oct 3 2019IoT  Edge Data Processing with NVidia Jetson Nano oct 3 2019
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
Timothy Spann
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Cisco DevNet
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Ganesh Raju
 
What is Digital Rebar Provision (and how RackN extends)?
What is Digital Rebar Provision (and how RackN extends)?What is Digital Rebar Provision (and how RackN extends)?
What is Digital Rebar Provision (and how RackN extends)?
rhirschfeld
 
Helm intro
Helm introHelm intro
A intro to (hosted) Shiny Apps
A intro to (hosted) Shiny AppsA intro to (hosted) Shiny Apps
A intro to (hosted) Shiny Apps
Daniel Koller
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
YoungHeon (Roy) Kim
 

Similar to Homer - Workshop at Kamailio World 2017 (20)

Designing High Performance RTC Signaling Servers
Designing High Performance RTC Signaling ServersDesigning High Performance RTC Signaling Servers
Designing High Performance RTC Signaling Servers
 
Kamailio Updates - VUC 588
Kamailio Updates - VUC 588Kamailio Updates - VUC 588
Kamailio Updates - VUC 588
 
SIP Router Project
SIP Router ProjectSIP Router Project
SIP Router Project
 
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
Homer metrics | LORENZO MANGANI Y FEDERICO CABIDDU - VoIP2DAY 2017
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Ansible, voyage au centre de l'automatisation
Ansible, voyage au centre de l'automatisationAnsible, voyage au centre de l'automatisation
Ansible, voyage au centre de l'automatisation
 
FOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and KamailioFOSDEM 2017 - RTC Services With Lua and Kamailio
FOSDEM 2017 - RTC Services With Lua and Kamailio
 
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
 
MariaDB pres at LeMUG
MariaDB pres at LeMUGMariaDB pres at LeMUG
MariaDB pres at LeMUG
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
php & performance
 php & performance php & performance
php & performance
 
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
IoT  Edge Data Processing with NVidia Jetson Nano oct 3 2019IoT  Edge Data Processing with NVidia Jetson Nano oct 3 2019
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data EverywhereApache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
Apache Bigtop and ARM64 / AArch64 - Empowering Big Data Everywhere
 
What is Digital Rebar Provision (and how RackN extends)?
What is Digital Rebar Provision (and how RackN extends)?What is Digital Rebar Provision (and how RackN extends)?
What is Digital Rebar Provision (and how RackN extends)?
 
Helm intro
Helm introHelm intro
Helm intro
 
A intro to (hosted) Shiny Apps
A intro to (hosted) Shiny AppsA intro to (hosted) Shiny Apps
A intro to (hosted) Shiny Apps
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
 

More from Giacomo Vacca

STUN protocol
STUN protocolSTUN protocol
STUN protocol
Giacomo Vacca
 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructures
Giacomo Vacca
 
RIPP Notes
RIPP NotesRIPP Notes
RIPP Notes
Giacomo Vacca
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern Infrastructures
Giacomo Vacca
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
Giacomo Vacca
 
Kamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-testsKamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-tests
Giacomo Vacca
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
Giacomo Vacca
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
Giacomo Vacca
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
Giacomo Vacca
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
Giacomo Vacca
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
Giacomo Vacca
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Giacomo Vacca
 
Automatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With PuppetAutomatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With Puppet
Giacomo Vacca
 

More from Giacomo Vacca (13)

STUN protocol
STUN protocolSTUN protocol
STUN protocol
 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructures
 
RIPP Notes
RIPP NotesRIPP Notes
RIPP Notes
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern Infrastructures
 
An SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environmentsAn SFU/MCU integration for heterogeneous environments
An SFU/MCU integration for heterogeneous environments
 
Kamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-testsKamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-tests
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
 
Automatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With PuppetAutomatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With Puppet
 

Recently uploaded

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 

Recently uploaded (20)

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 

Homer - Workshop at Kamailio World 2017

  • 1. Homer VoIP Monitoring From zero to hero Workshop - Kamailio World 2017 Giacomo Vacca @giavac
  • 2. About me I design, develop and maintain RTC platforms based on Open Source applications since 2001. Using Kamailio since it was still OpenSER as core component for fixed, mobile and WebRTC services (Truphone, Libon, Nexmo and many others). Currently owner of RTCSoft (rtcsoft.net), member of sipcapture team, RTC Architect at Nexmo @giavac - https://github.com/giavac Kamailio World 2017 - Homer Workshop
  • 3. Interact in real time during the workshop The Homer team is available now at https://gitter.im/sipcapture/home Kamailio World 2017 - Homer Workshop
  • 5. The need for Homer - VoIP Monitoring and Troubleshooting - Understand exactly what happened in your platform, analysing specific calls or events. - Search through a massive amount of collected data - Born with a SIP-centric view, then evolved (and still evolving) towards QoS, RTCP, logs and custom events. - Homer is already integrated with the most successful Open Source RTC applications (Kamailio, OpenSIPS, FreeSWITCH, Asterisk, RTPEngine, Janus). - Homer can be used in other cases too (with captagent, sngrep, hepipe.js). Kamailio World 2017 - Homer Workshop
  • 6. Key Features - Open Source, modular - Easy to deploy in various scenarios - Easy to extend/adapt - This is how many become contributors - Very high performances, with a clear scaling strategy - Carrier grade networks but also smaller deployments - Can be useful during development - Hosted vs Cloud - http://sipcapture.org/#cloud Kamailio World 2017 - Homer Workshop
  • 7. The ecosystem - native support - A dedicated binary protocol: HEP - https://github.com/sipcapture/HEP/blob/master/docs/HEP3_rev12.pdf - Wireshark dissector: https://github.com/sipcapture/hep-wireshark - OSS apps native support - Kamailio (siptrace, sipcapture) - OpenSIPS (siptrace, sipcapture, proto_hep) - FreeSWITCH (sofia) - Asterisk (res_hep) - RTPEngine (--homer=...) - sngrep Kamailio World 2017 - Homer Workshop
  • 8. The ecosystem - external support - External support - Janus (via events plugin) - FreeSWITCH for non-SIP events (via ESL) - captagent for any other need (including ERSPAN encapsulation) - sngrep - Libraries in various languages - C - Java - JS - Go - Perl - Python - Erlang Kamailio World 2017 - Homer Workshop
  • 10. Main Architectural Components ● Kamailio: a high-performance collector of data ○ Store in DB ○ Send to ElasticSearch ● A DB: mysql/postgres ● An API (PHP-based, easy to debug and extend) ○ https://github.com/sipcapture/homer-api ● A GUI (Angular) and web server (nginx, apache) ○ https://github.com/sipcapture/homer-ui Kamailio World 2017 - Homer Workshop
  • 11. Data - SIP signalling - RTCP (and RTCP-XR) reports - Logs - End of call QoS reports - WebRTC - ISUP - Periodic QoS reports from RTPAgent Kamailio World 2017 - Homer Workshop
  • 12. Call Info - Full SIP/SDP storage with precise timestamps - RTCP reports - Custom events/logs correlated to call flows - Multiple-legs correlation - Need to carry other leg’s Call ID in custom SIP header Kamailio World 2017 - Homer Workshop
  • 13. A search result with packet list and details Kamailio World 2017 - Homer Workshop
  • 14. Call Flows - One key feature: Correlation of separate SIP legs into one “call” - Use custom SIP headers to carry info on other legs’ Call IDs Kamailio World 2017 - Homer Workshop
  • 15. A simple call flow Kamailio World 2017 - Homer Workshop
  • 16. Collaboration Tools Call flows can be shared by: - Extracting pcaps - Extracting PNGs - Sharing a link This is where collaborative debugging really gets a boost Kamailio World 2017 - Homer Workshop
  • 17. Customizations - examples - Stats on SIP error codes per country - Needs a custom SIP header (P-Dest-Stats) from producers - ASR/ACD per destination/source IP/group - ASR/ACD per component - Define your own stats and alarms #!ifdef WITH_HOMER_DEST_STATS route(PARSE_DEST_STATS); #!endif Kamailio World 2017 - Homer Workshop
  • 18. The Key Role of Kamailio - Receive and decode HEP data - With kamailio 5: nonsip_hook and event_route[sipcapture:request] - Write on DB - Generate statistics - Custom statistics - Optionally GeoIP details - Can transmit data to ElasticSearch Kamailio World 2017 - Homer Workshop
  • 19. Homer kamailio.cfg 1/2 #!substdef "!HOMER_DB_USER!homer!g" #!substdef "!HOMER_DB_PASSWORD!homer_password!g" #!substdef "!HOMER_LISTEN_PROTO!udp!g" #!substdef "!HOMER_LISTEN_IF!0.0.0.0!g" #!substdef "!HOMER_LISTEN_PORT!9060!g" … listen=HOMER_LISTEN_PROTO:HOMER_LISTEN_IF:HOMER_LISTEN_PORT … sip_capture($var(dest_table)); Kamailio World 2017 - Homer Workshop
  • 20. Homer kamailio.cfg 2/2 modparam("sipcapture", "db_url", "mysql://HOMER_DB_USER:HOMER_DB_PASSWORD@127.0.0.1/homer_data") modparam("sipcapture", "capture_on", 1) modparam("sipcapture", "hep_capture_on", 1) modparam("sipcapture", "insert_retries", 5) modparam("sipcapture", "insert_retry_timeout", 10) Kamailio World 2017 - Homer Workshop
  • 21. Multi-node And Scaling - Write rate is the bottleneck - Kamailio is a key component for fast writes - Sharding by method or Call ID - Distribute writes across multiple mysql instances - Sharding upported by siptrace module and captagent - Producers of data in separate data centres - Keep the data local when possible - Reads can be performed across several nodes - Acceptable to be much slower than writes - Other approaches - UDP-level load balancing Kamailio World 2017 - Homer Workshop
  • 22. Distribution across Data Centres Kamailio World 2017 - Homer Workshop
  • 23. Sharding Kamailio World 2017 - Homer Workshop
  • 25. Installation Strategies - Bash script - Docker - Single and Multi-Container - Suitable for Kubernetes & Co. - Puppet - Master/Slave - Standalone - To manage Docker containers - Custom - Often the DB installation and setup is delegated to a DBA team Kamailio World 2017 - Homer Workshop
  • 26. A Minimalistic Installation - Homer can fit into one single host - Useful for small deployments and development - https://github.com/sipcapture/homer-installer - Debian 8 and CentOS 7 bash <( curl -s https://cdn.rawgit.com/sipcapture/homer-installer/master/homer_installer.sh ) Default credentials: admin/test123 Kamailio World 2017 - Homer Workshop
  • 27. Docker Installation https://github.com/sipcapture/homer-docker - Based on Docker Compose - One container for all or... - One container per service - Kamailio - mysql - API/Web - An additional container for dashboard persistence - Integrates well with external DBs - USE_REMOTE_MYSQL=true in homer.env Kamailio World 2017 - Homer Workshop
  • 28. Containers in action - git clone https://github.com/sipcapture/homer-docker.git - cd homer-docker - docker-compose build - docker-compose up -d - docker ps Kamailio World 2017 - Homer Workshop
  • 29. Puppet module - Debian, Ubuntu, CentOS - small elements changing, e.g. PHP version and installation paths - See also “pre-install” bash script for max automation - Various parameters - mysql management is optional - Can manage a Docker-based installation via Compose https://github.com/sipcapture/homer-puppet node default { class { 'homer': manage_mysql => false, mysql_host => '10.0.0.10', Mysql_password => 'da_mysql_pass', } } Kamailio World 2017 - Homer Workshop
  • 30. More
  • 31. Debugging The... Debugging Tool - hepgen.js - https://github.com/sipcapture/hepgen.js - Generate HEP data to smoke-test Homer - A reference to learn HEP format - Wireshark dissector - https://github.com/sipcapture/hep-wireshark - HEP with SIP, ISUP, logs, RTCP reports, and other payload types - Contributions to extend to other protocols are welcome Kamailio World 2017 - Homer Workshop
  • 33. Kamailio as Producer - Configure siptrace - Homer IP address and port - Filter messages in kamailio.cfg - With Kamailio 5 siptrace module has: - HEPv3 support - heplog() command to send a log item directly from the .cfg Kamailio World 2017 - Homer Workshop
  • 34. Kamailio siptrace configuration modparam("siptrace", "duplicate_uri", "sip:HOMER_IP:9060"); modparam("siptrace", "hep_mode_on", 1); modparam("siptrace", "trace_on", 1) modparam("siptrace", "trace_to_database", 0) modparam("siptrace", "trace_flag", 24) modparam("siptrace", "hep_version", 3); … sip_trace(); setflag(24); Kamailio World 2017 - Homer Workshop
  • 35. FreeSWITCH as Producer - Configure sofia profile - <param name=“sip-capture” value=”yes/no”/> - <param name=“capture-server” value=”udp:10.0.0.10:9060”/> - Example with A-leg off and B-leg ON - hepipe.js to get non-SIP events via ESL See also “Mastering FreeSWITCH”, chapter 13 https://www.packtpub.com/networking-and-servers/mastering-freeswitch Kamailio World 2017 - Homer Workshop
  • 36. Captagent for all other cases https://github.com/sipcapture/captagent - Configure the tracing filters - SIP, ISUP, RTP reports - Configure where Homer is located and launch sudo apt-get update && apt-get install -y libexpat-dev libpcap-dev libjson0-dev libtool automake flex bison libuv-dev make ./build.sh && ./configure && make && sudo make install - Edit socket_pcap (/usr/local/captagent/etc/captagent/socket_pcap.xml) - Edit transport_hep (/usr/local/captagent/etc/captagent/transport_hep.xml) Kamailio World 2017 - Homer Workshop
  • 38. Conclusions - Homer is a must have for VoIP/RTC troubleshooting - Open Source, modular, can be deployed in various ways - The future is… HEPIC - Collect/Correlate/Graph Everything - paStash: generic-purpose nodejs correlator - Latest HEPIC presentation by Lorenzo: http://tinyurl.com/hepic-homer - “RTC-TIE: Distributed Backlist for Fraud Prevention” - Don’t miss Alexandr’s presentation on Wednesday! Kamailio World 2017 - Homer Workshop
  • 39. Thanks And Q&A Questions? Special thanks to: Lorenzo Mangani Alexandr Dubovikov Federico Cabiddu Doug Smith @giavac for more questions later
  • 41. Configuration - Users - Nodes - Aliases - Links to share - Groups - Alarms Kamailio World 2017 - Homer Workshop
  • 42. Statistics - Packets count - Replies by method - Destination replies - IP addresses - Geolocation - User Agents - ASR, NER - Custom stats (with dedicated Stats server - ElasticSearch) Kamailio World 2017 - Homer Workshop
  • 43. Alarms - “Friendly” scanners - mysql injections attempts - Loops - Timeouts - etc + configurable in Homer kamailio.cfg Kamailio World 2017 - Homer Workshop
  • 44. Data Retention Policies - A cron job rotates mysql tables - Default: daily - Only limitation is disk space - Retention policies are configurable in rotation.ini - Also configure max size of data (e.g. for large SDPs…) Kamailio World 2017 - Homer Workshop
  • 45. QoS Info, Logs, etc - Homer can collect RTCP reports and correlate them with the SIP signalling - Also correlate log lines to SIP signalling Kamailio World 2017 - Homer Workshop