HEPipe.js can work several types of feeds:
- Log based events
- Freeswitch ESL events
- Meetecho Janus events
Each module features its own programming used to match and encapsulate extracted data using the desired HEP payload (e.g. JSON vs SIP) and send it to an HOMER instance.
These are configured by setting the related sections in config.js
(see examples/
for managing log events, ESL events (log, RTCP, QoS) and Janus events (SIP, other events)).
Prepare with:
sudo npm install
Fill config.js as needed (please see examples/
)
Run with:
sudo node hepipe.js
You can also run hepipe.js inside a Docker container.
config.js can be made available via a read-only Volume.
Ensure that the container can access the monitored log (e.g. via a Volume), and can connect to FS ESL or Janus Events API as needed.
ESL Event | Hep Mode | HEP Type |
---|---|---|
CHANNEL_CREATE | LOG | 100 |
CHANNEL_ANSWER | LOG | 100 |
CHANNEL_DESTROY | LOG | 100 |
CUSTOM | LOG | 100 |
RECV_RTCP_MESSAGE | RTCP | 5 |
CHANNEL_DESTROY | CUSTOM QoS | 99 |
Other-Leg-Unique-ID
-> Unique-ID
-> variable_sip_call_id
Janus Event | Janus Type | HEP Mode | HEP Type |
---|---|---|---|
SIP | 64 | SIP | 1 |
CORE | 1 | LOG | 100 |
SESSION | 2 | LOG | 100 |
MEDIA | 32 | LOG | 100 |
ICE | 16 | LOG | 100 |
JSEP/SDP | 8 | LOG | 100 |
session_id
-> handle_id
-> data.call_id