Notes de mise à jour

Product deprecation notice

Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.

If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.

Version 9.5.1 - 11 janvier 2024

Corrections

  • Correction d'un bug lors de la fabrication networkRequest données a string

Version 9.5.0 - 21 novembre 2023

Nouveau

  • Prise en charge des événements en attente (manqués member:invited)

Version 9.4.0 - 04 septembre 2023

Nouveau

  • Soutien ephemeral événement
// send ephemeral event
conversation
  .sendEphemeralEvent({ state: "INVITED" })
  .then((event) => {
    console.log(event)
  });

Version 9.3.1 - 30 août 2023

Corrections

  • Fixer NexmoAPI l'enveloppement des erreurs pour les v0.3 Points d'extrémité de l'API Conversation

Notes de mise à jour

Version 9.3.1 - 19 juin 2023

Corrections

  • Fixer NexmoAPI l'enveloppement des erreurs pour les v0.3 Points d'extrémité de l'API Conversation

Version 9.3.0 - 01 juin 2023

Nouveau

  • Ajouter state pour interroger le param pour application.getConversations() pour les ConversationsPage objet
// iterate through conversations
application
  .getConversations({ state: "INVITED" })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });

Corrections

  • Correction de la définition du type pour Conversation Horodatage de l'objet
  • Défaut socket.io interrogation session_version à 0.0.1 sauf si enableInboundOffer est fixé à true, la valeur par défaut est alors 0.0.2

Version 9.2.6 - 23 mai 2023

Changements

  • Ajouter des mesures de reconnexion WS

Version 9.2.5 - 23 mai 2023

Corrections

  • Correction de la définition du type pour enableEventsQueue et enableInboundOffer
  • Ajouter acknowledgeEvents dans la configuration pour permettre le suivi de l'accusé de réception des événements websocket

Version 9.2.4 - 19 avril 2023

Corrections

  • Émission reconnecting événement de socket lors d'une tentative de reconnexion

Version 9.2.3 - 30 mars 2023

Changements

  • Mise à niveau socket.io-client version 4.6.1

Version 9.2.2 - 13 mars 2023

Corrections

  • Fixer ConversationEventsProcessor être initié plusieurs fois pour la même conversation

Version 9.2.0 - 21 décembre 2022

Changements

  • Ajouter enableInboundOffer drapeau à configurer pour l'établissement d'un appel entrant
  • Retirer Ice Servers par défaut de webrtc STUN configuration du serveur
  • Remplacer api.nexmo URL vers api.vonage URL

Version 9.1.5 - 24 octobre 2022

Corrections

  • Correction d'un bug lorsque l'utilisateur est invité/joint à une conversation

Version 9.1.4 - 23 septembre 2022

Changements

  • Utilisation v2 de Nexmo Conversation Websocket

Version 9.1.3 - 07 septembre 2022

Fixer

  • Correction de la définition du module Typescript

Version 9.1.1 - 19 août 2022

Fixer

  • Correction de l'ordre des événements pour rtc:transfer sur les conversations nommées

Version 9.1.0 - 16 août 2022

Nouveau

  • Utiliser des médias préchargés pour les appels entrants (start, start, start, start, start, start, start, start, start, start, start, start) WebRTC ice dès que le membre est invité à un appel)

Fixer

  • Retirer public-ip en raison d'une faille de sécurité (mise à jour avec is-ip)

Version 9.0.0 - 30 juin 2022

Changements en cours

  • Renommer login() à la fonction createSession()
rtc.createSession(token).then((application) => {
  console.log(application);
}).catch((error) => {
  console.log(error);
});
  • Renommer logout() à la fonction deleteSession()
rtc.deleteSession().then((response) => {
  console.log(response);
}).catch((error) => {
  console.log(error);
});

Changements

  • Déplacer la création de la connexion websocket vers la page createSession() fonction

Version 8.7.3 - 14 juin 2022

Changements

  • Ajout de l'authentification par jeton aux connectivityReport()
rtc.connectivityReport(token, {
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});
  • Ajout de l'authentification par jeton aux checkMediaServers()
rtc.checkMediaServers('token', 'nexmo-api-url','dc').then((responseArray) => {
 console.log(responseArray);
}).catch((error) => {
  console.log(error);
});

Version 8.7.2 - 27 mai 2022

Fixer

  • Suppression des dépendances npm inutilisées.

