소개
이 문서에서는 CMM(Cisco Meeting Management)을 통해 한 미팅에서 다른 미팅으로 참가자를 이동할 수 있는 기능에 대해 설명합니다. CMM 관리자는 같거나 다른 통화 브리지의 모임 간에 웹 앱 참가자를 이동할 수 있습니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco Meeting Server(CMS) 기본 지식
- CMM 기본 지식
- CMS 웹 앱 기본 지식
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- CMS 버전 3.2.
- CMM 버전 3.2.
- CMS 웹 앱 버전 3.2.
- 웹 브라우저 크롬 91.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
구성
배경 정보
CMM에서 한 미팅에서 다른 미팅으로 참가자를 이동할 수 있는 기능은 원래 CMS 2.6에 포함되어 있지만, 일부 제한 사항, 즉 회의 앱, 웹 앱, SfB(Skype for Business) 참가자는 이동할 수 없습니다. CMS 3.2부터 CMM 관리자는 웹 앱 참가자를 동일한 또는 다른 통화 브리지의 모임 간에 이동할 수 있습니다.
참고: 이 기능은 웹 앱 참가자가 다른 참가자의 이동을 호출할 수 있다는 의미는 아닙니다. 이전에는 웹 앱 참가자를 이동하려고 할 때 CMM에서 알림을 통해 이를 차단했습니다. 이 제한은 CMM에서 자동으로 감지되며 미팅은 CMS 3.2에서 호스팅되며 이동이 허용됩니다.
네트워크 다이어그램

설정
1단계. CMM은 API(Application Programming Interface) 호출을 POST /calls/<call_X_id>/participants/with "movedParticipant"=participant_A_guid 메서드를 사용하여 Callbridge B로 보냅니다.
2단계. Callbridge B에서 Callbridge A로 참가자 이동 요청을 보냅니다.
3단계. Callbridge A가 Callbridge B로의 이동 요청에 응답합니다.
4단계. Callbridge B는 로드 밸런싱을 수행하고 Callbridge C에 새 참가자를 배치합니다.
5단계. Callbridge B가 Callbridge C에 요청을 보내 새 참가자 인스턴스 및 참가자를 생성합니다. 게스트의 경우 새 게스트 ID가 생성됩니다. 새 참가자 인스턴스에는 새 JWT(JASON Web Tokens)가 있습니다.
6단계. Callbridge C는 Call Bridge to Web Bridge(C2W)의 API 이동 웹 소켓 메시지를 Webbridge A로 전송합니다.
7단계. Webbridge A가 브라우저에서 웹 소켓 이동 메시지를 Webbridge 클라이언트(WC3)로 전송합니다.
8단계. 브라우저의 WC3에서 Webbridge A에 종료 웹 소켓 메시지를 보냅니다.
9단계. Webbridge A는 종료 세션 메시지를 Callbridge A로 전달합니다.
10단계. Callbridge A는 참가자 인스턴스와 이전 JWT를 삭제합니다.
11단계. 브라우저의 WC3 클라이언트가 Webbridge A에 대한 새 웹 소켓 메시지에서 인증하고 새 JWT를 사용합니다.
다음을 확인합니다.
다음은 게스트 웹 참가자가 Space 1(webapp.com) Space에서 Space 2(webapp.com) Space로 이동하는 샘플 로그 메시지입니다. 흐름을 단순화하기 위해 다른 공간으로의 이동은 동일한 통화 브리지 cbcms2(클러스터가 로드 밸런싱됨)에 유지됩니다.
먼저, 이동 흐름은 API POST/calls/<call id>/participants로 시작합니다.
2021-03-04 15:50:03.915 Info API trace 42003: POST for "/api/v1/calls/ae778701-7fed-410c-b3e6-c2860907a3f4/participants" (from 172.19.233.174)
2021-03-04 15:50:03.915 Info API trace 42003: content data size 75, type "application/x-www-form-urlencoded":
2021-03-04 15:50:03.915 Info API trace 42003: movedParticipant=26de0160-30b5-4d7b-8a05-304472a
2021-03-04 15:50:03.915 Info API trace 42003: f284a&
2021-03-04 15:50:03.915 Info API trace 42003: needsActivation=false
참가자를 다른 통화로 이동하면 먼저 새 게스트 어카운트(guest2316075499)가 생성됩니다.
2021-03-04 15:50:03.915 Info move participant operation: moving WC3 participant 26de0160-30b5-4d7b-8a05-304472af284a (guest921953266) (homed on this callbridge) to call ae778701-7fed-410c-b3e6-c2860907a3f4
2021-03-04 15:50:03.915 Info guest login request 0: credential storage scheduled (queue length: 1)
2021-03-04 15:50:03.915 Info created guest account with user ID "guest2316075499"
2021-03-04 15:50:03.915 Info guest login request 0: credential storage executed
2021-03-04 15:50:03.915 Info guest login request 0: credential storage in progress
2021-03-04 15:50:03.921 Info guest login request 0: successfully stored credentials
2021-03-04 15:50:03.921 Info replace query for conference c3958a89-3007-4959-99e7-f6ea84609aac: response from 'cbcms2' (priority: 0, load level: 0, conference is running: 1)
2021-03-04 15:50:03.921 Info replace query for conference c3958a89-3007-4959-99e7-f6ea84609aac: using local server 'cbcms2' (priority: 0, load level: 0, conference is running: 1)
2021-03-04 15:50:03.921 Info API call leg dd2bc8c6-fa80-495f-9a20-1da19010cfab in call c0cc4e15-bb74-4af3-948b-672c9571c7fc (API call ae778701-7fed-410c-b3e6-c2860907a3f4)
2021-03-04 15:50:03.922 Info 172.19.233.174: API user "admin" created new participant dd2bc8c6-fa80-495f-9a20-1da19010cfab, call ae778701-7fed-410c-b3e6-c2860907a3f4
2021-03-04 15:50:03.922 Info API trace 42003: sending 200 response, size 0
2021-03-04 15:50:03.922 Info API trace 42003: Location: /api/v1/participants/dd2bc8c6-fa80-495f-9a20-1da19010cfab
2021-03-04 15:50:03.923 Info new session created for user "guest2316075499"
2021-03-04 15:50:03.923 Info instantiating user "guest2316075499"
이전 사용자 guest921953266을 삭제하고 이전 통화를 해제하려면 19로 전화하십시오.
2021-03-04 15:50:03.947 Info user "guest921953266": deactivating due to session resource teardown
2021-03-04 15:50:03.948 Info call 19: tearing down ("guest921953266" conference media)
2021-03-04 15:50:03.948 Info participant "guest921953266" left space 89eae70d-5b67-41fc-97f7-38a655fa6467 (Space 1 (webapp.com))
2021-03-04 15:50:03.948 Info call 19: destroying API call leg 26de0160-30b5-4d7b-8a05-304472af284a
2021-03-04 15:50:03.948 Info removing guest account 'guest921953266' (name 'User X') on call drop
2021-03-04 15:50:03.948 Info destroying guest account with user ID "guest921953266"
새 통화인 20에 대한 미디어 세션을 설정했습니다.
2021-03-04 15:50:04.106 Info call 20: allocated for guest2316075499 / "User X" conference participation (Chrome)
2021-03-04 15:50:04.106 Info call 20: removing h264 from video codec bitmask, because it's Chrome web client and we're using a compatibility profile
2021-03-04 15:50:04.106 Info call 20: configured - API call leg dd2bc8c6-fa80-495f-9a20-1da19010cfab
2021-03-04 15:50:04.107 Info call 20: setting up combined RTP session for DTLS (combined media and control)
2021-03-04 15:50:04.108 Info participant "guest2316075499" joined space 59b9e43e-b277-4d33-a244-e896d20f2049 (Space 2 (webapp.com))
2021-03-04 15:50:04.108 Info participant "guest2316075499" (dd2bc8c6-fa80-495f-9a20-1da19010cfab) joined conference c0cc4e15-bb74-4af3-948b-672c9571c7fc via WB3
웹 앱이 이동 요청을 받으면 현재 통화의 연결을 끊은 다음 새 JWT로 가입 프로세스를 다시 시작합니다. 이동 후 참가자는 다음 이미지에 표시된 대로 새 미팅에 통화가 있음을 나타내는 You have moved to a new call on the lower right corner(새 통화로 이동되었습니다.) 메시지를 보게 됩니다. Now in 메시지 뒤의 텍스트는 이 경우 Space 2의 스페이스 이름입니다.

