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
networkRequestdonné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
NexmoAPIl'enveloppement des erreurs pour lesv0.3Points d'extrémité de l'API Conversation
Notes de mise à jour
Version 9.3.1 - 19 juin 2023
Corrections
- Fixer
NexmoAPIl'enveloppement des erreurs pour lesv0.3Points d'extrémité de l'API Conversation
Version 9.3.0 - 01 juin 2023
Nouveau
- Ajouter
statepour interroger le param pourapplication.getConversations()pour lesConversationsPageobjet
// 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
ConversationHorodatage de l'objet - Défaut
socket.iointerrogationsession_versionà0.0.1sauf sienableInboundOfferest fixé à true, la valeur par défaut est alors0.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
enableEventsQueueetenableInboundOffer - Ajouter
acknowledgeEventsdans 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-clientversion 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
enableInboundOfferdrapeau à configurer pour l'établissement d'un appel entrant - Retirer
Ice Serverspar défaut dewebrtc STUNconfiguration du serveur - Remplacer
api.nexmoURL versapi.vonageURL
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
v2de 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 icedès que le membre est invité à un appel)
Fixer
- Retirer
public-ipen raison d'une faille de sécurité (mise à jour avecis-ip)
Version 9.0.0 - 30 juin 2022
Changements en cours
- Renommer
login()à la fonctioncreateSession()
rtc.createSession(token).then((application) => {
console.log(application);
}).catch((error) => {
console.log(error);
});
- Renommer
logout()à la fonctiondeleteSession()
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 facultatifdcListCallbackqui 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()etdelivered()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:seenmessage:deliveredmessage:submittedmessage:rejectedmessage: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_bydelivered_tosubmitted_torejected_byundeliverable_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 nouveaumessageà la conversation (les types pris en charge sonttext,image,audio,videoetfile)
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
MessageEventtype d'événement
conversation.on("message", (member, messageEvent) => {
console.log(messageEvent);
});
Changements
- Déclasser
sendText()(utiliser la fonctionsendMessage()avec un type detextà 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 fonctionuploadImage()etsendMessage()avec un type deimageà 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
mediaParamsparamètre dansreconnectCallafin de modifier la fonctionMediaStreamobjet
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
NXMCalllors de la reconnexion à un appel (STARTED,RINGINGouANSWERED)
Changements
- Mise à jour
npmdépendances
Version 8.1.0 - 02 septembre 2021
Nouveau
- Ajouter
reconnectCallfonction 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
reconnectRtcIdaux médiasenable()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_datadans l'objetcallServerfonction
application.callServer("<phone_number>", "phone", { field1: "test" }).then((nxmCall) => {
console.log(nxmCall);
}).catch((error) => {
console.error(error);
});
- Ajouter
apiKey,applicationId,conversationIdetconversationNamelorsqu'elle est disponible enrtcstatsrapports d'analyse
Corrections
- Correction d'un bug dans le transfert d'appel où
transferred_fromn'était pas défini
Version 8.0.5 - 15 juillet 2021
Corrections
- Fixer le
frompour les événements organisés par les membres - Mise à jour
npmy compris les dépendancessocket-io
Version 8.0.4 - 16 juin 2021
Corrections
- Correction d'un bug sur
DTMFenvoi 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.membersCarte)
Version 8.0.0 - 27 avril 2021
Changements en cours
- Déclasser
Conversation.membersCarte (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 parmember_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:reportest obsolète. Veuillez utiliserrtcstats: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
getStatsanalyseur - Retirer
callstatsbibliothè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
legsdoit être incluse dans leaclchemins surJWTcréation de jetons
"acl": {
"paths": {
...
"/*/legs/**": {}
}
}
Changements
- Améliorer
callServertemps de préparation par préchauffage de la jambe - Ajouter le
rtcObjectet à distancestreamà laNxmCallobjet
Corrections
- Retour
ClientDisconnectedraison 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
enableEventsQueuedans la configuration du client (valeur par défaut : true) - Ajouter l'interne
eventsQueuemé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à2000ensocket.io - Ajouter
randomizationFactorà0.55ensocket.io
Version 6.0.18 - 19 novembre 2020
Changements
- Mise à jour de la documentation
Corrections
- Ajouter
reconnectionDelayà 3000 etreconnectionDelayMaxà 15000 ensocket.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
iceGatherOnlyOneCandidatede 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
iceGatherOnlyOneCandidateOffre 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
WebRTCdé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
iceGatherOnlyOneCandidateet l'utiliser pour définir le chemin d'accès dansICE gatheringprocessus
Version 6.0.5 - 19 novembre 2019
Corrections
- Mise à jour du style de
JSDocsàDocstrapmodèle - Changer
RTCPeerConnection ICE candidatespour envoyer le protocole de description de session (SDP) sur la premièreICEcandidat 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 lesuser_idouuser_namedans 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,warnouerror.
new NexmoClient({
debug: 'info'
})
- Le stockage du jeton JWT a été déplacé de
localStorageàNexmoClientobjet 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
conversationslors de la connexion, lorsquesyncestliteoufull
Version 6.0.0 - 13 septembre 2019
Rupture des changements
- Modifier la valeur de retour de
application.getConversations()à de nouvellesConversationsPageobjet
// 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 nouvellesEventsPageobjet
// 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.jsetconversationClient.min.jsànexmoClient.jsetnexmoClient.min.js - Déclasser
member:call:state(utiliser à la placemember: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
PageConfigclasse permettant de configurer les paramètres des requêtes paginées - Ajouter un nouveau
Pageclasse 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 exempleevent_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
ConversationsPageetEventsPagequi étendentPageclasse permettant d'envelopper les résultats des requêtes paginées pour les conversations et les événements - Ajouter
getNext()etgetPrev()des méthodes pourConversationsPageetEventsPagedes objets permettant de consulter les pages précédentes et suivantes des conversations et des événements - Ajouter
conversations_page_lastau paramètreapplicationetevents_page_lastau paramètreconversationobjet 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
callServerfonction
// 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
reasonpour recevoir l'objetreason.reason_textetreason.reason_codechamps
Changements internes
- Renommer
Eventà la classeNXMEvent - Mise à jour des demandes CAPI en appels REST pour ces événements
event:deliveredtext:deliveredimage:deliveredevent:seentext:seenimage:seenconversation:eventsaudio:playconversation:deleteconversation:invitetexttext:typing:ontext:typing:offnew:conversationconversation:getuser:conversationsuser:getconversation:joinaudio:sayaudio:earmuff:onaudio:earmuff:offaudio:dtmfaudio:recordaudio:playconversation:member:deleteevent:deleteaudio:ringing:startaudio:ringing:stopaudio:mute:onaudio:mute:offimagertc:newrtc:answerrtc:terminateknocking:newknocking: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:calln'est pas émis simedia.audio_settings.enabledest fausse ou n'existe pas.
Nouveau
- Set (jeu de mots)
member.callStatusàstartedlors de l'initialisation d'un appel IP - IP. - Set (jeu de mots)
member.callStatusàringinglors de l'activation de la sonnerie avecmedia.startRinging().
Changements internes
- Déplacer le nettoyage des cours d'eau de
member:leftàrtc:hangupdans le module Media.
Version 5.2.1 - 12 juin 2019
Nouveau
- Ajouter le nouveau
nexmoGetRequestmé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
reasonpourmember:delete,conversation.leave,member.kick,call.hangupetcall.reject. - Écouter le
member:leftévénement avecreason:
//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
callStatusdans le champMemberqui définit le statut d'un appel. - Émettre
member:call:statusà chaque fois que lemember.callStatuschangements :
conversation.on("member:call:status", (member) => {
console.log(member.callStatus);
});
Version 5.2.0 - 30 mai 2019
Nouveau
Ajouter le
callinstance enapplication.callscarte encreateCall()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.numberouchannel.from.uris'il existeÉmettre le nouveau
leg:status:updatechaque 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.legsdomaine 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_settingseninviteWithAudiofonction
Version 5.0.3 - 23 mai 2019
Changements
- Modifier le comportement par défaut de
autoPlayAudioenmedia.enable()de faux à vrai - Passer un
autoPlayAudioau paramètrecall.createCall()etcall.answer()fonctions (par défaut : true)
Version 5.0.2 - 30 mai 2019
Nouveau
- Supprimez les fichiers images avant d'envoyer le
image:deletedemande - 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 deObjectà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 lelocalStreamde getUserMedia
Changements
- Renommer
localStreamàstreamenmedia.rtcObjectsobjet.
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)enrtc_helper.jspour 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
onicecandidategestionnaire 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énementsliteSynchronisation 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:reportdupliquait les instances à chaque appel- supprimer
screensharerestriction https
Changements de rupture (en interne)
- Déclassement
application.activeStream, il fait maintenant partie deapplication.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 maintenantstreamIndexau lieu deindexpour 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()