0% found this document useful (0 votes)
447 views108 pages

Cisco Mediasense

The document provides an overview and agenda for the MediaSense API, which allows building applications that integrate with the MediaSense recording and streaming platform. It describes the client API functions such as authentication, session management, media access, and real-time events. It also covers use cases, roadmap updates, and details about search, playback, tagging recordings, and content management via the API.

Uploaded by

cok koc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
447 views108 pages

Cisco Mediasense

The document provides an overview and agenda for the MediaSense API, which allows building applications that integrate with the MediaSense recording and streaming platform. It describes the client API functions such as authentication, session management, media access, and real-time events. It also covers use cases, roadmap updates, and details about search, playback, tagging recordings, and content management via the API.

Uploaded by

cok koc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 108

Building Applications With

The MediaSense API


Ken Rehor, Product Manager
BRKCCT-2050
Agenda
• Overview
• Client API
• Basic Search
• Playback & Live Monitoring
• Real-Time Events
• Storage, Retention and Archiving
• Advanced Search and Call Correlation
• Finesse Contact Center Support
• Capacity Considerations
• Developer Resources
• Q&A
MediaSense Easy
to use
Recording & and install

Streaming Low TCO


Per-session pricing
Software Appliance

Powerful and Flexible


Audio and HD Video
Recording and Streaming
UC, Contact Center, Remote Expert
Open Platform APIs and Ecosystem
Cisco MediaSense Use Cases

• UC Recording Contact Center Video Streaming


• Audio and HD video • Seamless Finesse • Video-in-Queue
recording integration for UCCX,
• Video-on-Hold
PCCE/UCCE, HCS-CC
• Full-time and click-to-
• Video IVR
record • Search by Agent Info
• Video Auto-Attendant
• CUBE, Network or • Find compound calls
Phone recording control • Video Greetings
• HTML5 native browser
• Live Monitoring • Video Messaging (11.5)
playback
• Built-in Archiving with • CVP audio streaming (11.5)
Search • Remote Expert Solution
Cisco MediaSense Roadmap Roadmap subject to change.
11.0 (Shipping) 11.5 (1H CY2016) Future
 Agent Data Association  Roles and Permissions  Screen Recording
with Finesse  Secure RTP support  SIPREC Support
 IPv6 endpoint support  Scale Improvements
 Search and Play
 Search and Play  Encryption of
Enhancements
Enhancements Recordings
 HTML5 Playback
 Delete Recordings  Multi-Tenant Support
 Search Archives
 Access Controls  Media Transcoding
 Search with Agent Info  Email tracking
 SSO for Finesse
 Call Association  Chat recording
 Video Messaging with
 Video Auto Attendant for Cisco Unity Connection
Cisco Unity Connection  Audio Streaming for CVP
Client API Overview
SIP

RTP
On-demand
Query

MediaSense JSON

Subscribe
Client

Eevnts &
Application

metadata

Streaming
media

Downloaded
media
Application / MediaSense Integration
MediaSense Client APIs
• Design Goals
• Control, access, and manage MediaSense resources and features
• Allow easy client application development
• Web 2.0 (REST-like) Application Programming Interfaces

• API Structure
• Simple HTTPS URLs (HTTPS POST & GET)
• e.g. https://<host>:<port>/ora/queryService/query/getSessionByID
• Responses are returned in JSON format as a part of the HTTP Response body
• Security
• All APIs use HTTPS (except for events)
• Authentication is required to use the APIs
• User Authentication via CUCM
MediaSense Client APIs
• Synchronous Request/Response
• Requests via HTTPS GET or POST
• POST Requests and Responses in JSON form

• Asynchronous Events
• Symmetric Web Service mechanism
• Implemented as HTTP POST to the MediaSense Client
• Body in JSON form

• Direct Media Access


• rtsp:// to access streamed (live and recorded) media
• https:// to download recorded media (10.5 and later)
• Built-in Media Player
Enhancements and Changes – 11.0
• AgentInfo – Finesse gadget to collect agent metadata
• UCCX and UCCE
• HTML5 Playback
• Error reporting for failed recordings
• Archive Search API
• CUCM LineInfo (known as “Display Name” on a phone)
• API Hints for signIn
Client API Details
MediaSense Client API Functions
• Client Authentication • Manage Tags
• Session Management • Real-time Control
• Session Query • Control Sessions
• Media Access • HTTP and RTSP Authentication
• Content Management • Real-Time Events
Client Authentication
• MediaSense authenticates users via CUCM AXL
Client
• Create an Application User on CUCM Application

