1.15.6 Instant messaging and SMS
IM, referred in the Portal and mobile apps as Chat, is for the service users. Sending messages to phone numbers from external operators is referred as SMS. Both services differ in their functions and technical realization.
The IM functionality is based on the SIP SIMPLE framework for instant messaging. The translation from Web Socket to SIP takes place on the WebToSIP server.
SMS
Outbound SMS are delivered to the sever over web socket and there routed according to the routing plan to appropriate SMSC (SMS termination carrier).
Inbound SMS are usually associated with DID number and after coming from DID provider network to voipswitch are then converted and send over web socket to the browser.
If the destination user is offline the inbound SMSes are stored on the server. The system tries to notify the user by sending PUSH notification to the browser. This is the case when the portal is closed but browser still running.
Voipswitch platform supports various protocols for interconnection with SMS carriers. You can read more here
Chat
Chats are shown in much the same way as is common now on mobile devices, i.e. divided in threads per addressee. Clicking on a particular thread opens a conversation window showing messages from and tothe user (chat). Chat can be started from the Contacts menu by clicking on the chat icon of a chosen RCS user. It can also be opened by clicking on the chat icon on the top bar.
Delivery and Display (read) confirmation
A sent message is marked with a single gray tick. It means that the message reached the server. When the B party receives the message, the single tick on the user A chat view will change to double ticks in gray color. When the B party displays the message the double ticks will change their color to green which indicates that the message was read by user B.
Typing indicator
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.
Attachments
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)
Documents – pdf, xls, doc and other files
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.
This approach allows for sending files even if the recipient is offline. The file will be stored on the server along with the message.
Media
Documents
Location sharing
Location is chosen from the map. 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.
Group chat
Group chat allows for conversation of up to 100 participants. The feature is available only for the RCS users, it does not support OFFNET SMS.
Creating a new group chat is available from the Chats menu. The initial screen allows for entering a group chat subject, group avatar (both of the properties are optional) and to select the participants from the list of the RCS contacts. The group is then created on the server and from there the invitations are sent to the participants.
Invitations come as a chat message and are shown in the Chat menu as a separate thread. The invitee will join the group only when he opens the thread. Only then he will start receiving messages from other members who already joined the group. Any messages sent prior to joining are now shown.
Group chat supports all the attachment types as chat. Location sharing is supported too.