Messaging

This module enables publication and receipt of In-app Messages and Push notifications. The usage of this module is optional.

This module has the following classes:

IMI.ICMessaging

The ICMessaging singleton class facilitates you to send and receive Live Chat / In-App Messaging messages and update the read status for Live Chat / In-App Messaging and Push.

connect

This method is used to establish a connection to receive Real-Time Messages from the Webex Connect platform.
When the connection is successful, the status events are notified through ICMessagingReceiver.onConnectionStatusChanged.

📘

Note

It throws an Exception if a user is not registered with Webex Connect or if the Live Chat / In-App Messaging feature is not enabled in the policy.

📘

Note

The Time-to-Live (TTL) limit is of 24 hours for In-App and Live Chat messages. Messages undelivered within this period will expire and will not be sent via MQTT or Web Sockets. To avoid loss of undelivered messages, app developers are recommended to implement 'fetch threads' and 'fetch messages' functionality to download these messages from the Server-Side Inbox.

Note that, if Server-Side Inbox is disabled for your app asset, then these messages will be lost if they are not delivered to the customers device within 24 hours.

Syntax: void connect()

Example:

var messaging = IMI.ICMessaging.getInstance();
try {
    messaging.connect();
} catch (error) {
    console.log(error)
}

disconnect

This method is used to disconnect the connection between the app and the Webex Connect platform. If there is no active connection, then this method fails silently.
When the disconnection is successful, the status events are notified through ICMessagingReceiver.onConnectionStatusChanged.

📘

The disconnect method throws an Exception if a user is not registered with Webex Connect or Live Chat / In-App Messaging feature is not enabled in the policy.

  Syntax: void disconnect()

  Example:

var messaging = IMI.ICMessaging.getInstance();
try {
    messaging.disconnect();
} catch (error) {
    console.log(error)
}

fetchTopics

This method is used to get a list of topics that are configured with the Webex Connect app. Use the filter parameter to control the type of topics that are returned.
Results are reported through a callback.

  Syntax: void fetchTopics(start, callback)

  Parameters:

ParameterTypeDescription
startintegerSpecify starting index for results
callbackJSObjectSpecifies the callback object.

Example:

var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function(ictopicslist) {
        console.log("success");
        //Write your logic to read topics and subscribe/unsubscribe/publish on those topics. 
        if (ictopicslist) {
            for (var i = 0; i < ictopicslist.length; i++) {
                var icTopic = ictopicslist[i];
                console.log(icTopic.getName());

            }

        }
    },
    onFailure: function(errormsg) {
        console.log("failed to get topics");
    }

};
messaging.fetchTopics(IMI.ICAccessLevelFilter.All, callback);

getConnectionStatus

This method is used to get the current connection status between the SDK and Webex Connect platform.

  Syntax: ICConnectionStatus getConnectionStatus()

  Return Value:
Returns the current connection status between the SDK and the Webex Connect platform.

  Example:

var messaging = IMI.ICMessaging.getInstance();
try {
    var connectionStatus = messaging.getConnectionStatus();
    if (connectionStatus == IMI.ICConnectionStatus.Connected) {
        //write your logic here
    }
} catch (error) {
    console.log(error)
}

getInstance

This method is used to get the ICMessaging singleton instance. The instance is created internally on demand.

  Syntax: ICMessaging getInstance()

  Return Value:
Returns the ICMessaging singleton instance.

  Example:

var messaging = IMI.ICMessaging.getInstance();

isConnected

This method is used to verify whether the Live Chat / In-App Messaging connection is established between SDK and Webex Connect. This is a convenience method for getConnectionStatus() == ICConnectionStatus.Connected.

  Syntax: boolean isConnected()

  Return Value:
Returns _true _if the Live Chat / In-App Messaging connection is established between SDK and Webex Connect.

  Example:

var messaging = IMI.ICMessaging.getInstance();
try {
    var isConnected = messaging.isConnected();
    if (isConnected) {
        //write your logic
    }
} catch (error) {
    console.log(error)
}

publishMessage

This method is used to publish the passed ICMessage instance through Live Chat / In-App Messaging connection.
The results of the operation are reported through a callback.

  Syntax: void publishMessage(message, callback)

  Parameters:

ParametersTypeDescription
messageICMessage Refer to ICMessage class.
callbackJSObjectSpecifies the callback object.

  Example:

var callback = {
    onSuccess: function() {
        console.log("message sent");
    },
    onFailure: function(errormsg) {
        console.log("failed to send message");
    }
};
 var messaging = imi.ICMessaging.getInstance();
   var message = new imi.ICMessage();

   message.setMessage("Test message");
   var thread = new imi.ICThread();
   thread.setId("threadid <which is created using createThread()/came in Message>");
   thread.setTitle("cricket");
   thread.setStreamName("sports");
   message.setThread(thread);
   messaging.publishMessage(message, callback);

setMessageAsRead

This method is used to update the status of the message identified by transactionId as Read.
The results of the operation are reported through a callback.

  Syntax: void setMessageAsRead(transactionId, callback)

  Parameters:

ParameterTypeDescription
transactionIdStringSpecifies a single transaction id.
callbackJSObjectSpecifies the callback.

  Example:

//To send single message read status back to <<prodname>>
var messageTransactionId = "<your message transaction id>";
var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function() {
        console.log("success");

    },
    onFailure: function(errormsg) {
        console.log("failed ");
    }

};

messaging.setMessageAsRead(messageTransactionId, callback);

setMessagesAsRead

This method is used to update the status of the message identified by transactionIds as Read.
The results of the operation are reported through a callback.

  Syntax: void setMessagesAsRead(transactionIds, callback)

  Parameters:

ParameterTypeDescription
transactionIdsString []Specifies an array of transaction ids.
callbackJSObjectSpecifies the callback object.

  Example:

//To send mutliple messages read status back to <<prodname>>
var msgTransIds = ["transid1", "transid2", "transid3"];
var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function() {
        console.log("success");

    },
    onFailure: function(errormsg) {
        console.log("failed ");
    }

};

messaging.setMessagesAsRead(msgTransIds, callback);

setICMessagingReceiver

This method is used to set ICMessagingReceiver callback. It contains two methods. When a message is received, ICMessagingReceiver.onMessageReceived method is called. When a connection status is changed ICMessagingReceiver.onConnectionStatusChanged method is called.
The results of the operation are reported through a callback.

  Syntax: void icMsgReceiverCallback

  Parameters:

ParameterTypeDescription
icMessagingReceiverICMessagingReceiverRefer to ICMessagingReceiver.

  Example:

//To receive connect status changes and published messages
	var icMsgRecrCallback = new IMI.ICMessagingReceiver();
	icMsgRecrCallback.onConnectionStatusChanged = function(statuscode) {
		console.log("read the statuscode, based on the status do the operations");
		    if (statuscode == IMI.ICConnectionStatus.Connected) {
             //Connected
			 } else if (statuscode == IMI.ICConnectionStatus.Error) {
               //Error while connecting 
             }else if (statuscode == IMI.ICConnectionStatus.Refused) {
               //Connection lost
             } else {
                 //unknow error
             }
	};
	icMsgRecrCallback.onMessageReceived = function(icMessage) {
	    //icMessage is IMI.ICMessage object
		if (icMessage.getType() === imi.ICMessageType.Message) {
		   //here direct message  came from server(message sent from api)
                   
          } else if (icMessage.getType() === IMI.ICMessageType.ReadReceipt) {                       
			//here read receipt came from another application for device syncing(read sent from another device)

          } else if (icMessage.getType() === IMI.ICMessageType.Republish) {
            //here repulished message came from another application for device syncing (message send from  another device)          
          }
	}
	
	var messaging = IMI.ICMessaging.getInstance();
	messaging.setICMessagingReceiver();

subscribeTopic

This method is used to subscribe to the topic that has Read access level, allowing the SDK to receive messages on that topic.
The results of the operation are reported through a callback.

📘

Incoming messages are received through ICMessagingReceiver.onMessageReceived.

  Syntax: void subscribeTopic(topicId, callback)

  Parameters:

ParameterTypeDescription
topicIdStringSpecifies the topic Id to subscribe.
callbackJSObjectSpecifies the callback.

  Example:

//To subscribe to a topic
try {
    var messaging = IMI.ICMessaging.getInstance();

    var callback = {
        onSuccess: function() {
            console.log("success");

        },
        onFailure: function(errormsg) {
            console.log("failed ");
        }

    };
    var topic = "<Topic Name>";

    messaging.subscribeTopic(topic, callback);

} catch (error) {
    console.log(error)
}

unsubscribeTopic

This method is used to unsubscribe to the topic that has Read access level, preventing the SDK to receive messages on that topic. The messages may still be received until the callback has reported success.
The results of the operation are reported through a callback.

  Syntax: void unsubscribeTopic(topicId, callback)

  Parameters:

ParameterTypeDescription
topicIdStringSpecifies the topic Id to unsubscribe.
callbackJSObjectSpecifies the callback.

callback = {
onSuccess: function(){
},
onFailure: function(){
}
};

  Example:

//To unsubscribe to a topic
try {
    var messaging = IMI.ICMessaging.getInstance();

    var callback = {
        onSuccess: function() {
            console.log("success");

        },
        onFailure: function(errormsg) {
            console.log("failed ");
        }

    };
    var topic = "<Topic Name>";

    messaging.unsubscribeTopic(topic, callback);

} catch (error) {
    console.log(error)
}

createThread

This method is used to create a Thread

  Syntax: createThread(icThreadObject, createThreadCallback)

  Parameters:

ParameterTypeDescription
icThreadObjectStringInstance of IMI.ICThread
createThreadCallbackStringCallback object
callbackInvokes to report operation success or failure.
var createThreadCallBack = {
                        onSuccess: function (thread) 
                        {
                            console.log(thread);
                        },
                        onFailure: function () 
                        {
                            console.log("failed to create thread")
                        }
                    };
                    Integermessaging.createThread(steamid, threadtitle, createThreadCallBack);

updateThread()

Use this API to update a thread’s title.

Syntax: updateThread(thread, updateThreadCallBack);

Parameters:

ParameterDescription
ThreadInstance of ICThread object
callbackJS object containing onSuccess and onFailure methods.

Sample:

var messaging = IMI.ICMessaging.getInstance();  
    messaging.updateThread(thread, updateThreadCallBack);

closeThread

Use this API to close an existing thread

Syntax: closeThread (icThreadObj, callback)

Parameters:

ParameterDescription
icThreadObjInstance of ICThread object
callbackJS object containing onSuccess and onFailure methods.
var closeThreadCallBack = {
            onSuccess: function (threadObj) {
              debug('closeThreadCallBack onSuccess', threadObj);
            },
            onFailure: function (err) {
              debug("closeThreadCallBack onFailure", err);
            },
          };
          function closeThread() {
//thread = new IMI.ICThread();instance of ICThread object
thread.setReasonForStatusChange(reason);

            var messaging = IMI.ICMessaging.getInstance();
            messaging.closeThread(thread, closeThreadCallBack);
          }

fetchThreads

This method is used to get a list of threads that are created and at least one message transaction completed. Results are reported through the callback.

  Syntax: fetchThreads(offset, limit, callback)

  Parameters:

ParameterTypeDescription
offsetString (Integer)Pass offset value to fetch threads from that offset value.

Default value is 0.
limitInteger (mandatory parameter)Specifies the maximum number of items that can be returned in threads array.

Default value is 100.
callbackCallbackInvokes to report if operation is a success or failure.

Success callback returns an additional value, a positive value indicating more threads on the server.

unread_msg_count: Each thread object returns this based upon “server_inbox_version” in policy.

onFetchThreadsSuccess(threads, hasMoreThreads)
var messaging = IMI.ICMessaging.getInstance();
    messaging.fetchThreads(offset, limit, fetchThreadsCallback);
var fetchThreadsCallback = {

onSuccess: (threads, hasMore) => {

console.log('fetchThreads:onSuccess:threads ', threads);

}

},

onFailure: (error) => {

console.log('fetchThreadsCallback: errormsg: ', error);

},

};

fetchMessages

This method is used to get a list of messages from the Connect platform. All results are reported through the callback.

  Syntax: fetchMessages(threadId, beforeDate, limit, callback)

  Parameters:

ParameterTypeDescription
threadIdStringSpecifies the ThreadId value.
beforeDateDateSpecifies the date since the messages must be returned. This value is optional; if nothing is passed then it is considered as current Date Time.
limitIntegerSpecifies the maximum number of items that can be returned in messages array.

Default value is 100
callbackCallbackInvokes to report if operation is a success or failure.

totalCount: fetchMessagesCallback returns total number of messages for the userid/thread.

fetchMessagesSuccess(messages: any[], totalCount)
var messaging = IMI.ICMessaging.getInstance();
                    var messagesCallBack = {
                        onSuccess: function (messages) {
                        },
                        onFailure: function () {
                            console.log("failed to get messages");
                        }
                    };
                    messaging.fetchMessages(threadId, beforeDate, limit, callback);

fetchUnreadThreadCount

This method is used to get the count of threads that have unread messages.

  Syntax: fetchUnreadThreadCount(callback)

  Parameters:

ParameterTypeDecsription
callbackCallbackInvokes to report if operation is a success or failure.

Count: returns the unread thread count for user

fetchUnreadThreadCountSuccess(count)
var messaging = IMI.ICMessaging.getInstance();
    messaging.fetchUnreadThreadCount(callback);

getSDKVersion

This method gets the SDK version being used.

  Syntax: getSDKVersion()

  Returns: string version of SDK

this.sdkVersion = "v" + IMIconnectPlugin.getSDKVersion();

IMI.ICMessagingReceiver

This class allows the interception of incoming messages and Live Chat / In-App Messaging connection status changes. The default class provides standard message handling. You must invoke setICMessagingReceiver to set ICMessagingReceiver callback.

Public Methods
void onConnectionStatusChanged(status)
void onMessageReceived(message)

onConnectionStatusChanged

This method is invoked whenever there is a change to the Live Chat / In-App Messaging connection status.

  Syntax: void onConnectionStatusChanged(status)

  Parameters:

ParameterTypeDescription
statusICConnectionStatusRefer to ICConnectionStatus class.

onMessageReceived

This method is invoked whenever a new Live Chat / In-App Messaging message is received.

  Syntax: void onMessageReceived(message)

  Parameters:

ParameterTypeDescription
messageICMessageRefer to ICMessage class.

IMI.ICMediaFile

This class is deprecated.
This class exposes data relating to media file attachments that are received through Live Chat / In-App Messaging and used to attach media files to outgoing messages.

Public Methods
String getContentType()
long getDuration()
double getLatitude()
double getLongitude()
String getPreview()
long getSize()
String getURL()
void setContentType(icContentType)
void setDuration(duration)
void setLatitude(latitude)
void setLongitude(longitude)
void setPreview(preview)
void setSize(size)
void setURL(url)

getContentType

This method is used to get the content type such as image/jpeg.

  Syntax: String getContentType()

  Return Value:
Returns the content type such as image or jpg.

getDuration

This method is used to get the duration of the applicable audio and video files.

  Syntax: long getDuration()

  Return Value:
Returns the duration of the audio and video files.

getLatitude

This method is used to get the latitude of the location passed in a message.

  Syntax: double getLatitude()

  Return Value:
Returns the latitude of the location.

getLongitude

This method is used to get the longitude of the location passed in a message.

  Syntax: double getLongitude()

  Return Value:
Returns the longitude of the location.

getPreview

This method is used to get the preview thumbnail as a string.

  Syntax: String getPreview()

  Return Value:
Returns the preview thumbnail as a string.

getSize

This method is used to get the file size in bytes.

  Syntax: long getSize()

  Return Value:
Returns the file size in bytes.

getURL

This method is used to get the URL of the media file.

  Syntax: String getURL()

Return Value: This method returns the URL.

setContentType

This method is used to set the content type as IMI.ICContentType. The method should be called when creating new ICAttachment object.

Syntax: void setContentType(icContentType)

Parameters:

ParameterTypeDescription
icContentTypeIMI.ICContentTypeSpecifies the content type.

setDuration

This method is used to set the duration of the audio and video files.

  Syntax: void setDuration(duration)

  Parameters:

ParameterTypeDescription
durationlongSpecifies the duration in milliseconds.

setLatitude

This method is used to set the latitude of the location passed in a message.

  Syntax: void setLatitude(latitude)

  Parameters:

ParameterTypeDescription
latitudedoubleSpecifies the latitude of the location.

setLongitude

This method is used to set the longitude of the location passed in a message.

  Syntax: void setLongitude(longitude)

  Parameters:

ParameterTypeDescription
longitudedoubleSpecifies the longitude of the location.

setPreview

This method is used to set the preview of the media file.

  Syntax: void setPreview(preview)

  Parameters:

ParameterTypeDescription
previewStringSpecifies the preview of the media file.

setSize

This method is used to set the size of the file in bytes.

  Syntax: void setSize(size)

  Parameters:

ParameterTypeDescription
sizelongSpecifies the size of the file in bytes.

setURL

This method is used to set the URL of the media file.

  Syntax: void setURL(url)

  Parameters:

ParameterTypeDescription
urlStringSpecifies the URL for the media.

IMI.ICAttachment

This class exposes data relating to media file attachments that are received through Live Chat / In-App Messaging and used to attach media files to outgoing messages.

Public Methods
String getContentType()
long getDuration()
double getLatitude()
double getLongitude()
String getPreview()
long getSize()
String getURL()
void setContentType(contentType)
void setDuration(duration)
void setLatitude(latitude)
void setLongitude(longitude)
void setPreview(preview)
void setSize(size)
void setURL(url)

getContentType

This method is used to get the content type such as image/jpeg.

  Syntax: String getContentType()

  Return Value:
Returns the content type such as image or jpg.

getDuration

This method is used to get the duration of the applicable audio and video files.

  Syntax: long getDuration()

  Return Value:
Returns the duration of the audio and video files.

getLatitude

This method is used to get the latitude of the location passed in a message.

  Syntax: double getLatitude()

  Return Value:
Returns the latitude of the location.

getLongitude

This method is used to get the longitude of the location passed in a message.

  Syntax: double getLongitude()

  Return Value:
Returns the longitude of the location.

getPreview

This method is used to get the preview thumbnail as a string.

  Syntax: String getPreview()

  Return Value:
Returns the preview thumbnail as a string.

getSize

This method is used to get the file size in bytes.

  Syntax: long getSize()

  Return Value:
Returns the file size in bytes.

getURL

This method is used to get the URL of the media file.

  Syntax: String getURL()

  Return Value:
This method returns the URL.

setContentType

This method is used to set the content type such as image/jpeg.

  Syntax: void setContentType(contentType)

  Parameters:

ParameterTypeDescription
contentTypeStringSpecifies the content type.

setDuration

This method is used to set the duration of the audio and video files.

  Syntax: void setDuration(duration)

  Parameters:

ParameterTypeDescription
durationlongSpecifies the duration in milliseconds.

setLatitude

This method is used to set the latitude of the location passed in a message.

  Syntax: void setLatitude(latitude)

  Parameters:

ParameterTypeDescription
latitudedoubleSpecifies the latitude of the location.

setLongitude

This method is used to set the longitude of the location passed in a message.

  Syntax: void setLongitude(longitude)

  Parameters:

ParameterTypeDescription
longitudedoubleSpecifies the longitude of the location.

setPreview

This method is used to set the preview of the media file.

  Syntax: void setPreview(preview)

  Parameters:

ParameterTypeDescription
previewStringSpecifies the preview of the media file.

setSize

This method is used to set the size of the file in bytes.

  Syntax: void setSize(size)

  Parameters:

ParameterTypeDescription
sizelongSpecifies the size of the file in bytes.

setURL

This method is used to set the URL of the media file.

  Syntax: void setURL(url)

  Parameters:

ParameterTypeDescription
urlStringSpecifies the URL for the media.

IMI.ICTopic

This class exposes Real Time Messaging topic data that is used to publish outgoing messages or subscribe to receive incoming messages.

getAccessLevel

This method is used to get the access level assigned to the topic.

  Syntax: imi.ICAccessLevel getAccessLevel(level)

  Return Value:
Returns the access level assigned to the topic.

getCreatedBy

This method is used to get name who created the topic.

  Syntax: String getCreatedBy()

  Return Value:
Returns the name who created the topic.

getCreatedDate

This method is used to get the date on which the topic is created.

  Syntax: Date getCreatedDate()

  Return Value:
Returns the date on which the topic is created.

IMI.ICThread

This class exposes the thread data from the Live Chat / In-App Messaging channel in a generalized form. It is also used to send Live Chat / In-App Messaging from an app to the Webex Connect platform.

Public Methods
StringgetId
StringgetTitle
StringgetStreamName
DategetCreatedAt
DategetUpdatedAt
ICThread-reasonForStatusChangegetReasonForStatusChange()
setReasonForStatusChange()

getId

This method is used to get thread ID information.

  Syntax: String getId()

  Return Value: Returns the thread ID information.

getTitle

This method is used to get the thread title.

  Syntax: String getTitle()

  Return Value: Returns the thread title.

getStreamName

This method is used to get the stream name to communicate to the Connect platform.

  Syntax: String getStreamName()

  Return Value: Returns the stream name.

getCreatedAt

This method is used to get the thread created date on the Connect platform.

  Syntax: Date getCreatedAt()

  Return Value: Returns the thread created date on the Connect platform.

getUpdatedAt

This method is used to get the thread updated date on the Connect platform.

  Syntax: Date getUpdatedAt()

  Return Value: Returns the thread updated date on the Connect platform.

IMI.ICMediaFileManager

uploadFile

This method is used to check the status of the file upload.

Syntax: uploadFile(file, file.type, callback)

Return Value: Returns the file upload status.

onFileUploadComplete

This method is used to execute the callback method after the file upload is complete.

Syntax: onFileUploadComplete: function(file, mediaId, error, resp)

onFileUploadComplete: function(file, mediaId, error, resp){
      if(error){
             console.log(error);
       } else{
             $("#mediaid").val(mediaId);
             $('#imgPreviewThumb').src("data:image/png;base64," + resp.preview);
       }
}

Messaging

This module enables publication and receipt of In-app Messages and Push notifications. The usage of this module is optional.

This module has the following classes:

IMI.ICMessaging

The ICMessaging singleton class facilitates you to send and receive Live Chat / In-App Messaging messages and update the read status for Live Chat / In-App Messaging and Push.

deleteMessage

Use this method to delete the given message transaction id from the Webex Connect platform

ParameterDescription
messageTransactionIdTid of the message to be deleted

Syntax: deleteMessage(messageTransactionId, callback);

var callback = {
    onSuccess: function (tid) {
      debug("message deleted", tid);
    },
    onFailure: function (error) {
      debug("failed", error);
    },
  };
  
  
  var messaging = IMI.ICMessaging.getInstance();
    messaging.deleteMessage(tid, callback);

connect

This method is used to establish a connection to receive Real-Time Messages from the Webex Connect platform.
When the connection is successful, the status events are notified through ICMessagingReceiver.onConnectionStatusChanged.

📘

It throws an Exception if a user is not registered with Webex Connect or if the RTM feature is not enabled in the policy.

Syntax: connect()

var messaging = IMI.ICMessaging.getInstance();
try {
    messaging.connect();
} catch (error) {
    console.log(error)
}

disconnect

This method is used to disconnect the connection between the app and the Webex Connect platform. If there is no active connection, then this method fails silently.
When the disconnection is successful, the status events are notified through ICMessagingReceiver.onConnectionStatusChanged.

📘

The disconnect method throws an Exception if a user is not registered with Webex Connect or RTM feature is not enabled in the policy.

Syntax: disconnect()

var messaging = IMI.ICMessaging.getInstance();
try {
    messaging.disconnect();
} catch (error) {
    console.log(error)
}

fetchTopics

This method is used to get a list of topics that are configured with the Webex Connect app. Use the filter parameter to control the type of topics that are returned.

Results are reported through a callback.

Syntax: fetchTopics(start, callback)

Parameters:

ParameterTypeDescription
startIntegerRefer to ICAccessLevelFilter class.
callbackJSObjectSpecifies the callback object.
var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function(ictopicslist) {
        console.log("success");
        //Write your logic to read topics and subscribe/unsubscribe/publish on those topics. 
        if (ictopicslist) {
            for (var i = 0; i < ictopicslist.length; i++) {
                var icTopic = ictopicslist[i];
                console.log(icTopic.getName());

            }

        }
    },
    onFailure: function(errormsg) {
        console.log("failed to get topics");
    }

};
messaging.fetchTopics(start, callback);

getConnectionStatus

This method is used to get the current connection status between the SDK and Webex Connect platform.

Syntax: ICConnectionStatus getConnectionStatus()

Return Value: Returns the current connection status between the SDK and the Webex Connect platform.

var messaging = IMI.ICMessaging.getInstance();
try {
    var connectionStatus = messaging.getConnectionStatus();
    if (connectionStatus == IMI.ICConnectionStatus.Connected) {
        //write your logic here
    }
} catch (error) {
    console.log(error)
}

getInstance

This method is used to get the ICMessaging singleton instance. The instance is created internally on demand.

Syntax: ICMessaging getInstance()

Return Value: Returns the ICMessaging singleton instance.

var messaging = IMI.ICMessaging.getInstance();

isConnected

This method is used to verify whether the RTM connection is established between SDK and Webex Connect. This is a convenience method for getConnectionStatus() == ICConnectionStatus.Connected.

Syntax: boolean isConnected()

Return Value: Returns _true _if the RTM connection is established between SDK and Webex Connect.

var messaging = IMI.ICMessaging.getInstance();
try {
    var isConnected = messaging.isConnected();
    if (isConnected) {
        //write your logic
    }
} catch (error) {
    console.log(error)
}

publishMessage

This method is used to publish the passed ICMessage instance through Live Chat / In-App Messaging connection.
The results of the operation are reported through a callback.

Syntax: publishMessage(message, callback)

Parameters:

ParametersTypeDescription
messageICMessage Refer to ICMessage class.
callbackJSObjectSpecifies the callback object.
var callback = {
    onSuccess: function() {
        console.log("message sent");
    },
    onFailure: function(errormsg) {
        console.log("failed to send message");
    }
};
 var messaging = IMI.ICMessaging.getInstance();
   var message = new IMI.ICMessage();

   message.setMessage("Test message");
   var thread = new IMI.ICThread();
   thread.setId("threadid <which is created using createThread()/came in Message>");
   thread.setTitle("cricket");
   thread.setStreamName("sports");
   message.setThread(thread);
   messaging.publishMessage(message, callback);

setMessageAsRead

This method is used to update the status of the message identified by transactionId as Read. The results of the operation are reported through a callback.

Syntax: setMessageAsRead(transactionId, callback)

Parameters:

ParameterTypeDescription
transactionIdstringSpecifies a single transaction id.
callbackJSObjectSpecifies the callback.
//To send single message read status back to <<prodname>>
var messageTransactionId = "<your message transaction id>";
var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function() {
        console.log("success");

    },
    onFailure: function(errormsg) {
        console.log("failed ");
    }

};

messaging.setMessageAsRead(messageTransactionId, callback);

setMessagesAsRead

This method is used to update the status of the message identified by transactionIds as Read. The results of the operation are reported through a callback.

Syntax: setMessagesAsRead(transactionIds, callback)

Parameters:

ParameterTypeDescription
transactionIdsstring []Specifies an array of transaction ids.
callbackJSObjectSpecifies the callback object.
//To send mutliple messages read status back to <<prodname>>
var msgTransIds = ["transid1", "transid2", "transid3"];
var messaging = IMI.ICMessaging.getInstance();
var callback = {
    onSuccess: function() {
        console.log("success");

    },
    onFailure: function(errormsg) {
        console.log("failed ");
    }

};

messaging.setMessagesAsRead(msgTransIds, callback);

setICMessagingReceiver

This method is used to set ICMessagingReceiver callback. It contains two methods. When a message is received, ICMessagingReceiver.onMessageReceived method is called. When a connection status is changed ICMessagingReceiver.onConnectionStatusChanged method is called.
The results of the operation are reported through a callback.

Syntax: setICMessagingReceiver(callback)

Parameters:

ParameterTypeDescription
callbackICMessagingReceiverRefer to ICMessagingReceiver.
//To receive connect status changes and published messages
	var icMsgRecrCallback = new IMI.ICMessagingReceiver();
	icMsgRecrCallback.onConnectionStatusChanged = function(statuscode) {
		console.log("read the statuscode, based on the status do the operations");
		    if (statuscode == IMI.ICConnectionStatus.Connected) {
             //Connected
			 } else if (statuscode == IMI.ICConnectionStatus.Error) {
               //Error while connecting 
             }else if (statuscode == IMI.ICConnectionStatus.Refused) {
               //Connection lost
             } else {
                 //unknow error
             }
	};
	icMsgRecrCallback.onMessageReceived = function(icMessage) {
	    //icMessage is IMI.ICMessage object
		if (icMessage.getType() === IMI.ICMessageType.Message) {
		   //here direct message  came from server(message sent from api)
                   
          } else if (icMessage.getType() === IMI.ICMessageType.ReadReceipt) {                       
			//here read receipt came from another application for device syncing(read sent from another device)

          } else if (icMessage.getType() === IMI.ICMessageType.Republish) {
            //here repulished message came from another application for device syncing (message send from  another device)          
          }
	}
	
	var messaging = IMI.ICMessaging.getInstance();
	messaging.setICMessagingReceiver(icMsgRecrCallback);

subscribeTopic

This method is used to subscribe to the topic that has Read access level, allowing the SDK to receive messages on that topic.
The results of the operation are reported through a callback.

📘

Incoming messages are received through ICMessagingReceiver.onMessageReceived.

Syntax: subscribeTopic(topic, callback)

Parameters:

ParameterTypeDescription
topicstringSpecifies the topic name to subscribe.
callbackJSObjectSpecifies the callback.
//To subscribe to a topic
try {
    var messaging = IMI.ICMessaging.getInstance();

    var callback = {
        onSuccess: function() {
            console.log("success");

        },
        onFailure: function(errormsg) {
            console.log("failed ");
        }

    };
    var topic = "<Topic Name>";

    messaging.subscribeTopic(topic, callback);

} catch (error) {
    console.log(error)
}

unsubscribeTopic

This method is used to unsubscribe to the topic that has Read access level, preventing the SDK to receive messages on that topic. The messages may still be received until the callback has reported success.
The results of the operation are reported through a callback.

Syntax: unsubscribeTopic(topic, callback)

Parameters:

ParameterTypeDescription
topicstringSpecifies the topic name to unsubscribe.
callbackJSObjectSpecifies the callback.

callback = {
onSuccess: function(){
},
onFailure: function(){
}
};
//To unsubscribe to a topic
try {
    var messaging = IMI.ICMessaging.getInstance();

    var callback = {
        onSuccess: function() {
            console.log("success");

        },
        onFailure: function(errormsg) {
            console.log("failed ");
        }

    };
    var topic = "<Topic Name>";

    messaging.unsubscribeTopic(topic, callback);

} catch (error) {
    console.log(error)
}

createThread

This method is used to create a thread based on streamId and threadTitle and send the result in a callback.

Syntax: createThread(streamId, threadtitle, createThreadCallBack)

Parameters:

