3.1.5.12.3 SDP Answer in Provisional and Final Responses
SDP answers received in the provisional response of the 18x-level and the final response of the 200-level can be different depending on whether the call is forked. Specifically, if the 18x arrived from one fork and the 200-level from another fork, the SDP answers received can be different.
If an answer was contained in an 18x-level, it SHOULD<19><20> be repeated without any changes in the 200 for the same fork.
If the call is not forked, the SDP answer received in the final 200 response SHOULD<21><22> be the same as the one received in the provisional 18x response.
However, a user agent that supports early media SHOULD accept an SDP answer in the final 200 response which differs, in any of the following ways, from the SDP answer in the provisional 18x response:
The stream direction attribute changes—for example, from a=sendrecv to a=recvonly—as long the stream direction in the final 200 response is compatible with the offer (according to the rules of [RFC3264] section 6.1).
The key value in an a=crypto or a=cryptoscale attribute changes.
A media stream, which was accepted in the SDP answer in the provisional response, is rejected in the final response. For example: the offer included both m=audio and m=video media streams, both streams were accepted in the provisional response, but the m=video stream was rejected in the final response.
For these cases, the user agent processing the final response SHOULD make effective the differences in the SDP answer from the provisional response.