Version 8.7.1 - 11 mai 2022

Nouveau

  • Ajout d'une nouvelle checkMediaServers() pour obtenir une liste de l'état de la connexion des serveurs de médias pour un centre de données spécifique.
rtc.checkMediaServers('nexmo-api-url','dc').then((responseArray) => {
	console.log(responseArray);
}).catch((error) => {
  console.log(error);
});
  • Ajout d'une nouvelle checkMediaConnectivity() pour obtenir l'état de la connexion d'un seul serveur de médias.
rtc.checkMediaConnectivity('ip-address','1').then((response) => {
  console.log(response);
}).catch((error) => {
	console.log(error);
});

Changements

  • Mise à jour connectivityReport() pour renvoyer le temps de connexion en ms pour les connexions aux serveurs https, wss et media

Version 8.6.0 - 21 avril 2022

Nouveau

  • Ajout d'un argument objet optionnel à la fonction connectivityReport(), avec un champ facultatif dcListCallback qui accepte une fonction de rappel pour mettre à jour la liste des centres de données
rtc.connectivityReport({
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Version 8.5.0 - 20 avril 2022

Nouveau

  • Exposer seen() et delivered() fonctions pour les événements de message
messageEvent.seen().then(() => {
  console.log(`Seen message with id ${messageEvent.id}`);
}).catch((error) => {
  console.log(error);
});
  • Prise en charge de nouveaux événements liés à l'état des messages
    • message:seen
    • message:delivered
    • message:submitted
    • message:rejected
    • message:undeliverable
conversation.on("message:delivered", (member, event) => {
  console.log(`Message with id ${event.id} delivered to ${member.name}`);
});
  • Ajout de nouveaux objets d'état pour les événements de message prenant en charge les nouveaux états.
    • seen_by
    • delivered_to
    • submitted_to
    • rejected_by
    • undeliverable_to

Changements

  • Mise à jour connectivityReport() d'utiliser les points finaux appropriés par région

Version 8.4.1 - 14 février 2022

Fixer

  • Correction de l'ordre des événements en cas d'écart dans les événements entrants

Version 8.4.0 - 21 janvier 2022

Nouveau

  • Ajout d'une nouvelle connectivityReport() fonction permettant d'obtenir un rapport de connectivité pour tous les centres de données et serveurs média de Vonage
rtc.connectivityReport().then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Version 8.3.1 - 09 décembre 2021

Nouveau

  • Définir le niveau de synchronisation par défaut pour le processus de connexion à partir de lite à none

Version 8.3.0 - 01 novembre 2021

Nouveau

  • Ajout d'une nouvelle uploadImage() pour télécharger une image vers le Vonage Media Service
const params = {
  quality_ratio : "90",
  medium_size_ratio: "40",
  thumbnail_size_ratio: "20"
};

conversation.uploadImage(fileInput.files[0], params).then((uploadImageRequest) => {
  uploadImageRequest.onprogress = (e) => {
    console.log("Image request progress: ", e);
    console.log("Image progress: " + e.loaded + "/" + e.total);
  };
  uploadImageRequest.onabort = (e) => {
    console.log("Image request aborted: ", e);
    console.log("Image: " + e.type);
  };
  uploadImageRequest.onloadend = (e) => {
    console.log("Image request successful: ", e);
    console.log("Image: " + e.type);
  };
  uploadImageRequest.onreadystatechange = () => {
    if (uploadImageRequest.readyState === 4 && uploadImageRequest.status === 200) {
      const representations = JSON.parse(uploadImageRequest.responseText);
      console.log("Original image url: ", representations.original.url);
      console.log("Medium image url: ", representations.medium.url);
      console.log("Thumbnail image url: ", representations.thumbnail.url);
    }
  };
}).catch((error) => {
  console.error("error uploading the image ", error);
});
  • Ajout d'une nouvelle sendMessage() pour envoyer un nouveau message à la conversation (les types pris en charge sont text, image, audio, video et file)
conversation.sendMessage({
  "message_type": "text",
  "text": "Hi Vonage!"
}).then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
conversation.sendMessage({
  "message_type": "image",
  "image": {
    "url": "https://example.com/image.jpg"
  }
})
.then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
  • Ajout d'une nouvelle MessageEvent type d'événement
conversation.on("message", (member, messageEvent) => {
  console.log(messageEvent);
});

Changements

  • Déclasser sendText() (utiliser la fonction sendMessage() avec un type de text à la place)
conversation.sendMessage({ "message_type": "text", "text": "Hi Vonage!" }).then((event) => {
  console.log("message was sent", event);
}).catch((error)=>{
  console.error("error sending the message ", error);
});
  • Déclasser sendImage() (utiliser la fonction uploadImage() et sendMessage() avec un type de image à la place)
conversation.uploadImage(imageFile).then((imageRequest) => {
  imageRequest.onreadystatechange = () => {
    if (imageRequest.readyState === 4 && imageRequest.status === 200) {
      try {
        const { original, medium, thumbnail } = JSON.parse(imageRequest.responseText);
        const message = {
          message_type: 'image',
          image: {
            url: original.url ?? medium.url ?? thumbnail.url
          }
        }
        return conversation.sendMessage(message);
      } catch (error) {
        console.error("error sending the message ", error);
      }
    }
    if (imageRequest.status !== 200) {
      console.error("error uploading the image");
    }
  };
  return imageRequest;
})
.catch((error) => {
  console.error("error uploading the image ", error);
});

Version 8.2.5 - 12 octobre 2021

Fixer

  • Correction de la gestion des erreurs pour les autorisations audio

Version 8.2.2 - 08 octobre 2021

Fixer

  • Amélioration des journaux de débogage

Version 8.2.0 - 28 septembre 2021

Nouveau

  • Ajouter un nouveau getUserSessions() pour récupérer les sessions de l'utilisateur connecté
application.getUserSessions({ user_id: "USR-id", page_size: 20 }).then((user_sessions_page) => {
  user_sessions_page.items.forEach(user_session => {
    render(user_session)
  })
}).catch((error) => {
  console.error(error);
});

Version 8.1.1 - 08 septembre 2021

Nouveau

  • Ajouter une nouvelle option mediaParams paramètre dans reconnectCall afin de modifier la fonction MediaStream objet
application.reconnectCall(
  "conversation_id",
  "rtc_id",
  { audioConstraints: { deviceId: "device_id" } }
).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Mise à jour media.enable() les docs pour inclure les contraintes audio

Corrections

  • Attribuer le bon NXMCall lors de la reconnexion à un appel (STARTED, RINGING ou ANSWERED)

Changements

  • Mise à jour npm dépendances

Version 8.1.0 - 02 septembre 2021

Nouveau

  • Ajouter reconnectCall fonction permettant aux utilisateurs de se reconnecter à un appel dans les 20 secondes si l'onglet du navigateur est fermé
application.reconnectCall("conversation_id", "rtc_id").then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Ajouter un paramètre optionnel reconnectRtcId aux médias enable() pour reconnecter les médias à l'appel
conversation.media.enable({ reconnectRtcId: "UUID" }).then((stream) => {
  console.log(stream)
}).catch((error) => {
  console.error("error renabling media", error);
});
  • Ajouter custom_data dans l'objet callServer fonction
application.callServer("<phone_number>", "phone", { field1: "test" }).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Ajouter apiKey, applicationId, conversationId et conversationName lorsqu'elle est disponible en rtcstats rapports d'analyse

Corrections

  • Correction d'un bug dans le transfert d'appel où transferred_from n'était pas défini

Version 8.0.5 - 15 juillet 2021

Corrections

  • Fixer le from pour les événements organisés par les membres
  • Mise à jour npm y compris les dépendances socket-io

Version 8.0.4 - 16 juin 2021

Corrections

  • Correction d'un bug sur DTMF envoi du rappel à event_url

Version 8.0.3 - 18 mai 2021

Corrections

  • Correction du traitement d'événements internes désordonnés dans la file d'attente des événements
  • Correction du message d'avertissement de dépréciation pour rtcstats:report

Version 8.0.1 - 29 avril 2021

Corrections

  • Mise à jour des définitions de Typescript
  • Correction d'un bogue dans un scénario d'appel IP-IP impliquant des SDK natifs (ne remplissant pas correctement le champ Conversation.members Carte)

Version 8.0.0 - 27 avril 2021

Changements en cours

  • Déclasser Conversation.members Carte (elle ne sera remplie que lors d'un scénario d'appel)
  • Des événements de conversation seront émis avec un sous-ensemble d'informations sur le membre.
conversation.on("any:event", ({memberId, userId, userName, displayName, imageUrl, customData}, event) => {});

Changements

  • Ajouter des pages getMembers() pour récupérer les membres d'une conversation
conversation.getMembers().then((members_page) => {
  members_page.items.forEach(member => {
    render(member);
  })
}).catch((error) => {
  console.error("error getting the members ", error);
});
  • Ajouter getMyMember() pour récupérer notre propre membre dans une conversation
conversation.getMyMember().then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting my member", error);
});
  • Ajouter getMember() pour récupérer un membre d'une conversation par member_id
