Migration des sessions : Mise en place et configuration
Ce guide fournit des instructions de configuration détaillées et des exemples de code pour permettre la migration des sessions sur toutes les plates-formes prises en charge. Pour une vue d'ensemble de la rotation des serveurs et de son impact sur les sessions, voir Rotation des serveurs et migration des sessions.
Vue d'ensemble
Les serveurs multimédias de Video API de Vonage font l'objet d'une rotation périodique dans le cadre de la maintenance normale du cloud, de l'autoscaling et des mises à jour de l'infrastructure. Les sessions qui durent plus de 8 heures sont particulièrement susceptibles d'être affectées.
Remarque : La migration des sessions ne s'applique qu'aux rotation du serveur média. Elle ne couvre pas la rotation des serveurs SIP ou TURN, qui sont gérés séparément par la plateforme.
Session Migration est disponible auprès de SDK version 2.30.0 et a atteint Disponibilité générale (GA) dans le SDK 2.31.0 (août 2025).
Comment ça marche
- Le backend de Vonage détecte qu'un serveur média hébergeant une session est programmé pour une rotation.
- A
sessionNotificationest envoyé au point de rappel de votre serveur - à l'adresse 4 heures et à nouveau à 1 heure avant la rotation. - Si la migration de session est activée, la plateforme migre automatiquement toutes les connexions éligibles vers un nouveau serveur média.
- Les clients se reconnectent de manière transparente avec un temps d'arrêt minimal. La reconnexion s'effectue généralement en quelques secondes.
Remarque : sessionMigration La valeur par défaut est false et doit être explicitement activée dans votre application.
Ce qui est migré automatiquement et ce qui nécessite une action manuelle
Lors d'une migration de session, tous les services ne sont pas gérés automatiquement. Utilisez le tableau ci-dessous pour comprendre ce que votre application doit gérer.
| Service / Connexion | Comportement en matière de migration |
|---|---|
| Session vidéo (clients WebRTC) | Migration automatique - les clients se reconnectent au nouveau serveur |
| SIP (Dial API) | Migration automatique lorsque sessionMigration: true est défini. La branche d'appel SIP reste connectée ; les connexions média sont rétablies sur le nouveau serveur. Un bref silence peut être entendu sur le point d'extrémité SIP. |
| Connecteur audio (Connect API / WebSockets) | Migration automatique lorsque sessionMigration: true est défini. La connexion WebSocket externe reste active ; une brève période de silence ou d'absence de données peut se produire pendant que les connexions média sont rétablies. |
| Connecteur vidéo (Python SDK) | Migration automatique lorsque enable_migration=True est défini dans les paramètres de la session |
| Archivage | Doit être redémarré manuellement sur la session migrée |
| Diffusion (HLS/RTMP) | Doit être redémarré manuellement sur la session migrée |
| Compositeur d'expérience | Doit être arrêté et redémarré sur le site même ID de session - la session migrée conserve le même identifiant de session sur le nouveau serveur |
| Sous-titres en direct | Doit être redémarré après la rotation du serveur |
Remarque : Après la migration, le nouveau serveur fournit un Fenêtre de grâce de 10 minutes pour que les clients se reconnectent et que les services reprennent. Toute reconnexion ou demande d'API (comme le lancement d'une archive) effectuée pendant cette fenêtre est automatiquement dirigée vers le nouveau serveur.
Activation de la migration automatique des sessions
Client SDK (Web / Native)
Activer la migration de session en passant sessionMigration: true lors de l'initialisation d'une session :
Web (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)
Android (Kotlin)
val settings = Session.SessionProperties.Builder()
.sessionMigration(true)
.build()
val session = Session(context, apiKey, sessionId, settings)
React Native
// Pass sessionMigration in the OTSession options prop
<OTSession
apiKey={apiKey}
sessionId={sessionId}
token={token}
options={{ sessionMigration: true }}
>
Remarque : sessionMigration doit être réglé sur true sur chaque client qui doivent être automatiquement reconnectées. Les connexions qui n'ont pas ce drapeau seront fermées pendant la migration.
SIP (Dial API)
Pour activer la migration de session pour les connexions SIP, inclure sessionMigration: true dans le corps de la demande de l'API Dial :
{
"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
}
}
Connecteur audio (Connect API)
Pour activer la migration de session pour les connexions WebSocket de l'Audio Connector, inclure sessionMigration: true dans le corps de la demande de l'API Connect :
{
"sessionId": "<session-id>",
"token": "A valid token with the role set to moderator",
"websocket": {
"uri": "wss://your-websocket-server.example.com",
"sessionMigration": true
}
}
Connecteur vidéo (Python SDK)
Pour activer la migration de session pour le connecteur vidéo, définissez les paramètres suivants enable_migration=True dans les paramètres de votre session :
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
)
Déclencher manuellement la migration des sessions
En plus de la migration automatique lors de la rotation des serveurs, vous pouvez déclencher manuellement une migration de session à l'aide de l'API REST. Ceci est utile pour :
- Migration proactive d'une session avant une rotation programmée (par exemple, au bout de 7,5 heures)
- Tester et simuler le comportement de rotation du serveur dans votre application
- Donner aux clients le contrôle sur le moment de la migration (par exemple, pendant une pause au cours d'une longue réunion).
Migration de l'API de session
Méthode : POST
URI :
/v2/project/<projectId>/session/<sessionId>/migrate
En-têtes :
| En-tête | Valeur |
|---|---|
Content-Type |
application/json |
X-OPENTOK-AUTH |
Votre jeton JWT |
Exemple de demande :
Codes de réponse
| Statut HTTP | Code d'erreur | Description |
|---|---|---|
200 OK |
- | La migration a été lancée avec succès |
404 Not Found |
- | Session non trouvée |
409 Conflict |
15214 |
La migration est déjà en cours pour cette session |
409 Conflict |
15215 |
La migration n'est pas autorisée peu de temps après la création d'une session ou une migration précédente. |
Remarque : L'API empêche la réalisation de plusieurs migrations simultanées afin d'éviter les scénarios de session divisée. Attendez que la migration en cours soit terminée avant d'en déclencher une autre.
Gestion des événements de notification de session
La plateforme Vonage envoie sessionNotification à votre serveur avant une rotation programmée. Vous pouvez les utiliser pour informer les utilisateurs de manière proactive ou pour déclencher une migration manuelle à un moment opportun.
| Calendrier de l'événement | Description |
|---|---|
| 4 heures avant la rotation | Premier avertissement - la rotation des sessions est programmée |
| 1 heure avant la rotation | Dernier avertissement - la rotation est imminente |
Exemple de charge utile de rappel :
{
"sessionId": "<session-id>",
"projectId": "<project-id>",
"event": "sessionNotification",
"reason": "serverRotation",
"remainingTime": 3600
}
Pour recevoir ces événements, configurez une URL de rappel de surveillance de session dans votre fichier Tableau de bord de l'API Vonage.
Notes
- La migration des sessions ne s'applique qu'aux rotation du serveur média. Elle ne couvre pas la rotation des serveurs SIP ou TURN, qui sont gérés séparément par la plateforme.
sessionMigrationLa valeur par défaut estfalseet doit être explicitement activée sur chaque connexion client qui doit être automatiquement reconnectée. Les connexions qui n'ont pas ce drapeau seront fermées pendant la migration.- La version minimale du SDK requise est la suivante 2.30.0. Assurez-vous que tous les clients utilisent le SDK 2.30.0 ou une version ultérieure.
- Pour les connexions SIP et Audio Connector, la branche d'appel externe (SIP ou WebSocket) reste connectée pendant la migration. Les connexions média sont rétablies sur le nouveau serveur. Un bref silence peut se produire sur le point d'extrémité pendant le basculement.
- L'archivage, la diffusion, Experience Composer et les sous-titres en direct doivent être redémarrés manuellement après la migration. Pour Experience Composer, redémarrer sur le serveur même ID de session - la session migrée conserve le même identifiant de session sur le nouveau serveur.
- Après la migration, le nouveau serveur fournit un Fenêtre de grâce de 10 minutes pour permettre aux clients de se reconnecter et aux services de reprendre. Pendant cette fenêtre, toute tentative de reconnexion ou demande d'API (comme le lancement d'une archive) est automatiquement dirigée vers le nouveau serveur.
- L'API Migrate Session empêche les migrations multiples et simultanées. Si une migration est déjà en cours, l'API renvoie une valeur de
409erreur avec le code15214. Si elle est appelée trop tôt après la création de la session ou une migration précédente, elle renvoie l'information suivante409avec code15215. - Pour les sessions approchant les 8 heures, envisagez de déclencher proactivement la migration au bout de 7,5 heures à l'aide de l'API Migrate Session afin d'éviter les interruptions pendant les pics d'utilisation.
- Moniteur
sessionNotificationévénements - utilisez les avertissements de 4 heures et d'une heure pour informer les utilisateurs de manière proactive ou planifiez une migration manuelle à un moment où le trafic est faible.