Categorygithub.com/intuitivelabs/sipcallmon
modulepackage
0.8.21
Repository: https://github.com/intuitivelabs/sipcallmon.git
Documentation: pkg.go.dev

# README

sipcallmon

This go module provides the backbone for sipcmbeat: configuration, packet capture, sip message parsing and call tracking, event generation, event ring (for caching events), statistics, web interface a.s.o.

See sipcmbeat README for more details.

sipcm

A stand alone binary that does everything that sipcmbeat does, but without sending any events to ES, can be found under cmd/sipcm. The generated events and statistics can be seen in the web interface. It also supports replaying pcap files.

sipcm can be used for debugging or to see what sipcmbeat would do, but without ES or configuring a local logstash output.

Dependencies

sipcallmon depends on:

# Packages

No description provided by the author

# Functions

BUG is a shorthand for logging a bug message.
No description provided by the author
CfgCheck does some sanity checks on the config.
CfgFix will resolve and/or fill hidden config values.
FromOsArgs intializes and returns a config from cmd line args and passed default config (c).
DBG is a shorthand for logging a debug message.
DBGon() is a shorthand for checking if generic debug logging is enabled.
EndPointCmp compares two ip:port pairs.
ERR is a shorthand for logging an error message.
ERRon() is a shorthand for checking if generic error logging is enabled.
EvRateBlstGCChangeIntvl changes the interval used for the periodic GC.
No description provided by the author
No description provided by the author
No description provided by the author
Init pre-initializes sipcallmon.
InitConnKey initializes a ConnKey, making sure the ip:ports are ordered.
No description provided by the author
ParseAcmeIPFIXconnectSet parses the handshake messages uses by Acme/Oracle SBCs (proprietary extension).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ParseIPFIXHdr parses an IPFIX header, from the message contained in buf and starting at offset offs.
ParseIPFIXsetHdr parses an IPFIX set header, from buf, starting at offset offs.
PDBG is a shorthand for logging a parser / processing debug message.
PDBGon() is a shorthand for checking if parser debug logging is enabled.
PERR is a shorthand for logging a parser / processing error message.
Run sipcallmon packet processing, based on the passed config.
Stop() would signal Run() to exit the processing loop.
WARN is a shorthand for logging a warning message.
WARNon() is a shorthand for checking if generic warning logging is enabled.
returns new offset in dstBuf after writing AcmeIPFIXConnectSet and an error (nil on success, ErrIPFIXMoreBytes if dstBuf[offs:] is too small ...).

# Constants

reset to disallow compression.
set for DNS.
No description provided by the author
No description provided by the author
No description provided by the author
set for ENUM.
flags used in the connect and connect ack messages / data sets to request or show support for different data sets.
set for LDAP.
flags used in the connect and connect ack messages / data sets to request or show support for different data sets.
set for RTCP stats.
set for RTP QoS stats.
proprietary.
No description provided by the author
No description provided by the author
No description provided by the author
0-length message.
No description provided by the author
0-len & callid msg.
0-length message.
0-len & callid msg.
No description provided by the author
0-length message.
No description provided by the author
0-length & call-id msg.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
parsing sip message.
No description provided by the author
in-between messages.
No description provided by the author
timeout for tcp in startup mode.
tcp in "learning quick timeout mode".
initial reorder timeout.
No description provided by the author

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
ethernet addresses used in generated pcaps (local).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
EvRing is the global ring where all the events will be put.
EvRateBlst is used to compute the generation rate for each event-ip pair and to mark/blacklist pairs that exceeded the configured maximum rates.
LayerTypeLinuxSLL2 is the new added layer type based on LinuxSSL2Layer.
Log is the generic log.
No description provided by the author
Plog is the log used when parsing and processing messages.
No description provided by the author
No description provided by the author
when set it's the stop time (pcap mode & end of input).

# Structs

AcmeIPFIXcollector listens on a socket and start processing go routines for each new connection (acme ipfix tcp traffic expected).
No description provided by the author
No description provided by the author
No description provided by the author
AcmeIPFIXconnInfo contains a copy of the interesting parts of AcmeIPFIXconn struct.
No description provided by the author
No description provided by the author
No description provided by the author
placeholder for TCP over IPv6 (so far no confirmation that the SBCs support reporting IPv6 packet, so the format here is just an extrapolation of the IPv4 one).
placeholder for TCP egress sip msg over IPv6 (so far no confirmation that the SBCs support reporting IPv6 packet, so the format here is just an extrapolation of the IPv4 one).
No description provided by the author
No description provided by the author
No description provided by the author
ConnKey is the key used for connections (contains 2 endpoint IPs and ports).
No description provided by the author
HTTPHalfConn holds the state for each half-conncetion.
HTTPStreamOptions contains configuration options for each TCP HTTP or websocket connection or half connection.
No description provided by the author
No description provided by the author
LinuxSLL2Layer handles the linux cooked capture v2 encapsulation (appears in pcap files when capturing from the "any" interface with newer versions of libpcap/tcpdump) It implements the Layer, LinkLayer and DecodingLayer interfaces (see https://pkg.go.dev/github.com/google/gopacket#DecodingLayer).
No description provided by the author
PcapWriter writes messages into pcap files.
No description provided by the author
No description provided by the author
sip state per stream (uni-directional connection).
No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author
No description provided by the author
No description provided by the author
IterateCbk is the type for the function callback for the Iterate function.
internal format: key - sipsp.PField (offs & len for the key) flags - uint32 msg - bytes array.
No description provided by the author
No description provided by the author