Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Configurer

Diagramme du réseau

Configurations

Vérifier

Dépannage

Introduction

Ce document décrit les étapes de configuration et de dépannage de l'intégration de Cisco Meeting Server (CMS) avec Next Generation Streamer et Uploader. Le streamer de nouvelle génération a été introduit à partir de la version 3.0 de CMS et est basé sur le protocole SIP (Session Initiation Protocol).

Conditions préalables

Exigences

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- CMS Callbridge(s) Version 3.0 ou ultérieure avec licence(s) d'enregistrement/de diffusion en continu. (une licence d'enregistrement autorise un appel en continu)

- Vbrick Distributed Media Engine (DME) (utilisé pour publier le flux en direct à partir du service de diffusion en continu CMS)

- Vbrick Rev (facultatif) : Uniquement requis si Live Streaming doit être partagé en dehors du réseau interne ou en multidiffusion

- Le répertoire NFS (Network File System) est nécessaire et peut être configuré sur Windows Server ou Linux.

- Pour le serveur Windows, suivez les étapes pourDéployer le système de fichiers réseau (NFS) sous Windows

- Pour Linux, suivez les étapes pour déployer un système de fichiers réseau sur Linux

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- CMS 3.2 et versions ultérieures avec licence(s) « Recorder » et/ou « Streamer ». (la licence d'enregistrement vous permet également de diffuser)

- VBrick Distributed Media Engine (DME) 3.15.0 Rhel7

- Vbrick Rev (Uploader) est utilisé avec le serveur vBrick Rev. Aucune importation manuelle d'enregistrements n'est requise)

- Windows Server 2012 R2 avec NFS

Informations générales

Les versions 2.1 et ultérieures de CMS ont introduit la prise en charge de la diffusion en direct avec le streamer CMS utilisant le protocole RTMP (Real-Time Messaging Protocol) standard. Dans CMS 3.0, le streamer de nouvelle génération a été introduit, qui est un composant basé sur SIP. La version antérieure à 3.0 utilisait le protocole XMPP (Extensible Messaging and Presence Protocol) . Les versions 3.1 et ultérieures de CMS prennent en charge le protocole RTMPS et les communications entre le composant de diffusion en continu CMS et le serveur externe peuvent donc être chiffrées. Cela permet au streamer CMS de s'intégrer à n'importe quelle plateforme de streaming qui prend en charge RTMP(S) (Youtube, Facebook, Wowza, etc.). Actuellement, CMS Streamer a été testé avec Vbrick DME en tant que serveur de diffusion externe et constitue la plate-forme recommandée pour l'intégration.

L'intégration de la diffusion en direct (Webcast) avec VBrick DME permet aux utilisateurs de regarder n'importe quelle conférence CMS diffusée en direct n'importe où sur le réseau, à partir de différents périphériques. En outre, lorsque VBrick Rev est utilisé avec VBrick DME, cela étend cette capacité d'affichage depuis l'extérieur du réseau interne pour chaque utilisateur autorisé VBrick Rev.En outre, le composant Uploader CMS simplifie le flux de travail pour le téléchargement d'enregistrements Meeting Server vers le gestionnaire de contenu vidéo, Vbrick, à partir d'un NFS configuré connecté à un serveur de réunion. Aucune importation manuelle d'enregistrements n'est requise. Une fois le composant Uploader configuré et activé, les enregistrements sont transférés du NFS vers Vbrick.

Diffuseur

The information in this document was created from the devices in a specific lab environment. Tous les périphériques utilisés ici ont commencé avec des configurations effacées (par défaut). If your network is live, make sure that you understand the potential impact of any command.

Téléchargeur

Le composant Uploader peut être installé sur le même serveur que le composant Recorder ou sur un serveur distinct. S'il est installé sur le même serveur que l'enregistreur, ajoutez quelques vCPU à utiliser. S'il est exécuté sur un autre serveur, utilisez la même spécification de serveur que pour l'enregistreur : VM dédiée avec un minimum de 4 coeurs physiques et 4 Go de RAM.

Le serveur de téléconférence exécutant le chargeur nécessite des autorisations de lecture et d'écriture pour le partage de fichiers réseau (NFS). Le chargeur doit être exécuté sur un autre serveur de téléconférence et non sur le pont d'appel hébergeant les téléconférences.