• Use CUCM Application User credentials


with MediaSense User Authentication API MediaSense API

Cisco
MediaSense

AXL SIP RTP

RTP

A B
Cisco Administrative XML
https://developer.cisco.com/site/collaboration/management/axl/overview/
CUCM
Client Authentication
• signIn
• https://<host>:<port>/ora/authenticationService/authentication/signIn

{
"requestParameters": {
"username": "<replace with your string>",
"password": "<replace with your string>" }
}

• signOut
• https://<host>:<port>/ora/authenticationService/authentication/signOut
API Client Hints in the SignIn Response
• These are instructions to the Search and Play application
• May be considered “hints” by any 3rd party client application
• Items are omitted if false or never configured by administrator
{
"responseCode": 2000,
"responseMessage": "Successful",
"archiveSearchEnabled" : < is a boolean >,
"inbrowserPlaybackEnabled" : < is a boolean >,
"lineNameDisplayConfig" : < is a boolean >,
"agentDataDisplayConfig" :
{
"loginIdDisplayConfig" : < is a boolean >,
"loginNameDisplayConfig" : < is a boolean >,
"firstNameDisplayConfig" : < is a boolean >,
"lastNameDisplayConfig" : < is a boolean >
}
}
Application Session Management
• JSESSIONID used to track authentication
• Via signIn API
• Cookie acknowledges authentication
• Included in Cookie name-value pair

• Session expires:
• When application explicitly logs out
• 30 minutes of inactivity
• (whichever comes first)
PCI and Privacy Controls
• PCI does not allow capture of personal information EVEN WHEN ENCRYPTED

“It is a violation of PCI DSS Requirement 3.2 to store any


sensitive authentication data, including card validation codes
and values, after authorization even if encrypted.”

https://www.pcisecuritystandards.org/documents/protecting_telephone-based_payment_card_data.pdf

Protecting Telephone-based Payment Card Data


March 2011
Recap: The PCI SSC FAQ
PCI SSC FAQ 5362 – Are audio/voice recordings containing cardholder data and/or sensitive authentication data included in the scope of PCI DSS?
Real-time Control: Pause and Resume
• Pause recording session
• pauseRecording
• Resume recording session
• resumeRecording
• Must be an active recording session
• System adds pause/resume timestamp tags
• Impacts live monitoring
• No media streamed during pause duration
• No RTP packets are sent during pause
• Some media players terminate session if excessive duration
Tag a Recording Session
• Add arbitrary text string tag to a recording session
• During or after a recording session
• With or without a time offset
• System or Application defined
• MediaSense tags specific events such as paused/resumed/media active-inactive
• System tags can not be deleted

• addSessionTag
• deleteSessionTag
Content Management
• Delete one or more recording sessions
• deleteSessions API
• Cannot delete an active session

• Set media retention period


• Available via MediaSense Serviceability / Administrator GUI
• Client API support planned for a future release
• Applies to all nodes in a cluster
• Applies to all recordings in a cluster
• Session-specific retention planned for a future release
HTTP Authentication / Redirection
• Any media related HTTP request could be redirected (port 8081)
• Must be handled appropriately
• All media processing HTTP request require basic HTTP Basic Authentication
• Raw download
• MP4, WAV Export
RTSP Authentication / Redirection
• All RTSP request (to port 554) are redirected
• DESCRIBE, SETUP
• The redirected URL is Opaque, so do not cache the redirect URL

• All RTSP request (to port 554) are authenticated


• MediaSense uses Basic Authentication to validate the username/password
Example: RTSP Authentication / Redirection
OPTIONS
REQUEST
OPTIONS rtsp://10.194.118.94/archive/e4137a336b0bf1 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.03.14)

RESPONSE
RTSP/1.0 200 OK
Server: Cisco MediaSense Media Server
CSeq: 5
Public: DESCRIBE, PLAY, SETUP, SET_PARAMETER, GET_PARAMETER, TEARDOWN, PAUSE, RECORD,
OPTIONS
Example: RTSP Authentication / Redirection
DESCRIBE (before authentication)
REQUEST
DESCRIBE rtsp://10.194.118.94/archive/e4137a336b0bf1 RTSP/1.0
CSeq: 6
User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.03.14)
Accept: application/sdp

RESPONSE
RTSP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="Secured Area"
CSeq: 6
Server: Cisco MediaSense Media Server
Example: RTSP Authentication / Redirection
DESCRIBE (with authentication)
REQUEST
DESCRIBE rtsp://10.194.118.94/archive/e4137a336b0bf1 RTSP/1.0
CSeq: 7
Authorization: Basic YXBpdXNlcjpjaXNjbw==
User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.03.14)
Accept: application/sdp

RESPONSE
RTSP/1.0 302 Moved Temporarily
Server: Cisco MediaSense Media Server
CSeq: 7
Location: rtsp://10.194.118.94:9554/archive/e4137a336b0bf1?token=abc123

NOTE: A token may include ^ character, which may or may not be considered a
legal URL based on conflicting RFC specifications. Client app must change to %2E
Example: RTSP Authentication / Redirection
DESCRIBE (after redirection)
REQUEST
DESCRIBE rtsp://10.194.118.94:9554/archive/e4137a336b0bf1?token=abc123 RTSP/1.0
CSeq: 8
User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2011.03.14)
Accept: application/sdp

RESPONSE
RTSP/1.0 200 OK
CSeq: 8
Content-Type: application/sdp
Content-Length=512

V=0
O=- 15237780159166911470 15237780159166912070 IN IP4 10.194.118.94
s=Cisco Live Media Streaming Session
Enhancements and Changes
• AgentInfo – Finesse gadget to collect agent metadata
• UCCX and UCCE
• Show example in S&P

• Error reporting for failed recordings


• Archive Search API
• API Hints for signIn
Search
Session Query
• getSessions
• https://<host>:<port>/ora/getSessions
• Search for complex combination of parameters
• JSON-based query syntax which includes fields, values, relationships and conditions
• Apps must be careful to avoid non-scalable queries
• To ensure proper system operation
• Requires time range specification
Session Query Shortcuts
• getAllActiveSessions • Sorted by sessionStartDate, most recent first

• Retrieve list of all active sessions • All session queries must be time range limited
• Default 100, maximum 1000
• getAllPrunedSessions
• List of all system-deleted sessions
• getSessionsByDeviceRef
• Search by phone number, IP address or URI of device
• getSessionsByMediaType
• Valid types: Audio or Video
(“Video” means Audio+Video, but not audio-only sessions)
• getSessionsByTag
• Retrieve list of sessions based on content of tags
Playback and Live Monitoring
Built-In Media Player
• launchMediaPlayer
• HTTPS GET:https://<server>:<port>/ora/controlService/control/
• To play the session with the rtspUrl "13092154564622" in the Media Player:
• launchMediaPlayer?rtspUrl=rtsp://<server>/archive/2413e6746c8441
• Audio-only or Audio+Video

Requirements:
• Java p3 of user guide
• Browsers IE and FF. Chrome?
HTML5 Playback of Recordings
• Audio playback without Java media player (no Java download required)
• Leverage the browser’s native HTML5 capabilities
• 10.5 SU1 and later

HTML5 playback
window with
playback controls.
MediaSense S&P HTML 5 Playback
• HTML5 playback instead of using Java plug-in
• Using MP4 export and play with native browser playback
• Leverage native browser media features
Media and Access
Codec Client Access Built-in
Media Player
G.711 RTSP: streaming RTSP streaming
Mu-law, A-law HTTPS: RAW download
HTTPS: MP4 or WAV download
G.722 RTSP: streaming RTSP streaming
HTTPS: RAW download
HTTPS: MP4 or WAV download
G.729 RTSP: streaming RTSP streaming
HTTPS: RAW download except for Windows 64-bit Java
HTTPS: MP4 or WAV download
AAC-LD RTSP: --- Not supported
HTTPS: ---
HTTPS: MP4 or WAV download
H.264 RTSP: streaming RTSP streaming
HTTPS: ---
HTTPS: MP4 file download
NOTES:
• Capture exactly what is sent by endpoint, RTSP playback exactly what is captured
• Live monitoring supported via RTSP
Live Monitoring

Contact Center
Supervisor • Search for active recording sessions
• “Play” to monitor the call in real-time

