![]() |
DeepLI™ Lawful Interception software maps to the LEA domain in ETSI HI (Handover Interface) functional block diagram (ETSI TS 133 108 v14.0.0 ◳ Figure 4.1) |
![]() |
DeepLI™ Lawful Interception software supports flexible site models, including On-Premise, Co-Located, and SaaS (cloud LI). See Site Models below |
DeepLI™ - Lawful Interception Software
- Overview
- Product Info
- Product Description -- Lawful Interception Features
- Site Models
- Telecom Mode
- Analytics Mode
- High Capacity
- Application and Diagnostic Table
- API Interface
- mediaMin and mediaTest Demos
- Related Applications
- How To Get a Quote
- Related Items
- Tech Support
Overview
DeepLI™ (Deep Lawful Interception) is a new generation of Lawful Interception software with emphasis on site model flexibility, extreme high capacity, superior audio quality, and deep learning. Site models include on-premise, co-located, and SaaS (cloud LI). Addition of deep learning support is ongoing, including speech recognition and diarization. DeepLI is currently deployed in Tier 1 LEAs and carriers 1. Here are key reasons why:- Extreme high capacity and reliability on standard Linux servers. For on-premise implementations, maximum session capacity exceeds 500 concurrent sessions on standard servers 2
- Highest audio quality -- innovative algorithms for inter-stream rate misalignment, stream gap, packet loss mitigation, and audio frame loss concealment, including unified (merged) streams
- Robust -- continuous stress testing applied in Signalogic labs, with a minimum of 600 hrs prior to a new release
- Ready-to-use -- full featured reference applications for basic applications, and minimum API interface callable from C/C++ for high capacity, application-specific use cases
- Ultra secure -- developed and tested entirely in the US, in labs based in north Texas and the Bay Area, with no outsourcing. Zero dependencies on open source except for codecs and Linux. Cyber and security reviews of source code can be arranged 3
- Telecom Mode or Analytics Mode operation
- Complete packet flow including pcap or UDP I/O, packet and multiple SSRC handling (RFC8108), jitter buffer, transcoding, voice algorithms, variable ptime, and numerous RFCs
- Signal processing including real-time stream merging, PLC (packet loss concealment), AGC, echo cancellation, and more
- Extreme concurrent session capacity on x86 Linux servers
2 For example, each session with two (2) EVS wideband streams and one (1) AMR-NB stream on an HP DL380 running Ubuntu Linux
3 Depending on business case discussions under NDA
Product Info
![]() ![]() ![]() |
Signalogic Part P/Ns | DSSIG-DEEPLI-VOLTE, DSSIG-DEEPLI-STREAM, DSSIG-DEEPLI_ASR |
System Manufacturer |
Signalogic![]() |
Description | DeepLI Lawful Interception Software |
Product Categories | HPC (High Performance Computing), Media Resource Functions, Algorithms |
Product Status | Deployed |
Default tab content (this text) shown when (i) no tabs are automatically selected, or (ii) if rel value for the tab ="#default".
Stock: 0
On Order: 0
Delivery: Electronic (secure download)
Qty 1: Request Quote
MOQ: 1
Current Promotions: None
Product Description - DeepLI Features
Site Models |
On-Premise, Co-Located, SaaS (cloud LI) |
Operating Modes |
Telecom, Analytics |
Applications |
mediaMin: ready-to-use LEA application, with output options including UDP/RTP, wav file, and pcap |
APIs |
Two levels of API are available: (i) fine-grained control at the packet/media thread level, and (ii) simplified, minimal interface based on session setup and packet queue push/pull. The mediaMin application is based on the minimal API. Section 3.1, Minimum API Applications, in SigSRF documentation ◳ contains a source code example showing a packet push/pull loop implemented in 10 lines of C code |
I/O |
I/O includes UDP/RTP, pcap, and waveform file. IPv4 and IPv6 supported. wav, .au, compressed bitstream, and other file formats supported |
Capacity |
50 sessions per core 1 |
Stream Management |
Stream groups, real-time stream merging, user-defined signal processing. Stream merging output options include real-time UDP packet flow, unified mono wav file and pcap, and per stream pcap and either mono or N-channel wav file |
Session Management |
Static and dynamic session creation from (i) session configuration files, (ii) SDP info, (iii) IRI info, or some combination. Dynamic session creation includes an RTP audo-detect option. Live session control and modification |
Codecs |
EVS, AMR-NB, AMR-WB, AMR-WB+, G711, G729, G726 |
Jitter Buffer |
Advanced options include dynamic re-ordering depth, packet loss mitigation, burst/gap compensation, SID repair, dynamic stream creation (RFC8108), on-demand flush, RFC7198 (temporal), live stats. Inter-stream packet rate mismatch and fluctuation compensated up to 20% |
Multithreading |
Multistream, multisession, multichannel, fully re-entrant, XDAIS compliant. See also "Capacity" in this table |
DTX, SID, CNG |
DTX can be applied and controlled on per session basis, or automated depending on codec type. VAD available for older codecs without inherent DTX support |
PLC 2 |
Includes (i) codec decoder output and (ii) stream merging audio output |
Voice/Packet Handling |
DTMF, echo cancellation, sampling rate conversion, variable ptime, tone generation, and other audio and RTP processing |
Stress and Functional Test |
Documentation includes dozens of functional and stress test command lines and reference pcaps, along with test validation information |
Logging |
Event and packet logging. Packet logging includes SSRC group collation, analysis of dropped, missing, and duplilcated packets |
Energy Saver |
Packet/media thread inactivity detection and throttle down, with user-specified settings |
2 Packet Loss Concealment
Site Models
Site models supported by DeepLI include On-Premise, Co-Located, and SaaS (cloud LI). The diagrams below show platform architecture and data flow for these models.- SaaS models are flexible, depending on data privacy, session capacity, and other application-specific requirements
- High capacity figures quoted here and in SigSRF documentation ◳ require private servers, typically deployed in an On-Premise model
Telecom Mode
DeepLI telecom mode supports direct handling of bidirectional IP/UDP/RTP traffic. This mode is sometimes also referred to as "clocked" mode, as a wall clock reference is required for correct jitter buffer operation. Examples of telecom mode applications include network midpoints such as SBC (Session Border Controller) and media gateway, and endpoints such as handsets and softphones. Typically telecom applications have hard requirements for real-time performance and latency. A telecom mode data flow diagram is shown below.
![]() |
DeepLI™ Lawful Interception telecom mode flow diagram |
Analytics Mode
DeepLI™ analytics mode supports indirect handling of IP/UDP/RTP traffic, where traffic is encapsulated or "one step removed", having been captured, copied, or relayed from direct traffic for additional processing. This mode is sometimes also referred to as data driven or "clockless" mode, the latter description referring to jitter buffer packet processing either wholly or partially without a wall clock reference. In general, analytics mode applications operate after real-time traffic has already occurred, and process uni-directional traffic. Depending on the application it may be incorrect to say "non-real-time" as it may be necessary to reproduce or emulate original real-time behavior. It may also be incorrect to say "uni-directional" as transcoding may be required, for instance to local endpoint outputs. In addition to Lawful Interception, examples of analytics mode applications include web IT data analytics such as speaker identification and automatic speech recognition (ASR). An analytics mode data flow diagram is shown below.
![]() |
DeepLI™ Lawful Interception analytics mode flow diagram |
High Capacity
See section 5.0, High Capacity Operation, in SigSRF Documentation ◳ for more information.
Application and Diagnostic Table
DeepLI™ application and diagnostic functionality is shown in the table below. General functional areas are shown at left, then further subdivided. Diagnostic functionality includes test and measurement capabilities provided by the mediaTest application. As noted above, both mediaMin and mediaTest are reference applications based on SigSRF shared library modules (SigSRF Github page ◳ ).
Functionality |
Application |
Diagnostic |
|
I/O |
UDP/RTP, IPv4 and/or IPv6 |
mM |
mM, mT |
pcap |
mM |
mM, mT |
|
Waveform files, .wav, .au, .tim formats |
mM |
mM, mT |
|
USB audio |
|
mT |
|
Compressed bitstream data files, .cod format (header full and compact header payload format modes supported), .bit, .amr and .awb formats |
|
mT |
|
Intercept |
Web interface providing intercept organization and configuration, control of mediaMin instances, and session creation definitions and stream group assignments |
|
|
Session Creation |
Static creation from session configuration files |
mM |
mM, mT |
Dynamic creation from SDP info, stream RTP auto-detect |
mM |
mM |
|
Dynamic creation from IRI info |
mM |
mM |
|
Stream |
Per stream processing, see "Packet Processing and Transcoding" table entry below. Stream groups, stream merging. Merging includes real-time audio and UDP output, and pcap and wav file output (both mono and N-channel wav file) |
mM |
mM |
Stream burst/gap compensation and rate misalignment correction |
mM |
mM |
|
Packet Processing and Transcoding |
Jitter buffer re-ordering depth, DTX, SID, CNG, packet loss mitigation, SID repair, dynamic stream creation (RFC8108), on-demand flush, RFC7198 (temporal), run-time stats |
mM |
mM, mT |
Transcoding |
mM |
mM, mT |
|
Variable ptime (transrating) |
mM |
mM, mT |
|
DTMF event handling, tone detection and generation |
mM |
mM, mT |
|
Sampling rate conversion |
mM |
mM, mT |
|
AI and Deep Learning |
Speech recognition, language detection, speaker identification, and diarization |
mM |
mM, mT |
Test,
Validation, Benchmarking, Interactive Debug |
Stress test, single app thread,
multiple packet/media threads, multiple sessions. Event log validation |
|
mM, mT |
Stress test, multiple app threads,
multiple packet/media threads, multiple sessions. Event log validation |
|
mT |
|
Functional test and validation of
audio quality and packet log |
|
mM, mT |
|
Low level API test, debug, and
custom configuration for SigSRF shared library modules, including pktlib, voplib, streamlib, inferlib, alglib, diaglib, and hwlib |
|
mT |
|
Performance benchmarking for
encoder + decoder, encoder-only, and decoder-only. Command line entry for encoder
bitrate, channel aware, DTX (VAD) |
|
mT |
|
Interactive commands, including
debug output, pause/resume, stats, and profiling. Stats include thread, session, stream
group, channel, and energy saver.
Profiling includes CPU usage for packet/media thread, stream group,
and codec processing |
|
mT |
|
Packet tracing |
|
mT |
|
PLC |
Codec |
mM |
mM, mT |
Stream group |
mM |
mM |
|
Logging |
Event |
mM |
|
Packet |
mM |
|
|
Application Specific Customization |
Customization of API usage, diagnostics, logging, debug output, and stats output |
mM |
mM, MT |
Energy Saver |
Packet/media thread inactivity detection and throttle down |
mM |
mM |
Legend
mM = mediaMin |
mT = mediaTest |
Application Level |
Partial demo available |
Under development |
Notes
- CC = Communication Content (aka ipMMCC)
- CNG = Comfort Noise Generation
- DTX = Discontinuouis Transmission
- IRI = Interception Related Information (aka ipMMIRI)
- PLC = Packet Loss Concealment
- SDP = Session Description Protocol
- SID = Silence Insertion Descriptor
- VAD = Voice Activity Detection
API Interface
DeepLI™ provides two levels of API:- Fine-grained control at the packet/media thread level
- Simplified, minimal interface based on session setup and packet queue push/pull
/*** Packet push / pull loop excerpt from mediaMin source ***/
do {
if (fPause) continue; /* skip push/pull loop if pause is in
effect */
if (Mode & USE_PACKET_ARRIVAL_TIMES) PushPackets(pkt_in_buf, hSessions, session_data, thread_info[thread_index].nSessionsCreated, thread_index); /* in this mode, PushPackets() will push a
packet for each session only if elapsed time exceeds the packet's arrival time
*/
/* packet input interval elapsed
? In Analytics mode (FTRT mode, -r0 cmd line entry) frameInterval is zero, so we push packets as fast as possible. For cmd line entry -rN we push packets at N msec intervals */
gettimeofday(&tv, NULL); cur_time = tv.tv_sec * 1000000L + tv.tv_usec; if (!base_time) base_time = cur_time;
if (cur_time - base_time < interval_count*frameInterval[0]*1000) continue; interval_count++; /* if interval has elapsed, push and pull packets, increment interval. Comparison is in usec */
/* read packets from input pcap files, push to packet/media thread */
if (!(Mode & USE_PACKET_ARRIVAL_TIMES)) PushPackets(pkt_in_buf, hSessions, session_data, thread_info[thread_index].nSessionsCreated, thread_index);
#ifdef SINGLE_STEP
if (isMasterThread) { printf("After
push\n"); fPause = 1; continue; }
#endif
/* pull available packets from
packet/media thread, write to pcap files */
PullPackets(pkt_out_buf, hSessions, DS_PULLPACKETS_JITTER_BUFFER, sizeof(pkt_out_buf), thread_index);
PullPackets(pkt_out_buf, hSessions, DS_PULLPACKETS_TRANSCODED, sizeof(pkt_out_buf), thread_index);
PullPackets(pkt_out_buf, hSessions, DS_PULLPACKETS_STREAM_GROUP, sizeof(pkt_out_buf), thread_index);
/* check for end of input, end of packets send by packet/media thread (to which the session is assigned), flush sessions if needed */
FlushCheck(hSessions, cur_time, &queue_check_time, thread_index);
/* update screen counters */
UpdateCounters(thread_index);
/* update stress test conditions, if
enabled. Note that repeating tests
exit the push/pull loop here, after each thread detects end of input and
flushes sessions */
if (!StressTestActions(hSessions, uFlags_session, thread_index)) break;
} while (!ProcessKeys(hSessions, thread_index)); /* process interactive keyboard commands, continue until 'q' key is entered */
Note that packet output queues are separated into jitter buffer, transcoded, and stream group. For more information on the above source code excerpt, and packet push/pull queues, see SigSRF documentation ◳ section 3.1, Minimum API Applications.
mediaMin and mediaTest Demos
The SigSRF SDK download page (Github) ◳ contains free, limited demo versions of the mediaMin and mediaTest reference applications along with several mediaMin and mediaTest command line examples ◳. In addition to Lawful Interception functionality, the demos provide test, measurement, diagnostic, and event / packet logging examples. Demo limitations include number of concurrent sessions, number of packets processed, and functionality. To remove or relax functionality limits, customized trial versions are available upon request and subsequent to business case discussion. All C/C++ source code for both applications is published.Related Applications
Other available software related to DeepLI:How to Get a Quote
Enter the fields shown above, including:- CPU Type
- License Type
- Product Configuration
Related Items
1) Codec Wav Samples, before and after encode/decode ◳ |
2) mediaMin and mediaTest demo download (Github page) ◳ |
![]() |
mediaTest high capacity media session transcoding screen capture, showing EVS codec performance benchmarking in diagnostic mode |
3) Surveillance Video Suspect Detection and Tracking ◳ |
![]() |
Vidilant suspect detection software screen capture of surveillance video analysis |
4) ffmpeg Acceleration ◳ |
![]() |
FFmpeg screen capture with c66x acceleration enabled |