One of the free RCS services is text messaging. A user can initiate a chat (text conversation) with other RCS user by taping on free chat icon in the contact details view or using the shortcuts icons on the Contacts list. Another way is to start a new chat from the Chats menu and choose the destination contact.
The chat menu shows all messages in form of threads grouped by sender, similarly to the call log. When clicking on a row the conversation view opens which contain the received messages and own messages sent to this user, all shown in chronological order.
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.
When the other party is composing a message and you are in the conversation view you will see a small animated picture on the top bar. When you tap the input text field the other party will see the same typing notification on his side as long as you keep the focus on the text field. It will stop when you tap on anywhere else on the screen or sent the message.
When the keyboard is put up, on its left side is the emoticons icon. Tap it to switch the standard keyboard to the view with 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.
Another feature connected to Instant Messaging is sending geographical location. It can be a location of the sender or any location chosen by the user, for example a meeting venue. By default the map shows the current location.
In addition to the coordinates a user can send some texts within the message as shown on the below pictures.
Sending to many
A message and also an attachment can be sent to multiple recipients. What you have to do is to tap the new message icon located on the bottom bar and then in the composer view tap on the contact icon which is located next to the input field for entering phone number. The contact list will appear with additional checkboxes in each row allowing to select the addressees. The server will take care of putting the message into individual inbox of each user and delivering the message. The recipients can comprise of both RCS users and non RCS (offnet) numbers.
The recipients will see the sender’s display name only, without any indication of other persons who get the message.
Also the file attachments can be sent this way, with the exception that the list cannot include offnet numbers. When a file is sent to many users the servers will store the file as long as all of the recipients have downloaded it. Only they the file is erased.
This function allows for conversing with a group or RCS users. They all see who else is in the group and messages sent from one user are received by all others. The messages are sent first to the server and then distributed to the users.
When you start a new group automatically you become the group’s admin. In the first step you have to add other RCS users (from your Contacts) to the group. They will receive an invitation which they can accept or decline. When accepted they join the group chat and information about it is sent to other users which will see a message that user this and this has joined. Also when someone leaves the group chat similarly a message appears that the user has left the chat. During the chat any participant can see the current list of participants by tapping on the menu button.
The admin of the group can add new participants to the chat and remove them. He can close and delete the group chat from the server. Each group chat can have a subject which is also set by the admin.
The group chat supports all the Instant Messaging features such as deferred messages, PUSH notification, attachments and geolocation sharing.
In the dialer group chats are shown as threads in the chats list.