• Monitoring ends when a session ends, which


Caller has implications for CUCM recording
• RTP timeout during pause/resume
Real-time Events
Real-Time Events

Client
Application

Subscribe

Streaming
metadata
Eevnts &

media
1. 2. 3.

MediaSense
Asynchronous / Real-time Events
• Receive events based on session or platform activities
• Use subscriptionFilters to specify event types
• Start, End, Data Updated, Deleted by Application
• Deleted by System (pruned), Storage Thresholds

• subscribeToEvents
• Receive all or only specific events
• unsubscribeFromEvents
• Stop receiving all or only specific events
• verifySubscription
• Verify the subscription status
• Events use HTTP only
Asynchronous / Real-time Events
• sessionEvent
• Every time a recording session is initiated, updated or terminated
• tagEvent
• Every time a client or MediaSense itself adds or deletes a tag
• storageThresholdEvent
• Every time storage levels cross a warning or critical level

Clients may fine-tune which types of events they need


Client Events Subscription
1. Authenticate client: authenticate API
2. Subscribe to events: subscribe API
3. Get results in JSON in event

4. At any time verify the subscription is active: verifySubscription API


5. Filter events
Event filters
Event Details Notes

ALL_EVENTS Will subscribe the client to all possible events

RECORDING_EVENTS SESSION_STARTED_EVENT CUBE media inactivity is noted as a tag


SESSION_UPDATED_EVENT
SESSION_ENDED_EVENT

STREAM_HOLD_EVENT # reserved for CUBE


STREAM_RESUME_EVENT # reserved for CUBE
STREAM_ADDED_EVENT # reserved for adding add’l streams
CLEANUP_EVENTS SESSION_DELETED_EVENT
SESSION_PRUNED_EVENT
TAG_EVENTS TAG_ADDED_EVENT
TAG_DELETED_EVENT
STORAGE_EVENTS ENTER_LOW_STORAGE_SPACE_EVENT
EXIT_LOW_STORAGE_SPACE_EVENT
ENTER_CRTITICAL_STORAGE_SPACE_EVENT
EXIT_CRTITICAL_STORAGE_SPACE_EVENT
ENTER_EMERGENCY_STORAGE_SPACE_EVENT
EXIT_EMERGENCY_STORAGE_SPACE_EVENT
Real-Time Live Monitoring

Contact Center • End-user application subscribes to events


Supervisor • Displays call / recording status in real-time

MediaSense API

Caller
Real-time or Post-Call Speech Analytics
Enterprise Analysis Agent Supervisor Analyst
Business Rules, Business
CRM data, etc.
Engine

Real-time events

Real-time and post- Speech Each business role sees a


call speech analysis tailored view of the data
Engine

MediaSense API

• Session events reported to app


Caller • Media streamed in real-time
Storage and Retention
Storage
• Disks are used for:
• System software
• System configuration database
• Metadata Database
• Media

• Storage utilization monitored on all nodes all the time


• Storage threshold events generated to subscribed apps
• Low storage event; running out of storage warning (25% left)
• Critical storage event; second warning (10% left)
• Emergency storage event; last warning (less than 1% left)
• Threshold events
• Entry event generated as running out of free space
• Exit events generated as free space is restored
Storage / Recording modes
• Two recording operational modes
• New recordings priority (default)
• Existing recordings priority

• Defines how the system manages:


• Existing recordings over time
• During low-space conditions
New Recordings Priority Mode
• Automatically prune old recordings and guarantees serving new recording
sessions
• Pruning is based on age and available space
• Cluster wide ‘retention time’ configuration parameter allows setting the
“deletability age” of recordings
• Low storage conditions may override retention time in order to service new
recordings
Existing Recordings Priority Mode
• Retain existing recordings at the cost of rejecting new recordings
• In critical storage condition the media node becomes unavailable for new
recording requests
• In emergency storage condition ongoing recordings are terminated
• No built in pruning
• End user application is responsible for recording data management
• Delete recordings to manage disk utilization
Session Archiving
MediaSense Storage
MediaSense S&P • Capture SIP/RTP from network
• Playback using S&P GUI from built-in storage
• Disk storage
• Media
• Metadata
• Retention configurable by Admin

Playback from
MediaSense

MediaSense

