Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Noprint
Panel
borderColorgreen
bgColortransparent
borderWidth2

Back to Table of Contents 

Back to Media Services

...

In this section:

...

Spacevars
0series4
supports Message Session Relay Protocol (MSRP), which is typically used for Instant messaging and File Transfer applications over TCP or TLS. MSRP is established, similar to any other media application such as Audio or Video, using Session Initiation Protocol (SIP) by exchanging the Session Description Protocol (SDP) using the offer/answer model. The
Spacevars
0product
mostly adheres to RFC 6714 Connection Establishment for Media Anchoring and RFC 4145 TCP-Based Media Transport in the Session Description Protocolwhile also considering the key concepts as defined in RFC 4975. The
Spacevars
0product
does not provide MSRP B2BUA functionality, and relays MSRP payload while providing peripheral 
Spacevars
0product
functionality.  

MSRP session setup is similar to audio and video sessions. For details,

...

...

.

 

Note

MSRP/TCP and BFCP/TCP use ephemeral port range and are not displayed as regular media. BFCP/UDP uses media port range (UDP), therefore, it is visible.

MSRP Configuration

Enabling MSRP on the SBC

MSRP support is enabled or disabled on a per-trunk group basis, and is controlled by the SIP trunk group media flag called "msrp". By default, MSRP is enabled. The CLI syntax is shown below:

Code Block
languagenone
% set addressContext <addressContextName> zone <zoneName> sipTrunkGroup <trunkGroupName> media msrp <enabled | disabled>

...

Refer to SIP Trunk Group - Media - CLI or SIP Trunk Group - Media (EMA) for configuration details.

Source Address Filtering

The

Spacevars
0product
supports source address filtering for MSRP packets. If enabled, the
Spacevars
0product
accepts the TCP connection only from the IP address negotiated in SDP. If disabled, SBC does not perform any source address validation before accepting TCP connection. This is enabled by default. The CLI syntax is shown below.

Code Block
languagenone
% set addressContext <addressContextName> zone <zoneName> sipTrunkGroup <trunkGroupName> media sourceAddressFiltering <enabled | disabled>

See

...

SIP Trunk Group - Media - CLI or SIP Trunk Group - Media (EMA) for configuration details.

TCP Listener Port Range

This port range is used by the 

Spacevars
0product
to advertise which TCP port can accept connections. A unique unused port from this range is included in the SDP media line in the offer or answer towards the MSRP UAs. The
Spacevars
0product
uses a port from this range per MSRP call leg, if it takes up a TCP server role. The default range is 1024 to 65535.

Code Block
languagenone
% set system media tcpPortRange {1024..65535}

See Media System - CLI for configuration details.

DSCP Marking for MSRP Packets

Differentiated Services Code Point (DSCP) is an IP packet field that enables different levels of service to be assigned to network traffic. DSCP is the combination of IP Precedence and Type of Service fields. The

Spacevars
0product
supports DSCP marking of MSRP packets using the "typeOfService" configurable in the Packet Service Profile to set six most significant bits of Type of Service byte in an IP header. The CLI syntax is shown below. Default value is "0".

Code Block
languagenone
% set profiles media packetServiceProfile <profileName> qosValues msrpDscp <value to be set>

See Packet Service Profile - CLI or Media Profiles - Packet Service Profile (EMA) for configuration details.

Reserving Interface Bandwidth

MSRP traffic can consume significant bandwidth depending upon the application. For example, a UA that wishes to transfer a file using MSRP can potentially use up significant amount of bandwidth as compared to a UA that uses MSRP to send an instant message. To limit bandwidth usage, reserve a percentage of bandwidth across all physical interfaces using the following CLI command. The default value is "0" %.

Code Block
languagenone
% set system media dedicatedBWForNonRTPMedia <0...50>

For default values, the bandwidth available for RTP traffic across all interfaces will continue to be 95%, MSRP shares the 5% remaining bandwidth with signaling. This is suitable only when the expected bandwidth usage for MSRP is minimal and not expected to grow any larger.

Ideally, a percentage of the interface should be reserved for MSRP by setting a non-zero value. This will accordingly reduce the available bandwidth for RTP from 95%. However, this will guarantee that aggregate MSRP traffic usage does not exceed the reserved bandwidth, thereby not interfering with RTP or Signaling.

See Media System - CLI for configuration details.

MSRP Call Admission Control

The number of active MSRP sessions allowed on the

Spacevars
0product
can be restricted using the following CLI command. The MSRP active session limit can be specified per trunk group (default value is unlimited). Once this configured limit is reached, no new MSRP sessions are accepted, but are instead rejected gracefully with a 488 response code to the INVITE.

Code Block
languagenone
% set addressContext <addressContextName> zone <zoneName> sipTrunkGroup <trunkGroupName> cac tcpMediaLimit <0...5000>

