Anmerkungen zur Veröffentlichung

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. Januar 2024

Behebt

  • Behebung eines Fehlers bei der Herstellung networkRequest Daten eine Zeichenkette

Version 9.5.0 - November 21, 2023

Neu

  • Unterstützung anstehender Ereignisse (verpasste member:invited)

Version 9.4.0 - September 04, 2023

Neu

  • Unterstützung ephemeral Veranstaltung
// send ephemeral event
conversation
  .sendEphemeralEvent({ state: "INVITED" })
  .then((event) => {
    console.log(event)
  });

Version 9.3.1 - 30. August 2023

Behebt

  • Fix NexmoAPI Fehlerumschlag für v0.3 Conversation API-Endpunkte

Anmerkungen zur Veröffentlichung

Version 9.3.1 - 19. Juni 2023

Behebt

  • Fix NexmoAPI Fehlerumschlag für v0.3 Conversation API-Endpunkte

Version 9.3.0 - Juni 01, 2023

Neu

  • hinzufügen state zur Abfrage von param für application.getConversations() für die ConversationsPage Objekt
// iterate through conversations
application
  .getConversations({ state: "INVITED" })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });

Behebt

  • Fixe Typdefinition für Conversation Zeitstempel zum Objekt
  • Standard socket.io Abfrage session_version zu 0.0.1 es sei denn, enableInboundOffer Flagge auf true gesetzt, dann standardmäßig auf 0.0.2

Version 9.2.6 - Mai 23, 2023

Änderungen

  • WS-Wiederverbindungsmetriken hinzufügen

Version 9.2.5 - Mai 23, 2023

Behebt

  • Fixe Typdefinition für enableEventsQueue und enableInboundOffer
  • hinzufügen acknowledgeEvents Flagge in der Konfiguration, um die Verfolgung von Websocket-Ereignisbestätigungen zu ermöglichen

Version 9.2.4 - April 19, 2023

Behebt

  • Emittierend reconnecting Socket-Ereignis bei Wiederverbindungsversuch

Version 9.2.3 - 30. März 2023

Änderungen

  • Upgrade socket.io-client Version auf 4.6.1

Version 9.2.2 - März 13, 2023

Behebt

  • Fix ConversationEventsProcessor mehrmals für dasselbe Gespräch initiiert werden

Version 9.2.0 - Dezember 21, 2022

Änderungen

  • hinzufügen enableInboundOffer Flagge zur Konfiguration für den Aufbau eingehender Anrufe
  • entfernen Ice Servers Standard von webrtc STUN Server-Einrichtung
  • Ersetzen Sie api.nexmo URLs zu api.vonage URLs

Version 9.1.5 - 24. Oktober 2022

Behebt

  • Behebung eines Fehlers bei erneuter Einladung/Beitritt zu einer Unterhaltung

Version 9.1.4 - September 23, 2022

Änderungen

  • Verwenden Sie v2 von Nexmo Conversation Websocket

Version 9.1.3 - September 07, 2022

Fix

  • Typescript-Moduldefinition korrigieren

Version 9.1.1 - 19. August 2022

Fix

  • Korrektur der Ereignisreihenfolge für rtc:transfer bei benannten Unterhaltungen

Version 9.1.0 - 16. August 2022

Neu

  • Vorgeladene Medien bei eingehenden Anrufen verwenden (Start WebRTC ice Sammlungsprozess, sobald das Mitglied zu einem Anruf eingeladen wird)

Fix

  • entfernen public-ip Bibliothek wegen einer Sicherheitslücke (aktualisiert mit is-ip)

Version 9.0.0 - 30. Juni 2022

Wechselnde Änderungen

  • Umbenennen login() Funktion zu createSession()
rtc.createSession(token).then((application) => {
  console.log(application);
}).catch((error) => {
  console.log(error);
});
  • Umbenennen logout() Funktion zu deleteSession()
rtc.deleteSession().then((response) => {
  console.log(response);
}).catch((error) => {
  console.log(error);
});

Änderungen

  • Verschieben Sie die Erstellung von Websocket-Verbindungen in die createSession() Funktion

