Media Server
Media Server is an impelmentation of 3GPP defined Media Functons MRFC & MRFP. Media server supports SIP and MSCML based interface with Application Server(s) and RTP based interface with Endpoints.

Media Server is an important component in IMS architecture. Media Server is responsible for handling and delivery of media services to end user. It provides all media related functions i.e. media mixing, Transcoding, and playing of tones and announcements. Media Server is further decomposed into two separate functional elements i.e. MRFC and MRFP.

MRFC is responsible for controlling all session related signaling, it establishes multi party sessions, and deals with all kinds of announcement services and transcoding services.
MRFP on the other hand, ensures media processing activities It further controls all routing information interrogations from CSF and AS. MRFP is responsible of mixing/processing of all media streams and ensures that data is transferred in a correct format.

MediaServer Features:
  • Support for Communicationg with 3GPP/IMS S-CSCF Functions over SIP (MSCML)
  • Sends Media Server Control Markup Language (MSCML) Commands in SIP Info Method
  • Supports MSCML Play, Play Collect, Play Record, Conference Commands and State Machines
  • Supports RTP Media Transmission
  • Supports GSM Codec other codecs can be added

Media Server Architecture

Sip Call Processing State Machine

Figure 3 - Call Leg

Media Handling

One of the main tasks of the media server is to process media. Media processing may include recording, playback, mixing, encoding, decoding etc. Media Server requires an efficient and flexible framework to process audio packets.

Media Processing Architecture

Individual tasks are divided into distinct block called components. The components are linked together in a chain and configured once. These components can then work independently according to the configured options.

Each component has a defined input and output formats. The task of the component is to convert the data from the input format to its output format. The output data then becomes the source of another component. There are three types of components.

  1. Source Component:

This type of component only generates an output, and do not have input. Thus they act as a source of data for a chain e.g. File-Reader and UDP-Receiver.

  1. Filter Component:

This type of component converts the data from one format to another. Most of the components are filter components e.g. Encoder and Decoder.

  1. Sink Components: This type of components only have an input, but no output. Thus they act as a sink of data in a chain e.g. File-Writer and UDP-Transmitter.


Component Chaining

Components are linked with each other to form a chain. The components in the chain depend on the functionality to be provided by the chain. Any type of chain is possible, as long as the output of one component is compatible with the input of the next. The chain represents a unidirectional flow of data. Following are typical chains

  1. Transmitter Chain: This chain reads a file and eventually sends it on the network. Thus it provides audio playback functionality. (media transmitter chain diagram)
  2. Receiver Chain: This chain receives an audio stream and eventually writes it in the file. Thus it provides an audio recording functionality. (media receiver chain diagram)

Components Signals

In addition to process data, each component generates certain signals in case of certain occasional events. Application can provide signal handling functions, which process these signals. Example of these signal include, receiving of DTMF packet in a media stream.

Following components are needed by Media Server

  1. UDP-Receiver: It receives packets on a UDP port.
    • Input: None
    • Output: UDP Packet
  1. RTP-Depacketizer: It de-encapsulates RTP header.
    • Input: RTP Packet
    • Output: Codec Data


  1. Decoder: It decodes encoded audio data according to a certain codec. Each codec will have its own decoder
    • Input: Codec Data
    • Output: Raw Data
  1. File-Writer: it writes data in a file
    • Input: Generic Data
    • Output: None


Figure 4 - Media Receiver Chain


  1. UDP-Transmitter: It sends packets from a UDP port
    • Input: Generic Data
    • Output: None


  1. RTP-Packetizer: It encapsulates RTP header
    • Input: Codec Data
    • Output: RTP Packet
  1. Encoder: It encodes raw audio data according to a certain codec
    • Input: Raw Data
    • Output: Codec Data


  1. File-Reader: It reads data from a file
    • Input: None
    • Output: Generic Data