Comments
A minimum call state set includes the local and remote tags, Call-ID, local and remote CSeq header fields, along with the route set and any state information necessary for the media. This information is used to store the dialog information and for reliability. The remote CSeq storage is necessary to distinguish between a re-INVITE and a retransmission. A re-INVITE is used to change the session parameters of an existing or pending call. It uses the same Call-ID, but the CSeq is incremented because it is a new request. A retransmitted INVITE will contain the same Call-ID and CSeq as a previous INVITE. Even after a call has been terminated, call state must be maintained by a user agent for at least 32 seconds in case of lost messages in the call tear-down.
Posted by gsmxprt
The modification in SIP can involve changing addresses or ports, adding a media stream, deleting a media stream, and so on. This is accomplished by sending a new INVITE request within the same dialog that established the session. An INVITE request sent within an existing dialog is known as a re-INVITE.
Note that a single re-INVITE can modify the dialog and the parameters of the session at the same time.
Re-INVITE caused a lot of trouble if we don't know exactly what's going on with UAC/UAS at the time re-INVITE happen.
The RE-INVITE will have an SDP that specifies the connection ("c=") should be to 0.0.0.0 (e.g. "c=IN IP4 0.0.0.0").
Posted by sagitraz
During Call Hold
For example Call Hold –
• Invite with Call ID 1 - Sends a re-invite with an SDP connection address of 0.0.0.0 to stop all media packets for the session while maintaining the session itself
• Invite with Call ID2 - Sends another re-invite with RTP parameters to take off hold
UAC send UAS Invite- Call-ID 1, Parameter 1
UAS send UAC 100 Ringing
UAC send UAS 200 OK
UAC send UAS ACK
---- RTP ------------
UAC send UAS Invite- Call-ID 1, Parameter 2
UAS send UAC 100 Ringing
UAC send UAS 200 OK
UAC send UAS ACK
Posted by yogendra