Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konfigurieren

Vorkonfiguration

Netzwerkdiagramm

CMS Core- und Edge-Konfigurationen

Überprüfung

Fehlerbehebung

Zugehörige Informationen

Einleitung

In diesem Dokument wird die Konfiguration des CMS-Edge (Cisco Meeting Server) beschrieben.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie mit den folgenden CMS 3.X-Komponenten vertraut sind:

- Webbridge 3

- Callbrige

- C2W

- Firewall

- Server drehen

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- CMS3.X Open Virtual Appliance (OVA)

- Chrome-Browser 122.0.6261.112

- Firefox-Browser 123.0.1 (20240304104836)

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Konfigurieren

Vorkonfiguration

1. Network Time Protocol (NTP)-Server konfigurieren:

Es ist besser, denselben NTP-Server auf dem CMS-Edge- und -Core-Server zu konfigurieren.

2. Domänennamenserver (DNS) konfigurieren:

1. Konfigurieren Sie den internen DNS für den CMS-Core-Server (der interne DNS-CMS-Edge A-Eintrag verweist auf die interne IP-Adresse des CMS-Edge. Wenn dies nicht möglich ist, müssen zwei CMS-Edge A-Einträge konfiguriert werden, von denen einer auf die interne IP-Adresse des CMS verweist, der andere auf die externe IP-Adresse).

2. Konfigurieren Sie den externen DNS für den CMS-Edge-Server. Der externe DNS A CMS-Eintrag verweist auf die externe IP-Adresse des CMS Edge.

3. CMS Core verwendet den internen CMS Edge A-Datensatz für die Verbindung.

4. Öffentliche Benutzer greifen über eine öffentliche IP-Adresse auf den CMS-Edge zu.

5. Benutzerdomäne: cms.demo:

a. Ein Datensatz von CMS Edge:

- edge.cms.demo (internal user login with this A record)

- edge.cms.demo (public user also use same A record from internet, you could specify the different external A record)

b. Aufzeichnung des CMS-Kerns:

core.cms.demo

6. CMS Core- und Edge-Server-Zertifizierung erstellen:

a. Zertifizierung erstellen

- cmscore-fullchain.cer (alle Dienste umfassen die Fullchain-Zertifikate in der Übung, Sie können auch die Serverzertifikate einbeziehen)

- cmsedge-fullchain.cer (alle Dienste umfassen die Fullchain-Zertifikate in der Übung, Sie können auch die Serverzertifikate einbeziehen)

b. Führen Sie die Fullchain-Zertifizierung von zwei Servern durch.

- cmscore-fullchain.cer (Dieses Zertifikat enthält ein Stammzertifikat.)

- cmsedge-fullchain.cer (Dieses Zertifikat enthält ein Stammzertifikat.)

Netzwerkdiagramm

CMS Core- und Edge-Konfigurationen

1. Aktivieren Sie CMS Core Server-bezogene Dienste.

a. Konfigurieren Sie das Signalnetzwerk.

Netzwerkschnittstelle aktivieren:

ipv4 a add 10.124.56.224/24 10.124.56.1

b. Aktivieren der Callbridge-Komponente

callbridge listen a

callbridge certs core.key cmscore-fullchain.cer

callbridge trust c2w cmsedge-fullchain.cer (if not, which result in WebRTC failed)

callbridge enable

2. Aktivieren Sie die Dienste für den CMS-Edge-Server:

a. Konfigurieren Sie zwei Netzwerkschnittstellen.

Hinweis: "b" ist die öffentliche Netzwerkschnittstelle und "a" die interne Netzwerkschnittstelle.

- Netz a, b aktivieren

- Das Standard-Gateway ist b (eine öffentliche Netzwerkschnittstelle).

- Konfigurieren des internen Gateways a

ipv4 a add 10.124.144.80/24 10.124.144.1

ipv4 b add 10.124.42.112/24 10.124.42.1

ipv4 b default

b. Drehkomponenten aktivieren.

turn certs edge.key cmsedge-fullchain.cer

turn listen a b

turn credentials <username> <password> <cms.demo> (cms.demo is actual domain deployment)

