简介
本文档介绍通过思科会议管理(CMM)将参加者从一个会议移动到另一个会议的功能。CMM管理员可以在相同或不同呼叫网桥的会议之间移动Web应用参与者。
先决条件
要求
Cisco 建议您了解以下主题:
- Cisco Meeting Server(CMS)基础知识。
- CMM基础知识。
- CMS Web应用基础知识。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- CMS版本3.2。
- CMM版本3.2。
- CMS Web应用版本3.2。
- Web浏览器Chrome 91。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
背景信息
CMS 2.6中最初提供了将参与者从一个会议移动到另一个会议的功能,但存在一些限制,即无法移动会议应用、Web应用和Skype for Business(SfB)参与者。从CMS 3.2开始,CMM管理员可以在相同或不同呼叫网桥的会议之间移动Web应用参与者。
注意:此功能并不意味着Web应用参与者可以调用其他参与者的移动。以前,尝试移动Web应用参与者时,CMM会通过警报阻止此操作。如果CMM在CMS 3.2上主持会议并允许移动该会议,则自动检测到该限制。
网络图

配置
步骤1. CMM使用方法POST /calls/<call_X_id>/participants/with "movedParticipant"=participant_A_guid对Callbridge B进行应用程序编程接口(API)调用。
步骤2. Callbridge B向Callbridge A发送参与者移动请求。
步骤3. Callbridge A将移动请求发回Callbridge B。
步骤4. Callbridge B进行负载均衡,并决定向Callbridge C添加新参与者。
步骤5. Callbridge B向Callbridge C发送请求,以创建新的参与者实例和参与者。对于访客,会创建新的访客id。新的参与者实例具有新的JASON Web令牌(JWT)。
步骤6. Callbridge C通过呼叫网桥向Web Bridge(C2W)向Web Bridge A发送API move Web socket消息。
步骤7. Webbridge A将move web socket消息发送到浏览器中的Webbridge Client(WC3)。
步骤8.浏览器中的WC3向Webbridge A发送结束Web套接字消息。
步骤9. Webbridge A将结束会话消息转发到Callbridge A。
步骤10. Callbridge A将销毁参与者实例和旧JWT。
步骤11.浏览器中的WC3客户端在发往Webbridge A的新Web套接字消息中验证并使用新的JWT。
验证
以下是访客Web参与者从空间1(webapp.com)空间移动到空间2(webapp.com)空间的日志消息示例。为了简化流程,移至不同空间的操作将保留在同一呼叫网桥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
当Web应用收到移动请求时,它会断开当前呼叫,然后使用新的JWT再次启动加入过程。移动后,参与者会在右下角看到You have been moved to a new call消息,该消息表明该呼叫现在处于新会议中,如下图所示。在Now in消息后的文本是本例中的空间名称Space 2。

某些本地Web应用会议状态(如静音和布局)是从上一个呼叫转移来的。例如,如果参与者在本地静音,则它会在新呼叫中保持静音。
后续功能不会转移到新呼叫:
- 演示文稿 — 当参与者移动时,活动演示将被丢弃。在移动后的新会议中,参与者不共享。
- 聊天消息 — 以前的聊天消息会从聊天中删除,不会转移到新会议。
故障排除
问题:Web应用参与者不会被移动。
这可能意味着很多事情:
- 什么事都没有发生。该呼叫仍连接到第一个呼叫。
- 已丢弃但未重新连接。该呼叫被丢弃,但未连接到第二个呼叫。
- 连接到错误的会议。
场景a。未发生任何事:
- 确保呼叫网桥收到来自CMM的转移请求。有关移动参与者操作等特定关键字,请参阅CMS日志消息。如果CMS没有从CMM接收API,则在CMM和CMS之间执行基本故障排除,包括两端已启用的API跟踪、域名服务(DNS)检查、连接检查。
- 查看/participants/<participant id>或/callLegs/<callLeg id>中的canMove参数是否设置为true。
对于场景b。已丢弃但未重新连接:
- 确保断开连接是由移动引起的,即在日志中查找移动参与者操作。
- 在CMS日志中,在呼叫网桥上查找资源错误/阻止,这些错误可能会阻止参与者创建过程发生。
- 学员是否具有加入新共享空间的权限?
- JWT是否存在错误?
- 尝试手动加入会议。
对于场景c,请连接到错误的会议:
在超文本传输协议(HTTP)存档格式(HAR)文件中,查看第一个呼叫的Web套接字,POST /api/call/session/move的访问方法数据显示用于连接新呼叫的数字ID。确保此数字ID是预定会议的ID。