Version 8.7.3 - 14. Juni 2022

Änderungen

  • Token-Authentifizierung hinzugefügt für connectivityReport()
rtc.connectivityReport(token, {
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});
  • Token-Authentifizierung hinzugefügt für 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

Fix

  • Ungenutzte npm-Abhängigkeiten wurden entfernt.

Version 8.7.1 - 11. Mai 2022

Neu

  • Neu hinzugefügt checkMediaServers() Methode, um eine Liste mit dem Verbindungsstatus der Medienserver für ein bestimmtes Rechenzentrum zurückzugeben.
rtc.checkMediaServers('nexmo-api-url','dc').then((responseArray) => {
	console.log(responseArray);
}).catch((error) => {
  console.log(error);
});
  • Neu hinzugefügt checkMediaConnectivity() Methode, um den Verbindungsstatus eines einzelnen Medienservers zu ermitteln.
rtc.checkMediaConnectivity('ip-address','1').then((response) => {
  console.log(response);
}).catch((error) => {
	console.log(error);
});

Änderungen

  • Update connectivityReport() Rückgabe der Verbindungszeit in ms für Verbindungen zu https-, wss- und Medienservern

Version 8.6.0 - April 21, 2022

Neu

  • Ein optionales Objektargument wurde der Funktion connectivityReport(), mit fakultativem Feld dcListCallback die eine Callback-Funktion zur Aktualisierung der Liste der Datenzentren akzeptiert
rtc.connectivityReport({
  dcListCallback: (dcList) => {...dcList, additionalDc}
}).then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Version 8.5.0 - April 20, 2022

Neu

  • Enthüllen Sie seen() und delivered() Funktionen für Nachrichtenereignisse