conversation.getMember("MEM-id").then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting member", error);
});

Version 7.1.0 - 07 avril 2021

Changements

  • rtcstats:report est obsolète. Veuillez utiliser rtcstats:analyticsau lieu de
application.on('rtcstats:analytics', ({
  type: 'mos' || 'mos_report',
  mos: string,
  rtc_id: string,
  mos_report?: {
    average: string,
    last: string,
    max: string,
    min: string
  },
  report?: RTCStatsReport
}) => {}
  • Ajouter un rapporteur de logs pour la journalisation à distance
  • Ajouter une personnalisation getStats analyseur
  • Retirer callstats bibliothèque et mise en œuvre

Version 7.0.2 - 30 mars 2021

Corrections

  • Émission de l'événement "call:status:update" lorsque l'application est hors ligne et que l'appel est déconnecté.

Version 7.0.1 - 04 février 2021

Corrections

  • Suppression d'un message d'avertissement inutile pour les changements d'état des appels

Version 7.0.0 - 02 février 2021

Changements en cours

  • legs doit être incluse dans le acl chemins sur JWT création de jetons
"acl": {
  "paths": {
    ...
    "/*/legs/**": {}
  }
}

Changements

  • Améliorer callServer temps de préparation par préchauffage de la jambe
  • Ajouter le rtcObject et à distance stream à la NxmCall objet

Corrections

  • Retour ClientDisconnected raison de la déconnexion du client SDK

Version 6.2.1 - 24 décembre 2020

Corrections

  • Revenir à la version 6.1.1 à partir de la version 6.2.0-alpha

Version 6.1.2 - 24 décembre 2020

Corrections

  • Mise à jour des définitions de Typescript

Version 6.1.1 - 09 décembre 2020

Corrections

  • Mise à jour des définitions de Typescript

Version 6.1.0 - 01 décembre 2020

Changements

  • Ajouter enableEventsQueue dans la configuration du client (valeur par défaut : true)
  • Ajouter l'interne eventsQueue mécanisme permettant de garantir l'ordre des événements reçus au cours d'une session

Version 6.0.19 - 26 novembre 2020

Changements

  • Mise à jour reconnectionDelay à 2000 en socket.io
  • Ajouter randomizationFactor à 0.55 en socket.io

Version 6.0.18 - 19 novembre 2020

Changements

  • Mise à jour de la documentation

Corrections

  • Ajouter reconnectionDelay à 3000 et reconnectionDelayMax à 15000 en socket.io

Version 6.0.17 - 12 novembre 2020

Corrections

  • Mise à jour de l'identifiant de session après reconnexion

Version 6.0.16 - 12 octobre 2020

Corrections

  • Envoi system:error:expired-token événement au niveau de l'application
  application.on('system:error:expired-token', 'NXM-errors', () => {
    console.log('Token Expired');
  });
  • Gérer les exceptions non capturées de conversation:error:invalid-member-state événement

Version 6.0.15 - 21 septembre 2020

Corrections

  • Régler le SDK par défaut sur un seul candidat ICE prédéfini
  • Retirer iceGatherOnlyOneCandidate de la configuration du client

Version 6.0.13 - 14 septembre 2020

Corrections

  • Mise à jour de la logique de reconnexion des sockets pour l'expiration des jetons

Version 6.0.12 - 01 septembre 2020

Corrections

  • Mise à jour du flux résolu sur l'activation des médias

Version 6.0.11 - 01 septembre 2020

Changements

  • Mise à jour de la logique de reconnexion des sockets
  • Correction d'un retard dans l'établissement d'une connexion média avec un candidat à la glace envoyé

Version 6.0.10 - 04 mai 2020

Corrections

  • Filtrer les candidats IPv6 de iceGatherOnlyOneCandidate Offre SDP

Version 6.0.9 - 24 mars 2020

Corrections

  • Correction du gestionnaire de rtc:transfer événement pour rafraîchir la conversation

Version 6.0.8 - 28 février 2020

Corrections

  • Correction de la duplication de l'offre webrtc envoyée lors d'un appel IP
  • Réparer Safari WebRTC dépendance

Version 6.0.7 - 16 janvier 2020

Corrections

  • Correction de l'état de l'appel ANSWERED lors d'un appel IP - IP
  • Corriger les problèmes de documentation

Changements

  • Améliorer les définitions TypeScript

Version 6.0.6 - 19 novembre 2019

Corrections

  • Ajouter iceGatherOnlyOneCandidate et l'utiliser pour définir le chemin d'accès dans ICE gathering processus

Version 6.0.5 - 19 novembre 2019

Corrections

  • Mise à jour du style de JSDocs à Docstrap modèle
  • Changer RTCPeerConnection ICE candidates pour envoyer le protocole de description de session (SDP) sur la première ICE candidat rassemblé

Version 6.0.4 - 14 novembre 2019

Corrections

  • Supprimer les éléments audio restants après avoir transféré un appel vers une nouvelle conversation
  • Mise à jour conversation.invite() de ne pas inclure les user_id ou user_name dans les demandes

Version 6.0.3 - 22 octobre 2019

Nouveau

  • Ajout de fichiers de définition TypeScript

Changements

  • Ajout d'options permettant de personnaliser les niveaux de journalisation dans la console de debug, info, warnou error.
new NexmoClient({
  debug: 'info'
})
  • Le stockage du jeton JWT a été déplacé de localStorage à NexmoClient objet de configuration
  • Suppression des fichiers inutiles dans le paquetage de la version de NPM

Corrections

  • Correction de l'ordre des statuts d'appel en cas de transfert

Version 6.0.1 - 27 septembre 2019

Changements

  • Supprimé media.record() fonction
  • Suppression de l'option de cache du SDK, utilisée pour stocker les conversations et les événements
  • Suppression de la synchronisation automatique de tous les conversations lors de la connexion, lorsque sync est lite ou full

Version 6.0.0 - 13 septembre 2019

Rupture des changements

  • Modifier la valeur de retour de application.getConversations() à de nouvelles ConversationsPage objet
// iterate through conversations
application
  .getConversations({ page_size: 20 })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });
  • Modifier la valeur de retour de conversation.getEvents() à de nouvelles EventsPage objet