ParameterTypeDescription
streamIdstringIdentity of the stream.
threadTitlestringTitle of the thread.
callbackInvokes to report operation success or failure.
var createThreadCallBack = {
                        onSuccess: function (thread) 
                        {
                            console.log(thread);
                        },
                        onFailure: function () 
                        {
                            console.log("failed to create thread")
                        }
                    };
                    messaging.createThread(steamid, threadtitle, createThreadCallBack);

fetchThreads

This method is used to get a list of threads that are created and at least one message transaction completed. Results are reported through the callback.

Syntax: fetchThreads(offset, limit, callback)

Parameters:

ParameterTypeDescription
offsetstring (mandatory parameter)Pass offset value to fetch threads from that offset value.

Default value is 0.
limitIntegrer (mandatory parameter)Specifies the maximum number of items that can be returned in threads array.

Default value is 100.
callbackCallbackInvokes to report if operation is a success or failure.

Success callback returns an additional value, a positive value indicating more threads on the server.

unread_msg_count: Each thread object returns this based upon “server_inbox_version” in policy.

onFetchThreadsSuccess(threads, hasMoreThreads)
var messaging = IMI.ICMessaging.getInstance();
    messaging.fetchThreads(offset, limit, callback);

fetchThread

This method is used to retrieve a particular thread by threadId. Results are reported through the callback

Syntaxmessaging.fetchThread(threadId,  fetchThreadCallback);

Parameters:

ParameterTypeDescription
threadIdstringSpecify threadId to retrieve
callbackCallbackCallback object containing onSuccess and onFailure methods. Returns thread object if found else returns null in onSuccess. Returns onFailure otherwise.

Sample Code:

fetchThreadCallback = {
          onSuccess: (thread) => {
            console.log('fetchThread:onSuccess', thread);
            if (thread) {
              console.log(thread);
            }
            else
              console.log("No thread found with ID: ", document.querySelector('#txtThreadIdForFetchThread').value);
          },
          onFailure: (error) => {
            console.log('fetchThread: errormsg: ', error);
          },
        };

var messaging = IMI.ICMessaging.getInstance();
          messaging.fetchThread(threadId, fetchThreadCallback);

fetchMessages

This method is used to get a list of messages from the Webex Connect platform. All results are reported through the callback.

Syntax: fetchMessages(threadId, beforeDate, limit, callback)

Parameters:

ParameterTypeDescription
threadIdstringSpecifies the ThreadId value.
beforeDateDateSpecifies the date since the messages must be returned. This value is optional; if nothing is passed then it is considered as current Date Time.
limitIntegerSpecifies the maximum number of items that can be returned in messages array.

Default value is 100
calbackCallbackInvokes to report if operation is a success or failure.

totalCount: fetchMessagesCallback returns total number of messages for the userid/thread.

fetchMessagesSuccess(messages: any[], totalCount)
isOutgoingBooleanIndicates if the message is mobile originated if the value is true.
var messaging = IMI.ICMessaging.getInstance();
                    var messagesCallBack = {
                        onSuccess: function (messages) {
                        },
                        onFailure: function () {
                            console.log("failed to get messages");
                        }
                    };
                    messaging.fetchMessages(threadId, beforeDate, limit, callback);

fetchUnreadThreadCount

This method is used to get the count of threads that have unread messages.

Syntax: fetchUnreadThreadCount(callback)

Parameters:

ParameterTypeDecsription
callbackCallbackInvokes to report if operation is a success or failure.

Count: returns the unread thread count for user

fetchUnreadThreadCountSuccess(count)
var messaging = IMI.ICMessaging.getInstance();
    messaging.fetchUnreadThreadCount(callback);

getSDKVersion

This method gets the SDK version being used.

Syntax: getSDKVersion()

Returns: string version of SDK

this.sdkVersion = "v" + IMI.getSDKVersion();

sendClickedEvent()

Use this method to send Clicked Event to Webex Connect platform

ParameterDescription
messageTransactionIdtransactionId of the original message
icButtonThe ICButton instance that triggered this call
callbackThe callback sample code is provided in the below example

Sample Code:

var submitClickPostbackCallback = {
        onSuccess: (icButton) => {
            console.log(`"${icButton.getTitle()}" clicked!`);
        },
        onFailure: (errormsg) => {
            console.log(errormsg);
        },	
    };