messageEvent.seen().then(() => {
  console.log(`Seen message with id ${messageEvent.id}`);
}).catch((error) => {
  console.log(error);
});
  • Unterstützung neuer Nachrichtenstatusereignisse
    • 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}`);
});
  • Neue Statusobjekte für Nachrichtenereignisse hinzugefügt, die die neuen Status unterstützen
    • seen_by
    • delivered_to
    • submitted_to
    • rejected_by
    • undeliverable_to

Änderungen

  • Update connectivityReport() die richtigen Endpunkte pro Region zu verwenden

Version 8.4.1 - 14. Februar 2022

Fix

  • Korrektur der Reihenfolge von Ereignissen bei Lücken in eingehenden Ereignissen

Version 8.4.0 - Januar 21, 2022

Neu

  • Neu hinzugefügt connectivityReport() Funktion zum Abrufen eines Konnektivitätsberichts für alle Vonage-Rechenzentren und Medienserver
rtc.connectivityReport().then((report) => {
  console.log(report);
}).catch((error) => {
  console.log(error);
});

Version 8.3.1 - Dezember 09, 2021

Neu

  • Legen Sie die Standard-Synchronisationsstufe für den Anmeldevorgang von lite zu none

Version 8.3.0 - November 01, 2021

Neu

  • Neu hinzugefügt uploadImage() Funktion zum Hochladen eines Bildes in den 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);
});
  • Neu hinzugefügt sendMessage() Funktion zum Senden einer neuen message zur Konversation (unterstützte Typen sind text, image, audio, video und 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);
});
  • Neu hinzugefügt MessageEvent Art der Veranstaltung
conversation.on("message", (member, messageEvent) => {
  console.log(messageEvent);
});

Änderungen

  • Verwerfen Sie sendText() Funktion (Verwendung sendMessage() mit einem Typ von text stattdessen)
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);
});
  • Verwerfen Sie sendImage() Funktion (Verwendung uploadImage() und sendMessage() mit einem Typ von image stattdessen)
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. Oktober 2021

Fix

  • Fehlerbehandlung für Audio-Berechtigungen korrigiert

Version 8.2.2 - Oktober 08, 2021

Fix

  • Verbesserte Debug-Protokolle

Version 8.2.0 - September 28, 2021

Neu

  • Neu hinzufügen getUserSessions() Funktion zum Abrufen der Sitzungen des angemeldeten Benutzers
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 - September 08, 2021

Neu

  • Neue Option hinzufügen mediaParams Parameter in reconnectCall Funktion, um die MediaStream Objekt
application.reconnectCall(
  "conversation_id",
  "rtc_id",
  { audioConstraints: { deviceId: "device_id" } }
).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Update media.enable() Dokumente zur Aufnahme von Audiobeschränkungen

Behebt

  • Weisen Sie die richtige NXMCall Status bei der Wiederverbindung mit einem Anruf (STARTED, RINGING oder ANSWERED)

Änderungen

  • Update npm Abhängigkeiten

Version 8.1.0 - September 02, 2021

Neu

  • hinzufügen reconnectCall Funktion, die es den Nutzern ermöglicht, sich innerhalb von 20 Sekunden wieder mit einem Anruf zu verbinden, wenn die Browser-Registerkarte geschlossen wird
application.reconnectCall("conversation_id", "rtc_id").then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • Optionalen Parameter hinzufügen reconnectRtcId an Medien enable() Funktion zum erneuten Verbinden von Medien zum Aufruf
conversation.media.enable({ reconnectRtcId: "UUID" }).then((stream) => {
  console.log(stream)
}).catch((error) => {
  console.error("error renabling media", error);
});
  • hinzufügen custom_data Objekt in callServer Funktion
application.callServer("<phone_number>", "phone", { field1: "test" }).then((nxmCall) => {
  console.log(nxmCall);
}).catch((error) => {
  console.error(error);
});
  • hinzufügen apiKey, applicationId, conversationId und conversationName wenn verfügbar in rtcstats Analyseberichte

Behebt

  • Fehler bei der Anrufweiterleitung behoben, bei dem transferred_from war undefiniert

Version 8.0.5 - 15. Juli 2021

Behebt

  • Reparieren Sie die from für Mitgliederveranstaltungen
  • Update npm Abhängigkeiten einschließlich socket-io

Version 8.0.4 - 16. Juni 2021

Behebt

  • Fehler beheben bei DTMF Versand des Rückrufs an event_url

Version 8.0.3 - Mai 18, 2021

Behebt

  • Behebung der fehlerhaften Reihenfolge bei der Verarbeitung interner Ereignisse in der Ereigniswarteschlange
  • Korrektur der Warnmeldung für die Veralterung von rtcstats:report

Version 8.0.1 - 29. April 2021

Behebt

  • Aktualisieren der Typescript-Definitionen
  • Behebung eines Fehlers bei IP-IP-Anrufszenarien mit nativen SDKs (nicht korrektes Auffüllen der Conversation.members Karte)

Version 8.0.0 - 27. April 2021

Wechselnde Änderungen

  • Verwerfen Sie Conversation.members Karte (sie wird nur bei einem Anrufszenario ausgefüllt)
  • Konversationsereignisse werden mit einer Teilmenge der Informationen des Mitglieds ausgegeben
conversation.on("any:event", ({memberId, userId, userName, displayName, imageUrl, customData}, event) => {});

Änderungen

  • Paginiert hinzufügen getMembers() Funktion zum Abrufen der Mitglieder einer Unterhaltung
conversation.getMembers().then((members_page) => {
  members_page.items.forEach(member => {
    render(member);
  })
}).catch((error) => {
  console.error("error getting the members ", error);
});
  • hinzufügen getMyMember() Funktion, um unser eigenes Mitglied in einer Konversation abzurufen
conversation.getMyMember().then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting my member", error);
});
  • hinzufügen getMember() Funktion zum Abrufen eines Gesprächsmitglieds durch member_id
conversation.getMember("MEM-id").then((member) => {
  render(member);
}).catch((error) => {
  console.error("error getting member", error);
});

Version 7.1.0 - April 07, 2021

Änderungen

  • rtcstats:report ist veraltet. Bitte verwenden Sie rtcstats:analyticsstattdessen
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
}) => {}
  • Logs Reporter für Fernprotokollierung hinzufügen
  • Benutzerdefiniert hinzufügen getStats Parser
  • entfernen callstats Bibliothek und Implementierung

Version 7.0.2 - 30. März 2021

Behebt

  • Senden des Ereignisses "call:status:update", wenn die Anwendung offline ist und die Verbindung getrennt wurde

Version 7.0.1 - Februar 04, 2021

Behebt

  • Unnötige Warnmeldung bei Anrufstatusübergängen entfernen

Version 7.0.0 - Februar 02, 2021

Wechselnde Änderungen

  • legs Endpunkt sollte aufgenommen werden in acl Pfade auf JWT Token-Erstellung
"acl": {
  "paths": {
    ...
    "/*/legs/**": {}
  }
}

Änderungen

  • Verbessern Sie callServer Einrichtungszeit durch Vorwärmen der Beine
  • Fügen Sie die rtcObject und ferngesteuert stream zum NxmCall Objekt

Behebt

  • Rückkehr ClientDisconnected Grund für die Abmeldung des Kunden vom SDK

Version 6.2.1 - 24. Dezember 2020

Behebt

  • Zurückkehren zu 6.1.1 von 6.2.0-alpha

Version 6.1.2 - 24. Dezember 2020

Behebt

  • Aktualisieren der Typescript-Definitionen

Version 6.1.1 - Dezember 09, 2020

Behebt

  • Aktualisieren der Typescript-Definitionen

Version 6.1.0 - Dezember 01, 2020

Änderungen

  • hinzufügen enableEventsQueue Flagge in der Client-Konfiguration (Standardwert: true)
  • Intern hinzufügen eventsQueue Mechanismus zur Gewährleistung der Reihenfolge der während einer Sitzung empfangenen Ereignisse

Version 6.0.19 - 26. November 2020

Änderungen

  • Update reconnectionDelay zu 2000 in socket.io
  • hinzufügen randomizationFactor zu 0.55 in socket.io

Version 6.0.18 - 19. November 2020

Änderungen

  • Dokumentation aktualisieren

Behebt

  • hinzufügen reconnectionDelay auf 3000 und reconnectionDelayMax auf 15000 in socket.io

Version 6.0.17 - 12. November 2020

Behebt

  • Sitzungsnummer nach erneuter Verbindung aktualisieren

Version 6.0.16 - 12. Oktober 2020

Behebt

  • Versenden system:error:expired-token Ereignis auf Anwendungsebene
  application.on('system:error:expired-token', 'NXM-errors', () => {
    console.log('Token Expired');
  });
  • Behandeln Sie nicht abgefangene Ausnahmen von conversation:error:invalid-member-state Veranstaltung

Version 6.0.15 - September 21, 2020

Behebt

  • SDK-Standard auf einen einzigen voreingestellten ICE-Kandidaten setzen
  • entfernen iceGatherOnlyOneCandidate Flagge aus der Client-Konfiguration

Version 6.0.13 - 14. September 2020

Behebt

  • Aktualisierung der Websocket-Wiederverbindungslogik bei Ablauf des Tokens

Version 6.0.12 - September 01, 2020

Behebt

  • Aufgelösten Stream auf Medienfreigabe aktualisieren

Version 6.0.11 - September 01, 2020

Änderungen

  • Aktualisieren der Logik für die Wiederverbindung mit dem Websocket
  • Behebung der Verzögerung beim Aufbau der Medienverbindung mit einem gesendeten Eiskandidaten

Version 6.0.10 - Mai 04, 2020

Behebt

  • Filtern von IPv6-Kandidaten aus iceGatherOnlyOneCandidate SDP-Angebot

Version 6.0.9 - 24. März 2020

Behebt

  • Fixer Handler von rtc:transfer Veranstaltung zur Auffrischung des Gesprächs

Version 6.0.8 - 28. Februar 2020

Behebt

  • Behebung des doppelten webrtc-Angebots, das bei IP-Anrufen gesendet wird
  • Safari reparieren WebRTC Abhängigkeiten

Version 6.0.7 - 16. Januar 2020

Behebt

  • Fix ANSWERED call status in IP - IP calling
  • Dokumentationsprobleme beheben

Änderungen

  • Verbesserung der TypeScript-Definitionen

Version 6.0.6 - 19. November 2019

Behebt

  • hinzufügen iceGatherOnlyOneCandidate und verwenden Sie diese Option, um den Pfad in ICE gathering Prozess

Version 6.0.5 - 19. November 2019

Behebt

  • Aktualisieren Sie das Styling von JSDocs zu Docstrap Vorlage
  • Ändern Sie RTCPeerConnection ICE candidates Sammlungsprozess zum Senden des Session Description Protocol (SDP) Angebot auf der ersten ICE gesammelte Bewerber

Version 6.0.4 - 14. November 2019

Behebt

  • Entfernen Sie verbleibende Audioelemente, nachdem Sie einen Anruf an ein neues Gespräch übergeben haben
  • Update conversation.invite() keine leeren user_id oder user_name Felder in den Anfragen

Version 6.0.3 - 22. Oktober 2019

Neu

  • TypeScript-Definitionsdateien hinzugefügt

Änderungen

  • Optionen für benutzerdefinierte Protokollierungsstufen in der Konsole von debug, info, warn, oder error.
new NexmoClient({
  debug: 'info'
})
  • Verschiebung der Speicherung des JWT-Tokens von localStorage zu NexmoClient Konfigurationsobjekt
  • Unnötige Dateien aus dem NPM-Release-Paket entfernt

Behebt

  • Feste Reihenfolge der Anrufstatus bei einer Übergabe

Version 6.0.1 - 27. September 2019

Änderungen

  • Entfernt media.record() Funktion
  • Cache-Option aus dem SDK entfernt, die zum Speichern von Unterhaltungen und Ereignissen verwendet wird
  • Die automatische Synchronisierung aller einzelnen conversations bei der Anmeldung, wenn sync ist lite oder full

Version 6.0.0 - 13. September 2019

Wechselnde Änderungen

  • Ändern Sie den Rückgabewert von application.getConversations() zu neu ConversationsPage Objekt
// iterate through conversations
application
  .getConversations({ page_size: 20 })
  .then((conversations_page) => {
    conversations_page.items.forEach(conversation => {
      render(conversation);
    })
  });
  • Ändern Sie den Rückgabewert von conversation.getEvents() zu neu EventsPage Objekt
// iterate through events
conversation
  .getEvents({ event_type: `member:*` })
  .then((events_page) => {
    events_page.items.forEach(event => {
      render(event);
    })
  });
  • Methode umbenennen application.callPhone zu application.callServer
  • Methode umbenennen application.call zu application.inAppCall
  • Methode umbenennen call.createPhoneCall zu call.createServerCall
  • Klasse umbenennen Call zu NXMCall
  • Klasse umbenennen ConversationClient zu NexmoClient
  • Klasse umbenennen ConversationClientError zu NexmoClientError
  • Dateien umbenennen conversationClient.js und conversationClient.min.js zu nexmoClient.js und nexmoClient.min.js
  • Verwerfen Sie member:call:state Ereignis (verwenden Sie stattdessen member:call:status)
  • Entfernen Sie die automatische Anmeldung im Falle einer erneuten Websocket-Verbindung und geben Sie das Ereignis aus

Neu

  • Senden und Abhören von benutzerdefinierten Ereignistypen in einer Konversation.
//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);
});
  • Neu hinzufügen PageConfig Klasse zur Konfiguration von Einstellungen für paginierte Anfragen
  • Neu hinzufügen Page Klasse zum Verpacken der Ergebnisse von paginierten Anfragen
  • Hinzufügen einer Standard-Paginierungskonfiguration für Unterhaltungen und Ereignisse in der Initialisierung des ConversationClient
  • Hinzufügen eines Platzhalters für die Filterung nach Ereignistypen mit :* (zum Beispiel event_type: member:*)
new NexmoClient({
  conversations_page_config: {
    page_size: 25,
    order: 'asc'
    cursor: 'abc'
  },
  events_page_config: {
    page_size: 50,
    event_type: `member:*`
  }
})
  • Neu hinzufügen ConversationsPage und EventsPage die die Page Klasse zum Verpacken der Ergebnisse von paginierten Anfragen für Unterhaltungen und Ereignisse
  • hinzufügen getNext() und getPrev() Methoden zur ConversationsPage und EventsPage Objekte zum Abrufen der vorherigen und nächsten Seiten von Gesprächen und Ereignissen
  • hinzufügen conversations_page_last Parameter zu application Objekt und events_page_last Parameter zu conversation Objekt für den Verweis auf die zuletzt abgerufene Seite
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)
    })
  })
  • Hinzufügen der Möglichkeit, einen IP-IP-Anruf über callServer Funktion
// 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);
  });

Änderungen

  • Update reason Objekt zu empfangen reason.reason_text und reason.reason_code Felder

Interne Änderungen

  • Umbenennen Event Klasse zu NXMEvent
  • Aktualisierung der CAPI-Anfragen zu REST-Aufrufen für diese Ereignisse
    • 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. Juli 2019

Behebt

  • Benutzerdefiniertes SDK-Konfigurationsobjekt führt eine tiefe Verschmelzung mit dem Standard-Konfigurationsobjekt durch

Version 5.3.3 - 29. Juni 2019

Behebt

  • Ändern Sie Ziffern zu Ziffer in der sendDTMF() Nutzdaten der Anfragemethode.
  • Der Stream wird bei einer Rufumleitung nicht beendet.
  • member:call nicht ausgegeben wird, wenn media.audio_settings.enabled falsch ist oder nicht existiert.

Neu

  • Satz member.callStatus zu started bei der Initialisierung eines IP-IP-Anrufs.
  • Satz member.callStatus zu ringing beim Aktivieren des Klingelns mit media.startRinging().

Interne Änderungen

  • Verschieben Sie die Streambereinigung von member:left zu rtc:hangup im Modul Medien.

Version 5.2.1 - 12. Juni 2019

Neu

  • Fügen Sie die neue nexmoGetRequest Utility-Methode, um eine GET-Netzwerkanfrage direkt an CS zu stellen:
/**
 * 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
 });
  • Unterstützung reason für member:delete, conversation.leave, member.kick, call.hangup und call.reject.
  • Hören Sie auf die member:left Veranstaltung mit 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
*/
  • hinzufügen callStatus Feld in der Member Objekt, das den Status eines Anrufs definiert.
  • Senden Sie member:call:status Ereignis jedes Mal, wenn die member.callStatus Änderungen:
conversation.on("member:call:status", (member) => {
   console.log(member.callStatus);
});

Version 5.2.0 - 30. Mai 2019

Neu

  • Fügen Sie die call Instanz in application.calls Karte in createCall() Funktion (IP-IP-Aufruf)

  • Aktualisierung der Anruferparameter im Anrufobjekt bei einem PSTN-IP-Anruf von unknown zu channel.from.number oder channel.from.uri wenn vorhanden

  • Senden Sie die neue leg:status:update Ereignis jedes Mal, wenn sich der Status eines Mitglieds ändert

/**
  * 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);
});
  • Fügen Sie die channel.legs Bereich der von der CS angebotenen Mitgliederveranstaltungen
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

Neu

  • DTMF-Ereignis an ein Gespräch senden
 * Send DTMF in a conversation
 *
 * @param {string} digits - the DTMF digit(s) to send
 * @returns {Promise<Event>}
 conversation.media.sendDTMF('digits')
  • Neues Ereignis aussenden 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
});
  • Festlegen von benutzerdefinierten Audiobeschränkungen für IP-Anrufe bei der Aktivierung von 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})
  **/
  • Aktualisieren von Audiobedingungen für vorhandene Audiospuren
  conversation.media.updateAudioConstraints(audioConstraints)
 })

Behebt

  • Entfernen von 'this', das an den Cache-Worker-Event-Handler übergeben wird

Interne bahnbrechende Änderungen

  • Ändern Sie den Medien-Audio-Parameter von media.audio zu media.audio_settings in inviteWithAudio Funktion

Version 5.0.3 - 23. Mai 2019

Änderungen

  • Ändern Sie das Standardverhalten von autoPlayAudio in media.enable() von falsch nach wahr
  • Pass an autoPlayAudio Parameter zu call.createCall() und call.answer() Funktionen (Standard ist true)

Version 5.0.2 - 30. Mai 2019

Neu

  • Löschen Sie die Bilddateien, bevor Sie die image:delete Anfrage
  • Das Anhängen von Audiostreams kann nun über die Option "Automatisch ein- oder ausschalten" ausgewählt werden. media.enable()
media.enable({
  autoPlayAudio: true | false
})

Änderungen (intern)

  • Kombinieren Sie die GET-, POST- und DELETE-Anforderungen des Netzes in einer generischen Funktion

Version 5.0.1 - 30. April 2019

Behebt

  • Bereinigen Sie die Medien des Benutzers, bevor Sie ein laufendes Gespräch verlassen.

Wechselnde Änderungen

  • Ändern Sie application.conversations Typ von Object zu Map

Version 4.1.0 - 26. April 2019

Behebt

  • Fehler behoben, bei dem der in media.enable() aufgelöste Audiostream ein Echo verursacht und nicht der Remote-Stream war
  • Lösen Sie den entfernten Stream auf pc.ontrack() und nicht die localStream von getUserMedia

Änderungen

  • Umbenennen localStream zu stream in media.rtcObjects Objekt.

Version 4.0.2 - 17. April 2019

Änderungen

  • Entfernt media.rtcNewPromises

Neu

  • Aktualisierung der internen Lib-Abhängigkeiten
  • Unterstützung für das Fehlerüberwachungs- und Berichtstool Bugsnag hinzugefügt
 * @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
  • Die Vscode-Einstellungen wurden aktualisiert, so dass beim Speichern am Ende jeder Datei eine Leerzeile hinzugefügt wird (falls keine vorhanden ist)
  • Deaktivieren Sie den Anschluss der Eiskandidaten, die Eis einrieseln lassen
  • Warten Sie, bis die meisten Kandidaten sowohl für die lokale als auch für die entfernte Seite beisammen sind
  • Neue private Funktion hinzugefügt editSDPOrder(offer, answer) in rtc_helper.js die SDP-Antwort neu zu ordnen, wenn sie benötigt wird
  • Für rtc-Verbindungsfehlerstatus
    • Bein deaktivieren
    • neues Ereignis auslösen 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
  • Neue LICENCE-Datei hinzufügen

Änderungen (intern)

  • Verwerfung der Eis-Tropf-Logik mit onicecandidate Ereignisbehandler
  • Ändern Sie das Format von member:media Veranstaltung auf die neue von CS angebotene
type: 'member:media',
  from: member.member_id,
  conversation_id: member.conversation_id,
  body: {
    media: member.media,
    channel: member.channel
  }
  • Ändern Sie das Format von member:invited Veranstaltung zum neuen Angebot von CS
type: 'member:invited',
  body: {
    media: {
      audio_settings: {
        enabled: false,
        earmuffed: false,
        muted: false
      }
    }
  }

Version 4.0.1 - 4. März 2019

Neu

  • Wählen Sie die Synchronisationsstufe für den Anmeldevorgang

    • full: vollständige Synchronisierung auslösen, um Unterhaltungen und Ereignisse einzubeziehen
    • liteTeilweise Synchronisation auslösen, nur Konversationsobjekte (leer von Ereignissen)
    • none: nichts synchronisieren

    wenn das Cache-Modul aktiviert ist, wird das manuelle Abrufen einer Konversation diese im internen Speicher ablegen

    Verwendung:

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

Behebt

  • rtcstats:report Instanzen bei jedem Aufruf dupliziert hat
  • entfernen screenshare https-Beschränkung

Änderungen (intern)

  • Abgelehnt application.activeStreamjetzt ist es Teil von application.activeStreams
  • Aufhebung der Einschränkung, dass der Aufruf von media.enable() während ein Stream aktiv ist

Version 4.0.0 - 1. Februar 2019

Wechselnde Änderungen

  • SDK umbenennen stitch zu client
  • Hören auf media:stream:* gibt nun streamIndex anstelle von index für die Konsistenz mit den internen 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

Neu

  • Die Screen Share Source ID kann nun beim Aufruf von media.enable()