turn public-ip x.x.x.x

turn tls 447

turn enable

Anmerkung:

1. x.x.x.x ist eine öffentliche IP-Adresse der NAT-Zuordnung. Wenn keine NAT-Zuordnung vorhanden ist, muss dieser Schritt nicht konfiguriert werden.

1. Der Port kann eigenständig definiert werden, siehe CMS-Leitfaden.

c. Aktivieren Sie webbridge3-Komponenten.

webbridge3 https certs cmsedge.key cmsedge-fullchain.crt (cmsedge-fullchain.crt ,please refer to CMS fullchain document)

webbridge3 https listen b:445 (b is public network interface , this step just provide public users WebRTC service)

webbridge3 https listen a:445 b:445 (this step could provide both internal and external WebRTC service, but need to edge.cms.demo has two A records on internal/external DNS servers.)

webbridge3 c2w certs edge.key cmsedge-fullchain.crt

webbridge3 c2w listen a:6000 (a is internal network interface, 6000 is self-defined port which need to keep the same with the below Webbridge URL)

webbridge3 c2w trust cmscore-fullchain.cer (if no this step, result in WebRTC failed)

webbridge3 enable

3. Bauen Sie die Kommunikation zwischen verwandten Komponenten auf.

a. Callbridge <—> Turn (öffentlicher Mediendienst)

b. Callbridge <—> WebBridge3 (WebRTC-Dienst)

Konfiguration von turn und webbridge3 auf CMS Core:

a. Konfigurieren Sie die Verbindung zwischen Callbridge und Turn, und aktivieren Sie den öffentlichen Mediendienst.

Melden Sie sich bei der webadmin-GUI an, und navigieren Sie zu Configuration > General.

b. Konfigurieren Sie die Verbindung zwischen Callbridge und Webbridge3, und aktivieren Sie den WebRTC-Dienst.

