CHAT API
Allows user to send a text message to another user . If xivo-chat-backend package is installed messages can be persisted (even if user is disconnected).
A sample of implementation is available in app/assets/javascripts/pages/sampleFlashText.js and app/views/sample/sampleFlashText.scala.html
Chat Methods
Introduction
All chat methods contains sequence number that allows you setting any value to correlate your command with the answer. Basically if you send 3 chat messages to 3 different users, you will be able to know which acknowledgment is related to which destination just by looking at this number.
Send chat message
Cti.sendFlashTextMessage(username, sequence_number, message)
Example :
Cti.sendFlashTextMessage("user", 24, "This is my message");
Retrieve chat history
Cti.getFlashTextPartyHistory(username, sequence_number)
Example :
Cti.getFlashTextPartyHistory("user", 24);
FlashText Events
Handler on : Cti.MessageType.FLASHTEXTEVENT
Message Events
FlashTextUserMessage
Received by the user when a message is sent
{
"msgType": "FlashTextEvent",
"ctiMessage": {
"event": "FlashTextUserMessage",
"from": {
"username": "bwillis",
"phoneNumber": "1001",
"displayName": "Bruce Willis",
"guid": "goegjutxyt8c5dmsqy6xk4f85w"
},
"to": {
"username": "jbond",
"phoneNumber": "1000",
"displayName": "James Bond",
"guid": "eiifh5zietbi7k8ao6ndrzr7zo"
},
"sequence": 145,
"message": "How are you James ?",
"date": "2019-05-28T14:55:08.628+02:00",
}
FlashTextSendMessageAck
The message sent to the user can be delivered to the user, means the user is connected to the server, if the connected application is able to receive the message, message will be delivered.
{
"msgType": "FlashTextEvent",
"ctiMessage": {
"event": "FlashTextSendMessageAck",
"sequence": 1,
"offline": false,
"date": "2020-06-10T12:08:19.565Z"
}
}
FlashTextSendMessageAckOffline
If user is just disconnected, message is persisted and available to be retrieved later on further connection.
{
"msgType": "FlashTextEvent",
"ctiMessage": {
"event": "FlashTextSendMessageAckOffline",
"sequence": 1,
"offline": true,
"date": "2020-06-10T12:08:19.565Z"
}
}
FlashTextSendMessageNack
In case of error (network connection, service not running or not available, database error),
{
"msgType": "FlashTextEvent",
"ctiMessage": {
"event":"FlashTextSendMessageNack"
"sequence":28841,
}
}
History Events
FlashTextUserMessageHistory
Event sent each time when the chat history between two users is requested
{
"msgType": "FlashTextEvent",
"ctiMessage": {
"event": "FlashTextUserMessageHistory",
"users": [{
"username": "jbond",
"phoneNumber": "1000",
"displayName": "James Bond",
"guid": "eiifh5zietbi7k8ao6ndrzr7zo"
}, {
"username": "bwillis",
"phoneNumber": "1001",
"displayName": "Bruce Willis",
"guid": "goegjutxyt8c5dmsqy6xk4f85w"
}],
"messages": [{
"from": {
"username": "bwillis",
"phoneNumber": "1000",
"displayName": "Bruce Willis",
"guid": "goegjutxyt8c5dmsqy6xk4f85w"
},
"to": {
"username": "jbond",
"phoneNumber": "1001",
"displayName": "James Bond",
"guid": "eiifh5zietbi7k8ao6ndrzr7zo"
},
"sequence": 0,
"message": "hello1",
"date": "2020-03-06T16:41:18.789Z"
}, {
"from": {
"username": "jbond",
"phoneNumber": "1000",
"displayName": "James Bond",
"guid": "eiifh5zietbi7k8ao6ndrzr7zo"
},
"to": {
"username": "bwillis",
"phoneNumber": "1001",
"displayName": "Bruce Willis",
"guid": "goegjutxyt8c5dmsqy6xk4f85w"
},
"sequence": 0,
"message": "Hello",
"date": "2020-03-09T10:19:12.763Z"
}],
"sequence": 1
}
}