Configurer

Diagramme du réseau

Plusieurs scénarios sont pris en charge pour déployer Streamer et Uploader avec CMS, notamment : un seul callbridge avec plusieurs serveurs de diffusion en continu, un cluster callbridge avec un seul serveur de diffusion en continu et un cluster callbridge avec plusieurs serveurs de diffusion en continu. Ce document est basé sur un déploiement de base avec une grappe de ponts d'appels se connectant à un serveur de flux unique, Uploader, car toutes les étapes de configuration de ce scénario s'appliquent également à d'autres scénarios.

Comme l'illustre l'image ci-dessus

Cluster CMS CallBridge

Flux/enregistreur CMS

Téléchargeur CMS

VBrick DME pour le flux

Rév. VBrick pour diffusion en continu

Configurations

Diffuseur

On suppose que le pont d'appels est déjà configuré et qu'il accepte des appels.

Étape 1. Certificats

Les nouveaux composants du streamer ne nécessitent pas d'écouter les connexions https, cependant, ils écoutent les connexions SIP , le serveur du streamer doit avoir un certificat valide pour la communication TLS.

streamer> pki csr tac CN:.*.tptac9.com subjectAltName:streamer.tptac9.com

..............

......

Created key file tac.key and CSR tac.csr

CSR file tac.csr ready for download via SFTP

Obtenez le certificat signé auprès de l'autorité de certification locale. Téléchargez le certificat généré à l'aide du protocole SFTP (Secure File Transfer Protocol) sur le serveur Streamer. Vérifié pour confirmer que les certificats ont bien été téléchargés.

Dans ce document, les certificats génériques sont utilisés pour le streamer. Veuillez utiliser le guide de certificat pour référence.

https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-3-1/Certificate-Guidelines-for-all-Deployments-3-1.pdf

streamer> pki list

User supplied certificates and keys:

tac.key

tac.cer

ROOTCA.cer

example.key

example.csr

tac.csr

Étape 2. Configuration de MMP/SSH

- Configurez l'interface d'écoute du streamer et les ports SIP TCP et TLS pour écouter à l'aide de la commande MMP

streamer sip listen <interface> <tcp-port|none> <tls-port|none>

streamer> streamer sip écouter un 7000 7001

Pour utiliser uniquement la connexion SIP TLS. Configurez la connexion TCP sip sur « none ». La commande est indiquée ci-dessous

streamer> streamer sip n'écouter aucun 7001

- Appliquer des certificats pour le serveur de diffusion en continu

streamer> streamer sip certs tac.key tac.cer

- Sélectionnez la qualité de diffusion en continu

streamer> streamer résolution sip 720p

- Activer le streamer

streamer> streamer enable

- Si le protocole TLS est configuré, vous pouvez éventuellement effectuer une vérification TLS pour SIP sur le streamer

streamer> tls sip trust ROOTCA.cer

Remarque : pour sécuriser la connexion TLS, nous vous recommandons d'activer la vérification TLS.

streamer> tls sip verify enable

- Vérifiez que les informations de configuration entrées ci-dessus sont correctes

streamer> streamer

Enabled                 : false

SIP interfaces          : tcp a:7000, tls a:7001

SIP key file            : tac.key

SIP certificate file    : tac.cer

SIP CA Bundle file      : none

SIP Resolution          : 720p

SIP traffic trace       : Disabled

Call Limit              : none

- Activez le streamer à l'aide de la commande : "streamer enable". Tous les messages doivent indiquer « SUCCESS » comme ci-dessous

streamer> streamer enable

SUCCESS: Key and certificate pair match

SUCCESS: Streamer enabled

Étape 3. Configuration de l’API

Cette configuration est effectuée dans le CMS hébergeant CallBridge. Ci-dessous, API sur l'interface Webadmin de CMS. Tout client REST comme Postman, Poster peut également être utilisé pour effectuer cette opération.

Une fois le nouveau streamer SIP activé, il peut être configuré et utilisé dans le pont d'appel sous /callProfiles pour sipStreamerUri.

Pour utiliser l'API sur le serveur CMS. Accédez à Webadmin > Configuration > API

- Créer un profil d'appel

- Configurer sipStreamuri=demo@streamer.com & StreamingMode= Automatique/Manuel

