INVITE is a session initiation (session creation) process in SIP based communication. There are some SIP communication that does not require a session establishement (e.g, SMS over IMS or some other form of Short Message), but most of the IMS/SIP based communication (e.g, VoLTE, Video, File Transfer etc) are going on in a session. Whenever the session needs to be established, it is done by INVITE process. The critical part of this process is 'INVITE' at the beginning and 200 OK at the end. But in reality, many other steps are going on between the INVITE and 200OK and the detailed sequences of messages between INVITE and 200 OK differs depending on what kind of session is to be established. (If you are not familiar with what Session means, refer to Session page)
The example in this page is a simple RCS one-to-one chat INVITE flow. The example focuses on the INVITE transaction, provisional responses, 200 OK, and ACK that establish the MSRP chat session. If you want to know the detailed example of what is going on after this session creation, refer to RCS 1to1 Chat page.
Contents
RCS 1to1 Chat INVITE Flow
This flow shows the minimum SIP dialog used to create an RCS one-to-one chat session. The INVITE carries the MSRP-related SDP offer, provisional responses confirm transaction progress, the 200 OK returns the SDP answer, and ACK completes dialog establishment.
|
Step |
Direction |
Protocol |
Message |
Comments |
|
|
UA1 --> Proxy/UA2 |
SIP/SDP |
INVITE | |
|
|
UA1 <-- Proxy/UA2 |
SIP |
100 Trying | |
|
|
UA1 <-- Proxy/UA2 |
SIP |
183 Session Progress | |
|
|
UA1 <-- Proxy/UA2 |
SIP/SDP |
200 OK | |
|
|
UA1 --> Proxy/UA2 |
SIP |
ACK |
(1) INVITE
UA1 sends the INVITE to create an RCS chat dialog and to offer MSRP media parameters in SDP. This step establishes the dialog identifiers and advertises the chat service capability.
INVITE sip:+14448880000@sharetechnote.com;user=phone SIP/2.0
Conversation-ID: 6b79b8bc937e4985b1dffd062b687bd7
Contribution-ID: d5e4121aeec2cc59546ebaef8966ef185a2f37f0
P-Preferred-Service: urn:urn-7:3gpp-service.ims.icsi.oma.cpm.session
P-Preferred-Identity: <sip:310410123456789@sharetechnote.com>
P-Early-Media: supported
Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,INFO,REFER,NOTIFY,MESSAGE,PRACK
User-Agent: Samsung IMS 5.0
CSeq: 1 INVITE
Max-Forwards: 70
P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=31041000010000000
Route: <sip:[2001:0:0:1::2]:5060;lr>
a: *;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.session"
c: application/sdp
f: <sip:310410123456789@sharetechnote.com>;tag=284849603
i: 508868544@2001::1:4c16:9c0f:4986:9e6d
k: timer
l: 363
m: <sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060;transport=UDP>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.session"
t: <sip:+14448880000@sharetechnote.com;user=phone>
v: SIP/2.0/TCP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK2563646430smg;transport=TCP
v=0
o=TEST-IMS-UE 1234562 0 IN IP6 2001::1:4c16:9c0f:4986:9e6d
s=SS VOIP
c=IN IP6 2001::1:4c16:9c0f:4986:9e6d
t=0 0
m=message 8880 TCP/MSRP *
a=accept-types:message/cpim application/im-iscomposing+xml
a=accept-wrapped-types:text/plain message/imdn+xml
a=setup:active
a=path:msrp://[2001::1:4c16:9c0f:4986:9e6d]:8880/FmnP;tcp
a=msrp-cema
a=sendrecv
This SIP message clip highlights the following parameters: Conversation-ID, Contribution-ID, P-Preferred-Service, P-Preferred-Identity, P-Early-Media, Allow, User-Agent, CSeq, Max-Forwards, P-Access-Network-Info, Route, compact headers a, c, f, i, k, l, m, t, v, and SDP attributes m=message, a=accept-types, a=accept-wrapped-types, a=setup, a=path, a=msrp-cema, and a=sendrecv. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
(2) 100 Trying
The proxy or terminating side returns 100 Trying to stop retransmission of the INVITE while the request is being processed. It keeps the same dialog and transaction identifiers from the INVITE.
SIP/2.0 100 Trying
Via: SIP/2.0/TCP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK2563646430smg;transport=TCP
Max-Forwards: 70
From: <sip:310410123456789@sharetechnote.com>;tag=284849603
To: <sip:+14448880000@sharetechnote.com;user=phone>
Call-ID: 508868544@2001::1:4c16:9c0f:4986:9e6d
CSeq: 1 INVITE
Content-Length: 0
This SIP message clip highlights the following parameters: Via, CSeq, Call-ID, From, To, Content-Length, Max-Forwards. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
(3) 183 Session Progress
The 183 response reports early session progress before final acceptance. In this example it preserves the INVITE dialog identifiers and provides contact information for the responding side.
SIP/2.0 183 Session Progress
Max-Forwards: 70
Via: SIP/2.0/TCP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK2563646430smg;transport=TCP
From: <sip:310410123456789@sharetechnote.com>;tag=284849603
To: <sip:+14448880000@sharetechnote.com;user=phone>;tag=b2fbe90a8c2e488ba04ad6d0c0956a6c
Call-ID: 508868544@2001::1:4c16:9c0f:4986:9e6d
CSeq: 1 INVITE
Contact: <sip:+14448880000@sharetechnote.com>
This SIP message clip highlights the following parameters: Via, Contact, CSeq, Call-ID, From, To, Max-Forwards. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
Record-Route: <sip:[2001:0:0:1::2]:5060;lr>
Content-Length: 0
This SIP message clip highlights the following parameters: Content-Length, SDP origin o=, connection c=, media m=message, a=accept-types, a=accept-wrapped-types, a=path, a=msrp-cema, and a=setup. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
(4) 200 OK
The 200 OK accepts the chat session and returns the SDP answer for MSRP. The dialog becomes ready for confirmation once UA1 sends ACK.
Via: SIP/2.0/TCP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK2563646430smg;transport=TCP
From: <sip:310410123456789@sharetechnote.com>;tag=284849603
To: <sip:+14448880000@sharetechnote.com;user=phone>;tag=b2fbe90a8c2e488ba04ad6d0c0956a6c
Call-ID: 508868544@2001::1:4c16:9c0f:4986:9e6d
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, BYE, MESSAGE
Contact: <sip:[2001:0:0:1::2]:49466;transport=tcp>
Content-Type: application/sdp
This SIP message clip highlights the following parameters: Via, Contact, CSeq, Call-ID, From, To, Content-Type, Allow. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
Record-Route: <sip:[2001:0:0:1::2]:5060;lr>
Content-Length: 292
v=0
o=- 1192 5963 IN IP6 2001:0:0:1::2
s=-
c=IN IP6 2001:0:0:1::2
m=message 16000 TCP/MSRP *
a=accept-types:message/cpim application/im-iscomposing+xml
a=accept-wrapped-types:*
a=path:msrp://[2001:0000:0000:0001:0000:0000:0000:0002]:16000/558f02b9d0;tcp
a=msrp-cema
a=setup:passive
This SIP message clip highlights the following parameters: Content-Length, SDP origin o=, connection c=, media m=message, a=accept-types, a=accept-wrapped-types, a=path, a=msrp-cema, and a=setup. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.
(5) ACK
ACK confirms receipt of the 200 OK and completes the INVITE transaction. After this point the MSRP chat session can use the negotiated path and media attributes.
SIP/2.0 200 OK
Max-Forwards: 70
ACK sip:[2001:0:0:1::2]:49466;transport=UDP SIP/2.0
CSeq: 1 ACK
Max-Forwards: 70
Route: <sip:[2001:0:0:1::2]:5060;lr>
f: <sip:310410123456789@sharetechnote.com>;tag=284849603
i: 508868544@2001::1:4c16:9c0f:4986:9e6d
l: 0
m: <sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060;transport=UDP>
t: <sip:+14448880000@sharetechnote.com;user=phone>;tag=b2fbe90a8c2e488ba04ad6d0c0956a6c
v: SIP/2.0/UDP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK1597981393smg;transport=UDP
This SIP message clip highlights the following parameters: ACK request URI, Route, compact headers f, i, l, m, t, v, CSeq, and Max-Forwards. Use these fields to correlate routing, dialog identity, transaction sequencing, registration/session state, security context, and media negotiation for this part of the procedure.