// iterate through events
conversation
  .getEvents({ event_type: `member:*` })
  .then((events_page) => {
    events_page.items.forEach(event => {
      render(event);
    })
  });
  • Méthode de renommage application.callPhone à application.callServer
  • Méthode de renommage application.call à application.inAppCall
  • Méthode de renommage call.createPhoneCall à call.createServerCall
  • Renommer la classe Call à NXMCall
  • Renommer la classe ConversationClient à NexmoClient
  • Renommer la classe ConversationClientError à NexmoClientError
  • Renommer des fichiers conversationClient.js et conversationClient.min.js à nexmoClient.js et nexmoClient.min.js
  • Déclasser member:call:state (utiliser à la place member:call:status)
  • Supprimer la connexion automatique dans le cas d'une reconnexion websocket et émettre l'événement

Nouveau

  • Envoyer et écouter des types d'événements personnalisés dans une conversation.
//sending a custom event type to a conversation
conversation
  .sendCustomEvent({type: `my_custom_event`, body: { enabled: true }})
  .then((custom_event) => {
    console.log(event.body);
  });
//listening for a custom event type
conversation.on(`my_custom_event`, (from, event) => {
  console.log(event.body);
});
  • Ajouter un nouveau PageConfig classe permettant de configurer les paramètres des requêtes paginées
  • Ajouter un nouveau Page classe permettant d'envelopper les résultats des requêtes paginées
  • Ajout de la configuration de la pagination par défaut pour les conversations et les événements dans l'initialisation de ConversationClient
  • Ajout d'un joker permettant de filtrer les types d'événements à l'aide de :* (par exemple event_type: member:*)
