Last weekend I attended a session about Homer Sipcapture at Fosdem in Brussels. Homer is a software that is built in to Kamailio. In Kamailio has there are two modules that is specially adopted for use with this 3rd party Open Source software – Homer SIPcapture.  Homer was awarded a Kamailio Award last year for it’s unique innovation. With Kamailio and Homer, you can capture SIP messages from a running Kamailio production server or from a mirrored port in a switch in your network. What do you get? A searchable database of your SIP traffic and easy to understand visual diagrams of individual SIP sessions. All in a web interface powered by a database of your traffic. I installed it and after a few hours it was a critical tool in my network, helping me to solve problems.

Two components – sender and receiver

Homer has two major components. The packet sender captures traffic and forwards to a receiver. You can use Kamailio in both places, but you can also enable a sender within FreeSwitch as well as use the Homer capture sender that reads off a network interface and sends to the receiver. To use the Homer software with Kamailio, you need a database server (with capacity to handle your traffic) and a web server with PHP support.


Kamailio and Homer

To run Homer you need to get your main Kamailio to send a copy of the messages to another Kamailio that stores them in the Homer database.

Sender: The SIPtrace module

In Kamailio, the sender is part of the SIPtrace module.  By enabling this module in your Kamailio, you can mark individual SIP messages – requests and responses – for capturing. SIPtrace can be used standalone to store all SIP messages directly in a SQL database. By using the Homer protocol, HEP, the message is copied and sent over the network to another Kamailio server. Many Kamailio servers (as well as other platforms) can send to the same receiver.

Receiver: The SIPcapture module

The SIPcapture module is the receiving part. This module is written by the Homer team and contributed to Kamailio. The module listens to traffic and saves incoming messages to the database. You can filter which messages you want to save in a normal Kamailio routing script. It is recommended that this is a standalone Kamailio, propably running on your backend network with a very simple configuration and a fast database. The Homer documentation has a lot of good advice.

Video demonstration

To learn more about the Homer web interface, watch this video:


To learn more: