/
Join an existing chat

Join an existing chat

The contactJoin API allows you to join as a participant to an existing chat room usually started by the customer on the corporate web site. Chat room ID and a nickname must be specified as input parameters.

The function returns a javascript Promise with the instance of the chat contact. On the chat object it is possible to register custom callbacks to receive notifications of the following events:

  • message : event that notifies the receiving of a text message from a participant

  • messageReceived : event that notifies that a participant has received the message

  • messageSeen : event that notifies that a participant has read/seen the message

  • multimediaMessage : a multimedia message has been received. There are two available types of multimedia message: DOCUMENT (doc, docx, ppt, pptx, xls, xlsx, pdf) or IMAGE (PNG, JPG, JPEG). The multimedia content is encoded in Base64 format.

  • link : an hyperlink has been received

  • isWriting : event that notifies that one participant started/stopped writing

  • contactEnded : the chat has just ended and all participants have been disconnected. The chat room is no longer active.

  • multimediaMessageStored : event that notifies that a large multimedia files has been resized and stored in CTLive MondoDB database.

 

LIVECHATSDK.LIVECHAT.joinContact("CHAT_eaa2e7c0-9c26-40db-b720-d777ab68078d").then( function (contact) { console.log("[CTLive] Contact JOINED", contact); // Store the contact instance in a custom Hashmap MY_ACTIVE_CHAT[contact.contact.id] = contact; // Bind 'message' event custom callback contact.on("message", function (event) { var DOMObj = null; console.log("[CTLIVE] On [message] event"); console.log("Nickname......" + event.content.user.nickname); console.log("Text.........." + event.content.text); console.log("Is Agent......" + event.content.user.isAgent); console.log("Msg ID........" + event.id); } ); // Bind 'message' event custom callback contact.on("messageReceived", function (event) { console.log("[CTLIVE] On [messageReceived] event"); console.log("Msg ID........" + event.messageID); } ); // Bind 'messageSeen' event custom callback contact.on("messageSeen", function (event) { console.log("[CTLIVE] On [messageSeen] event"); console.log("Msg ID........" + event.messageID); } ); // Bind 'multimediaMessage' event custom callback contact.on("multimediaMessage", function (event) { console.log("[CTLIVE] On [multimediaMessage] event"); if ( event.messageType === "IMAGE" ) { console.log("Caption............" + event.content.caption); console.log("Is Agent..........." + event.content.user.isAgent); console.log("User Nickname......" + event.content.user.nickname); console.log("User ID............" + event.content.user.id); console.log("Chat ID............" + contact.contact.id); console.log("Msg ID............." + event.id) console.log("Content (Base64)..." + event.content.img); } if ( event.messageType === "DOCUMENT" ) { console.log("File Extension.....", event.content.documentType); // PDF, DOC; DOCX, PPT, PPTX, XLS, XLSX console.log("File Caption.......", event.content.caption); console.log("Is Agent..........." + event.content.user.isAgent); console.log("User Nickname......" + event.content.user.nickname); console.log("User ID............" + event.content.user.id); console.log("Chat ID............" + contact.contact.id); console.log("Msg ID............." + event.id) console.log("Content (Base64)..." + event.content.document); } } ); // Bind 'link' event custom callback contact.on("link", function (event) { console.log("[CTLIVE] On [link] event"); console.log("URL................", event.content.url); console.log("Is Agent..........." + event.content.user.isAgent); console.log("User Nickname......" + event.content.user.nickname); console.log("User ID............" + event.content.user.id); console.log("Chat ID............" + contact.contact.id); console.log("Msg ID............." + event.id) } ); // Bind 'isWriting' event custom callback contact.on("isWriting", function (event) { console.log("[CTLIVE] On [isWriting] event"); console.log("Started/Stopped writing........", event.bwrite); } ); // Bind 'contactEnded' event custom callback contact.on("contactEnded", function (event) { console.log("[CTLIVE] On [contactEnded] event"); } ); // Bind 'userAdded' event custom callback // A new participant has benn added in the chat room contact.on("userAdded", function (event) { console.log("[CTLIVE] On [userAdded] event"); } ); } );

 

Related content

CTLive contact APIs
CTLive contact APIs
More like this
How to use the CTLive Agent SDK
How to use the CTLive Agent SDK
Read with this
GetMultimediaMessageInActiveChat
GetMultimediaMessageInActiveChat
More like this
Agent SDK Integration
Agent SDK Integration
Read with this
Chat Transcript
Chat Transcript
More like this
login
login
Read with this