目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置

验证

故障排除

简介

本文档介绍配置和排除与下一代流处理器和上载程序的Cisco Meeting Server(CMS)集成故障的步骤。下一代流处理器是从CMS 3.0版中引入的，是基于会话发起协议(SIP)的。

先决条件

要求

Cisco 建议您了解以下主题：

- CMS Callbridge 3.0版或更高版本，带录音/流许可证。(一个录制许可证将允许一个流呼叫

- Vbrick分布式媒体引擎(DME)（用于从CMS流服务发布实时流）

- Vbrick Rev(可选：仅在需要在内部网络或组播外部共享实时流时才需要

- 网络文件系统(NFS)目录是必需的，可以在Windows Server或Linux上进行设置。

- 对于Windows服务器，请按照步骤在Windows上部署网络文件系统(NFS)

- 对于Linux，请按照步骤在Linux上部署网络文件系统

使用的组件

本文档中的信息基于以下软件和硬件版本：

- CMS 3.2及更高版本，带“记录器”和/或“流处理器”许可证。（录制器许可证还允许您流）

- VBrick分布式媒体引擎(DME)3.15.0 Rhel7

- Vbrick Rev(上载程序与vBrick Rev服务器一起使用。无需手动导入录制)

- 带NFS的Windows Server 2012 R2

背景信息

CMS 2.1版及更高版本引入了对使用标准实时消息协议(RTMP)的CMS流处理器实时流的支持。 在CMS 3.0中，引入了下一代流处理器，它是基于SIP的组件。3.0以前版本使用可扩展消息和在线状态协议(XMPP)。CMS版本3.1及更高版本支持RTMPS协议，因此可以加密CMS流处理器组件与外部服务器之间的通信。这使CMS流处理器能够与支持RTMP(S)（Youtube、Facebook、Wowza等）的任何流平台集成。 目前，CMS流处理器已通过Vbrick DME作为外部流服务器的测试，是推荐的集成平台。

通过与VBrick DME的实时流（网播）集成，用户可以从不同设备观看网络内任何位置的实时流CMS会议。此外，当VBrick Rev沿VBrick DME使用时，这扩展了从内部网络查看每个VBrick Rev授权用户的功能。此外，CMS上载程序组件还简化了从连接到会议服务器的已配置NFS向视频内容管理器Vbrick上传会议服务器录制的工作流程。无需手动导入录制。配置并启用上载程序组件后，将录制从NFS推送到Vbrick。

流处理器

本文档中的信息都是基于特定实验室环境中的设备编写的。此处使用的所有设备都以清除（默认）配置开始。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

上载程序

上载程序组件可以安装在与录制程序组件相同的服务器上，也可以安装在单独的服务器上。如果与录制器安装在同一台服务器上，则添加几个vCPU供其使用。如果在其他服务器上运行，则使用与记录器相同的服务器规范：至少4个物理核心和4GB RAM的专用虚拟机。

运行上载程序的会议服务器需要网络文件共享(NFS)的读写权限。 上载程序必须运行在不同的会议服务器上，而不是托管会议的呼叫桥上。

配置

网络图

支持使用CMS部署流处理器和上载程序的几种方案，例如：具有多个流服务器的单个callbridge、具有单个流服务器的callbridge群集和具有多个流服务器的callbridge群集。本文档基于基本部署，其中Callbridge群集连接到单个流处理器上载程序服务器，因为此场景的所有配置步骤也适用于其他场景。

如上图所示

CMS CallBridge集群

CMS流处理器/记录器

CMS上载程序

用于流传输的VBrick DME

VBrick流版

配置

流处理器

假设呼叫桥已设置并接受呼叫。

步骤1.证书

新的流处理器组件不需要侦听https连接，但是，它会侦听SIP连接，流处理器服务器必须具有用于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

获取从本地证书颁发机构(CA)签名的证书。 使用安全文件传输协议(SFTP)将生成证书上传到Streamer服务器。已选中以确认已成功上传证书。

本文档中通配符证书用于流处理器。请使用证书指南作为参考。

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

步骤2. MMP/SSH配置

- 使用MMP命令配置流处理器的侦听接口以及要侦听的SIP TCP和TLS端口

streamer sip listen <interface> <tcp-port|none> <tls-port|none>

streamer> streamer sip listen a 7000 7001

仅使用TLS sip连接。将TCP SIP连接配置为“无”，命令如下

streamer> streamer sip listen a none 7001

- 为流处理器服务器应用证书

streamer> streamer sip certs tac.key tac.cer

- 选择流传输质量

streamer>流处理器sip解析720p

- 启用流处理器

streamer> streamer enable

- 或者，如果配置了TLS，则可以在流处理器上对SIP执行TLS验证

streamer> tls sip trust ROOTCA.cer

注意：为确保TLS连接安全，我们建议启用TLS验证。

streamer> tls sip verify enable

- 验证上面输入的配置信息是否正确

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

- 使用命令启用流处理器："流处理器启用" 所有消息必须显示“成功”，如下所示

streamer> streamer enable

SUCCESS: Key and certificate pair match

SUCCESS: Streamer enabled

步骤3. API配置

此配置在托管CallBridge的CMS中执行。下面是CMS Webadmin接口上的API。任何REST客户端（如Postman、Poster）也可用于执行此操作。

启用新SIP流处理器后，可以在呼叫网桥中的/callProfiles for sipStreamerUri下配置和使用它。

在CMS服务器上使用API。转至Webadmin > Configuration > API

- 创建呼叫配置文件

- 配置sipStreamuri=demo@streamer.com & StreamingMode=自动/手动

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.

配置sipStreamuri=demo@streamer.com & StreamingMode=自动/手动

- 将上面创建的流处理器callProfile添加到/system/profiles。这是全局配置，配置的“sipStreamerUri”将用于流处理器操作。

将callProfile添加到系统/配置文件

- 将VBrick 'streamURL'添加到用于流传输的空间。为了参考，使用CMS Web界面创建了名为'Stream'的空间

用于流传输的空间

- 修改空间以添加“StreamURL”。“streamURL”格式如下： rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP或FQDN>/live/NameofStream。在示例中，我将其配置为“rtmp://broadcast:broadcast@10.106.81.40/live/SpaceStream77”

第四步： 创建“出站规则”

配置，一个映射到outboundDialPlan规则的自定义URI（域可以是“streamer.com”等任何内容）。 请配置outboundDialPlan规则以匹配streamerUri中用于路由的域。

创建出站规则

如上图所示，对于SIP流处理器，如果未使用SIP(5060,5061)的默认端口，则必须在流处理器配置中指定端口，并在为服务配置出站DialPlanRule时包括以下端口号以连接到“sip proxy to use”字段。

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

上载程序

- 指定上传程序将监控的NFS和存储录的目录

streamer>上载程序nfs 192.168.15.38：录制

- 指定上载程序将查询的会议服务器以获取记录信息

streamer> uploader cms host join.mextp.local

- 在运行呼叫网桥的会议服务器上指定Web管理端口

streamer> uploader cms port 445

- 在运行呼叫网桥的会议服务器上指定具有API访问权限的用户

streamer> uploader cms user apiadmin

streamer> uploader cms password

请输入密码:

- 将证书捆绑包从CMS添加到会议服务器信任存储

在运行呼叫网桥的会议服务器上，为Web管理员创建证书捆绑包(crt-bundle)，该捆绑包包含根CA证书和链中所有中间证书的副本。

streamer> uploader cms trust ROOTCA.cer

- 配置Vbrick主机和上载程序将连接到的端口

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

streamer> uploader rev port 443

注意：除非另有指定，否则端口默认为443

- 添加具有上传视频录制的API权限的Vbrick Rev用户

streamer> uploader rev user tacuser

streamer> uploader rev password

请输入密码:

- 将证书捆绑包添加到Vbrick Rev信任库

创建证书捆绑包(crt-bundle)，该捆绑包保存Vbrick Rev服务器链中根CA证书和所有中间证书的副本

streamer> uploader rev trust vbrickbundle.cer

- 检查上载程序配置并启用上载程序

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

如果配置正确，请使用uploader enable命令启用Uploader组件。所有消息必须显示“成功”，如下所示。

streamer> uploader enable

SUCCESS: uploader enabled

验证

流处理器

流处理和已连接的SIP流呼叫

上载程序

在上载程序的系统日志后续操作中，您可以看到成功事件的日志。

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

故障排除

流处理器

1.无许可证

Streamer在具有Callbridge组件的服务器上需要“记录器”许可证。如果不存在，或许证不足，则事件日志中将显示如下所示的错误。

确保添加所需的许可证。使用命令“license”可以在CLI中检查许可证状态

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.TLS端口

·如果配置了TLS端口且未应用证书。为流处理器配置证书以使用TLS

·如果证书不可用。仅配置TCP端口

streamer> streamer sip listen a 7000 7001

streamer> streamer enable

FAILURE: TLS port set but no certificates configured

FAILURE: Streamer configuration not complete

现在，您有2个选项可删除TLS端口或添加SIP TLS信任和流处理器证书

思科建议启用TLS端口。

3. RTMP流配置不正确

日志中将显示错误

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

请检查流处理器配置中的步骤，并以“rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP或FQDN>/live/NameofStream”格式正确配置RTMP URL

4.呼叫路由相关问题

由于CMS流处理器是基于SIP的客户端，因此如前所述，它需要部署路由。这可能导致呼叫可能失败的场景。请考虑以下示例，其中CMS Callbridge发送了出站呼叫，但由于以下“事务超时 — 没有发送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)

查看CMS Callbridge服务器上的出站呼叫设置，以验证其发送到的位置以及是否设置正确。另请检查callprofile是否配置了正确的流处理器URI，并且是否与Cospace关联。

上载程序

1. Vbrick描述不正确。

在上载程序日志中，您可以看到错误

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

确保为vbrick服务器配置了正确的凭证和端口。  另请确保上传程序应能到达CMS callbridge webadmin端口。