IMS
INVITE - RCS 1to1 Chat

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

(1)

UA1 --> Proxy/UA2

SIP/SDP

INVITE  

(2)

UA1 <-- Proxy/UA2

SIP

100 Trying  

(3)

UA1 <-- Proxy/UA2

SIP

183 Session Progress  

(4)

UA1 <-- Proxy/UA2

SIP/SDP

200 OK  

(5)

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.