The user part of the configured "sipStreamuri" (i.e. the part before '@' symbol) has no significant meaning, and for the new SIP streamer component, although required, it can usually be anything, e.g. "streamer@streamer.com".The important part of the URI is the "domain" part.

Configurez sipStreamuri=demo@streamer.com et StreamingMode= Automatique/Manuel

- Ajoutez le profil d'appel du streamer créé ci-dessus au /system/profiles. Il s'agit d'une configuration globale et le paramètre « sipStreamerUri » configuré sera utilisé pour le fonctionnement du streamer.

Ajouter le callProfile au système/profils

- Ajoutez le VBrick 'streamURL' aux espaces utilisés pour la diffusion en continu. Pour référence, un espace appelé 'Stream' a été créé à l'aide de l'interface Web de CMS

Espace utilisé pour le flux

- Modifiez l'espace pour ajouter « StreamURL ». 'streamURL' au format suivant :  rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP ou FQDN>/live/NameofTheStream. Dans l'exemple, je l'ai configuré comme « rtmp://broadcast:broadcast@10.106.81.40/live/SpaceStream77 »

Étape 4 : création de règles de trafic sortant

Configure, un URI personnalisé qui correspond à une règle outboundDialPlan (le domaine peut être n'importe quoi, par exemple "streamer.com"). Configurez une règle outboundDialPlan pour qu'elle corresponde au domaine utilisé dans streamerUri pour le routage.

Créer des règles sortantes

Comme l'illustre l'image ci-dessus, pour le streamer SIP, si les ports par défaut pour le SIP (5060,5061) ne sont pas utilisés, alors Il est obligatoire de spécifier les ports dans la configuration du streamer et d'inclure le numéro de port suivant pour se connecter au champ "proxy sip à utiliser" lorsque outboundDialPlanRule est configuré pour le service.

streamer> streamer

Enabled                 : true

SIP interfaces          : tcp a:7000, tls a:7001

SIP key file            : tac.key

SIP certificate file    : tac.cer

SIP CA Bundle file      : none

SIP Resolution          : 720p

SIP traffic trace       : Disabled

Call Limit              : none

Téléchargeur

- Spécifiez le NFS et le répertoire où seront stockés les enregistrements que le chargeur surveillera

streamer> uploader nfs 192.168.15.38:Enregistrement

- Spécifiez le serveur de téléconférence que le téléchargeur doit interroger pour obtenir des informations d'enregistrement

streamer> uploader cms host join.mextp.local

- Spécifiez le port d'administration Web sur le serveur de téléconférence exécutant le pont d'appel

streamer> uploader port cms 445

- Spécifiez l'utilisateur disposant d'un accès API sur le serveur de téléconférence exécutant le pont d'appel

streamer> uploader utilisateur cms apiadmin

streamer> uploader cms password

Entrez le mot de passe :

- Ajoutez l'ensemble de certificats de CMS au magasin de certificats de confiance Meeting Server

Créez un groupe de certificats (crt-bundle) contenant une copie du certificat de l'autorité de certification racine et de tous les certificats intermédiaires de la chaîne pour l'administrateur Web sur le serveur de téléconférence exécutant le pont d'appel.

streamer> uploader cms trust ROOTCA.cer

- Configurez l'hôte Vbrick et le port auquel le chargeur se connectera

streamer> uploader rev host ciscotac.rev-na.demo.vbrick.com

streamer> port rév. du chargeur 443

Remarque : le port par défaut est 443, sauf indication contraire

- Ajouter un utilisateur Vbrick Rev disposant d'une autorisation API pour télécharger des enregistrements vidéo

streamer> uploader rev user tacuser

streamer> uploader rev mot de passe

Entrez le mot de passe :

- Ajouter le lot de certificats au magasin de confiance Vbrick Rev

Créez un lot de certificats (crt-bundle) contenant une copie du certificat de l'autorité de certification racine et de tous les certificats intermédiaires de la chaîne pour le serveur Vbrick Rev

streamer> uploader rev trust vbrickbundle.cer

- Vérifier la configuration du chargeur et activer le chargeur

streamer> uploader

Enabled                          : false

NFS hostname                     : 192.168.15.38

NFS directory                    : Recording

CMS host                         : join.mextp.local

CMS port                         : 445

CMS user                         : apiadmin

CMS trust bundle                 : ROOTCA.cer

Vbrick Rev hostname              : ciscotac.rev-na.demo.vbrick.com

Vbrick Rev port                  : 443

Vbrick Rev username              : tacuser

Vbrick Rev trust bundle          : brick.cer

View access                      : Public

cospace_member_access            : edit

recording_owned_by_cospace_owner : false

fallback_owner                   : admin

comments_enabled                 : true

ratings_enabled                  : true

downloads_enabled                : true

active_upon_upload               : true

delete_after_upload              : false

Si la configuration est correcte, utilisez la commande "uploader enable" pour activer le composant Uploader. Tous les messages doivent indiquer « SUCCESS », comme indiqué ci-dessous.

streamer> uploader enable

SUCCESS: uploader enabled

Vérifier

Diffuseur

Fonctionnement de la diffusion en continu et connexion d'un appel sip

Téléchargeur

Vous pouvez voir le journal d'un événement réussi dans syslog suivi de uploader.

Jun 17 22:24:41.867 user.info cms-02 Uploader[1]: scanning directory: /mnt/recordings/forwardedCalls

Jun 17 22:24:41.867 user.info cms-02 Uploader[1]: scanning directory: /mnt/recordings/spaces

Jun 17 22:24:41.869 user.info cms-02 Uploader[1]: checking the status of /mnt/recordings/spaces/8a7076e2-6db6-47e9-98ee-3bd063e32559/20210618032309+0000_vid-id=c4605aaf-dc49-4cd7-9174-c46185ba1983@vbrick.mp4

Jun 17 22:24:41.870 user.info cms-02 Uploader[1]: Getting from: https://ciscotac.rev-na.demo.vbrick.com:443/api/v1/videos/c4605aaf-dc49-4cd7-9174-c46185ba1983/status

Jun 17 22:24:42.035 user.info cms-02 Uploader[1]: Received vbrick response status code: 200

Jun 17 22:24:42.035 user.info cms-02 Uploader[1]: vbrick response: main.vbrickStatusResp{Status:"Ready"}

Jun 17 22:24:42.035 user.info cms-02 Uploader[1]: file 20210618032309+0000_vid-id=c4605aaf-dc49-4cd7-9174-c46185ba1983@vbrick.mp4 vid c4605aaf-dc49-4cd7-9174-c46185ba1983 status Ready

Jun 17 22:24:42.035 user.info cms-02 Uploader[1]: Getting from: https://ciscotac.rev-na.demo.vbrick.com:443/api/v1/videos/c4605aaf-dc49-4cd7-9174-c46185ba1983/playback-url

Jun 17 22:24:42.200 user.info cms-02 Uploader[1]: Received vbrick response 200

Dépannage

Diffuseur

1. Pas de licence

Streamer nécessitait une licence « enregistreur » sur le serveur doté d'un composant de pont d'appels. Si ce n'est pas le cas, ou si la licence est insuffisante, des erreurs telles qu'illustrées ci-dessous apparaissent dans les journaux des événements.

Assurez-vous d'ajouter la licence requise. L'état de la licence peut être vérifié dans l'interface de ligne de commande à l'aide de la commande « license »

cms1> license

Feature: callbridge status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: turn status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: webbridge status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: customizations status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: local_license_mode status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: recording status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: personal status: Activated expiry: 2023-Apr-28 (690 days remain)

Feature: shared status: Activated expiry: 2023-Apr-28 (690 days remain)

Port 2.TLS

· Si le port TLS est configuré et qu'aucun certificat n'est appliqué. Configurer les certificats pour que le streamer utilise TLS

· Si les certificats ne sont pas disponibles. Configurer le port TCP uniquement

streamer> streamer sip listen a 7000 7001

streamer> streamer enable

FAILURE: TLS port set but no certificates configured

FAILURE: Streamer configuration not complete

Vous avez maintenant 2 options, soit pour supprimer le port TLS, soit pour ajouter SIP TLS Trust et Streamer Certificate

Cisco recommande d'activer le port TLS.

3. Flux RTMP non configuré correctement

Vous verrez une erreur dans les journaux

daemon.info streamer streamer-sip[2280]:  144500.368 : INFO    : call 3: retrieved stream URL from RTCP: "rtmp://broadcast:broadcast@10.106.81.40/test"

daemon.info streamer streamer-sip[2280]:  144500.368 : INFO    : call 3: parsing rtmp://broadcast:broadcast@10.106.81.40/test

daemon.info streamer streamer-sip[2280]:  144500.368 : INFO    : call 3: RTMP stream="test"

daemon.info streamer streamer-sip[2280]:  144500.368 : INFO    : call 3: RTMP server="rtmp://10.106.81.40:1935/test"

daemon.info streamer streamer-sip[2280]:  144500.370 : INFO    : call 3: Connected to RTMP server

daemon.info streamer streamer-sip[2280]:  144500.370 : INFO    : call 3: C2 pending - len 1536

daemon.info streamer streamer-sip[2280]:  144500.370 :         : call 3: snd: create new chunk stream 2

daemon.info streamer streamer-sip[2280]:  144500.370 :         : call 3: snd: create new chunk stream 3

daemon.info streamer streamer-sip[2280]:  144500.370 : INFO    : call 3: RTMP sent chunk size of 4096 and connect message

daemon.info streamer streamer-sip[2280]:  144500.410 : ERROR   : call 3: connection : far end closed connection 5

Vérifiez la procédure de configuration du streamer et configurez correctement l'URL RTMP au format « rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP or FQDN>/live/Nameof theStream »

4.Problèmes liés au routage des appels

Comme le streamer CMS est un client SIP et comme nous l’avons vu précédemment, il nécessite un routage. Cela peut entraîner des scénarios dans lesquels les appels peuvent échouer. Prenons l'exemple suivant : CMS Callbridge a envoyé un appel sortant, mais il a échoué avec l'erreur 'transaction timeout - no provisoire response send INVITE'

2021-06-28  17:37:02.412  Info     user 'guest300535034' starting streaming (space 'test')

2021-06-28  17:37:02.413  Info     API call leg bc0917df-589c-4628-887d-79481d322fed in call 63f0b174-831e-4a12-b4ee-27186d4162af (API call 00286960-9af9-4d5d-9ca7-20dd40425292)

2021-06-28  17:37:02.413  Info     call 44: outgoing SIP call to "demo@streamer.com" from space "test"

2021-06-28  17:37:02.413  Info     call 44: configured - API call leg bc0917df-589c-4628-887d-79481d322fed with SIP call ID "7d37a80e-7996-4e8d-aa87-77c9d4729cec"

2021-06-28  17:37:04.482  Info     call 42: receiver report 1 interval for rx video 0 = 6113ms (period 6108ms) 00000000

2021-06-28  17:37:22.074  Info     call 44: falling back to unencrypted control connection...

2021-06-28  17:37:54.075  Info     call 44: ending; local SIP teardown with reason 7 (transaction timeout - no provisional responses sending INVITE) - not connected after 0:52

2021-06-28  17:37:54.075  Info     call 44: destroying API call leg bc0917df-589c-4628-887d-79481d322fed

2021-06-28  17:37:54.076  Info     streaming call leg for space 'test' disconnected with reason 7 (transaction timeout - no provisional responses sending INVITE)

Vérifiez les paramètres d'appels sortants sur les serveurs CMS Callbridge pour valider l'emplacement auquel il est envoyé et s'il est correctement défini. Vérifiez également que le profil d'appel est configuré avec l'URI de streamer correct et qu'il est associé à Cospace.

Téléchargeur

1. Les détails de Vbrick sont incorrects.

Vous pouvez voir une erreur dans le journal du chargeur

Jun 27 11:29:27.864 user.info streamer Uploader[1]: Received vbrick response 500

Jun 27 11:29:27.864 user.info streamer Uploader[1]: posting to: https://sales.vbrick.com:443/api/v1/user/login

Jun 27 11:29:47.870 user.info streamer Uploader[1]: Received vbrick response 500

Jun 27 11:29:47.870 user.err streamer Uploader[1]: Failed to initialise Vbrick Client

Jun 27 11:29:47.870 user.err streamer Uploader[1]: vbrick returned status code: 500

Assurez-vous d'avoir configuré les informations d'identification et le port corrects pour le serveur vbrick.  Assurez-vous également que Uploader doit pouvoir atteindre le port CMS callbridge webadmin.