What is this fuss about RCS ? For the past few weeks I’ve been trying to find the answer to this one. After much information gathering I understood that majority of communicatio platform provider’s mostly OTT such as imessage from apple , RBM already support this features. And it is partially a term coined by Google to bring smart communication festures in Android and other smart phones. In essence RCSe is a part of broader IMS archietcture pulished by GSMA
Update : after 2019 plenty of carriers also already provide RCSe as a replacement of SMS . OEM providers like Samsung also have RCS feature inbuild in phones.
The Rich Communication Services programme is a global initiative to deploy inter-operator services within an industry ecosystem.
Marketed by the GSMA under the brand name joyn, RCS is an upgrade that marks the transition of messaging and voice capabilities from Circuit Switched technology to an all-IP world.
Wider and large scale IMS deployment, interoperability between different terminal vendor RCS clients and RCS service interworking between operators are the key aims of the RCS Initiative.
Whats special about RCS ?
Enhanced Phonebook: service capabilities and enhanced contacts information such as presence and service discovery.
Enhanced Messaging: enables a large variety of messaging options including chat, emoticons, location share and file sharing.
Enriched Calls: enables multimedia content sharing during a voice call, video call and video sharing (see what I see).
Five releases of the RCS specifications have been made to date. Each release expanded the scope of its predecessor.
Release 1 : Offered the first definitions for the enrichment of voice and chat with content sharing, driven from an RCS enhanced address book.
Release 2 : Added broadband access to RCS features: enhancing the messaging and enabling sharing of files.
Release3: Focused on the broadband device as a primary device.
Release4: Included support for LTE.
Release5: The most recent release, global interoperability is a key aspect of these specifications.
As the team developed a web client for making and receiving SIP calls over websockets through a proxy SIP server , I felt its an achievement big enough. To integrate it with RCS ( Rich Communication Suite ) stack appeared as a very complicated job .
I began by adding RCS specific standards modules one by one instead of importing the whole stack / library all together.
So the modules for XCAP for buddylist , MSRP for file transfer , geolocation mapping , cloud sync of phonebook and message book have begun taking shape . In essence following features set are expected out of a RCS enabled Client ( short outline ) Provisioning
OAUTH integration with operator customer portal
RCS HTTP Auto-Configuration
Manual IMS credentials, typically reserved for testing / troubleshooting
Service Discovery o OPTIONS and Presence supported o Address book polling
Delivery & display notifications o Message composing indication
1-1 Chat o IMDN o Is-Composing o Store & forward / deferred message and notification delivery o Hotfixes compliant
Start and end a group chat session
Add or remove participants
Broadcast / Send messages to all participants
Send file via URL or as MIME attachment o Accept or Reject file transfer
Store & forward
Geo-location push via FT
Voice & video o Best effort voice o Transcode
Network Address Book Support o Synchronization to SyncML based network address book o Contact import from Google, Facebook etc.
There are many individual RCS APIs available. Brief details are as follows.
Log user in and out of the RCS server Allows address book contacts to receive periodic updates of user availability for chat, file transfer and other services. This is essential for use of the RCS services.
2. Subscribe application to server-originated notifications This is one of the most important aspects of RCS as events are asynchronous; the notifications channel is used by your application to know how an API call is proceeding and to receive updates from other users such as messages, files and status updates. You can subscribe to certain types of notifications if your application is focused on particular RCS services.
3. Network address book access and management RCS provides each registered user with a server managed address book. Though the other APIs are not restricted to contacts in the network address book this makes it much more convenient to connect with other users. The network address book can have contacts added, removed, attributes changed, and is available to any application the user signs in to.
4. Individual chat services Unlike SMS, which is broadly a ‘fire and forget’ service, the RCS chat services allow much more sophisticated messaging services to be built. Depending on user configuration you can check out whether the user has received the message, and displayed it. RCS chat also allows feedback to other parties when a user is composing a message. There are also group chat services allowing multiple parties to collaboratively message. RCS provides API features for setting up a group chat session, adding or removing chat participants.
5. File Transfer These APIs allow applications to send content between users – whether this is a picture or a document, and whether it is stored originally on the user’s device or elsewhere located on the Internet. They allow the recipient to receive information about the file separately from the file itself so the recipient can choose whether or not to accept the file.
6. User capabilities API Enables the application to retrieve and amend system managed common capabilities of the user.
At this stage I will also put in a bit more about RCS e
RCS e ( enhanced )
What is the difference between RCS-e and RCS?
RCS-enhanced (RCS-e) is the currently available version of RCS, developed to speed time to market. It offers enhanced features such as instant messaging, live video sharing, and file transfer across any device on any network operator
RCS e Benefits :
Focus on advanced communication chat , file transfer , video sharing
Easy to Use zero touch from end user perspective minimal setup for subscribers Interoperability across devices , infrastructure components and service providers
Low barrier to entry / simplify networks Capability discovery using SIP OPTIONS Less impact on network elements and handset battery Lack of presence server reduces cost and time to market
Universal Allows implementation in lower range devices One common device specification
RCS-e Customer Value Proposition
New IP Communication Services , Profile Sharing , Native Device Integration
RCS e Characteristics
Dynamic Capability Discovery
network detects when user attaches with RCs e device
detection triggers network provisioning and client configuration
authentication by network
SSO / GIBA in 3G coverage
SIP Digest in Wifi
Encryption for Wifi access
TLS for SIP and TCP media or IPsec
SRTP for UDP or IPsec
NAT traversal and Keep-alives
File Transfer using MSRP (or Message Session Relay Protocol) is an instant messaging or chat protocol, defined by the IETF in RFC4975. MSRP is a text-based, connection-oriented protocol for exchanging arbitrary (binary) MIME content, especially instant messages.