음소거 및 레이아웃 같은 일부 로컬 웹 앱 모임 상태는 이전 통화에서 이월됩니다. 예를 들어 참가자가 로컬에서 음소거한 경우 새 통화에서 음소거된 상태로 유지됩니다.
다음 기능은 새 통화로 전달되지 않습니다.
- 프레젠테이션 - 참가자를 이동하면 활성 프레젠테이션이 삭제됩니다. 이동 후 새 미팅에서는 참가자가 공유하지 않습니다.
- 채팅 메시지 - 이전 채팅 메시지가 채팅에서 제거되고 새 미팅으로 전달되지 않습니다.
문제 해결
문제: 웹 앱 참가자는 이동하지 않습니다.
이는 다음과 같은 여러 가지 의미를 가질 수 있습니다.
- 아무 일도 없었어 통화가 첫 번째 통화에 여전히 연결되어 있습니다.
- 삭제되었지만 다시 연결되지 않았습니다. 통화가 끊겼지만 두 번째 통화에는 연결되지 않습니다.
- 잘못된 모임에 연결합니다.
시나리오 a. 아무 일도 일어나지 않았습니다.
- 통화 브리지가 CMM에서 이동하라는 요청을 수신하는지 확인합니다. 참가자 이동 작업 같은 특정 키워드는 CMS 로그 메시지를 참조하십시오. CMS가 CMM에서 API를 받지 못한 경우 CMM과 CMS 간의 기본적인 트러블슈팅에는 양쪽에서 활성화된 API 추적, DNS(Domain Name Service) 확인, 연결 확인이 포함됩니다.
- /participants/<participant id> 또는/callLegs/<callLeg id>의 canMove 매개 변수가 true로 설정되어 있는지 확인합니다.
시나리오 b의 경우. 삭제되었지만 다시 연결되지 않음:
- 연결이 끊어지면 이동으로 인한 것입니다. 즉, 로그에서 참가자 이동 작업을 확인합니다.
- CMS 로그에서 통화 브리지에서 리소스 오류/차단을 찾아 참가자 생성 프로세스가 수행되지 않도록 할 수 있습니다.
- 참가자에게 새 스페이스 가입 권한이 있습니까?
- JWT에 오류가 있습니까?
- 미팅에 수동으로 참여하십시오.
시나리오 c의 경우. 잘못된 미팅에 연결합니다.
HTTP(Hyper Text Transport Protocol) HAR(Archive Format) 파일에서 첫 번째 호출의 웹 소켓을 보면 POST /api/call/session/move에 대한 액세스 메서드 데이터에 새 호출에 연결하는 데 사용되는 숫자 ID가 표시됩니다. 이 숫자 ID가 의도된 미팅인지 확인합니다.