The SBC generates an audio fingerprint file on a sub-set of the calls identified for capture by SIPSG using the SAGE triggering algorithm. For calls where the audio fingerprint is computed, it is computed based on the incoming audio on the Ingress leg of the call. The audio fingerprinting is performed only for the calls where the Ingress leg is encoded using G.711 (A-law or μ-law), G.729AB, G.722, AMR, AMR-WB, EVRC, or EVRCB.
Fingerprinting Sub-system
A sub-system is added onto the SBC to generate audio fingerprints on the calls selected for fingerprinting. The sub-system is responsible for placing media audio into buffers, calling a fingerprinting function to generate a fingerprint from the audio in a media buffer, storing fingerprints, and freeing buffers once the fingerprint is generated. The fingerprinting sub-system also ensures the fingerprints are not generated when the resources are not available to perform.
- Audio fingerprinting is set to enabled by default. A global configuration option is provided to disable fingerprinting on the SBC.
- Disabling the audio fingerprinting frees the memory allocated to store the associated captured media.
- There are a fixed number of buffers available to capture the audio for a fixed number of calls. When all of these buffers are in use, no additional calls are selected for audio fingerprinting.
Fingerprinting Application
Fingerprinting application processes the call media and converts it to fingerprints. It supports a list of compressed codecs as well as G711U law and A-law. The media appears in the RTP packet format.
- The fingerprinting RTP handling matches the expected RTP payload type for accepting packets. Packets with other PT are rejected. The Silence Suppression media is supported and the media decoder follows the RTP timestamps to understand the silence gaps.
- Out of Order Packets sequence is rectified for up to sequence number difference of 10 packets. The sequence number gap of up to 50 is assumed as due to packet loss, and the packet loss decoder is used. For higher sequence numbers, the SBC assumes that there is a new source and therefore silence gaps are not enforced. During the SSRC change, a new media stream is assumed. The timestamp jumps greater than the remainder of media from 30 seconds are assumed as due to the new stream start.
Fingerprinting supports the following codecs:
- G.711U
- G.711A
- G.729AB
- G.722
- AMR Narrow band Octet aligned, all rates
- AMR Narrow band Bandwidth efficient, all rates
- AMR Wideband Octet aligned, all rates
- AMR Wideband Bandwidth efficient, all rates
- EVRC-A interleaved and header free
- EVRC-B interleaved and header free
- Header inspection is performed for codecs with TOC, namely, AMR, AMRWB, EVRC, and EVRCB with interleaved formats. The Audio fingerprint files are generated on the Integrated SBC and the D-SBCs, including the SBC SWe, SBC5K, and SBC7K. For the D-SBCs, fingerprints are stored on the M-SBC. Correlation records are stored on both the S-SBC and the M-SBC to match the fingerprints and PDUs. The audio fingerprinting feature does not prevent the SBC from reaching its stated performance targets in terms of concurrent calls and calls per second. For calls where a fingerprint is generated before the switchover, the fingerprint is stored in the TRC file.