목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

구성

사전 구성

네트워크 다이어그램

CMS 코어 및 에지 컨피그레이션

다음을 확인합니다.

문제 해결

관련 정보

소개

이 문서에서는 CMS(Cisco Meeting Server) 에지를 구성하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

Cisco에서는 다음 CMS 3.X 구성 요소에 대해 알고 있는 것이 좋습니다.

- 웹브리지 3

- 콜브리지

- C2W

- 방화벽

- 서버 전환

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- CMS3.X OVA(Open Virtual Appliance)

- Chrome 브라우저 122.0.6261.112

- Firefox 브라우저 123.0.1(20240304104836)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

구성

사전 구성

1. NTP(Network Time Protocol) 서버를 구성합니다.

CMS 에지 및 코어 서버에서 동일한 NTP 서버를 구성하는 것이 좋습니다.

2. DNS(Domain Name Server)를 구성합니다.

1. CMS 코어 서버에 대한 내부 DNS를 구성합니다(내부 DNS CMS Edge A 레코드는 CMS Edge 내부 IP 주소를 가리킵니다. 불가능한 경우 두 개의 CMS Edge A 레코드를 구성해야 합니다. 하나는 CMS 내부 IP 주소를 가리키고 다른 하나는 외부 IP 주소를 가리킵니다.).

2. CMS 에지 서버용 외부 DNS를 구성합니다. 외부 DNS A CMS 레코드는 CMS 에지의 외부 IP 주소를 가리킵니다.

3. CMS 코어는 연결을 위해 내부 CMS 에지 A 레코드를 사용합니다.

4. 공용 사용자가 공용 IP 주소를 통해 CMS 에지에 액세스합니다.

5. 사용자 도메인: cms.demo:

a. CMS 에지 기록:

- 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. CMS 코어 기록:

core.cms.demo

6. CMS 코어 및 에지 서버 인증 획득:

a. 생산 인증

- cmscore-fullchain.cer (모든 서비스에는 실습의 전체 체인 인증서가 포함되며 서버 인증서도 포함될 수 있습니다.)

- cmsedge-fullchain.cer (모든 서비스에는 실습의 전체 체인 인증서가 포함되며 서버 인증서도 포함될 수 있습니다.)

b. 두 서버의 풀체인 인증을 생성합니다.

- cmscore-fullchain.cer (이 인증서에는 루트 인증서가 포함됨)

- cmsedge-fullchain.cer (이 인증서에는 루트 인증서가 포함됨)

네트워크 다이어그램

CMS 코어 및 에지 컨피그레이션

1. CMS 코어 서버 관련 서비스를 활성화합니다.

a. 신호 네트워크를 구성합니다.

네트워크 인터페이스 활성화:

ipv4 a add 10.124.56.224/24 10.124.56.1

b. Callbridge 구성 요소를 활성화합니다.

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. CMS 에지 서버 관련 서비스 활성화:

a. 두 개의 네트워크 인터페이스를 구성합니다.

참고: 'b'는 공용 네트워크 인터페이스이고 a는 내부 네트워크 인터페이스입니다.

- 네트워크 a, b 활성화

- 기본 게이트웨이 구성 b(공용 네트워크 인터페이스)

- 내부 게이트웨이 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. 선반가공 컴포넌트를 활성화합니다.

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

참고:

1. x.x.x.x 는 NAT 맵 공용 IP 주소입니다. NAT 맵이 없는 경우 이 단계를 구성할 필요가 없습니다.

1. 포트는 자체적으로 정의할 수 있습니다. 관련 CMS 가이드를 참조하십시오.

c. webbridge3 구성 요소를 활성화합니다.

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. 관련 구성 요소 간의 커뮤니케이션을 구축합니다.

a. Callbridge <—> Turn(퍼블릭 미디어 서비스)

b. Callbridge <—> WebBridge3(WebRTC 서비스)

CMS 코어에서 turn and webbridge3를 구성합니다.

a. Callbridge와 Turn 간의 연결을 구성하고 공용 미디어 서비스를 활성화합니다.

webadmin GUI에 로그인하고 로 Configuration > General 이동합니다.

b. Callbridge와 Webbridge3 간의 연결을 구성하고 WebRTC 서비스를 활성화합니다.

CMS에서 API를 통해 webbridge를 생성한 다음 C2W 연결을 추가합니다(예c2w://edge.cms.demo:6000: 포트는 webbridge3 서비스 컨피그레이션과 동일하게 유지해야 함).

restart Callbridge component and apply all configuration

callbridge restart (go to CLI)

4. 방화벽 기능을 활성화하고 공용 22 포트(ssh)를 비활성화합니다.

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

firewall a deny 22

firewall a enable

다음을 확인합니다.

1. 모든 서비스가 CMS 코어 및 에지에서 실행 중인지 확인합니다.

CMS 코어 서비스 상태:

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

CMS 에지 서비스 상태:

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. webrtc 로그인 상태를 확인하고 회의에 참석합니다.

문제 해결

1. CMS 에지: webrtc 참가자 "Thomas"가 통화에 참가했음을 확인할 수 있습니다. 참가자 ID: fcfe42f4-ac94-4ab2-a14a-f4165ec960a7.

이 참가자 ID는 CMS 코어 로그 파일에서 찾을 수 있습니다.

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

Webrtc 참가자가 전화를 끊습니다.

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: 보라색 줄은 Conference ID이며, 다른 참가자가 이 Conference에 참가할 때 동일한 Conference ID가 있습니다. 파란색 선은 특정 사용자 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 사용자가 통화를 종료합니다. guest1573064743 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

관련 정보

- Cisco-Meeting-Server-3-8-Single-Combined-Server-Deployment

- Cisco-Meeting-Server-3-8-Single-Split-Server-Deployment

- Cisco 기술 지원 및 다운로드