Introduction
This document describes how to configure a recorder service in a dedicated Cisco Meeting Server (CMS) version 3.0. separated from the CMS where Callbridge is configured.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
- CMS server general configuration.
- Callbridge configured and licensed in a dedicated server.
- Web admin service configured on CMS server where Callbridge is hosted.
- Webbridge 3 service configured.
- Network File System (NFS) server already configured and ready to be integrated with CMS recorder.
- Application Programing Interface (API)
Components Used
The information in this document is based on these software and hardware versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Configure
Network Diagram

Configurations
Configure the recorder instance in the recorder server.
In a brand new CMS server you can start the configuration of a recorder instance with the next steps:
Step 1. Configure NFS server where 10.15.2.3 is the recorder server ip address and Recording is the path folder.
Recorder> recorder nfs 10.15.2.3:Recording
Step 2. Configure the interface used to listen Session Initiation Protocol (SIP) traffic from Callbridge service, 5060 is the tcp port configured and none means no Transport Layer Security (TLS) port is configured.
recorder> recorder sip listen a 5060 none
Step 3. Enable the service, run the next command:
recorder> recorder enable
SUCCESS: Recorder enabled
recorder>
Step 4. In order to check the configuration run the next command:
recorder> recorder
Enabled : true
SIP interfaces : tcp a:5060, tls none
SIP key file : none
SIP certificate file : none
SIP traffic trace : Disabled
NFS domain name : 10.15.2.3
NFS directory : Recording
Resolution : 720p
Call Limit : none
Configure Call bridge service to send the recorded meeting to the recorder server.
Step 1. Navigate to the Web admin of Callbridge server Configuration >API to create a call profile.
Step 2. Look for the call profile object in the list and click on the triangle symbol to expand the options.
Step 3, Select Create new to display the available attributes of a call profile object.


Step 4. Enter the values to this new call profile object, select the appropiate values for your deployment.

Note: Keep in mind that recorder@recorder is the Uniform Resource Identifier (URI) that callbridge uses to reach out to the recorder. As long an entry exists in the outbound rules for the domain recorder call bridge can call to the CMS Recorder server.
Step 5. Select create to create a call bridge object and save changes. The new call profile ID is displayed along with the attributes as shown in the next image:

Step 6. Assign the callprofile ID 95b864bd-90c1-4c06-9756-f7e9ce1c2e56 at the desired level, In this case the callprofile is assigned to cospace level. Call profile can be assigned to cospasces, tenants or system level.
Step 7. Open the web admin of the callbridge server.
Step 8. Navigate to Configuration > Spaces and create a new space.

Step 9. Navigate to Configuration > API.
Step 10. Look for the coSpace object in the list and click on the triangle symbol to expand the options.
Step 11. Find the created space and select the object ID to edit.

Step 12. Find the callProfile attribute and paste the previous generated ID 95b864bd-90c1-4c06-9756-f7e9ce1c2e56 and save changes.


Create an outbound rule to instruct Callbridge how to reroute recording traffic to recorder server.
Step 1. Navigate to Configuration > API.
Step 2. Look for the outboundDialPlanRules object in the list and click on the triangle symbol to expand the options.

Step 3. Select create new and Enter the proper values for your deployment.

Step 4. Select create. The new rule along with the id and attributes is displayed, as shown in the image:

Step 5. To verify the Outbound rule is properly created, navigate to Configuration > Outbound calls:

Configure Certificates if TLS is required.
Step 1. Create the recorder Certificate Signing Request (CSR) and sign the certificate.
recorder> pki csr recorder CN:recorder.mxc-cmspod1.lab
.................
..........
Created key file recorder.key and CSR recorder.csr
CSR file recorder.csr ready for download via SFTP
recorder>
Step 2. Disable recorder service to reconfigure settings.
recorder> recorder disable
Step 3. Configure port 5061 for TLS connections.
recorder> recorder sip listen a 5060 5061
Note: In this lab is possible to use tcp port 5061 because callbridge service is running in a separate server.
Step 4. Configure the certificates, include root certificate as trust certificate.
recorder> recorder sip certs recorder.key recorder.cer root.cer
recorder> tls sip trust root.cer
Step 5. CMS 3.0 add the option to verify certificates.
recorder> tls sip verify enable
Step 6. Enable recorder.
recorder>recorder enable
SUCCESS: Key and certificate pair match
SUCCESS: certificate verified against CA bundle
SUCCESS: Recorder enabled
recorder>
Step 7. Ensure that the outbound rule configured in Callbridge has the Encryption option selected as Encrypted, as shown in the image:

Verify
- As per the selected option in call profile the recording starts automatically or manually via the recording button that is available
- Join to the space that has the callprofile with recording enabled:

- Since the mode is automatic, the space announce that the meeting is recorded right away after we join the meeting

- When the meeting finishes, a file is generated in the NFS on the configured path
- Ensure that the recording file is written in the NFS server
Troubleshoot
Look for the key elements outlined in the callbridge log lines below.
To display in the command line the log entries you can run the command:
Recorder> syslog follow
Callbridge log:
#New session is created for a user that joins to a space.
Oct 19 00:28:17.487 user.info cms01 host:server: INFO : new session created for user "guest3738845630"
#Space "222" is configured to automatically start the recording.
#Call bridge search for the recorder server via Outbound dial plan and starts the call.
Oct 19 00:28:17.491 user.info cms01 host:server: INFO : call 8: outgoing recording SIP call to "recorder@recorder" from space "222"
Oct 19 00:28:20.499 user.info cms01 host:server: INFO : call 8: delayed configuration, 3.008s (call branding took 3.011s to load)
Oct 19 00:28:20.502 user.info cms01 host:server: INFO : call 8: configured - API call leg 0dea5179-4f00-4c2e-bfb4-30f341b19a3e with SIP call ID "d99315e1-4431-4652-9d64-78183b93ba6d"
#Recorder has joined to the conference to receive the stream and write it on the NFS server
Oct 19 00:28:20.551 local0.info cms01 host:server: INFO : participant "recorder@recorder" joined space 1149e9ea-df48-4a7e-b567-007068730082 (222)
Oct 19 00:28:20.551 user.info cms01 host:server: INFO : participant "recorder@recorder" (0dea5179-4f00-4c2e-bfb4-30f341b19a3e) joined conference bc5d5a76-5f64-42cd-ac5a-bbd5546feb8a via SIP
Recorder log:
#Recorder gets the incoming call from Call bridge.
Oct 19 00:27:26.854 daemon.info recorder recorder-sip[2052]: 002726.853 : INFO : newIncomingCall, with session description
Oct 19 00:27:26.854 daemon.info recorder recorder-sip[2052]: 002726.854 : INFO : call 2: supplying contact uri, "sips:172.16.86.167:5061"
#Recorder receives media from the Call bridge.
Oct 19 00:27:26.935 daemon.info recorder recorder-sip[2052]: 002726.935 : INFO : call 2: rtcpSessionApplicationPacketReceived (1032)
#Recording is written to the specified path:
Oct 19 00:27:27.938 daemon.info recorder recorder-sip[2052]: 002727.938 : INFO : call 2: recording will be available at /mnt/recordings/spaces/1149e9ea-df48-4a7e-b567-007068730082/20201019002817+0000.mp4
Oct 19 00:27:27.941 daemon.info recorder recorder-sip[2052]: 002727.941 : INFO : call 2: successfully configured media framework objects for recorder