Media Recording On Demand

Overview

Here is an example of the SIP3 Media Quality Widget which helps to classify most of the problems within just a few seconds:

Media Quality Widget

However, there are some situations where detailed quality analysis is still required. In such situations, VoIP engineers usually have to capture an entire call session (including RTP streams) and analyze it in Wireshark manually.

Often case, capturing an entire call session is not an easy thing because of the amount of servers and VoIP traffic. To automate it and provide a better user experience the SIP3 team designed and implemented Media Recording On Demand feature.

Let’s see how you can configure a set of filters to capture entire call session (including RTP streams in FULL or GDPR modes) and analyze it later in Wireshark.

Usage

Here is an example of recording.yml file with Media Recording On Demand configured:

recording:
  enabled: true
  filters:
    - filter: "ip.src_addr=26.03.19.93 sip.user=desi"                         (1)
      mode : 0                                                                (2)
    - filter: "ip.host=RTP_ENGINE_1 rtp.r_factor<75 rtp.duration>10000"       (3)
      mode : 1                                                                (4)
1 SIP signaling filter that enables recording of session from 26.03.19.93 and to or from user desi.
2 FULL mode. In this mode SIP3 will record full RTP packets including voice payload.
3 Media quality filter that enables recording of Media sessions with host RTP_ENGINE_1, R-Factor calculated from RTP less that 75 and duration of RTP stream more than 10000ms (10 seconds)
4 GDPR mode. In this mode SIP3 will record only headers of RTP packets without voice payload.

Now more about filters.

Filters

There are two types of filters in SIP3 for Media Recording On Demand:

  1. SIP signaling filters - applied at the codec negotiation phase.

  2. Media quality filters - applied to each periodic RTP Report handled by Salto.

Configuration of Media Recording On Demand may contain multiple filters of both types. SIP3 loads and uses filters in the order defined in configuration. The first matching filter’s recording mode will be applied to matched Call/Media session.

Modes

Each filter controls Media Recording Mode. SIP3 supports FULL and GDPR modes:

Mode Value Description

FULL

0

Full RTP/RTCP and related ICMP packets including voice payload

GDPR

1

Only headers of RTP/RTCP and related ICMP packets without voice payload.

In addition to GDPR compliance of GDPR mode requires much less storage space (about 3-4 times less).

Recording Mode can’t be overridden for the same Media Session.

Expressions

Each Filter contains one or more Expression separated with Space. Expression has a simple structure <attribute><operator><value>. SIP3 supports four attributes types: String, Boolean, Integer or Float type. In meantime each attributes type supports a certain list of operators. Filter is matched when all Expressions will be True.

Operator Types Description

=

String, Boolean, Integer, Float

Equals

!=

String, Boolean, Integer, Float

Not equals

>

Integer, Float

More than

<

Integer, Float

Less than

=~

String

Regular expression

SIP signaling filters attributes

Attribute Type Description

ip.src_addr

String

Source IP address

ip.dst_addr

String

Destination IP address

ip.addr

String

Source or Destination IP address

sip.caller

String

Caller from SIP Signaling

sip.callee

String

Callee from SIP Signaling

sip.user

String

Caller or Callee from SIP Signaling

Custom sip.*

String, Boolean

Custom User Defined Attributes

Media quality filters attributes

Attribute Type Description

ip.src_addr

String

Source IP address

ip.dst_addr

String

Destination IP address

ip.addr

String

Source or Destination IP address

rtp.duration, rtcp.duration

Integer

RTP/RTCP Duration of media stream in milliseconds

rtp.mos, rtcp.mos

Float

RTP/RTCP MoS value

rtp.r_factor, rtcp.r_factor

Float

RTP/RTCP R-Factor value