SipServlet spec didn't mention how to treat 183, RFC 3261 didn't say
183 need to treat special either. But in "Understand SIP", page 113:
5.1.5 183 Session Progress
The 183 Session Progress response indicates that information about the
prog- ress of the session (call state) may be present in a message
body or media stream. Unlike a 100 Trying response, a 183 is an end-to-
end response and establishes a dialog (must contain a To tag and
Contact). Unlike a 180, 181, or 182 response, it does not convey any
specific information about the status of the INVITE. A typi- cal use
of this response is to allow a UAC to hear a ring tone, busy tone, or
re- corded announcement in calls through a gateway into the PSTN. This
is because call progress information is carried in the media stream in
the PSTN. A one- way media connection or trunk is established from the
calling party’s telephone switch to the called party’s telephone
switch in the PSTN prior to the call being answered. In SIP, the media
session is established after the call is answered—after a 200 OK and
ACK have been exchanged between the UAC and UAS. If a gateway uses a
180 Ringing response instead, no media path will be established
between the UAC and the gateway, and the caller will never hear a ring
tone, busy tone, or recorded announcement (e.g., “The number you have
dialed has changed, the new number is . . .”) since these are all
heard in the media path prior to the call being answered. Figure 9.1
shows an example call flow with early media.
So 183 is for customize rington. In this case, if it contains SDP,
then we should allow them to be updated. In another word, because it
will change session/dialog status, I think we can safely forward it
multiple times instead of drop retransmission. Or probably 183 is not
retransmission because it contains updated SDP information?
Thanks
Noodle