-
-
Notifications
You must be signed in to change notification settings - Fork 242
webHomer settings
Before you can start using HOMER, a few important parameters need to be configured.
webHomer 3.5+ uses the new api (REST), in order for this to work you MUST activate mod_rewrite (if the rewrite_module is not enabled in httpd.conf API will not work)
i.e. Debian/Ubuntu:
sudo a2enmod rewrite
and in your apache's config, Document should have
AllowOverride all
http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride
Apache's aliases use might prevent mod_rewrite from adding new paths.
In such case, you should edit 'api/.htaccess' file and change Rewrite rule:
RewriteRule ^(.*)$ /your_api_path/index.php [L]
The following apache2 configuration snippet provides for webHomer needs in a vhost forcing https.
Example: /etc/apache2/sites-enabled/homer.yourdomain.org
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName homer.yourdomain.org
Redirect permanent / https://homer.yourdomain.org/
# Logfiles
ErrorLog /var/vhosts/homer.yourdomain.org/logs/error.log
CustomLog /var/vhosts/homer.yourdomain.org/logs/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName homer.yourdomain.org
# Indexes + Directory Root.
DirectoryIndex index.php index.html index.htm
DocumentRoot /var/vhosts/homer.yourdomain.org/htdocs/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/vhosts/homer.yourdomain.org/htdocs/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
#for apache <= 2.3
Order allow,deny
allow from all
#For apache >= 2.4
#Require all granted
</Directory>
# CGI Directory
ScriptAlias /cgi-bin/ /var/vhosts/homer.yourdomain.org/cgi-bin/
<Location "/var/vhosts/homer.yourdomain.org/cgi-bin">
Options +ExecCGI -MultiViews
Order allow,deny
Allow from all
</Location>
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
</IfModule>
# Logfiles
ErrorLog /var/vhosts/homer.yourdomain.org/logs/error_ssl.log
CustomLog /var/vhosts/homer.yourdomain.org/logs/access_ssl.log combined
</VirtualHost>
webHomer ships with two example configuration files (configuration_example.php and preferences_example.php) that need to be filled in by the administrator and renamed before use.
Insert the minimum DB access details in "configuration.php":
/* Access db of homer users */
define(HOST, "localhost");
define(USER, "root");
define(PW, "password");
define(DB, "homer_users");
Also define username and password for HOMER SIP Capture DB. This user must be defined in all your nodes DB. Don't forget to insert all your database nodes into homer_nodes table.
Configure the proper details in "configuration.php":
/* Homer connection
* this user must have the same password for all Homer nodes
* please define all your nodes in homer_nodes table
*/
define(HOMER_HOST, "localhost"); /* DEFAULT. Don't forget insert this host to your DB nodes table */
define(HOMER_USER, "homer_users");
define(HOMER_PW, "homer_password");
define(HOMER_DB, "homer_db");
define(HOMER_TABLE, "sip_capture");
In order to work, webHomer's webservice needs to be properly setup; A few key parameters in "configuration.php":
PCAPDIR - Expects a Filesystem Path. This directory will be used to store temporary pcap files and call flow SVG/HTMLs. Must be absolute path and must reflect the location of the webhomer folder from GIT. THIS FOLDER MUST BE WRITEABLE!
define(PCAPDIR,"/var/www/webhomer/tmp/");
The application will use this temporary folder to store its generated files. Do not forget to configure full write permissions to the selected /tmp folder!
WEBPCAPLOC - Expects a Web Path. This parameters determines the web location of PCAPDIR. (If the URL for your PCAPDIR is http://domain.com/webhomer/tmp, then this should be set to /webhomer/tmp).
define(WEBPCAPLOC,"/webhomer/tmp/");
APILOC - Expects a Web Path. This parameters determined the web location of the HOMER API. Please set according to your host/virtualhost path in
define(APILOC,"/webhomer/api/");
A number of other customizable, non critical parameters such as timezones and modules, and user interface preferences are set separately in "preferences.php" - rename the example file and set your preferences accordingly.
Remove the default user and add your own accounts (permission/levels in preferences.php)
Homer can function using one or more database nodes
Make sure the node name value defined in your Kamailio capture node script is correctly reflected in ADMIN > DB Nodes with a properly configured entry.
modparam("sipcapture", "capture_node", "node1");
Without this parameter, some search filtering options might not work as intended!
Basic example with 1 Node and 2 Capture Agents:
CaptAgent hep-id: 111 -----> [NODE1] <----- CaptAgent hep-id: 222
HOMER Search-Filtering options:
ALL TRAFFIC - node1
AGENT1 ONLY - node1:111
AGENT2 ONLY - node1:222
etc...
This feature is used in Call-Flow generators to convert IP addresses to Hostnames, and more importantly to correlate traffic to gateways with multiple iterfaces (public/private) or networks (ipv4/ipv6)
Soft-Switch Public IP: AA.BB.CC.DD
Soft-Switch Private IP: EE.FF.GG.HH
Soft-Switch IPv6: III::LLLL:MMMM:NNNN:OOOO
In Homer add several ALIASES with the exact same NAME:
IP: AA.BB.CC.DD
NAME: SWITCH1
STATUS: 1
IP: EE.FF.GG.HH
NAME: SWITCH1
STATUS: 1
IP: [III::LLLL:MMMM:NNNN:OOOO]
NAME: SWITCH1
STATUS: 1
In order for HOMER to identify and correlated messages between internal Hosts using IP:PORT schema, change the following in webhomer/preferences.php:
define('CFLOW_HPORT', 2); /* Column/Host Mode = Plain: 0, +Port: 1, Auto-Select: 2 */
In order for HOMER to visually merge messages between Internal and External CE services, create the following ALIASES via UI (Browse: WebHomer > Admin > Aliases > New):
HOST NAME
----------------------- -----------
{external_IP}:5060 NGCP-LB
127.0.0.1:5060 NGCP-LB
127.0.0.1:5062 NGCP-Proxy
127.0.0.1:5080 NGCP-B2BUA
NOTE: NAME field for internal & external LBs (5060) MUST BE IDENTICAL to correlate!
If your system uses other custom IPs or Interfaces, follow the same logic above to add them.
In order for HOMER to correlate call legs forked by the SPCE B2BUA, set the following in webhomer/preferences.php:
/* BLEG DETECTION */
define('BLEGDETECT', 1); /* always detect BLEG leg in CFLOW/PCAP*/
define('BLEGCID', "b2b"); /* options: x-cid, b2b */
define('BLEGTAIL', "_b2b-1"); /* session-ID correlation suffix for SPCE b2b mode */
webHomer (and HOMER in general) is designed to be deployed on a private, well protected network segment and it's not intended to be bare facing public access. Please make sure you protect/firewall/ACL your capture setup properly!
(C) 2008-2023 QXIP BV
HEP/EEP Agent Examples:
- CaptAgent
- HEPlify
- Kamailio
- OpenSIPS
- FreeSwitch
- Asterisk
- sipgrep
- sngrep
- RTPEngine
- RTPProxy
- Oracle ACME SBC
- Sonus SBC
- Avaya SM
- Sansay SBC
HEP/EEP Agent Examples (LOGS):
HEP/EEP Proxy:
Extra Examples:
- Custom JSON Stats
- RTCP-XR Stats
- GEO IP Maps
- Janus/Meetecho-WebRTC
- Cloudshark Export
- Encrypted HEP Tunneling
- SNMP Monitoring
- FreeSWITCH ESL Monitoring
- Kazoo Monitoring
- Speech-to-Text-to-HEP
Extra Resources: