목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

구성

네트워크 다이어그램

구성

다음을 확인합니다.

문제 해결

소개

이 문서에서는 Next Generation Streamer 및 Uploader와의 Cisco CMS(Meeting Server) 통합을 구성하고 문제를 해결하는 단계에 대해 설명합니다.Next Generation Streamer는 CMS 버전 3.0에서 도입되었으며 SIP(Session Initiation Protocol) 기반 솔루션입니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 녹음/스트리밍 라이센스가 포함된 CMS Callbridge 버전 3.0 이상(녹음 라이센스 1개는 스트리밍 통화 1개를 허용합니다.)

- DME(Vbrick Distributed Media Engine)(CMS 스트리밍 서비스에서 라이브 스트림을 게시하는 데 사용)

- Vbrick Rev(선택 사항:실시간 스트리밍을 내부 네트워크 또는 멀티캐스트 외부에서 공유해야 하는 경우에만 필요

- NFS(Network File System) 디렉토리가 필요하며 Windows Server 또는 Linux에서 설정할 수 있습니다.

- Windows 서버의 경우 Windows에서 NFS(Network File System) 구축 단계를 수행합니다.

- Linux의 경우 Linux에서 네트워크 파일 시스템 구축 단계를 수행합니다.

사용되는 구성 요소

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

- CMS 3.2 이상, 'Recorder' 및/또는 'Streamer' 라이센스 포함(레코더 라이센스는 스트리밍도 허용합니다.)

- VBrick DME(Distributed Media Engine) 3.15.0 RHEL7

- Vbrick Rev(업로더는 vBrick Rev 서버와 함께 사용됩니다.녹음을 수동으로 가져올 필요가 없음)

- Windows Server 2012 R2(NFS 포함)

배경 정보

CMS 버전 2.1 이상에서는 표준 RTMP(Real-Time Messaging Protocol)를 사용하여 CMS 스트리밍으로 라이브 스트리밍을 지원합니다. CMS 3.0에서는 SIP 기반 구성 요소인 Next Generation Streamer가 도입되었습니다.3.0 이전 버전에서는 XMPP(Extensible Messaging and Presence Protocol)를 사용했습니다.CMS 버전 3.1 이상은 RTMPS 프로토콜을 지원하므로 CMS 스트림 구성 요소와 외부 서버 간의 통신을 암호화할 수 있습니다.이를 통해 CMS 스트림은 RTMP(Youtube, Facebook, Wowza 등)를 지원하는 모든 스트리밍 플랫폼과 통합할 수 있습니다. 현재 CMS Streamer는 Vbrick DME를 외부 스트리밍 서버로 테스트했으며 통합을 위해 권장되는 플랫폼입니다.

VBrick DME와 라이브 스트리밍(웹캐스트) 통합을 통해 사용자는 다양한 디바이스에서 네트워크 내부의 어디서든 실시간 스트리밍 CMS 회의를 볼 수 있습니다.또한 VBrick Rev가 VBrick DME와 함께 사용될 경우, 이 기능은 모든 VBrick Rev 권한 사용자의 내부 네트워크 외부에서 볼 수 있도록 확장됩니다. 또한 CMS 업로더 구성 요소는 회의 서버에 연결된 구성된 NFS에서 비디오 콘텐츠 관리자 Vbrick에 회의 서버 녹음을 업로드하는 작업 흐름을 간소화합니다.녹음을 수동으로 가져올 필요가 없습니다.업로더 구성 요소를 구성하고 활성화하면 녹화가 NFS에서 Vbrick으로 푸시됩니다.

스트리머

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

업로더

Uploader 구성 요소는 Recorder 구성 요소와 같은 서버에 설치하거나 별도의 서버에 설치할 수 있습니다.레코더와 동일한 서버에 설치된 경우 사용할 vCPU 몇 개를 추가합니다.다른 서버에서 실행되는 경우 레코더와 동일한 서버 사양을 사용합니다.최소 4개의 물리적 코어 및 4GB의 RAM을 갖춘 전용 VM.

업로더를 실행하는 모임 서버에는 NFS(네트워크 파일 공유)에 대한 읽기 및 쓰기 권한이 필요합니다. 업로더는 회의를 호스팅하는 통화 브리지가 아닌 다른 회의 서버에서 실행해야 합니다.

구성

네트워크 다이어그램

CMS와 함께 Streamer 및 Uploader를 구축하는 데 다음과 같은 몇 가지 시나리오가 지원됩니다.여러 스트리밍 서버가 포함된 단일 callbridge, 단일 스트리밍 서버가 있는 callbridge 클러스터, 여러 스트리밍 서버가 있는 callbridge 클러스터이 문서는 단일 스트림, 업로더 서버에 연결하는 callbridge 클러스터를 포함하는 기본 구축을 기반으로 하며, 이 시나리오의 모든 구성 단계가 다른 시나리오에도 적용됩니다.

위 이미지에 표시된 대로

CMS CallBridge 클러스터

CMS Streamer/Recorder

CMS 업로더

스트리밍용 VBrick DME

스트리밍용 VBrick Rev

구성

스트리머

통화 브리지가 이미 설정되고 통화를 수락하는 것으로 가정합니다.

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(Certificate Authority)에서 서명된 인증서를 가져옵니다. SFTP(Secure File Transfer Protocol)를 사용하여 생성 인증서를 스트리밍 서버에 업로드합니다.인증서를 업로드했는지 확인했습니다.

이 문서에서 와일드카드 인증서는 스트리밍에 사용됩니다.인증서 가이드를 참조하여 주십시오.

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 포트의 수신 대기 인터페이스를 구성합니다.

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

streamer> streamer sip listen 7000 7001

TLS sip 연결만 사용하려면TCP SIP 연결을 "none"으로 구성합니다. 명령은 다음과 같습니다.

streamer> streamer sip listen none 7001

- 스트리밍 서버에 대한 인증서 적용

streamer> streamer sip certs tac.key tac.cer

- 스트리밍 품질 선택

streamer> streamer sip resolution 720p

- 스트리밍 사용

streamer> streamer enable

- 선택적으로, TLS가 구성된 경우, 스트리머에서 SIP에 대해 TLS 확인을 수행할 수 있습니다

streamer> tls sip trust ROOTCA.cer

참고: TLS 연결이 안전하려면 TLS 확인을 활성화하는 것이 좋습니다.

streaming > 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

- 다음 명령을 사용하여 스트림을 활성화합니다."스트리밍 활성화" 모든 메시지는 아래와 같이 "SUCCESS"를 표시해야 합니다.

streamer> streamer enable

SUCCESS: Key and certificate pair match

SUCCESS: Streamer enabled

3단계. API 컨피그레이션

이 컨피그레이션은 CallBridge를 호스팅하는 CMS에서 수행됩니다.아래는 CMS의 웹 관리자 인터페이스에 대한 API입니다.Postman, Poster와 같은 모든 REST 클라이언트를 사용하여 이 작업을 수행할 수도 있습니다.

새 SIP 스트리밍이 활성화되면 Call Bridge에서 sipStreamerUri용 /callProfiles를 사용하여 구성하고 사용할 수 있습니다.

CMS 서버에서 API를 사용하려면Webadmin > Configuration > API로 이동

- 통화 프로필 생성

- sipStreamuri =demo@streamer.com & StreamingMode= Automatic/Manual 구성

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= Automatic/Manual 구성

- 위에서 생성한 streamer callProfile을 /system/profiles에 추가합니다.전역 구성이며 구성된 "sipStreamerUri"가 스트리밍 작업에 사용됩니다.

시스템/프로필에 callProfile 추가

- VBrick 'streamURL'을 스트리밍에 사용되는 공간에 추가합니다. 참조용으로 CMS 웹 인터페이스를 사용하여 'Stream'이라는 공간을 만들었습니다.

스트리밍에 사용되는 공간

- 공간을 수정하여 "StreamURL"을 추가합니다.'streamURL'의 형식은 다음과 같습니다. rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP 또는 FQDN>/live/NameOfStream.예를 들어 "rtmp://broadcast:broadcast@10.106.81.40/live/SpaceStream77"으로 구성했습니다.

4단계. "아웃바운드 규칙" 생성

outboundDialPlan 규칙에 매핑되는 사용자 지정 URI인 Configure(구성)(도메인은 "streamer.com"과 같은 모든 것이 될 수 있음). 라우팅할 streamerUri에 사용된 도메인과 일치하도록 outboundDialPlan 규칙을 구성하십시오.

아웃바운드 규칙 생성

위 이미지에 표시된 것처럼 SIP Streamer의 경우 SIP(5060,5061)에 대한 기본 포트를 사용하지 않는 경우, 서비스에 대해 outboundDialPlanRule이 구성된 경우 스트리밍 컨피그레이션에서 포트를 지정하고 다음 포트 번호를 포함하여 "사용할 sip proxy" 필드에 연결해야 합니다.

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> uploader nfs 192.168.15.38:녹음

- 업로더가 녹음 정보를 쿼리할 모임 서버를 지정하십시오.

streamer > uploader cms host join.mextp.local

- 통화 브리지를 실행하는 회의 서버에서 웹 관리 포트 지정

streamer> uploader cms port 445

- 호출 브리지를 실행하는 회의 서버에서 API 액세스 권한이 있는 사용자 지정

streaming > uploader cms user api admin

streaming > uploader cms 비밀번호

암호를 입력하십시오.

- CMS의 인증서 번들을 Meeting Server 트러스트 저장소에 추가합니다.

루트 CA 인증서 사본을 보유하는 인증서 번들(crt-bundle)을 만들고 통화 브리지를 실행하는 회의 서버에서 웹 관리자 체인에 대한 모든 중간 인증서를 생성합니다.

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 사용자 추가

streaming > uploader rev user tacuser

streamer > uploader rev password

암호를 입력하십시오.

- Vbrick Rev 트러스트 저장소에 인증서 번들 추가

루트 CA 인증서 및 Vbrick Rev 서버의 체인에 있는 모든 중간 인증서를 포함하는 인증서 번들(crt-bundle)을 생성합니다.

streamer> uploader rev trust vbricbundle.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" 명령을 사용하여 업로더 구성 요소를 활성화합니다.모든 메시지는 아래와 같이 "SUCCESS(성공)"를 표시해야 합니다.

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 구성 요소가 있는 서버에 "레코더" 라이센스가 필요합니다.라이센스가 없거나 부족한 경우, 아래에 표시된 오류가 이벤트 로그에 표시됩니다.

필수 라이센스를 추가해야 합니다.라이센스 상태는 "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

이제 TLS 포트를 제거하거나 SIP TLS Trust and Streamer Certificate(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 URL을 "rtmp://<VBrickBroadcastUsername>:<VBrickBroadcastPassword>@<VBrick IP 또는 FQDN>/live/NameoftheStream" 형식으로 올바르게 구성하십시오.

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로 구성되어 있고 동일한 URI가 Cospace와 연결되어 있는지 확인합니다.

업로더

1. 브릭 정보가 올바르지 않습니다.

업로더 로그에 오류가 표시됩니다.

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 포트에 연결할 수 있어야 합니다.