new NexmoClient({
  conversations_page_config: {
    page_size: 25,
    order: 'asc'
    cursor: 'abc'
  },
  events_page_config: {
    page_size: 50,
    event_type: `member:*`
  }
})
  • Ajouter un nouveau ConversationsPage et EventsPage qui étendent Page classe permettant d'envelopper les résultats des requêtes paginées pour les conversations et les événements
  • Ajouter getNext() et getPrev() des méthodes pour ConversationsPage et EventsPage des objets permettant de consulter les pages précédentes et suivantes des conversations et des événements
  • Ajouter conversations_page_last au paramètre application et events_page_last au paramètre conversation objet pour la référence à la dernière page récupérée
application.conversations_page_last
  .getNext((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation)
    })
  })
conversation.events_page_last
  .getPrev((events_page) => {
    events_page.items.forEach(event => {
      render(event)
    })
  })
  • Ajouter la possibilité d'effectuer un appel IP-IP par l'intermédiaire de callServer fonction
// IP-IP call scenario
application
  .callServer('username', 'app')
  .then((nxmCall) => {
    // console.log(nxmCall);
  });

// IP-PSTN call scenario
application
  .callServer('07400000000')
  .then((nxmCall) => {
    // console.log(nxmCall);
  });

Changements

  • Mise à jour reason pour recevoir l'objet reason.reason_text et reason.reason_code champs

