简介
本文档介绍配置思科会议服务器(CMS)与下一代流处理器和上传器集成并对其进行故障排除的步骤。下一代流处理器是从CMS版本3.0引入的,基于会话初始协议(SIP)。
先决条件
要求
Cisco 建议您了解以下主题:
- CMS Callbridge版本3.0或更高版本,带录制/流传输许可证。(一个录制许可证将允许一个流呼叫)
- Vbrick分布式媒体引擎(DME)(用于发布来自CMS流服务的实时流)
- Vbrick Rev(可选:仅当直播流需要在内部网络或组播外部共享时需要
- 需要网络文件系统(NFS)目录,可以在Windows Server或Linux上设置。
- 对于Windows服务器,请执行在Windows上部署网络文件系统(NFS)的步骤
- 对于Linux,请按照Deploy Network File systemon Linux的步骤操作
使用的组件
本文档中的信息基于以下软件和硬件版本:
- CMS 3.2及更高版本,带“Recorder”和/或“Streamer”许可证。(录制器许可证还允许您流式处理)
- 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 Streamer已使用Vbrick DME作为外部流服务器进行了测试,是推荐的集成平台。
Live Streaming(网播)与VBrick DME的集成使用户能够从不同设备观看网络内部任何位置的任何实时流媒体CMS会议。此外,当VBrick Rev与VBrick DME一起使用时,此功能扩展了从内部网络外部查看每个VBrick Rev授权用户的功能。此外,CMS上传器组件简化了从连接到会议服务器的已配置NFS将会议服务器录制文件上传到视频内容管理器Vbrick的工作流程。无需手动导入录音。配置并启用上传器组件后,录音将从NFS推送到Vbrick。
流处理器

本文档中的信息都是基于特定实验室环境中的设备编写的。此处使用的所有设备都以清除(默认)配置开头。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
上载程序
上传器组件可以安装在录制器组件所在的服务器上,也可以安装在单独的服务器上。如果与录制器安装在同一服务器上,请添加几个vCPU供录制器使用。如果在不同的服务器上运行,则使用与录制器相同的服务器规格:专用VM,最少有4个物理核心和4GB RAM。
运行上载程序的会议服务器需要网络文件共享(NFS)的读写权限。 上载程序必须在不同的会议服务器上运行,而不是在主持会议的Call Bridge上运行。

配置
网络图
有几种支持使用CMS部署Streamer和Uploader的场景,例如:带有多个流服务器的callbridge、带有单个流服务器的callbridge集群和带有多个流服务器的callbridge集群。本文档基于基本部署,其中带有连接到单个流处理器的Callbridge集群,即Uploader服务器,因为此方案的所有配置步骤也适用于其他方案。

如上图所示
CMS CallBridge集群
CMS Streamer/Recorder
CMS上传工具
VBrick DME,用于流传输
VBrick Rev流媒体
配置
流处理器
假设Callbridge已设置并接受呼叫。
步骤1.证书
新的流转换器组件不需要侦听https连接,但是它侦听SIP连接(例如,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连接配置为“none”,命令如下
streamer> streamer sip listen a none 7001
- 为流处理器服务器应用证书
streamer> streamer sip certs tac.key tac.cer
streamer> 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”。 所有消息必须如下所示显示“成功”
streamer> streamer enable
SUCCESS: Key and certificate pair match
SUCCESS: Streamer enabled
步骤3. API配置
此配置在CMS托管CallBridge中执行。下面是CMS的Webadmin接口上的API。任何REST客户端(如Postman、Poster)也可用于执行此任务。
启用新的SIP流处理器后,即可在sipStreamerUri的/callProfiles下的呼叫网桥中配置和使用。
在CMS服务器上使用API。转到Webadmin > Configuration > API

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”

步骤4.创建“出站规则”
配置,映射到出站DialPlan规则的自定义URI(域可以是任何内容,例如“streamer.com”)。 请配置outboundDialPlan规则以匹配要路由的streamerUri中使用的域。
创建出站规则
如上图所示,对于SIP流处理器,如果未使用SIP的默认端口(5060,5061),则必须在流处理器的配置中指定端口,并在为服务配置outboundDialPlanRule时包括以下端口号以连接到“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
上载程序
streamer> uploader nfs 192.168.15.38:Recording
streamer> uploader cms host join.mextp.local
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),用于保存根CA证书的副本以及链中所有用于Vbrick Rev服务器的中间证书
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流传输呼叫已连接
上载程序
您可以在上传程序的syslog后续操作中查看成功事件的日志。
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组件的服务器上拥有“recorder”许可证。如果不存在该错误或许可证不足,则事件日志中将出现如下所示的错误。

确保添加所需的许可证。可使用命令“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信任和流处理器证书
Cisco建议启用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 or 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服务器上的出站呼叫设置,验证其发送到的位置以及是否设置正确。另请检查呼叫配置文件是否配置了正确的流处理器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端口。