One of the free RCS services is text messaging. A user can initiate a chat (text conversation) with other RCS user by clicking chosen contact in the contact list view. On the bottom of Contact details window is message field.
Messages are delivered instantly to the other party if only he is online. If the user is not registered to the server (for example the application is closed), the message will be stored on the server and a notification sent though the PUSH mechanism.
When a user comes online all new messages from his inbox are downloaded.
Sent messages have a small icon on the right side of the bubble. It shows the message’s status and can take one of the four forms:
- Sending – it may show up only for a moment, just after you sent a message. It is visible during the time when waiting for response from the server or a timeout
- Failed – when there is no response received from the server, for example if there is network connectivity problem. Messages with this status can be re-sent by tapping on them and selecting appropriate icon.
- Sent – it means that the messages reached the server so that we can be sure that it will reach the other user when only he comes online. Also he should receive PUSH notification already
- Read – it means that the message was received by the destination user. It does not exactly mean that the user read it but for sure the message is shown as new in his chat menu.
The delivery confirmation mechanism is based on a return message sent back by the recipient with information that this particular message has been received. The return message is also stored on the server and even if you are offline now you will get it when only you logs in again. The delivery confirmation messages are never shown in the chat menu, they are processed by the dialer and are used only to update the messages’ statuses.
In Contact details window, over message field, is the emoticons icon. Click it to show a set of emoticons.
Following types of attachments are supported:
- Picture from camera or gallery
- Short video (up to 10 seconds) from camera
- Audio note recorded from microphone (up to 30 seconds)
The attachments can be sent from the conversation view.
The files are uploaded to the server first, even if the other user is online. When the upload is finished the message is sent to the other party with information necessary to download the file. When the message is opened the dialer starts downloading. When downloaded the file is removed from the server.
This approach allows for sending files even if the recipient is offline. The file will be stored on the server along with the message.