Changements internes

  • Renommer Event à la classe NXMEvent
  • Mise à jour des demandes CAPI en appels REST pour ces événements
    • event:delivered
    • text:delivered
    • image:delivered
    • event:seen
    • text:seen
    • image:seen
    • conversation:events
    • audio:play
    • conversation:delete
    • conversation:invite
    • text
    • text:typing:on
    • text:typing:off
    • new:conversation
    • conversation:get
    • user:conversations
    • user:get
    • conversation:join
    • audio:say
    • audio:earmuff:on
    • audio:earmuff:off
    • audio:dtmf
    • audio:record
    • audio:play
    • conversation:member:delete
    • event:delete
    • audio:ringing:start
    • audio:ringing:stop
    • audio:mute:on
    • audio:mute:off
    • image
    • rtc:new
    • rtc:answer
    • rtc:terminate
    • knocking:new
    • knocking:delete

Version 5.3.4 - 18 juillet 2019

Corrections

  • L'objet de configuration SDK personnalisé effectue une fusion profonde avec l'objet de configuration par défaut

Version 5.3.3 - 29 juin 2019

Corrections

  • Changer de chiffre à chiffre dans le sendDTMF() de la méthode de requête.
  • Le flux n'est pas terminé lors d'un transfert d'appel.
  • member:call n'est pas émis si media.audio_settings.enabled est fausse ou n'existe pas.

Nouveau

  • Set (jeu de mots) member.callStatus à started lors de l'initialisation d'un appel IP - IP.
  • Set (jeu de mots) member.callStatus à ringing lors de l'activation de la sonnerie avec media.startRinging().

Changements internes

  • Déplacer le nettoyage des cours d'eau de member:left à rtc:hangup dans le module Media.

Version 5.2.1 - 12 juin 2019

Nouveau

  • Ajouter le nouveau nexmoGetRequest méthode utilitaire permettant d'adresser une requête GET directement à CS :
/**
 * Perform a GET network request directly to CS
 *
 * @param {string} url the request url to CS
 * @param {string} data_type the type of data expected back from the request (events, conversations, users)
 * @param {object} [params] network request params
 * @param {string} [params.cursor] cursor parameter to access the next or previous page of a data set
 * @param {number} [params.page_size] the number of resources returned in a single request list
 * @param {string} [params.order] 'asc' or 'desc' ordering of resources (usually based on creation time)
 * @param {string} [params.event_type] the type of event used to filter event requests ('member:joined', 'audio:dtmf', etc)
 *
 * @returns {Promise<XMLHttpRequest.response>} the XMLHttpRequest.response
 * @static
 * @example <caption>Sending a nexmo GET request</caption>
 */
  nexmoGetRequest(url, data_type, params).then((response) => {
    response.body: {},
    response.cursor: {
        prev: '',
        next: '',
        self: ''
    },
    response.page_size: 10
 });
  • Soutien reason pour member:delete, conversation.leave, member.kick, call.hangup et call.reject.
  • Écouter le member:left événement avec reason:
//listening for member:left with reason
conversation.on('member:left', (member, event) => {
  console.log(event.body.reason);
});

/**
* Reason object format
*
* @param {object} [reason] the reason for kicking out a member
* @param {string} [reason.code] the code of the reason
* @param {string} [reason.text] the description of the reason
*/
  • Ajouter callStatus dans le champ Member qui définit le statut d'un appel.
  • Émettre member:call:status à chaque fois que le member.callStatus changements :
