v1.x から v2.0 への移行
このページでは、以下で導入された互換性を破る変更について解説しています。 v2.0.0 (2025年2月7日リリース)。v1.xの最後のリリースは v1.7.2 (2024年8月8日)。
プラットフォームの適用範囲
v2.0.0における互換性破りの変更のほとんどは、 JavaScript SDK のみ。ネイティブ(iOS/Android)の互換性を損なう変更については、明示的に記載されています。
Chat API の非推奨化
Chat API は非推奨となっており、今後のリリースで削除される予定です。チャット関連の互換性を損なう変更(例: ChannelType に改名した。 MemberChannelType, MemberChannelType (パスカルケースのキー、非推奨となったChat関数のシグネチャの削除など)については、ここでは説明していません。Chat APIを使用して新しいApplicationsを構築しないでください。
バージョンの対応付け
| v1.x(最新) | v2.x(初版) |
|---|---|
| 1.7.2 | 2.0.0 |
列挙型のキー名の変更 (JS)
すべての列挙型キーが、v1.x での大文字小文字の表記から PascalCase. その根底にある 価値観 は変更されていません。異なるのは、それらにアクセスするために使用するキーだけです。
通話終了理由
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
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 キー | v2.0 キー | 値(変更なし) |
|---|---|---|
RINGING |
Ringing |
'RINGING' |
ANSWERED |
Answered |
'ANSWERED' |
COMPLETED |
Completed |
'COMPLETED' |
CallDisconnectReason
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
networkChange |
NetworkChange |
'networkChange' |
キャンセル理由
v1.x では、キーはすでにパスカルケースになっていました — 変更の必要はありません.
| キー | 価値 |
|---|---|
RemoteCancel |
'RemoteCancel' |
RejectedElsewhere |
'RejectedElsewhere' |
RemoteTimeout |
'RemoteTimeout' |
AnsweredElsewhere |
'AnsweredElsewhere' |
VoiceChannelType
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
app |
App |
'app' |
phone |
Phone |
'phone' |
sip |
Sip |
'sip' |
websocket |
Websocket |
'websocket' |
VonageErrorType
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
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 キー | v2.0 キー | 値(変更なし) |
|---|---|---|
TRANSPORT_CLOSED |
TransportClosed |
'TRANSPORT_CLOSED' |
PING_TIMEOUT |
PingTimeout |
'PING_TIMEOUT' |
EXPIRED_TOKEN |
ExpiredToken |
'EXPIRED_TOKEN' |
例
// 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:オブジェクトから列挙型への変換 (JS)
v1.x では、 CSErrorCodes そして SessionErrorCodes これらは、Kotlinオブジェクトの再エクスポートであり、 SCREAMING_SNAKE_CASE ゲッタープロパティ。v2.0では、これらはTypeScriptのenumスタイルに準拠しています。 const ~を含むオブジェクト PascalCase キーは、他のすべてのSDK列挙型と一貫性を保っています。
CSErrorCodes
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
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' |
セッションエラーコード
| v1.x キー | v2.0 キー | 値(変更なし) |
|---|---|---|
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' |
例
// 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) { /* ... */ }
非推奨関数の削除
ロギング機能(全プラットフォーム)
| 削除された関数 | プラットフォーム |
|---|---|
setDefaultLoggingLevel() |
すべて |
setVonageClientLoggingLevel() |
JS |
代わりに、クライアントの初期化時にロギングレベルを設定してください。詳しくは ログ記録と診断 設定の詳細や例については、以下をご覧ください。
プッシュ通知トークンの登録(iOS)
| 削除された関数 | 交換 |
|---|---|
registerDevicePushToken() |
registerDeviceVoipToken() |
固定型(JS)
これらはバグ修正ですが、以前の誤った型を回避していたコードが動作しなくなる可能性があります:
VonageError.type— 以前は破損したKotlinの型文字列を返していましたが、現在は正しいVonageErrorTypeユニオン文字列on('sessionError')コールバックの理由 — 以前は、文字列化されたKotlin型の文字列を公開していましたが、現在は適切なSessionErrorReasonユニオン文字列
もしコードでこれらを生の文字列と比較していたり、文字化けした出力を処理していたりする場合は、列挙型オブジェクトを使用するように更新してください:
// v2.0 — correct usage
client.on('sessionError', (reason) => {
if (reason === SessionErrorReason.ExpiredToken) {
// refresh token
}
});
Kotlin 2.0.0 へのアップグレード
コアライブラリがKotlin 1.9.xからKotlin 2.0.0(Kotlin 1.9.21とのAPI互換性あり)に更新されました。Android SDKを利用しており、GradleビルドにKotlinのバージョン制約が設定されている場合は、それらがKotlin 2.0.0と互換性があることを確認してください。