HEPipe.js

February 1, 2017 ยท View on GitHub

HEPipe.js

HEP Enabled data harvester

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)).

Installation and Run

Prepare with:

sudo npm install

Fill config.js as needed (please see examples/)

Run with:

sudo node hepipe.js

Dockerisation

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 client

Events

ESL EventHep ModeHEP Type
CHANNEL_CREATELOG100
CHANNEL_ANSWERLOG100
CHANNEL_DESTROYLOG100
CUSTOMLOG100
RECV_RTCP_MESSAGERTCP5
CHANNEL_DESTROYCUSTOM QoS99

Correlation Headers

Other-Leg-Unique-ID -> Unique-ID -> variable_sip_call_id

Janus client

Events

Janus EventJanus TypeHEP ModeHEP Type
SIP64SIP1
CORE1LOG100
SESSION2LOG100
MEDIA32LOG100
ICE16LOG100
JSEP/SDP8LOG100

Correlation Headers

session_id -> handle_id -> data.call_id