SIP / RTP Built-in


storage

Recording Session

Captured and Stored on


MediaSense disk
MediaSense Archiving
MediaSense S&P • Capture SIP/RTP from network
• Playback using S&P GUI from built-in storage
• Disk storage
• Media
• Metadata
• Retention configurable by Admin
• Archive to standard Unix-based SFTP server
• Media: MP4 files
Playback from • Metadata: JSON files
MediaSense • Configurable by Admin

MediaSense SFTP server • Media (MP4)


• Metadata (JSON)
SIP / RTP Built-in SFTP archive
storage Stored on SFTP server

Recording Session

Captured and Stored on


MediaSense disk
Configuration
• Archive recording sessions to the external SFTP servers
• Each session consists of two files: media (MP4) and metadata (JSON)
• Archived sessions are not deleted from MediaSense
Access to archived data
• Archived directory on SFTP server contains list of subdirectories, each for one
day of archiving:

[root@ccbu-sj-vm179 cluster-94]# ls –a
total 9064
drwxr-xr-x 2 root root 3985408 May 4 07:24 20140501
drwxr-xr-x 2 root root 3866624 May 7 19:45 20140502
drwxr-xr-x 2 root root 1404928 May 7 19:45 20140503

• Directory YYYYMMDD contains sessions that have been started at


YYYY-MM-DD
Access to archived data (cont)
• Each subdirectory contains pairs of files, for a session xxxxxxxxxx
• Recording session, converted to mp4: xxxxxxxxxx.mp4
• Session Metadata, in JSON format: xxxxxxxxxx.json

[root@ccbu-sj-vm179 cluster-94]# cd 20140503


[root@ccbu-sj-vm179 20140503]# ls -a
total 7330612
-rw-r--r-- 1 root root 1589 May 7 16:11 0145c1ec826d1.json
-rw-r--r-- 1 root root 483510 May 7 16:11 0145c1ec826d1.mp4
-rw-r--r-- 1 root root 1603 May 7 16:34 100145c1f1223b1.json
-rw-r--r-- 1 root root 500623 May 7 16:34 100145c1f1223b1.mp4

• File date/time shows when the session has been archived.


Access to archived data (cont)
• Assuming sftp server runs on Unix server, customer could find session by
session name, extension, … using standard Unix search commands.
• For example search for extension 6214 using grep:

grep -r --include *.json "\"deviceRef\": \"6214\"" *


20140501/3cdf145bb277d2e2.json: "deviceRef": "6214",
20140501/3330145baf869f41.json: "deviceRef": "6214",
20140501/3651145bb0817261.json: "deviceRef": "6214“,
Archive Search
Search Archived Recordings

New Tab to
View and
Search
Archives

Search Archived
recordings by
participating
extensions.
Search Archive Using getArchiveSessions API

• Requires archive server to support sftp and grep through ssh


