{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/api-search/cisco-voice-portal/json-schema/cisco-voice-portal-call-detail-record.json", "title": "Cisco Voice Portal Call Detail Record", "description": "Schema for a CVP Call Detail Record (CDR). CDRs capture comprehensive information about each call processed by the Cisco Unified Customer Voice Portal, including call timing, routing decisions, application interactions, ECC variables, and final disposition. CDR data is stored in the CVP Reporting Database.", "type": "object", "properties": { "callGuid": { "type": "string", "description": "Globally unique identifier for the call, generated by the CVP Call Server when the call is received" }, "callStartTime": { "type": "string", "format": "date-time", "description": "Timestamp when the call was received by CVP" }, "callEndTime": { "type": "string", "format": "date-time", "description": "Timestamp when the call ended" }, "callingNumber": { "type": "string", "description": "Caller ANI (Automatic Number Identification) - the originating phone number" }, "calledNumber": { "type": "string", "description": "Called DNIS (Dialed Number Identification Service) - the number dialed by the caller" }, "callResult": { "type": "string", "enum": ["completed", "abandoned", "transferred", "error"], "description": "Final outcome of the call" }, "callDuration": { "type": "integer", "minimum": 0, "description": "Total call duration in seconds" }, "selfServiceDuration": { "type": "integer", "minimum": 0, "description": "Duration spent in self-service IVR in seconds" }, "queueDuration": { "type": "integer", "minimum": 0, "description": "Duration spent in queue waiting for an agent in seconds" }, "applicationName": { "type": "string", "description": "Name of the VXML application that handled the call" }, "callServerHostname": { "type": "string", "description": "Hostname of the Call Server that processed the call" }, "vxmlServerHostname": { "type": "string", "description": "Hostname of the VXML Server that executed the application" }, "sipCallId": { "type": "string", "description": "SIP Call-ID header value from the initial INVITE" }, "icmCallKey": { "type": "string", "description": "ICM/UCCE call key for correlating with contact center records" }, "eccVariables": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Expanded Call Context (ECC) variables set during the call" }, "callVariables": { "type": "object", "properties": { "callVariable1": { "type": "string" }, "callVariable2": { "type": "string" }, "callVariable3": { "type": "string" }, "callVariable4": { "type": "string" }, "callVariable5": { "type": "string" }, "callVariable6": { "type": "string" }, "callVariable7": { "type": "string" }, "callVariable8": { "type": "string" }, "callVariable9": { "type": "string" }, "callVariable10": { "type": "string" } }, "description": "ICM call variables (1-10)" }, "peripheralVariables": { "type": "object", "properties": { "peripheral1": { "type": "string" }, "peripheral2": { "type": "string" }, "peripheral3": { "type": "string" }, "peripheral4": { "type": "string" }, "peripheral5": { "type": "string" }, "peripheral6": { "type": "string" }, "peripheral7": { "type": "string" }, "peripheral8": { "type": "string" }, "peripheral9": { "type": "string" }, "peripheral10": { "type": "string" } }, "description": "ICM peripheral variables (1-10)" }, "transferDestination": { "type": ["string", "null"], "description": "Transfer destination number if the call was transferred" }, "errorCode": { "type": ["string", "null"], "description": "Error code if the call ended in error" }, "callLegs": { "type": "array", "items": { "$ref": "#/$defs/CallLeg" }, "description": "Individual call legs that make up this call" } }, "required": ["callGuid", "callStartTime", "callingNumber", "calledNumber"], "$defs": { "CallLeg": { "type": "object", "properties": { "legId": { "type": "string", "description": "Unique identifier for this call leg" }, "legType": { "type": "string", "enum": ["inbound", "outbound", "transfer", "conference"], "description": "Type of call leg" }, "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time" }, "duration": { "type": "integer", "minimum": 0, "description": "Leg duration in seconds" }, "fromUri": { "type": "string", "description": "SIP From URI" }, "toUri": { "type": "string", "description": "SIP To URI" }, "serverHostname": { "type": "string" }, "sipResponseCode": { "type": "integer", "description": "Final SIP response code for this leg" } }, "required": ["legId", "legType", "startTime"] } } }