Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Configurazione

Esempio di rete

Configurazioni

Verifica

Risoluzione dei problemi

Introduzione

In questo documento viene descritta la procedura per configurare e risolvere i problemi di integrazione di Cisco Meeting Server (CMS) con Next-Generation Streamer e Uploader. Next Generation Streamer è stato introdotto da CMS versione 3.0 ed è basato su SIP (Session Initiation Protocol).

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- CMS Callbridge versione 3.0 o successiva con licenza Recording/Streaming. (una licenza di registrazione consente una chiamata in streaming)

- Vbrick Distributed Media Engine (DME) (utilizzato per la pubblicazione del flusso dal vivo dal servizio di streaming CMS)

- Vbrick Rev (facoltativo: necessario solo se Live Streaming deve essere condiviso all'esterno della rete interna o del multicast

- La directory NFS (Network File System) è necessaria e può essere configurata su Windows Server o Linux.

- Per il server Windows, eseguire la procedura per distribuire NFS (Network File System) in Windows

- Per Linux, seguire la procedura per distribuire il file system di rete su Linux

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- CMS 3.2 e versioni successive con 'Recorder' e/o 'Streamer'. (la licenza del registratore consente anche lo streaming)

- VBrick Distributed Media Engine (DME) 3.15.0 Rhel7

- Vbrick Rev (Uploader) viene utilizzato con il server vBrick Rev. Non è richiesta l'importazione manuale delle registrazioni)

- Windows Server 2012 R2 con NFS

Premesse

CMS versione 2.1 e successive introdusse il supporto per lo streaming live con il CMS streamer utilizzando il protocollo RTMP (Real-Time Messaging Protocol) standard. In CMS 3.0 è stato introdotto il Next Generation Streamer, un componente basato su SIP. Nelle versioni precedenti alla 3.0 veniva utilizzato il protocollo XMPP (Extensible Messaging and Presence Protocol). Il CMS versione 3.1 e successive supportano il protocollo RTMPS; di conseguenza, la comunicazione tra il componente del CMS Streamer e il server esterno può essere crittografata. Ciò consente al CMS Streamer di integrarsi con qualsiasi piattaforma di streaming che supporti RTMP(S) (Youtube, Facebook, Wowza e così via). Attualmente CMS Streamer è stato testato con Vbrick DME come server di streaming esterno ed è la piattaforma consigliata per l'integrazione.

L'integrazione di Live Streaming (Webcast) con VBrick DME consente agli utenti di guardare qualsiasi conferenza CMS in streaming live da qualsiasi punto della rete da diversi dispositivi. Inoltre, quando si utilizza VBrick Rev con VBrick DME, questa funzionalità estende la possibilità di visualizzazione dall'esterno della rete interna per ogni utente autorizzato VBrick Rev.Inoltre, il componente CMS Uploader semplifica il flusso di lavoro per il caricamento delle registrazioni di Meeting Server al gestore del contenuto video, Vbrick, da un NFS configurato collegato a un Meeting Server. Non è richiesta l'importazione manuale delle registrazioni. Una volta configurato e abilitato il componente Uploader, le registrazioni vengono trasferite dal NFS a Vbrick.

Streamer

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi qui usati le configurazioni sono state ripristinate ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Uploader

Il componente Uploader può essere installato sullo stesso server del componente Recorder o su un server separato. Se installato sullo stesso server del registratore, aggiungere un paio di vCPU da utilizzare. Se eseguito su un server diverso, utilizzare le stesse specifiche del server utilizzate per il registratore: VM dedicata con un minimo di 4 core fisici e 4 GB di RAM.

Il Meeting Server che esegue il programma di caricamento richiederà autorizzazioni di lettura e scrittura per Condivisione file di rete (NFS). Il caricatore deve essere eseguito su un Meeting Server diverso e non su un bridge di chiamate che ospita le conferenze.

Configurazione

Esempio di rete

Per distribuire Streamer e Uploader con CMS sono supportati diversi scenari, ad esempio: un singolo callbridge con più server di streaming, un cluster callbridge con un singolo server di streaming e un cluster callbridge con più server di streaming. Questo documento si basa su una distribuzione di base con un cluster di callbridge che si connette a un singolo server di streaming, Uploader. Tutti i passaggi di configurazione con questo scenario si applicano anche ad altri scenari.

Come mostrato nell'immagine precedente

Cluster CallBridge CMS

Streamer/registratore CMS

CMS Uploader

VBrick DME per streaming

VBrick Rev per streaming

Configurazioni

Streamer

Si presume che il callbridge sia già impostato e accetti chiamate.

Passaggio 1. Certificati

I nuovi componenti dello streamer non richiedono l'ascolto delle connessioni https. Tuttavia, il server dello streamer deve essere in grado di ascoltare le connessioni SIP e deve disporre di un certificato valido per la comunicazione 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

Ottenere il certificato firmato dall'Autorità di certificazione (CA) locale. Caricare il certificato generato utilizzando il protocollo SFTP (Secure File Transfer Protocol) nel server Streamer. Selezionare per confermare il caricamento dei certificati.

In questo documento vengono utilizzati i certificati jolly per streamer. Utilizzare la guida ai certificati come riferimento.

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

Passaggio 2. Configurazione MMP/SSH

- Configurare l'interfaccia di ascolto dello streamer e le porte SIP TCP e TLS su cui eseguire l'ascolto con il comando MMP

streamer sip Listen <interfaccia> <porta-tcp|none> <porta-tls|none>

streamer> streamer sip ascolto a 7000 7001

Per utilizzare solo la connessione SIP TLS. Configurare la connessione TCP SIP come "none". Il comando è riportato di seguito

streamer> streamer sip ascolto a none 7001

- Applica certificati per il server Streamer

streamer> streamer sip certs tac.key tac.cer

- Seleziona la qualità per lo streaming

streamer> risoluzione sip streamer 720p

- Abilita streamer

streamer> abilitazione streamer

- Facoltativamente, se è configurato TLS, è possibile eseguire la verifica TLS per SIP sullo streamer

streamer> tls sip trust ROOTCA.cer

Nota: per proteggere la connessione TLS, è consigliabile abilitare la verifica TLS.

streamer> tls sip verify enable

- Verificare che le informazioni di configurazione immesse siano corrette

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

- Abilitare lo streamer utilizzando il comando: "abilitazione streamer". Tutti i messaggi devono riportare "SUCCESS" come indicato di seguito

streamer> streamer enable

SUCCESS: Key and certificate pair match

SUCCESS: Streamer enabled

Passaggio 3. Configurazione API

Questa configurazione viene eseguita nel CMS che ospita CallBridge. Di seguito, API su interfaccia Webadmin di CMS. Qualsiasi client REST come Postman, Poster può essere utilizzato anche per eseguire questo.

Una volta abilitato, il nuovo streamer SIP può essere configurato e utilizzato nel bridge di chiamate in /callProfiles per sipStreamerUri.

Per utilizzare API sul server CMS. Vai a Webadmin > Configurazione > API

- Crea profilo di chiamata

- Configure sipStreamuri=demo@streamer.com & StreamingMode= Automatico/Manuale

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.

Configure sipStreamuri=demo@streamer.com & StreamingMode= Automatico/Manuale

- Aggiungere il callProfile dello streamer creato in precedenza a /system/profiles. Si tratta di una configurazione globale e per il funzionamento dello streamer verrà utilizzato il valore configurato "sipStreamerUri".

Aggiungi callProfile a sistema/profili

- Aggiungere 'streamURL' di VBrick agli spazi utilizzati per il flusso. Per riferimento, è stato creato uno spazio denominato 'Stream' tramite l'interfaccia Web di CMS

Spazio utilizzato per lo streaming

- Modificare lo spazio per aggiungere "StreamURL". 'streamURL' nel formato seguente:  rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP o FQDN>/live/Name of theStream. Nell'esempio l'ho configurato come "rtmp://broadcast:broadcast@10.106.81.40/live/SpaceStream77"

Passaggio 4. Crea "Regole in uscita"

Configure, un URI personalizzato che esegue il mapping a una regola DialPlan in uscita (il dominio può essere qualsiasi cosa, ad esempio "streamer.com"). Configurare una regola outboundDialPlan in modo che corrisponda al dominio utilizzato in streamerUri per la route.

Crea regole in uscita

Come mostrato nell'immagine precedente, per il programma di streaming SIP, se non vengono utilizzate le porte predefinite per il programma di streaming SIP (5060,5061), è obbligatorio specificare le porte nella configurazione del programma di streaming e includere il seguente numero di porta per connettersi al campo "sip proxy to use" quando outboundDialPlanRule è configurato per il servizio.

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

Uploader

- Specificare il NFS e la directory in cui verranno archiviate le registrazioni che verrà monitorata da Uploader

streamer> uploader nfs 192.168.15.38:Registrazione

- Specificare il Meeting Server su cui il programma di caricamento eseguirà la query per le informazioni di registrazione

streamer> uploader cms host join.mextp.local

- Specificare la porta di amministrazione Web sul Meeting Server che esegue il Call Bridge

streamer> porta cms uploader 445

- Specificare l'utente con accesso API sul Meeting Server che esegue il bridge di chiamate

streamer> uploader cms user apiadmin

streamer> password cms uploader

Immettere la password:

- Aggiungere il bundle di certificati da CMS all'archivio certificati di Meeting Server

Creare un bundle di certificati (crt-bundle) contenente una copia del certificato dell'autorità di certificazione radice e tutti i certificati intermedi nella catena per l'amministratore Web sul Meeting Server che esegue il bridge di chiamate.

streamer> uploader cms trust ROOTCA.cer

- Configurare l'host Vbrick e la porta a cui si connetterà il caricatore

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

streamer> porta rev uploader 443

Nota: per impostazione predefinita, la porta è 443, a meno che non sia specificato diversamente

- Aggiungere un utente Vbrick Rev con l'autorizzazione API per caricare le registrazioni video

streamer> uploader rev user tacuser

streamer> password rev uploader

Immettere la password:

- Aggiungere il bundle di certificati all'archivio attendibilità di Vbrick Rev

Crea un bundle di certificati (crt-bundle) contenente una copia del certificato della CA radice e tutti i certificati intermedi nella catena per il server Vbrick Rev

streamer> uploader rev trust vbrickbundle.cer

- Verifica la configurazione del caricatore e abilita il caricatore

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

Se la configurazione è corretta, usare il comando "uploader enable" per abilitare il componente Uploader. Tutti i messaggi devono riportare "SUCCESS" come mostrato di seguito.

streamer> uploader enable

SUCCESS: uploader enabled

Verifica

Streamer

Streaming funzionante e chiamata in streaming SIP connessa

Uploader

È possibile visualizzare il log per un evento riuscito in syslog follow of 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

Risoluzione dei problemi

Streamer

1. Nessuna licenza

Streamer richiede una licenza "recorder" sul server che dispone del componente callbridge. In caso contrario o se la licenza non è sufficiente, gli errori riportati di seguito verranno visualizzati nei registri eventi.

Accertarsi di aggiungere la licenza richiesta. Lo stato della licenza può essere controllato dalla CLI usando il comando "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)

2.Porta TLS

· Se la porta TLS è configurata e non è applicato alcun certificato. Configura certificati per l'utilizzo di TLS con Streamer

· Se il certificato non è disponibile. Configurare solo la porta TCP

streamer> streamer sip listen a 7000 7001

streamer> streamer enable

FAILURE: TLS port set but no certificates configured

FAILURE: Streamer configuration not complete

Sono disponibili due opzioni per rimuovere la porta TLS o aggiungere il certificato SIP TLS Trust and Streamer

Cisco consiglia di abilitare la porta TLS.

3. Stream RTMP non configurato correttamente

Nei registri verrà visualizzato un errore

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

Verificare la procedura nella configurazione del flusso e configurare correttamente l'URL RTMP nel formato "rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP or FQDN>/live/Name of theStream"

4.Problemi correlati al routing delle chiamate

Poiché il CMS Streamer è un client basato su SIP e, come accennato in precedenza, è necessario disporre del routing. Ciò potrebbe causare errori nelle chiamate. Si consideri questo esempio, in cui il Callbridge CMS ha inviato una chiamata in uscita, ma l'operazione non è riuscita con il seguente errore 'timeout transazione - nessuna risposta provvisoria invio 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)

Verificare le impostazioni delle chiamate in uscita nei server Callbridge CMS per verificare la posizione a cui vengono inviate e se sono impostate correttamente. Verificare inoltre che il profilo di chiamata sia configurato con l'URI del flusso corretto e che lo stesso sia associato a Cospace.

Uploader

1. Dettagli Vbrick non corretti.

È possibile visualizzare l'errore nel log di Uploader

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

Assicurarsi di aver configurato le credenziali e la porta corrette per il server vbrick.  Accertarsi inoltre che Uploader sia in grado di raggiungere la porta webadmin del callbridge CMS.