VoLTE – Some Thoughts On Early-Media

In the good old fixed line SIP world things are straight forward when a SIP user wants to call someone: INVITE, TRYING, RINGING, OK and you are there. In the VoLTE world things are a bit more complicated as the service tries to replicate the circuit switched telephony service. Here, a media stream can already sent before the receiving party answers the call so the caller hears an alerting (ringing) tone or even music in some cases. This is what’s known as early media in VoLTE and there are two ways how this is done in practice:

Built-In ‘Ringing’ (Alterting) Tones

The first one is that the originating device plays an internal alerting tone to the calling person once the 180 RINGING message is received. The interesting catch with this one is that the alerting tone is country specific so the mobile device needs to have different sound files and needs to select one, e.g. based on the home country of the subscriber that can, for example, be deduced from the International Mobile Subscriber Identity (IMSI) on the SIM card.

Early Media and Ringback Music

The second option is that the network streams the alerting tone until the 200 OK is received from the called party. The is called ‘early media’. While this wastes resources on the air interface it is the only option when the network supports Ringback music.

Practical Implementation

In practice both methods are used. On the signaling side early media is implemented by the SIP originator including a P-Early-Media: supported header to let the network know that it supports early media. If the network wants to send the alerting tone or ringback music it informs the originator in the 180 RINGING message with a P-Early-Media: sendonly header line to indicate that a stream has started. In practice the media stream might have started even earlier. If early media is not used the 180 RINGING message contains a P-Early-Media: inactive header line.

Specification Background

For the juicy details have a look at RFC 3960, GSMA IR.92 section 2.2.8 and 3GPP TS 24.628.