forked from finos/voice-metadata-standard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
callmetadata.schema.json
184 lines (184 loc) · 7.17 KB
/
callmetadata.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://finos.org/schemas/callmetadata.json",
"title": "Call Metadata Standard",
"description": "Meta data supporting dialtone, ringdown, and shoutdown calls",
"type": "object",
"definitions": {
"participant": {
"type": "object",
"description": "Specific details about the farEndUsers (the other end of the call)",
"properties": {
"firmName": {
"type": "string",
"example": "XYZ Firm",
"description": "Name of the farEnd firm on the call. If an internal call, the firmName can match the nearEnd firm"
},
"groupId": {
"type": "integer",
"example": 235,
"description": "The internal ID used by consumer for the farEnd group. This will never change for the connection"
},
"groupName": {
"type": "string",
"example": "Energy Desk",
"description": "Name of the farEnd group for the call. It may changed by the farEnd Firm"
},
"farEndName": {
"type": "string",
"example": "Steve Jones",
"description": "The name (first and last) of the farEnd User on the call"
}
}
},
"callRecord": {
"type": "object",
"properties": {
"universalCallID": {
"type": "string",
"example": "fd5cee0fe0184142a4397c92cb71f73620170508224148",
"description": "Unique call ID for this call record. Will be unique across all Calls"
},
"connectionId": {
"type": "string",
"example": "sPK-20160517-163234",
"description": "Identifier for the connection"
},
"groupId": {
"type": "integer",
"example": 365,
"description": "The internal ID used for the group by the consumer. This will never change for the connection"
},
"groupName": {
"type": "string",
"example": "Nat Gas Desk",
"description": "Name of the group for the call. It may changed by the nearEnd Firm"
},
"buttonName": {
"type": "string",
"example": "XYZ Energy",
"description": "The name on the consuming app for the connection"
},
"offset": {
"type": "string",
"example": "00:00:20",
"description": "For shoutdowns, the offset in the recording for this call. Shoutdown recordings may include more than one call Record"
},
"duration": {
"type": "integer",
"example": 35,
"description": "The duration of the call in seconds"
},
"startTime": {
"type": "string",
"format": "date-time",
"example": "2016-06-18T07:50:30Z",
"description": "The time when the call started"
},
"stopTime": {
"type": "string",
"format": "date-time",
"example": "2016-06-18T08:05:15Z",
"description": "The time when the call terminated"
},
"participants": {
"type": "array",
"items": {
"$ref": "#/definitions/participant"
},
"default": []
}
}
}
},
"properties": {
"callRecordType": {
"type": "string",
"enum": [
"Shoutdown",
"Ringdown",
"Dialtone"
],
"description": "The type of call that was made (dialtone, ringdown, shoutdown, etc)"
},
"audioInterface": {
"type": "string",
"enum": [
"left handset",
"microphone",
"right handset"
],
"description": "The device as used to handle the call"
},
"callStartTime": {
"type": "string",
"format": "date-time",
"description": "Start time of the call in ISO 8601 UTC time time format",
"example": "2016-06-18T07:50:30Z"
},
"callDirection": {
"type": "string",
"enum": [
"outgoing",
"incoming"
],
"description": "Direction of call establishment",
"example": "outgoing"
},
"deviceInfo": {
"type": "object",
"description": "Information about the device that generated this call record",
"properties": {
"deviceID": {
"type": "string",
"description": "Identifier for the device",
"example": "turret1"
}
}
},
"userInfo": {
"type": "object",
"description": "Information about the user who generated this call record",
"properties": {
"userName": {
"type": "string",
"description": "The username he used on this system",
"example": "johnsmith"
},
"firmName": {
"type": "string",
"example": "ABC Trading",
"description": "Company name of the user who generated the call"
},
"timeZoneOffset": {
"type": "string",
"example": "UTC -05:00:00",
"description": "The UTC timezone offset for the user"
}
}
},
"recordingFile": {
"type": "object",
"description": "Information about the recording associated with the call record",
"properties": {
"fileName": {
"type": "string",
"example": "sPK-20160517-163415-johnsmith-1165020038-1.m4a",
"description": "The name of the recording file as stored by Cloud9"
},
"md5Checksum": {
"type": "string",
"example": "14DCA74CB34502CA919966F31FBB8B0D",
"description": "An MD5 hash of the recording file which is created when recorded and when stored in the S3 repository. The hash values are compared and, if they match, confirms that the data has not been altered."
}
}
},
"callRecords": {
"type": "array",
"items": {
"$ref": "#/definitions/callRecord"
},
"default": []
}
}
}