Calling UE sends a SIP request, including an SDP offer containing codec(s) and the IP address and TCP or UDP port number at which calling UE wishes to receive media. For some reason, e.g. because proactive invocation of media transcoding is not supported in the terminating network, transcoding is not proactively invoked.
The called UE or a terminating network entity (such as MGCF) determines that it does not support any codec in the SDP offer and answers with an appropriate error response. This response can include a list of codecs that the called UE can support.
Based on the response from called UE indicating that it does not support the offered codecs, an IMS control plane entity responsible for detecting the need of reactive transcoding invocation triggers the invoking function to set up a SIP session with the MRFC, providing codecs and transport parameters to initiate a transcoding session.
The invoking function instructs the MRFC to:
allocate media processing resources from an MRFP entity under the MRFC's control, configured with the address and port at which the calling UE wishes to receive media, using a codec (say, codec-A) previously included by calling UE in the SDP offer hence known to be supported by calling UE;
allocate media processing resources from the same MRFP entity to called UE, using a codec (say, codec-B) known to be supported by called UE; and
cause the MRFP entity to bridge those two media flows, such that media received on one will be converted to the format of and transmitted on the other.
The MRFC accepts the transcoding request and contacts an MRFP to allocate the requested resources. The MRFP responds with the IP address and port number associated with each requested codec. The MRFC returns this information to the invoking function.
Based on the information received from the MRFC, the invoking function creates a new SDP offer that contains the information provided by the MRFC (codec and transport addresses). If no information about supported codecs was available from the error response, the invoking function offers all codecs supported by the transcoding device. It sends this offer to the called UE.
Called UE acknowledges the SDP offer and makes a codec selection, providing in the SDP answer the IP address and TCP or UDP port at which it wants to receive media.
Upon receipt of the answer from the called UE, the invoking function updates the session with the MRFC (providing the codec selected and the address /port information from the SDP answer). The MRFC processes the received information to configure the transcoding unit with the codec, the destination address and port towards the called UE.
The invoking function modifies the SDP answer received from the called UE such that it refers to codec-A and the MRFP address and port number associated with it in step 4, and sends this message to the calling UE. The session between the end points is now established with the media flow traversing the transcoding device.