conversation.on("member:call:status", (member) => {
   console.log(member.callStatus);
});

Version 5.2.0 - 30 mai 2019

Nouveau

  • Ajouter le call instance en application.calls carte en createCall() fonction (appel IP - IP)

  • Mise à jour des paramètres de l'appelant dans l'objet de l'appel lors d'un appel RTPC - IP à partir de unknown à channel.from.number ou channel.from.uri s'il existe

  • Émettre le nouveau leg:status:update chaque fois qu'un membre change de statut

/**
  * Conversation listening for leg:status:update events.
  *
  * @event Conversation#leg:status:update
  *
  * @property {Member} member - the member whose leg status changed
  * @property {Event} event - leg:status:update event
  * @param {string} event.cid - the conversation id
  * @param {string} event.body.leg_id - the conversation leg id
  * @param {string} event.body.type - the conversation leg type (phone or app)
  * @param {string} event.body.status - the conversation member leg status
  * @param {Array} event.body.statusHistory - array of previous leg statuses
*/
conversation.on("leg:status:update", (member, event) {
  console.log(member, event);
});
  • Ajouter le channel.legs domaine dans les événements organisés par le CS à l'intention des membres
conversation.on(<member_event>, (member, event) {
  console.log(event);
  // member_id: <member_id>,
  // conversation_id: <conversation_id>,
  // ...
  // channel: {
  //  to: {
  //    type: app
  //  },
  //  type: app,
  //  leg_ids: [<leg_id>]
  //  legs : [{ leg_id: <leg_id>, status: <leg_status>}],
  //  leg_settings: {},
  // },
  // state: <state>,
  // leg_ids: []
});

Version 5.1.0 - 29 mai 2019

Nouveau

  • Envoyer un événement DTMF à une conversation
 * Send DTMF in a conversation
 *
 * @param {string} digits - the DTMF digit(s) to send
 * @returns {Promise<Event>}
 conversation.media.sendDTMF('digits')
  • Émission d'un nouvel événement audio:dtmf
conversation.on("audio:dtmf",(from, event)=>{
  event.digit // the dtmf digit(s) received
  event.from //id of the user who sent the dtmf
  event.timestamp //timestamp of the event
  event.cid // conversation id the event was sent to
  event.body // additional context about the dtmf
});
  • Définir des contraintes audio personnalisées pour les appels IP lors de l'activation de l'audio
 conversation.media.enable({
    'audioConstraints': audioConstraints
 })
  * Replaces the stream's audio tracks currently being used as the sender's sources with a new one with new audio constraints
  * @param {object} constraints - audio constraints
  * @returns {Promise<MediaStream>} - Returns the new stream with the updated audio constraints.
  * @example
  * conversation.media.updateAudioConstraints({'autoGainControl': true})
  **/
  • Mise à jour des contraintes audio pour les pistes audio existantes
  conversation.media.updateAudioConstraints(audioConstraints)
 })

Corrections

  • Suppression de 'this' passé au gestionnaire d'événement du gestionnaire de cache

Changements internes

  • Modifier le paramètre audio du média de media.audio à media.audio_settings en inviteWithAudio fonction

Version 5.0.3 - 23 mai 2019

Changements

  • Modifier le comportement par défaut de autoPlayAudio en media.enable() de faux à vrai
  • Passer un autoPlayAudio au paramètre call.createCall() et call.answer() fonctions (par défaut : true)

Version 5.0.2 - 30 mai 2019

Nouveau

  • Supprimez les fichiers images avant d'envoyer le image:delete demande
  • Il est désormais possible de choisir si l'attachement du flux audio sera automatiquement activé ou désactivé par l'intermédiaire de la fonction media.enable()
media.enable({
  autoPlayAudio: true | false
})

Changements (internes)

  • Combiner les requêtes GET, POST et DELETE du réseau en une seule fonction générique

Version 5.0.1 - 30 avril 2019

Corrections

  • Nettoyer les médias de l'utilisateur avant de quitter une conversation en cours

Changements en cours

  • Changer application.conversations à partir de Object à Map

Version 4.1.0 - 26 avril 2019

Corrections

  • Correction du bug où le flux audio résolu dans media.enable() provoquait un écho et n'était pas le flux distant.
  • Résoudre le flux distant pc.ontrack() et non le localStream de getUserMedia