See 

...

...

...

CAC (EMA) for configuration details.

Direct Media

MSRP can be configured for Direct Media mode similarly to audio or video. In Direct Media mode, MSRP packets are exchanged directly between the UAs without traversing the

Spacevars
0product
. However, SIP session are still established through the
Spacevars
0product
and exist in the signaling path until the SIP sessions are torn down.

To configure MSRP for Direct Media, do the following:

  1. Enable the Direct Media flag in the Packet Service Profiles. If using different packet service profiles on both legs of the call, enable Direct Media on both packet service profiles. For example:

    Code Block
    languagenone
    % set profiles media packetServiceProfile PUBLIC_leg flags useDirectMedia enable 
    % set profiles media packetServiceProfile PRIVATE_leg flags useDirectMedia enable 
  2. Enable the Direct Media control flag on the SIP trunk groups used for both legs of the MSRP session. For example:

    Code Block
    languagenone
    % set addressContext default zone PUBLIC sipTrunkGroup PUBLIC_TG media directMediaAllowed enabled
    % set addressContext default zone PRIVATE sipTrunkGroup PRIVATE_TG media directMediaAllowed enabled 

See following pages for configuration details:

...

NAT

MSRP UAs residing behind NAT can be configured at the SIP trunk group as follows. For example:

Code Block
languagenone
% set addressContext default zone PUBLIC sipTrunkGroup PUBLIC_TG services natTraversal mediaNat enabled 

As described in the "Connection Negotiation" section of MSRP Session Setup page, with NAT enabled, the SBC always plays a TCP server role expecting the UAs to connect to it. To ensure that no malicious client connects to the SBC, enable the following configuration to validate that the connecting peer’s MSRP IP address belongs to the same subnet as the SIP signaling IP from where the INVITE originated. For example:

Code Block
languagenone
% set addressContext default zone PUBLIC sipTrunkGroup PUBLIC_TG services natTraversal secureMediaNatPrefix 29 

See

...

SIP Trunk Group - Services - CLI or SIP Trunk Group - Services (EMA) for configuration details.

MSRP Stats and CDR

The

Spacevars
0product
collects and displays basic statistics per MSRP session, such as the number of bytes exchanged and the TCP IP and Port information of the UAs involved in the session. The statistics can be displayed either using the CLI commands below or by viewing in the Call Detail Record as shown below.

CLI Example:

Code Block
languagenone
> show status global callMediaStatus
    callMediaStatus 786432 {
    mediaStreamsInCall                         audio,TCP/MSRP/CHAT;
     :
    mediaStream3Label                          TCP/MSRP/CHAT;
    ingressMediaStream3OctetsSent              136;
    ingressMediaStream3OctetsReceived          136;
    egressMediaStream3OctetsSent               136;
    egressMediaStream3OctetsReceived           136;
    egressMediaStream3TcpRole                  server;
    ingressMediaStream3TcpRole                 server;
 
> show status global callDetailStatus
    callDetailStatus 786432 {
    mediaStreams                        audio,TCP/MSRP/CHAT;
    :
    ingressMediaStream3LocalIpSockAddr  "10.7.16.108/ 2000";
    ingressMediaStream3RemoteIpSockAddr "10.7.6.40/ 42580";
    egressMediaStream3LocalIpSockAddr   "10.7.16.109/ 2000";
    egressMediaStream3RemoteIpSockAddr  "10.7.6.40/ 42579"; 


See

...

Show Status Global (CLI) or Global - Call Media Status (EMA) for details.

Call Detail Record Example:

Code Block
languagenone
230.14 mediaType2                          :  TCP/MSRP/FILEXFER

...

     230.15 streamIndex2                   :  2

...


     230.16 ingress codec used2            :  n/a

...


     230.17 ingress local IP2              :  10.54.20.29:2000

...

     230.18 ingress remote IP2             :  10.70.56.124:59112

...


     230.22 egress local IP2               :  10.54.21.29:2000

...

     230.23 egress remote IP2              :  10.54.21.29:2001

...



231.16 mediaType2                         :  TCP/MSRP/FILEXFER

...


     231.17 streamIndex2                   :  2

...

     231.18 ingress packetSent2            :  0

...


     231.19 ingress packetReceived2        :  0

...


     231.20 ingress octetSent2             :  804

...

     231.21 ingress octetReceived2         :  5634

...


     231.22 ingress packetLost2            :  0

...


     231.23 ingress packetDiscarded2       :  0

...

     231.24 egress packetSent2             :  0

...


     231.25 egress packetReceived2         :  0

...


     231.26 egress octetSent2              :  5634

...

     231.27 egress octetReceived2          :  804

...


     231.28 egress packetLost2             :  0

...


     231.29 egress packetDiscarded2        :  0"


Pagebreak