Instant (multimedia) messaging is a key feature for RCS as it should replace SMS service. There are more types of messages which can be sent through the IMS network.
When we will take a look on the SIP indication of capabilities by Accept header there are quite a few of supported formats:
For common Instant Messages we typically use Common Profile for Instant Messaging (CPIM). This format allows compatibility among various messaging technologies. Notifications are then sent as in Instant Message Disposition Notification (IMDN) format.
Messages can be exchanged over SIP or MSRP protocol. Sometimes also http/ws is being used for transfer of rich content.
Update: For the information about RCS Universal profile read the post GSMA Advanced Messaging – RCS Universal Profile.
RCS 5.2 defines two basic types of messaging. They are the Session Mode Messaging which is based on SIP INVITE and MSRP session and the Pager Mode Messaging which is based on SIP Message. The RCS refers to OMA CPM which is considered to be an evolution of the SMS/MMS messaging services.
Note that SIP MESSAGE can be used also for other than messaging purposes in IMS network (e. g. during eSRVCC registration)
Session Mode Messaging
Session mode does use SIP INVITE and SDP protocol to establish the session. Within the session MSRP protocol is used. This allows to split ones conversation into dialogs and use “..is typing” notifications. On the other hand more resources is needed.
The call flow itself is quite standard SIP session.
The protocol which is used for the data transmition is MSRP. Note that in contrast to RTP (e.g. in VoLTE) the MSRP goes from A-SBC to RCS Application Server. That’s because of the possible interworking with legacy network or because of other messaging services.
This doesn’t usually apply to data (Application/3gpp-ims+xml), which is not intercepted by RCS server, or which can be sent using http protocol via Content Server (http is the only option in RCS UP).
As in VoLTE, also in RCS we apply both originating and terminating services.
Notifications are transferred as standard messages. To find out if the MSRP message is notification or not, we have to firstly decode the CPIM Message.
MSRP hash123456789 SEND To-Path: msrp://220.127.116.11:1634/n0faf-345-2s00t0+0;tcp From-Path: msrp://18.104.22.168:513500/123456720;tcp Message-ID: 01100 Byte-Range: 1-471/471 Content-Type: message/cpim NS: imdn <urn:ietf:params:imdn> From: <sip:+firstname.lastname@example.org> To: <sip:+email@example.com;user=phone> imdn.Message-ID: 251 DateTime: 2013-05-23T08:12:31.730Z Content-Disposition: notification Content-Type: message/imdn+xml; charset=utf-8 Content-Length: 234 <?xml version='1.0' encoding='utf-8' ?> <imdn xmlns="urn:ietf:params:xml:ns:imdn"> <message-id>248</message-id> <datetime>2013-05-13T08:12:22.730</datetime> <display-notification><status><displayed /></status></display-notification> </imdn> -------2afsdffgdfgdfga-f8b0-1dfgd009-1bg1$
Note that SIP MESSAGE method is needed for notifications before the session is established as the INVITE can contain the first message already. Definitely there will be other posts with more details.
The RCS Universal Profile does use only the Session Mode for Advanced Messaging service.
Pager Mode Messaging
Pager mode or Standalone messaging is based on OMA SIMPLE IM or OMA CPM. In this case no session is established and it depends on a client how it will interpret. In Pager mode SIP MESSAGE method is used for the message transfer. The Pager mode used to be a preferred variant for some time.
Each notification is sent as a new SIP MESSAGE.
In case of a large message it is also possible to establish a session. The mechanism is known as a Large Message Mode Messaging. This SIP session should not be confused with Session Mode Messaging as no IM session is established. The SIP session is only used to transmit exactly one large message after which the SIP session is torn down. The limit for the messages using the SIP MESSAGE method is set to a maximum size of 1300 bytes. Messages exceeding this limit are delivered in Large Message Mode.
The feature list of the RCS Standalone messaging service includes the following main features:
- Standalone messaging (text and multimedia)
- Delivery and Display Notifications
- Support for multiple devices per user
- Deferred Messaging
- Common Message Store
- Interworking with legacy messaging services
For both Session mode and Pager mode a seamless fallback into 3G network is available. The application server providing the functionality is called Service layer IP-SM-GW.
SMS over IP
Finally it is also possible to send a traditional SMS over SIP protocol (SMSoIP). Originally was expected that 4G telephones will generate the same payload (SMS) and based on active network they’ll submit them either in 3G as classical SMS or in 4G as a SIP MESSAGE. The content of the SIP MESSAGE is the SM-RP (24.011 – SM Relay protocol) and SMS (23.040 – SMS). It means the content of the massage is binary.
The application server in IMS network responsible for SMSoIP is a Transport layer IP-SM-GW. According the specification 3GPP TS24.341 IP-SM-GW can translate SIP protocol in Sigtran and vice versa. In real life also other protocols as SMPP or Diameter can be used instead of Sigtran.
More details can be found in the post about the Transport Level Interworking.
For the service standard definition check out the latest GSMA RCS Implementation Guidelines.