Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

The contactJoin API allows to join as an 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. A multimedia message can be of two types: 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 room chat ID is no longer active.

  • multimediaMessageStored :

LIVECHATSDK.LIVECHAT.joinContact("CHAT_eaa2e7c0-9c26-40db-b720-d777ab68078d", "John Doe").then(
  function (contact) {
    console.log("[CTLive] Contact JOINED", 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
    contact.on("userAdded",
      function (event) {
        console.log("[CTLIVE] On [userAdded] event");
      }
    );
  }
);

  • No labels