The best-effort service offered by the Internet is not suitable for a large variety of multimedia applications, which require strict guarantees on losses and end-to-end delay. We design functionalities and mechanisms for RTP in order to provide a transport service with the properties of circuit switched networks and with the possibility of transporting both constant and variable rate streams. We consider a source that generates structured data units, which are collected in RTP packets. These packets are forwarded to an IP network and reach the receiver with a stochastic delay. An extra delay is computed (on a per-packet basis) and added at the receiver to have delay equalization. The data units in the packet are then delivered to the application at a rate specified in the RTP header. The total delay Delta is a session parameter and can be adjusted by exchanging RTCP messages. The dimensioning of the receiver buffer is the first problem to be solved. The buffer space results in a function of the network delay bounds and the maximum RTP packet size. This information can be conveyed from the source to the receiver through RTCP messages. The timing of the data delivery process and the source clock recovery are also required functionalities. They are both implemented by means of an extension to the RTP header. We developed a method for source clock recovery that removes the network induced jitter by processing the clock indications contained in some RTP header. The recovered clock is then used in combination with other information contained in the packets to control the delivery process. Simulations prove that the circuit emulation service can be implemented on top of the RTP with satisfactory performance.