Migration von v1.x auf v2.0
Auf dieser Seite werden die in […], eingeführten Kompatibilitätsänderungen behandelt. v2.0.0 (veröffentlicht am 07.02.2025). Die letzte Version der Version 1.x war v1.7.2 (08.08.2024).
Umfang der Plattform
Die meisten kompatibilitätsbrechenden Änderungen in Version 2.0.0 betreffen die JavaScript-SDK nur. Wesentliche Änderungen an nativen Anwendungen (iOS/Android) werden ausdrücklich hervorgehoben.
Einstellung der Chat-API
Die Chat-API ist veraltet und wird in einer zukünftigen Version entfernt. Chat-bezogene Änderungen mit Kompatibilitätsproblemen (z. B. ChannelType umbenannt in MemberChannelType, MemberChannelType (Schlüssel in PascalCase, veraltete Signaturen der Chat-Funktionen wurden entfernt) werden hier nicht dokumentiert. Erstellen Sie keine neuen Applications unter Verwendung der Chat-API.
Versionszuordnung
| v1.x (aktuell) | v2.x (erste Version) |
|---|---|
| 1.7.2 | 2.0.0 |
Umbenennung von Enum-Schlüsseln (JS)
Alle Enum-Schlüssel wurden von der Groß-/Kleinschreibung in Version 1.x geändert zu PascalCase. Das zugrunde liegende Werte sind unverändert – nur die Schlüssel, mit denen Sie darauf zugreifen, unterscheiden sich.
Grund für den Anrufabbruch
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
REMOTE_HANGUP |
RemoteHangup |
'REMOTE_HANGUP' |
REMOTE_REJECT |
RemoteReject |
'REMOTE_REJECT' |
REMOTE_NO_ANSWER_TIMEOUT |
RemoteNoAnswerTimeout |
'REMOTE_NO_ANSWER_TIMEOUT' |
LOCAL_HANGUP |
LocalHangup |
'LOCAL_HANGUP' |
MEDIA_TIMEOUT |
MediaTimeout |
'MEDIA_TIMEOUT' |
LegStatus
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
RINGING |
Ringing |
'RINGING' |
ANSWERED |
Answered |
'ANSWERED' |
COMPLETED |
Completed |
'COMPLETED' |
CallDisconnectReason
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
networkChange |
NetworkChange |
'networkChange' |
Stornierungsgrund
Die Schlüssel waren bereits in Version 1.x im PascalCase-Format — keine Änderung erforderlich.
| Schlüssel | Wert |
|---|---|
RemoteCancel |
'RemoteCancel' |
RejectedElsewhere |
'RejectedElsewhere' |
RemoteTimeout |
'RemoteTimeout' |
AnsweredElsewhere |
'AnsweredElsewhere' |
VoiceChannelType
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
app |
App |
'app' |
phone |
Phone |
'phone' |
sip |
Sip |
'sip' |
websocket |
Websocket |
'websocket' |
Vonage-Fehlertyp
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
CS_ERROR |
CsError |
'CS_ERROR' |
SESSION_ERROR |
SessionError |
'SESSION_ERROR' |
NETWORK_ERROR |
NetworkError |
'NETWORK_ERROR' |
INTERNAL_ERROR |
InternalError |
'INTERNAL_ERROR' |
UNKNOWN_ERROR |
UnknownError |
'UNKNOWN_ERROR' |
SessionErrorReason
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
TRANSPORT_CLOSED |
TransportClosed |
'TRANSPORT_CLOSED' |
PING_TIMEOUT |
PingTimeout |
'PING_TIMEOUT' |
EXPIRED_TOKEN |
ExpiredToken |
'EXPIRED_TOKEN' |
Beispiel
// v1.x
if (reason === HangupReason.REMOTE_HANGUP) { /* ... */ }
if (error.type === VonageErrorType.CS_ERROR) { /* ... */ }
if (channel === VoiceChannelType.app) { /* ... */ }
// v2.0
if (reason === HangupReason.RemoteHangup) { /* ... */ }
if (error.type === VonageErrorType.CsError) { /* ... */ }
if (channel === VoiceChannelType.App) { /* ... */ }
CSErrorCodes & SessionErrorCodes: Objekt zu Enum (JS)
In Version 1.x, CSErrorCodes und SessionErrorCodes waren Re-Exporte von Kotlin-Objekten mit SCREAMING_SNAKE_CASE Getter-Eigenschaften. In Version 2.0 sind sie echte TypeScript-Eigenschaften im Enum-Stil const Objekte mit PascalCase Schlüssel, die mit allen anderen SDK-Enumerationen übereinstimmen.
CSErrorCodes
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
CONVERSATION_DUPLICATE_NAME |
ConversationDuplicateName |
'CONVERSATION_DUPLICATE_NAME' |
MEMBER_ALREADY_JOINED |
MemberAlreadyJoined |
'MEMBER_ALREADY_JOINED' |
MEMBER_ALREADY_INVITED |
MemberAlreadyInvited |
'MEMBER_ALREADY_INVITED' |
CONVERSATION_NOT_FOUND |
ConversationNotFound |
'CONVERSATION_NOT_FOUND' |
MEMBER_NOT_FOUND |
MemberNotFound |
'MEMBER_NOT_FOUND' |
USER_NOT_FOUND |
UserNotFound |
'USER_NOT_FOUND' |
INVALID_CURSOR |
InvalidCursor |
'INVALID_CURSOR' |
VALIDATION_FAIL |
ValidationFail |
'VALIDATION_FAIL' |
CONVERSATION_MAX_NUMBER_OF_MEMBERS |
ConversationMaxNumberOfMembers |
'CONVERSATION_MAX_NUMBER_OF_MEMBERS' |
CUSTOM_DATA_OVERALL_LIMIT_EXCEEDED |
CustomDataOverallLimitExceeded |
'CUSTOM_DATA_OVERALL_LIMIT_EXCEEDED' |
Session-Fehlercodes
| v1.x-Schlüssel | v2.0-Schlüssel | Wert (unverändert) |
|---|---|---|
TIMEOUT |
Timeout |
'TIMEOUT' |
EXPIRED_TOKEN |
ExpiredToken |
'EXPIRED_TOKEN' |
EMPTY_TOKEN |
EmptyToken |
'EMPTY_TOKEN' |
FORCED_DISCONNECT |
ForcedDisconnect |
'FORCED_DISCONNECT' |
INTERNAL_FAILURE |
InternalFailure |
'INTERNAL_FAILURE' |
NO_ACTIVE_SESSION |
NoActiveSession |
'NO_ACTIVE_SESSION' |
ALREADY_ACTIVE_SESSION |
AlreadyActiveSession |
'ALREADY_ACTIVE_SESSION' |
INVALID_TOKEN |
InvalidToken |
'INVALID_TOKEN' |
INVALID_USER |
InvalidUser |
'INVALID_USER' |
AUTHORIZATION_ERROR |
AuthorizationError |
'AUTHORIZATION_ERROR' |
INVALID_SESSION |
InvalidSession |
'INVALID_SESSION' |
MAX_OPEN_SESSIONS |
MaxOpenSessions |
'MAX_OPEN_SESSIONS' |
INVALID_SOCKET_TRANSPORT |
InvalidSocketTransport |
'INVALID_SOCKET_TRANSPORT' |
CLIENT_DISCONNECT |
ClientDisconnect |
'CLIENT_DISCONNECT' |
PING_TIMEOUT_DISCONNECT |
PingTimeoutDisconnect |
'PING_TIMEOUT_DISCONNECT' |
TRANSPORT_CLOSED_DISCONNECT |
TransportClosedDisconnect |
'TRANSPORT_CLOSED_DISCONNECT' |
Beispiel
// v1.x (Kotlin object re-export with SCREAMING_SNAKE getters)
if (code === CSErrorCodes.CONVERSATION_NOT_FOUND) { /* ... */ }
if (code === SessionErrorCodes.EXPIRED_TOKEN) { /* ... */ }
// v2.0 (TypeScript enum-style const object with PascalCase keys)
if (code === CSErrorCodes.ConversationNotFound) { /* ... */ }
if (code === SessionErrorCodes.ExpiredToken) { /* ... */ }
Veraltete Funktionen entfernt
Protokollierungsfunktionen (alle Plattformen)
| Entfernte Funktion | Plattform |
|---|---|
setDefaultLoggingLevel() |
Alle |
setVonageClientLoggingLevel() |
JS |
Legen Sie die Protokollierungsstufe stattdessen bei der Initialisierung des Clients fest. Siehe Protokollierung und Diagnose für Konfigurationsdetails und Beispiele.
Registrierung für Push-Token (iOS)
| Entfernte Funktion | Ersatz |
|---|---|
registerDevicePushToken() |
registerDeviceVoipToken() |
Feste Typen (JS)
Es handelt sich hierbei um Fehlerbehebungen, die jedoch dazu führen können, dass Code, der die bisherigen falschen Typen umgangen hat, nicht mehr funktioniert:
VonageError.type— gab zuvor eine fehlerhafte Kotlin-Typzeichenfolge zurück; gibt nun eine korrekteVonageErrorTypeVerbindungszeichenfolgeon('sessionError')Grund für den Callback – gab zuvor eine verfälschte Kotlin-Typzeichenfolge zurück; gibt nun eine korrekteSessionErrorReasonVerbindungszeichenfolge
Falls Ihr Code diese mit rohen Zeichenketten verglichen oder die verfälschte Ausgabe verarbeitet hat, passen Sie ihn so an, dass er die Enum-Objekte verwendet:
// v2.0 — correct usage
client.on('sessionError', (reason) => {
if (reason === SessionErrorReason.ExpiredToken) {
// refresh token
}
});
Upgrade auf Kotlin 2.0.0
Die Kernbibliothek wurde von Kotlin 1.9.x auf Kotlin 2.0.0 aktualisiert (mit API-Kompatibilität zu 1.9.21). Wenn Sie das Android SDK nutzen und in Ihrem Gradle-Build Versionsbeschränkungen für Kotlin festgelegt haben, stellen Sie sicher, dass diese mit Kotlin 2.0.0 kompatibel sind.