messaging.sendClickedEvent(message.getTransactionId(), icButton, this.submitClickPostbackCallback

createPostbackMessage()

Creates ICMessage instance for Incoming message Interactive/Quick Replies button

ParameterDescription
icMessageOriginal Message object
icButtonThe ICButton instance that triggered this call

Sample Code:

var publishMessageCallback = 
    { onSuccess: (message) => { 
      //do something 
    }, 
     onFailure: (errormsg) => { 
       //do something 
     }, 
    }; 
let postbackQuickReplyMO = IMI.ICMessaging.getInstance().createPostbackMessage(message, icButton) 
messaging.publishMessage(postbackQuickReplyMO, 
                         publishMessageCallback);

IMI.ICMessagingReceiver

This class allows the interception of incoming messages and RTM connection status changes. The default class provides standard message handling. You must invoke setICMessagingReceiver to set ICMessagingReceiver callback.

onConnectionStatusChanged

This method is invoked whenever there is a change to the RTM connection status.

Syntax: onConnectionStatusChanged(status)

Parameters:

ParameterTypeDescription
statusICConnectionStatusRefer to ICConnectionStatus class.

onMessageReceived

This method is invoked whenever a new RTM message is received.

Syntax: onMessageReceived(message)

Parameters:

ParameterTypeDescription
messageICMessageRefer to ICMessage class.

IMI.ICMessage

This class exposes message data from RTM and Push channels in a generalized form and is also used to send Real-Time Messages from an app to the Webex Connect platform.

Parameters:

getCategory

This method is used to get the category of the interactive message.

Syntax: String getCategory()

Return Value: Returns the category of the message.

getChannel

This method is used to get the channel on which the message was received.

Syntax: String getChannel()

Return Value: Returns the channel.

getCustomTags

This method is used to get the custom or developer specified data that was sent as part of the message payload.

Syntax: JSObject getCustomTags()

Return Value: Returns the custom tags sent along with the message payload.

getExtras

This method is used to get the supplementary data that was sent as part of the message payload. The format of this data is controlled by the Webex Connect platform.

Syntax: JSObject getExtras()

Return Value: Returns the supplementary data that was sent along with the message payload.

getMedia

This method is used to get the media files that are attached to the message.

Syntax: IMI.ICMediaFile[] getMedia()

Return Value: Returns the media files that ware attached to the message.

getMessage

This method is used to get the content of the message that is displayed to the end-users.

Syntax: String getMessage()

Return Value: Returns the text message that is displayed to the end-users.

getReplyTo

This method is used to get the topic to which the reply should be sent. This method is not applicable to Push messaging.

Syntax: String getReplyTo()

Return Value: Returns the topic to which reply should be sent.

getSenderId

This method is used to get the senderId an arbitrary identifier that is set by the sender of the message. This method is not applicable to Push messaging.

Syntax: String getSenderId()

Return Value: Returns the senderid of the message.

getTopic

This method is used to get the topic on which the message was received. This method is not applicable to Push messaging.

Syntax: String getTopic()

Return Value: Returns the topic on which the message was received.

getTransactionId

This method is used to get the transaction id that uniquely identifies the message transaction within the Webex Connect platform.

Syntax: String getTransactionId()

Return Value: Returns the transaction id that identifies the message transaction.

getUserId

This method is used to get the user id from which the message is originated. This method is not applicable to Push messaging.

Syntax: String getUserId()

Return Value: Returns the user id from which the message is originated.

setCustomTags

This method is used to set the custom tags object to be sent with an outgoing RTM. This method is not applicable to Push messaging.

Syntax: setCustomTags(tags)

Parameters:

ParameterTypeDescription
tagsJSObjectSpecifies the JSObject.

setMedia

This method is used to set the media file attachments to be sent with an outgoing RTM. This method is not applicable to Push messaging.

Syntax: setMedia(files)

Parameters:

ParameterTypeDescription
filesIMI.ICMediaFileRefer to IMI.ICMediaFile class

setMessage

This method is used to set the content of the text message to be sent with an outgoing RTM. This method is not applicable to Push messaging.

Syntax: setMessage(message)

Parameters:

ParameterTypeDescription
messagestringSpecifies the content of the text message.

setSenderId

This method is used to set the senderid to be sent with an outgoing RTM. This is arbitrary information such as a simple tag. This method is not applicable to Push messaging.

Syntax: setSenderId(senderId)

Parameters:

ParameterTypeDescription
senderIdstringSpecifies the sender id.

setTopic

This method is used to set the topic on which the message should be published. This method is not applicable to Push messaging.

Syntax: String setTopic(topic)

Parameters:

ParameterTypeDescription
topicstringSpecifies the topic.

getAttachments

This method is used to get the attachment files that are attached to the message.

Syntax: ICAttachment[] getAttachments()

Return Type: Returns the attachment files attached to the message.

getThread

This method is used to get the thread details specified in the message.

Syntax: ICThread getThread()

Return Type: Returns the thread details that were specified in the message.

getSubmitted

This method is used to get the message submitted date to the Webex Connect platform.

Syntax: Date getSubmittedAt()

Return Type: Returns the message submitted date to the Webex Connect platform.

getDelivered

This method is used to get the message delivered date to the device.

Syntax: Date getDeliveredAt()

Return Type: Returns the message delivered date to the device.

getReadAt

This method is used to get the message read date at the device.

Syntax: Date getReadAt()

Return Type: Returns the message read date at the device.

getType

This method is used to get the message type.

Syntax: ICMessageType getType()

Return Type: Returns the message type.

setAttachments

This method is used to set the media file attachments to be sent with an outgoing RTM. This method is not applicable to Push messaging.

Syntax: setAttachments(final ICAttachment[] attachments)

Parameters:

ParameterTypeDescription
attachmentsRefer to ICAttachment class.

setThread

This method is used to set the thread details that need to be specified in the message.

Syntax: setThread(final ICThread thread)

Parameters:

ParameterTypeDescription
threadRefer to ICThread class.

setRelatedTransactionId

Use the property to set related transaction ID while submitting a form response.

Syntax: ICMessage.setRelatedTransactionId(relatedTransactioId)

message.setThread(this.thread);    
message.setRelatedTransactionId(formMT.getTransactionId());

getRelatedTransactionId

This method returns a relatedTransactionID which can be used to identify original Form MO.

Syntax: ICMessage. getRelatedTransactionId()

Returns: String

getInteractiveData()

This method returns details about the form-response.

📘

Note

This does not return the actual form response details.

Syntax: ICMessage.getInteractiveData()

Returns: ICInteractiveData object

IMI.ICMediaFile

This class is deprecated.
This class exposes data relating to media file attachments that are received through RTM and used to attach media files to outgoing messages.

Public Methods
String getContentType()
long getDuration()
double getLatitude()
double getLongitude()
String getPreview()
long getSize()
String getURL()
setContentType(contentType)
setDuration(duration)
setLatitude(latitude)
setLongitude(longitude)
setPreview(preview)
setSize(size)
setURL(url)

getContentType()

This method is used to get the content type such as image/jpeg.

Syntax: String getContentType()

Return Value: Returns the content type such as image or jpg.

getDuration()

This method is used to get the duration of the applicable audio and video files.

Syntax: long getDuration()

Return Value: Returns the duration of the audio and video files.

getLatitude()

This method is used to get the latitude of the location passed in a message.

Syntax: double getLatitude()

Return Value: Returns the latitude of the location.

getLongitude()

This method is used to get the longitude of the location passed in a message.

Syntax: double getLongitude()

Return Value: Returns the longitude of the location.

getPreview()

This method is used to get the preview thumbnail as a string.

Syntax: String getPreview()

Return Value: Returns the preview thumbnail as a string.

getSize()

This method is used to get the file size in bytes.

Syntax: long getSize()

Return Value: Returns the file size in bytes.

getURL()

This method is used to get the URL of the media file.

Syntax: String getURL()

Return Value: This method returns the URL.

setContentType()

This method is used to set the content type such as image/jpeg.

Syntax: setContentType(contentType)

Parameters:

ParameterTypeDescription
contentTypestringSpecifies the content type.

setDuration()

This method is used to set the duration of the audio and video files.

Syntax: setDuration(duration)

Parameters:

ParameterTypeDescription
durationlongSpecifies the duration in milliseconds.

setLatitude()

This method is used to set the latitude of the location passed in a message.

Syntax: setLatitude(latitude)

Parameters:

ParameterTypeDescription
latitudedoubleSpecifies the latitude of the location.

setLongitude()

This method is used to set the longitude of the location passed in a message.

Syntax: setLongitude(longitude)

Parameters:

ParameterTypeDescription
longitudedoubleSpecifies the longitude of the location.

setPreview()

This method is used to set the preview of the media file.

Syntax: setPreview(preview)

Parameters:

ParameterTypeDescription
previewstringSpecifies the preview of the media file.

setSize()

This method is used to set the size of the file in bytes.

Syntax: setSize(size)

Parameters:

ParameterTypeDescription
sizelongSpecifies the size of the file in bytes.

setURL()

This method is used to set the URL of the media file.

Syntax: setURL(url)

Parameters:

ParameterTypeDescription
urlstringSpecifies the URL for the media.

IMI.ICAttachment

This class exposes data relating to media file attachments that are received through RTM and used to attach media files to outgoing messages.

Public Methods
String getContentType()
long getDuration()
double getLatitude()
double getLongitude()
String getPreview()
long getSize()
String getURL()
setContentType(contentType)
setDuration(duration)
setLatitude(latitude)
setLongitude(longitude)
setPreview(preview)
setSize(size)
setURL(url)

getContentType

This method is used to get the content type such as image/jpeg.

Syntax: String getContentType()

Return Value: Returns the content type such as image or jpg.

getDuration

This method is used to get the duration of the applicable audio and video files.

Syntax: long getDuration()

Return Value: Returns the duration of the audio and video files.

getLatitude

This method is used to get the latitude of the location passed in a message.

Syntax: double getLatitude()

Return Value: Returns the latitude of the location.

getLongitude

This method is used to get the longitude of the location passed in a message.

Syntax: double getLongitude()

Return Value: Returns the longitude of the location.

getPreview

This method is used to get the preview thumbnail as a string.

Syntax: String getPreview()

Return Value: Returns the preview thumbnail as a string.

getSize

This method is used to get the file size in bytes.

Syntax: long getSize()

Return Value: Returns the file size in bytes.

getURL

This method is used to get the URL of the media file.

Syntax: String getURL()

Return Value: This method returns the URL.

setContentType

This method is used to set the content type such as image/jpeg.

Syntax: setContentType(contentType)

Parameters:

ParameterTypeDescription
contentTypestringSpecifies the content type.

setDuration

This method is used to set the duration of the audio and video files.

Syntax: setDuration(duration)

Parameters:

ParameterTypeDescription
durationlongSpecifies the duration in milliseconds.

setLatitude

This method is used to set the latitude of the location passed in a message.

Syntax: setLatitude(latitude)

Parameters:

ParameterTypeDescription
latitudedoubleSpecifies the latitude of the location.

setLongitude

This method is used to set the longitude of the location passed in a message.

Syntax: setLongitude(longitude)

Parameters:

ParameterTypeDescription
longitudedoubleSpecifies the longitude of the location.

setPreview

This method is used to set the preview of the media file.

Syntax: setPreview(preview)

Parameters:

ParameterTypeDescription
previewstringSpecifies the preview of the media file.

setSize

This method is used to set the size of the file in bytes.

Syntax: setSize(size)

Parameters:

ParameterTypeDescription
sizelongSpecifies the size of the file in bytes.

setURL

This method is used to set the URL of the media file.

Syntax: setURL(url)

Parameters:

ParameterTypeDescription
urlstringSpecifies the URL for the media.

IMI.ICTopic

This class exposes Real Time Messaging topic data that is used to publish outgoing messages or subscribe to receive incoming messages.

getAccessLevel

This method is used to get the access level assigned to the topic.

Syntax: IMI.ICAccessLevel getAccessLevel(level)

Return Value: Returns the access level assigned to the topic.

getCreatedBy

This method is used to get name who created the topic.

Syntax: String getCreatedBy()

Return Value: Returns the name who created the topic.

getCreatedDate

This method is used to get the date on which the topic is created.

Syntax: Date getCreatedDate()

Return Value: Returns the date on which the topic is created.

getName

This method is used to get the topic name.

Syntax: String getName()

Return Value: Returns the topic name.

getUpdatedDate

This method is used to get the date on which the topic was last updated.

Syntax: Date getUpdatedDate()

Return Value:Returns the date on which the topic was last updated.

isSubscribed

This method is used to verify whether the current user is subscribed to the topic.

*Syntax:** Boolean isSubscribed()

Return Value: Returns true if the current user is subscribed to the topic.

IMI.ICThread

This class exposes the thread data from the In-app channel in a generalized form. It is also used to send In-app from an app to the Webex Connect platform.

Public Methods
String getId
String getTitle
boolean isWritable
String getStreamName
Date getCreatedAt
Date getUpdatedAt
JSON setExtras
JSON getExtras
Number getUnreadMessageCount

getId

This method is used to get thread ID information.

Syntax: String getId()

Return Value: Returns the thread ID information.

getTitle

This method is used to get the thread title.

Syntax: String getTitle()

Return Value: Returns the thread title.

isWritable

This method is used to validate if a thread is writable or not. A thread is writable for Conversation thread, else (for announcement) thread it is not writable.

Syntax: boolean isWritable()

Return Value: Returns whether the thread is writable or not.

getStreamName

This method is used to get the stream name to communicate to the Webex Connect platform.

Syntax: String getStreamName()

Return Value: Returns the stream name.

getCreatedAt

This method is used to get the thread created date on the Webex Connect platform.

Syntax: Date getCreatedAt()

Return Value: Returns the thread created date on the Webex Connect platform.

getUpdatedAt

This method is used to get the thread updated date on the Webex Connect platform.

Syntax: Date getUpdatedAt()

Return Value: Returns the thread updated date on the Webex Connect platform.

setExtras

This method is used to set extra data to be associated with the thread.

Syntax: JSON setExtras(extras) //accepts any JSON object

getExtras

This method is used to get the thread updated date on the Webex Connect platform.

Syntax: JSON getExtras()

Return Value: Returns the extra data associated with the thread.

getUnreadMessageCount

This method returns the count of unread messages.

Syntax: getUnreadMessageCount()

Return Value: Returns the count of unread messages.

setReasonForStatusChange

Provide reason for changing status.

Syntax: ICThread.setReasonForStatusChange(reason);

ParametersDescription
reasonstring

getReasonForStatusChange()

Returns reason if provided while changing status of the ICThread object.

Syntax: ICThread.getReasonForStatusChange()

thread.setReasonForStatusChange(reason);
  messaging.closeThread(thread, closeThreadCallBack);