Erstellen Sie webbridge via API auf CMS und fügen Sie dann z.B. eine C2W-Verbindung hinzu (c2w://edge.cms.demo:6000der Port muss mit der webbridge3 Service-Konfiguration identisch sein).

restart Callbridge component and apply all configuration

callbridge restart (go to CLI)

4. Aktivieren Sie die Firewall-Funktion und deaktivieren Sie den öffentlichen 22-Port (SSH).

firewall a default allow ( a is the external/public network interface)

firewall a deny 22

firewall a enable

Überprüfung

1. Stellen Sie sicher, dass alle Dienste auf CMS Core und Edge ausgeführt werden:

Status der CMS-Kerndienste:

CMS> webadmin Enabled : true TLS listening interface : a TLS listening port : 443 Key file : core.key Certificate file : cmscore-fullchain.cer HTTP redirect : Disabled STATUS : webadmin running CMS> callbridge Listening interfaces : a Preferred interface : none Key file : core.key Certificate file : cmscore-fullchain.cer Address : none C2W trusted certs : cmsedge-fullchain.cer Callbridge cluster trusted certs : none Callbridge trust branding certs : none UCM trusted certs : none UCM verification mode : disabled IMPS trusted certs : none IMPS verification mode : disabled WC3 JWT Expiry in hours : 24

Status der CMS-Edge-Services:

CMS> webbridge3 Enabled : true HTTPS listening ports and interfaces : a:445 b:445 HTTPS Key file : edge.key HTTPS Full chain certificate file : cmsedge-fullchain.cer HTTPS Frame-Ancestors : none HTTP redirect : Disabled C2W listening ports and interfaces : a:6000 C2W Key file : edge.key C2W Full chain certificate file : cmsedge-fullchain.cer C2W Trust bundle : cmscore-fullchain.cer Meetingapps address : none Meetingapps port : none Audio priority flag : Enabled Beta options : none CMS> turn Enabled : true Username : admin Password : Cisco.123 Short term credentials : disabled Shared secret : none Realm : cms.demo Public IP : none High Capacity Mode : enabled Relay address : 10.124.144.80 TLS port : 447 TLS cert : cmsedge-fullchain.cer TLS key : edge.key TLS bundle : none Listen interface a Listen interface b

2. Überprüfen Sie den WebRTC-Anmeldestatus, und treten Sie dem Meeting bei:

Fehlerbehebung

1. CMS-Edge: Sie können sehen, dass der webrtc-Teilnehmer "Thomas" an dem Anruf teilnimmt. Teilnehmer-ID: fcfe42f4-ac94-4ab2-a14a-f4165ec960a7.

Diese Teilnehmer-ID finden Sie in der CMS Core-Protokolldatei.

Feb 23 09:02:21.588 local0.info CMS client_backend: INFO : WebApp Audit : Session: a77d94b1-ba12-4e4e-8f3e-86b3e9c1de8f : Participant Thomas performed action of join call

Feb 23 09:02:21.599 local7.info CMS 3b8086e0e5a0 wb3_frontend: [Join call:fcfe42f4-ac94-4ab2-a14a-f4165ec960a7] 10.140.248.52 - - [23/Feb/2024:09:02:21 +0000] status 200 "POST /api/join HTTP/1.1" bytes_sent 1003 http_referer "https://edge.cms.demo:445/" http_user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0" toupstream 192.0.2.2:9000: upstream_response_time 0.008 request_time 0.007 msec 1708678941.598 upstream_response_length 1027 200

Feb 23 09:02:21.633 user.info CMS client_backend: INFO : WebSocket : Got authenticated JWT for guest1573064743 callbridge 320d02c3-7af5-4e4f-b51c-9a7a4dc0b8b9 call 04704220-95a8-4d36-a6ec-3d4d789d9250 participant fcfe42f4-ac94-4ab2-a14a-f4165ec960a7 tracing 0

Der WebRtc-Teilnehmer verlässt den Anruf:

Feb 23 09:02:37.982 local0.info CMS client_backend: INFO : WebApp Audit : Session: a77d94b1-ba12-4e4e-8f3e-86b3e9c1de8f : Participant Thomas(fcfe42f4-ac94-4ab2-a14a-f4165ec960a7) performed action of leave call

2. CMS-Core: Die violette Linie ist Konferenz-ID, es gibt die gleiche Konferenz-ID, wenn andere Teilnehmer dieser Konferenz beitreten. Die blaue Linie ist die spezifische Benutzer-ID: guest1573064743.

Feb 23 09:02:21.594 user.info CMS host:server: INFO : guest login request 1450660605: resolution in progress

Feb 23 09:02:21.594 user.info CMS host:server: INFO : guest login request 1450660605: call ID lookup scheduled

Feb 23 09:02:21.594 user.info CMS host:server: INFO : guest login request 1450660605: resolution in progress

Feb 23 09:02:21.597 user.info CMS host:server: INFO : guest login request 1450660605: credential storage scheduled (queue length: 1)

Feb 23 09:02:21.597 user.info CMS host:server: INFO : created guest account with user ID "guest1573064743"

Feb 23 09:02:21.597 user.info CMS host:server: INFO : guest login request 1450660605: credential storage executed

Feb 23 09:02:21.597 user.info CMS host:server: INFO : guest login request 1450660605: credential storage in progress

Feb 23 09:02:21.598 user.info CMS host:server: INFO : guest login request 1450660605: successfully stored credentials

Feb 23 09:02:21.598 user.info CMS host:server: INFO : instantiating user "guest1573064743"

Feb 23 09:02:21.598 user.info CMS host:server: INFO : conference db0fafc3-ad47-43bd-bcbd-47886416451b: locked due to lack of lock consensus

Feb 23 09:02:21.598 user.info CMS host:server: INFO : conference db0fafc3-ad47-43bd-bcbd-47886416451b: lock state has changed to locked

Feb 23 09:02:21.598 user.info CMS host:server: INFO : API "9999" Space GUID: 58ef98d1-5181-4e63-a386-4b60597be7e4 <--> Call Correlator GUID: 5d031ae1-1c94-44ec-afd4-fa0e76230e3f<--> Internal GUID: db0fafc3-ad47-43bd-bcbd-47886416451b

Feb 23 09:02:21.598 user.info CMS host:server: INFO : unable to apply logo (space '9999') -- no license

Feb 23 09:02:21.599 user.info CMS host:server: INFO : conference db0fafc3-ad47-43bd-bcbd-47886416451b: lock state has changed to unlocked

Feb 23 09:02:21.599 user.info CMS host:server: INFO : API call leg fcfe42f4-ac94-4ab2-a14a-f4165ec960a7 in call db0fafc3-ad47-43bd-bcbd-47886416451b (API call 04704220-95a8-4d36-a6ec-3d4d789d9250)

Feb 23 09:02:21.599 user.info CMS host:server: INFO : conference db0fafc3-ad47-43bd-bcbd-47886416451b has control/media GUID: bf286660-6e5d-403f-8926-514d385dad3c

Feb 23 09:02:21.599 user.info CMS host:server: INFO : conference db0fafc3-ad47-43bd-bcbd-47886416451b named "9999"

Feb 23 09:02:21.601 user.info CMS host:server: INFO : new session created for user "guest1573064743"

Feb 23 09:02:21.603 local0.info CMS postgres[54639]: [6-1] 2024-02-23 09:02:21.603 UTC [54639] LOG: could not send data to client: Broken pipe

Feb 23 09:02:21.603 local0.err CMS postgres[54639]: [7-1] 2024-02-23 09:02:21.603 UTC [54639] FATAL: connection to client lost

Feb 23 09:02:21.768 user.info CMS host:server: INFO : call 11: allocated for guest1573064743 / "Thomas" conference participation (Firefox)

Feb 23 09:02:21.768 user.info CMS host:server: INFO : call 11: configured - API call leg fcfe42f4-ac94-4ab2-a14a-f4165ec960a7

Feb 23 09:02:21.768 user.info CMS host:server: INFO : call 11: ActiveControlState change, unknown -> unknown

Feb 23 09:02:21.769 user.info CMS host:server: INFO : call 11: setting up combined RTP session for DTLS (combined media and control)

Feb 23 09:02:21.770 user.info CMS host:server: INFO : call 11: ActiveControlState change, unknown -> inactive

Feb 23 09:02:21.770 user.info CMS host:server: INFO : call 11: ActiveControlState finality change (inactive, final=1)

Feb 23 09:02:21.770 local0.info CMS host:server: INFO : participant "guest1573064743" joined space 58ef98d1-5181-4e63-a386-4b60597be7e4 (9999)

Feb 23 09:02:21.770 user.info CMS host:server: INFO : participant "guest1573064743" (fcfe42f4-ac94-4ab2-a14a-f4165ec960a7) joined conference db0fafc3-ad47-43bd-bcbd-47886416451bvia WB3

Feb 23 09:02:21.772 user.info CMS host:server: INFO : call 11: starting DTLS combined media negotiation (as initiator)

WebRTC-Benutzer verlässt den Anruf: guest1573064743 Leave Space ID: 58ef98d1-5181-4e63-a386-4b60597be7e4 (9999).

Feb 23 09:02:37.943 user.info CMS host:server: INFO : user "guest1573064743": deactivating due to session resource teardown

Feb 23 09:02:37.943 user.info CMS host:server: INFO : call 11: tearing down ("guest1573064743" conference media)

Feb 23 09:02:37.943 user.info CMS host:server: INFO : call 11: destroying API call leg fcfe42f4-ac94-4ab2-a14a-f4165ec960a7

Feb 23 09:02:37.943 local0.info CMS host:server: INFO : participant "guest1573064743" left space 58ef98d1-5181-4e63-a386-4b60597be7e4 (9999)

Feb 23 09:02:37.943 user.info CMS host:server: INFO : removing guest account 'guest1573064743' (name 'Thomas') on call drop

Feb 23 09:02:37.943 user.info CMS host:server: INFO : destroying guest account with user ID "guest1573064743"

Feb 23 09:02:37.944 user.info CMS host:server: INFO : conference bf286660-6e5d-403f-8926-514d385dad3c destroyed

Zugehörige Informationen

- Cisco-Meeting-Server-3-8-Einzelkombination-Serverbereitstellung

- Cisco-Meeting-Server-3-8-Bereitstellung mit einem geteilten Server

- Technischer Support und Downloads von Cisco