セッションの移行セットアップと構成
このガイドでは、サポートされているすべてのプラットフォームでセッション移行を有効にするための詳細なセットアップ手順とコード例を示します。サーバローテーションの概要とセッションへの影響については、以下を参照してください。 サーバーのローテーションとセッションの移行.
概要
Vonage Video APIメディアサーバーは、通常のクラウドメンテナンス、自動スケーリング、インフラ更新の一環として定期的にローテーションされます。8時間を超えるセッションは特に影響を受ける可能性が高いです。
注: セッションの移行は以下の場合にのみ適用されます。 メディア・サーバー・ローテーション.SIPサーバーやTURNサーバーのローテーションは対象外です。
セッション・マイグレーション SDKバージョン2.30.0 そして SDK 2.31.0での一般提供 (GA) (2025年8月)。
仕組み
- Vonageバックエンドは、セッションをホストしているメディアサーバーがローテーションのスケジュールに入っていることを検出します。
- A
sessionNotificationイベントがサーバーのコールバックエンドポイントに送信されます。 4時間 そしてまた 1時間 ローテーションの前に。 - セッションの移行が有効になっている場合、プラットフォームは自動的にすべての適格な接続を新しいメディアサーバーに移行する。
- クライアントは最小限のダウンタイムで透過的に再接続します。再接続は通常数秒以内に完了します。
注: sessionMigration デフォルトは false アプリケーションで明示的に有効にする必要があります。
自動的に移行されるものと手作業が必要なもの
セッションの移行が発生すると、すべてのサービスが自動的に処理されるわけではありません。以下の表を使って、アプリケーションが何を処理する必要があるかを理解してください。
| サービス / 接続 | マイグレーションでの行動 |
|---|---|
| ビデオセッション(WebRTCクライアント) | 自動的に移行 - クライアントが新しいサーバーに再接続 |
| SIP(ダイヤルAPI) | 自動的に移行 sessionMigration: true が設定される。SIPコールレグは接続されたままであり、メディア接続は新しいサーバー上で再確立される。SIPエンドポイントで短い沈黙が聞こえることがある。 |
| オーディオコネクタ (Connect API / WebSockets) | 自動的に移行 sessionMigration: true が設定されています。外部 WebSocket 接続は有効なままです。メディア接続が再確立される間、短時間の沈黙またはデータなしが発生する可能性があります。 |
| ビデオコネクタ(Python SDK) | 自動的に移行 enable_migration=True はセッション設定で |
| アーカイブ | 移行したセッションを手動で再起動する必要がある。 |
| ブロードキャスト(HLS/RTMP) | 移行したセッションを手動で再起動する必要がある。 |
| エクスペリエンス・コンポーザー | を停止し、再起動する必要がある。 同一セッションID - 移行されたセッションは、新しいサーバーでも同じセッションIDを保持します。 |
| ライブ・キャプション | サーバーローテーション後は再起動が必要 |
注: 移行後、新しいサーバーは 10分間の猶予時間 クライアントが再接続し、サービスが再開するまでの間。そのウィンドウ内で行われた再接続やAPIリクエスト(アーカイブの開始など)は、自動的に新しいサーバーに向けられる。
自動セッション移行を有効にする
Client SDK (Web / ネイティブ)
を渡してセッションの移行を有効にする。 sessionMigration: true セッションを初期化するとき:
ウェブ(JavaScript)
const session = OT.initSession(apiKey, sessionId, {
sessionMigration: true
});
iOS (Swift)
let settings = OTSessionSettings()
settings.sessionMigration = true
let session = OTSession(apiKey: apiKey, sessionId: sessionId, delegate: self, settings: settings)
アンドロイド(コトリン)
val settings = Session.SessionProperties.Builder()
.sessionMigration(true)
.build()
val session = Session(context, apiKey, sessionId, settings)
リアクト・ネイティブ
// Pass sessionMigration in the OTSession options prop
<OTSession
apiKey={apiKey}
sessionId={sessionId}
token={token}
options={{ sessionMigration: true }}
>
注: sessionMigration に設定する必要がある。 true オン すべてのお客様 自動的に再接続されるべきである。このフラグがない接続はマイグレーション中にクローズされます。
SIP(ダイヤルAPI)
SIP 接続のセッション移行を有効にするには、以下を含めます。 sessionMigration: true を Dial API リクエストボディに追加します:
{
"sessionId": "<session-id>",
"token": "A valid token with the role set to moderator",
"sip": {
"uri": "sip:user@sip.partner.com;transport=tls",
"from": "from@example.com",
"sessionMigration": true
}
}
オーディオコネクタ(Connect API)
Audio Connector WebSocket 接続のセッションマイグレーションを有効にするには、以下を含めます。 sessionMigration: true を Connect API リクエストボディに追加します:
{
"sessionId": "<session-id>",
"token": "A valid token with the role set to moderator",
"websocket": {
"uri": "wss://your-websocket-server.example.com",
"sessionMigration": true
}
}
ビデオコネクタ(Python SDK)
Video Connectorのセッション移行を有効にするには、以下を設定します。 enable_migration=True をセッション設定に追加してください:
from vonage_video_connector import VonageVideoClient
from vonage_video_connector.models import SessionSettings
session_settings = SessionSettings(enable_migration=True)
client = VonageVideoClient()
client.connect(
application_id="<application-id>",
session_id="<session-id>",
token="<token>",
session_settings=session_settings
)
セッション移行の手動トリガー
サーバーローテーション時の自動移行に加えて、REST API を使用して手動でセッション移行をトリガーすることもできます。これは次のような場合に便利です:
- 予定されたローテーションの前に(例えば7.5時間の時点で)セッションをプロアクティブに移行する。
- アプリケーションでのサーバーローテーション動作のテストとシミュレーション
- 移行がいつ行われるかを顧客がコントロールできるようにする(例えば、長い会議の休憩中に)。
セッションAPIの移行
方法だ: [POST]
URI:
/v2/project/<projectId>/session/<sessionId>/migrate
ヘッダー
| ヘッダー | 価値 |
|---|---|
Content-Type | application/json |
X-OPENTOK-AUTH | JWTトークン |
リクエスト例
レスポンス・コード
| HTTPステータス | エラーコード | 説明 |
|---|---|---|
200 OK | - | マイグレーション成功 |
404 Not Found | - | セッションが見つかりません |
409 Conflict | 15214 | このセッションのマイグレーションはすでに進行中 |
409 Conflict | 15215 | セッションを作成した直後や、以前にマイグレーションを行った直後のマイグレーションは許可されません。 |
注: このAPIは、スプリットセッションシナリオを避けるために、複数の同時マイグレーションを防止する。別の移行を開始する前に、現在の移行が完了するのを待ちます。
セッション通知イベントの処理
Vonageプラットフォームは、以下のものを送信します。 sessionNotification コールバックイベントは、スケジュールされたローテーションの前にサーバーに送られます。これを利用して、ユーザーに積極的に通知したり、都合の良い時間に手動で移行を行うことができます。
| 開催時期 | 説明 |
|---|---|
| ローテーションの4時間前 | 最初の警告 - セッションのローテーションが予定されている |
| ローテーションの1時間前 | 最終警告-ローテーションが迫っている |
コールバックのペイロードの例:
{
"sessionId": "<session-id>",
"projectId": "<project-id>",
"event": "sessionNotification",
"reason": "serverRotation",
"remainingTime": 3600
}
これらのイベントを受け取るには、セッション監視コールバックURLを Vonage APIダッシュボード.
備考
- セッションの移行は以下の場合にのみ適用されます。 メディア・サーバー・ローテーション.SIPサーバーやTURNサーバーのローテーションは対象外です。
sessionMigrationデフォルトはfalseこのフラグは、自動的に再接続されるべきすべてのクライアント接続で明示的に有効にする必要があります。このフラグがない接続はマイグレーション中にクローズされます。- 最低限必要なSDKのバージョンは 2.30.0.すべての Client が SDK 2.30.0 以降であることを確認してください。
- SIPおよびAudio Connector接続の場合、外部コールレグ(SIPまたはWebSocket)は移行中も接続されたままです。メディア接続は新しいサーバーで再確立されます。切り替え中にエンドポイントで短い沈黙が発生する場合があります。
- アーカイブ、ブロードキャスト、エクスペリエンス コンポーザー、およびライブ キャプションは、移行後に手動で再起動する必要があります。エクスペリエンス・コンポーザーの場合は 同一セッションID - 移行されたセッションは、新しいサーバーでも同じセッションIDを保持します。
- 移行後、新しいサーバーは 10分間の猶予時間 を使用して、クライアントが再接続し、サービスが再開できるようにします。このウィンドウの間、再接続の試みや(アーカイブの開始などの)APIリクエストは、自動的に新しいサーバに向けられる。
- Migrate Session APIは、複数の同時移行を防ぎます。マイグレーションが既に進行中の場合、APIは
409コードでエラー15214.セッションの作成や以前のマイグレーションの直後に呼び出された場合は、次のように返されます。409コード付き15215. - セッションが8時間に近づいている場合は、Migrate Session APIを使用して7.5時間の時点で移行を積極的にトリガーし、ピーク時の混乱を避けることを検討してください。
- モニター
sessionNotificationイベント - 4時間と1時間の警告を使用して、積極的にユーザーに通知するか、トラフィックの少ない瞬間に手動で移行をスケジュールします。