• getArchiveSessions API
{
"requestParameters": [
{
"sessionIdList": ["<replace with your string>”]
},
{
"minSessionStartDate": "<this is an integer>",
"maxSessionStartDate": "<this is an integer>"
}
]
}

• Full JSON response containing mp4url to download the recording


Session Archiving
with Partners
Storage: MediaSense and partners
• MediaSense storage
• Metadata stored in relational database
• Media stored in ‘off-the-wire’ format

• When to migrate content from MediaSense to partner platform


• Whenever needed, if ever; playback directly from MediaSense or partner app
• At end of every call (retention on MediaSense varies as needed)
Capture and Store

• Partner Application controls platform


• App sets storage retention limits Partner
• Media accessed on-demand Application

• Capture and store content SAN


• Media stored on local disk or SAN MediaSense
• System & DB stored on local disk or SAN
• Any Fiber Channel SAN supported by
VMware and UCS
Cache and Forward
• Partner Application controls platform
• Sets storage retention limits SAN

• Controls/accesses storage system Partner


• Media exported from MediaSense based Application
on internal rules
• Supports one or more MediaSense sites

• Capture and store content


MediaSense
• Media stored on local disk or SAN
• System & DB stored on local disk or SAN
• Storage sufficient for short-term cache
Storage, Playback and Archiving with 3rd-Party App

1. MediaSense records call 1. Archiving not required to play a recording session


2. Session stored on MediaSense local disk 2. Recordings can be kept on MediaSense as long
3. Partner playback from MediaSense local disk Partner Application as disk space is available
4. Partner application archives session 3. Depending on requirements, archiving may never
5. Partner playback from their long-term archive • Search be necessary
• Playback
• Live monitoring
Playback from Playback from
MediaSense Partner archive
local disk

Recording Session

Built-in Partner Archive Process Long-term


storage archiving
Captured and Stored on
MediaSense disk
t
… …
Playback from MediaSense local disk Playback from Partner storage system
until session is deleted by pruning rule after archiving from MediaSense
Storage, Playback and Archiving with 3rd-Party App
• Playback directly from MediaSense
Partner Application
• No need to (re) archive the sessions
• Disk storage on MediaSense • Search
• Media • Playback
• Metadata • Live monitoring
• Retention configurable by MS Admin
RTSP Playback from
playback Partner archive
Archiving isn’t required to
MediaSense API
Partner Archive playback recordings

No archiving required Real-time playback


SIP / RTP Built-in Long- directly from MediaSense
storage term before / if session is
archiving archived later.
Storage, Playback and Archiving with 3rd-Party App
• Playback directly from MediaSense Partner Application
• If session has not been archived to Partner App
• Playback from Partner App • Search
• Playback
• If session has been archived
• Live monitoring
• Partner archiving can happen at any time
• e.g. 3 days to 30 days RTSP Playback from
playback Partner archive
Archiving isn’t required to
MediaSense API
Partner Archive playback recordings

Partner Archive Process Real-time playback


SIP / RTP Built-in Long- directly from MediaSense
storage term before / if session is
archiving archived later.

• Disk storage on MediaSense


• Media
• Metadata
• Retention configurable by MS Admin
• Set to prune after partner archiving, or keep duplicated for as long as you want
Advanced Search and
Call Correlation
MediaSense Session Metadata
Used to associate a recording with a call

• Endpoints
• Extension
• Device ID Agent Information
• CUCM LineDisplayName UCCE
- firstName
• Time and Date - lastName
- loginId
- loginName
• Call IDs: UCCX (loginId will match loginName):
- lastName
• xRefCi (CUCM leg ID) - loginId
• Matches TAPI/JTAPI and CDR leg ID - loginName
(First name is not required and can be blank)
• Cisco-GUID (CUBE)
• Session ID
• Generated by MediaSense
Coordinating Metadata
• Many Sources of Metadata
• MediaSense / SIP, Finesse, UCCX, UCCE, CVP, CUCM
• Metadata depends on specific use case
• Call control method, components in call flow
• Real-Time vs. Historical Correlation
• Real-time: Use for pause/resume, tagging, live monitoring
• Historical: Use CUCM Call Detail Records (CDR) or other information sources
Coordinating Metadata
Metadata coordination mechanism Description

Call Correlation ID (CCID) CUBE dial-peer forking

XrefCI BiB and CUCM NBR

callControllerType Determine media (forking) source: CUCM, CUBE,


direct
getSessionsByCCID Search and retrieve recorded or live sessions
based on the CCID for CUBE or XrefCI for CUCM

See MediaSense FAQ for more details http://docwiki.cisco.com/wiki/FAQs_for_Cisco_MediaSense


Call Correlation
• MediaSense can capture every segment of every call
• Recording is the easy part
• What can be done with those recordings is the hard part

• Correlation gives value to disparate recordings


• Correlating users/agents to phone numbers
• Multiple sessions (hold/resume/transfer)
• Build a single call flow for administrators/supervisors

• Can involve associating call data with information from other systems
• Call flows typically determine how call segments can be correlated
View Call Associations
Supervisors can view all legs of the call
Call association available for all three recording topologies:
Built-in-Bridge CUBE-Dial Peer Forking CUCM-Network Based

New Button to show


associations

Associations
show in a list
Typical Call Scenarios and Recording Method
UCCX / Non-CC UCCE
Call Type Call Flow Recording Method Recording Method
Inbound To Agent Built-in Bridge (NBR) Built-in Bridge (NBR)
CUBE (NBR) CUBE (Dial-Peer Forking)
CUBE (Dial-Peer Forking)

Outbound From Agent Built-in Bridge (NBR) Built-in Bridge (NBR)


CUBE (NBR) CUBE (NBR)
CUBE (Dial-Peer Forking)

Consult Internal / Built-in Bridge (NBR) Built-in Bridge (NBR)


IP phone to
IP phone

74
Call Association for CUBE and NBR Calls
•https://<host>:<port>/ora/queryService/query/getAssociatedSessions
{
"requestParameters":{
"sessionIdList" : [
(only one sessionId string permitted)
]
}
}

• Returns a [list of sessions]

• List includes those linked by CCID as well as by xRefCI


Inbound Call – CUCM Recording using Phone BiB

JTAPI
App

PSTN

Trunk
RTP audio
SIP signaling
JTAPI CTI
Call Flow
Inbound Call – CUCM Recording using Gateway

App JTAPI

PSTN

Trunk
RTP audio
SIP signaling
JTAPI CTI
Call Flow
Correlation of Recording Sessions: CUCM 10.x
Inbound Call – SIP Trunk via CUBE
• Recording session is controlled via IOS dial-peer

App
JTAPI

PSTN

Trunk
RTP audio
SIP signaling
JTAPI CTI
Call Flow
Inbound Call – SIP Trunk via CUBE with CVP
• Dial-peer recording control

App

JTAPI

PSTN

UCCE
Trunk
GUID from CTIOS
RTP audio
SIP signaling
JTAPI CTI
Call Flow
Correlation of Recording Sessions: CUBE Dial-peer
Call Correlation Details
• GUID is used by GWs and CUBE recording
• GUID and MediaSense CCID are the same
• Will carry across all segments of a single call

• XREFCI is used by CUCM network recording


• GUID/CCID will be blank/empty
• These are global values that span across all sessions of a single call

• CUBE and CVP respect GUIDs that are received


• The GUID is passed through
• CUBE will create a GUID if one is not received

• CUCM does NOT expose GUID through JTAPI


• xRefCI may be exposed depending on the call flow
• Apps will not be able to correlate based on GUID through CUCM during a call
• UCCE may require CTIOS to be used by external applications for GUID
• CDR records can be used after a recording
Mid-Call Codec Changes
• CUBE starts new recording
One call
• MediaSense will have 2 recordings

re-INVITE
• Calls still correlate Call segment 1 Call segment 2
• Search and Play
• Two successive but separate sessions CVP x1111 Agent x9999

SIP
• Different session IDs G.711 G.729
• Both share the same CCID/GUID
SessionID 123 SessionID 789
• Check with partner app
• Not all support correlating CCID 456 CCID 456

• Built-in bridge will not renegotiate


• Transcoder will be requested to preserve existing recording session
Correlation of Recording Sessions: CUBE Dial-Peer
• Mid-call codec change
• CUBE breaks recording into separate sessions
• Common MediaSense session ID
Call Association for CUBE and NBR Calls
•https://<host>:<port>/ora/queryService/query/getAssociatedSessions
{
"requestParameters":{
"sessionIdList" : [
(only one sessionId string permitted)
]
}
}

• Returns a [list of sessions]


• List includes those linked by CCID as well as by xRefCI
Finesse Contact Center
Support
Agent Information Displayed with Recordings
Example shown in MediaSense Search and Play

CUCM LineDisplayName

(Agent) Login ID, First, Last, and Login Name


Search Recordings with Agent Information
Example shown in MediaSense Search and Play

Agent Extension

Agent LoginID
Agent First and
Last Name
Agent Information via Finesse AgentInfo Gadget

• Where it comes from Agent Information


• What it looks like in the Session JSON UCCE
- firstName
- lastName
• How to search for it in the Metadata Database - loginId
- loginName
• How to search for it in the Archive Server UCCX (loginId will match loginName):
- lastName
- loginId
- loginName
(First name is not required and can be blank)
Agent Information in JSON Session Data
"participants": [
{
"deviceRef": "<this is a string>",
"participantStartDate": <this is an integer>,
"participantInformation":{
"loginId": "<this is a string>",
"lastName": "<this is a string>",
"firstname": "<this is a string>",
"loginIdDomain": "<this is an integer>",
"loginName": "<this is a string>",
},
" lineDisplayName": "<this is a string>",
"participantDuration": <this is an integer>,
"isConference": "<this is a boolean>",
"xRefCi": "<this is a string>",
"deviceId": "<this is a string>"
}
], ...

• Items in bold are new in MediaSense 10.5


• They do not appear at all if no agent data is associated with this Participant
Search MediaSense for AgentInfo using getSessions
"requestParameters": [
{
"fieldName" : “loginId” or “lastName” or “firstName” or “loginName” or
“lineDisplayName”
"fieldConditions": [
{
"fieldOperator" : “equals", or “contains” or “startsWith” or “endsWith”
"fieldValues": [
"<replace with your string>”
],
"fieldConnector": "<replace with your string>" }
],
"paramConnector": "<replace with your string>" }
],

• Items in bold are new in MediaSense 10.5


• They do not appear if no agent data is associated with this Participant
Search archive for AgentInfo using getArchiveSessions
• Requires archive server to support sftp and grep through ssh
• getArchiveSessions API
{
"requestParameters": [
{
"sessionIdList": ["<replace with your string>”]
or ”loginId” or “loginName” or “firstName” or “lastName” or “lineDisplayName”
},
{
"minSessionStartDate": "<this is an integer>",
"maxSessionStartDate": "<this is an integer>"
}
]
}

• Full JSON response containing mp4url to download the recording


Capacity Considerations
Storage and Retention Calculation
• Storage requirements depend on various factors including:
• U – number of users
• T – call duration (secs)
• D – calls per day
• W – work days/month
• M – months to hold
• Rate – codec write rate (Mb/min)

• S, Storage (Mb) = (U * T * D * W * M * Rate) / 60


• M, Retention (in months) = (S * 60) / (U * T * D * W * Rate)
Examples
• Example 2
• Example 1
– U – 500 users
• U – 500 users
– T – 180 secs
• T – 180 secs
– D – 60 calls/day
• D – 60 calls/day
– W – 21 days/month
• W – 21 days/month
– S – 60 Tb
• M – 24 months
– Codec = G711, rate = 1Mb/min
• Codec = G711, rate = 1Mb/min

• M, Retention (in months)


• Storage = U * T * D * W * M * rate/60
– = (S * 60)/ (U * T * D * W * Rate)
• = 500 * 180 * 60 * 21 * 24 * 1 / 60
– = (60 * 1024 * 1024 * 60) / (500 * 180 * 60 * 21 * 1)
• = 45360000 Mb
– = 33 months
• = 43 Tb
Sizing Tool https://communities.cisco.com/docs/DOC-52563
Capacity management between SIP, RTSP, API requests
Hardware limits are enforced:

Max Media Capacity = Recording + Playback + Raw Download + Live Monitor + Export
Recording has extra headroom to accommodate spikes
Recording capacity is shared across nodes in a cluster
Other media functions are on a per-node basis

Max Query Capacity = 15 concurrent operations


Per Primary / Secondary
Developer Resources
Cisco MediaSense DevNet
• Documentation
• Code Samples
• Discussion Board
• Announcements
MediaSense Sample Applications
• Client Tool
• Command-line Java app
• Select and export content
• Single-session or bulk usage
• Exercise MediaSense APIs

• Email App
• Send a recording once a session ends
• Demonstrates use of events to monitor session activity
Sample: Client Tool
• Command-line Java application
• Exercise MediaSense APIs – use for troubleshooting
• Select and export content
• Single-session or bulk usage
• Code sample for basic functions
Sample: Email Application
• Send URI of recording session to email recipients upon end-of-session
• Demonstrates use of events to monitor a session
• Useful with on-demand and full-time recording
• Simple static configuration via XML

main/resources/conf/Config.xml
Documentation and
Resources
Further information
• Cisco MediaSense
• http://www.cisco.com/go/mediasense

• Cisco Community Central


• https://www.myciscocommunity.com/docs/DOC-19785

• Cisco DevNet
• https://developer.cisco.com/web/mediasense
Call to Action
• Visit the World of Solutions for
• Cisco Campus
• Walk in Labs
• Technical Solution Clinics

• Meet the Engineer


• Lunch and Learn Topics
• DevNet zone related sessions
Complete Your Online Session Evaluation
• Please complete your online session
evaluations after each session.
Complete 4 session evaluations
& the Overall Conference Evaluation
(available from Thursday)
to receive your Cisco Live T-shirt.

• All surveys can be completed via


the Cisco Live Mobile App or the
Communication Stations
Thank you

You might also like