Changements

  • Renommer localStream à stream en media.rtcObjects objet.

Version 4.0.2 - 17 avril 2019

Changements

  • Supprimé media.rtcNewPromises

Nouveau

  • Mise à jour des dépendances internes
  • Ajout de la prise en charge de l'outil de surveillance et de signalement des erreurs Bugsnag
 * @class ConversationClient
 *
 * @param {object} param.log_reporter configure log reports for bugsnag tool
 * @param {Boolean} param.log_reporter.enabled=false
 * @param {string} param.log_reporter.bugsnag_key your bugsnag api key / defaults to Vonage api key
  • Mise à jour des paramètres vscode pour ajouter une ligne vide (s'il n'y en a pas) à la fin de chaque fichier lors de l'enregistrement
  • Désactiver la connexion des candidats à la glace qui s'infiltrent dans la glace
  • Attendre que la plupart des candidats soient rassemblés, tant pour la partie locale que pour la partie distante.
  • Ajout d'une nouvelle fonction privée editSDPOrder(offer, answer) en rtc_helper.js pour réorganiser la réponse SDP lorsque c'est nécessaire
  • Pour l'état d'échec de la connexion rtc
    • Désactiver la jambe
    • émettre un nouvel événement media:connection:fail
member.on("media:connection:fail",(connection_details)=>{
  connection_details.rtc_id // my member's call id / leg id
  connection_details.remote_member_id // the id of the Member the stream belongs to
  connection_details.connection_event: // the connection fail event
  connection_details.type // the type of the connection (video or screenshare)
  connection_details.streamIndex // the streamIndex of the specific stream
});
* @event Member#media:connection:fail
*
* @property {number} payload.rtc_id the rtc_id / leg_id
* @property {string} payload.remote_member_id the id of the Member the stream belongs to
* @property {event} payload.connection_event the connection fail event
  • Ajouter un nouveau fichier LICENCE

Changements de rupture (en interne)

  • Dépréciation de la logique de l'écoulement de la glace avec onicecandidate gestionnaire d'événements
  • Modifier le format de member:media à la nouvelle manifestation proposée par le CS
type: 'member:media',
  from: member.member_id,
  conversation_id: member.conversation_id,
  body: {
    media: member.media,
    channel: member.channel
  }
  • Modifier le format de member:invited à la nouvelle offre de CS
type: 'member:invited',
  body: {
    media: {
      audio_settings: {
        enabled: false,
        earmuffed: false,
        muted: false
      }
    }
  }

Version 4.0.1 - 4 mars 2019

Nouveau

  • Sélectionner le niveau de synchronisation pour le processus de connexion

    • fullLes informations sur l'état de santé de la personne : déclencher une synchronisation complète pour inclure les conversations et les événements
    • liteSynchronisation partielle : déclenche une synchronisation partielle, uniquement pour les objets de conversation (vides d'événements)
    • none: ne rien synchroniser

    si le module Cache est activé, la récupération manuelle d'une conversation les stockera dans la mémoire interne.

    l'utilisation :

    new ConverationClient({'sync':'full'});
    

Corrections

  • rtcstats:report dupliquait les instances à chaque appel
  • supprimer screenshare restriction https

Changements de rupture (en interne)

  • Déclassement application.activeStream, il fait maintenant partie de application.activeStreams
  • Suppression de la restriction permettant d'appeler media.enable() pendant qu'un flux est actif

Version 4.0.0 - 1er février 2019

Rupture des changements

  • renommer SDK stitch à client
  • à l'écoute de media:stream:* donne maintenant streamIndex au lieu de index pour des raisons de cohérence avec les objets internes de rtcObjects
 * @event Member#media:stream:on
 *
 * @property {number} payload.streamIndex the index number of this stream
 * @property {number} [payload.rtc_id] the rtc_id / leg_id
 * @property {string} [payload.remote_member_id] the id of the Member the stream belongs to
 * @property {string} [payload.name] the stream's display name
 * @property {MediaStream} payload.stream the stream that is activated
 * @property {boolean} [payload.video_mute] if the video is hidden
 * @property {boolean} [payload.audio_mute] if the audio is muted

Nouveau

  • L'ID de la source de partage d'écran peut désormais être spécifié lors de l'invocation de la fonction de partage d'écran. media.enable()