{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"StartEvent": {
"type": "object",
"required": ["event", "sequenceNumber", "start", "extra_headers"],
"properties": {
"event": { "const": "start" },
"sequenceNumber": { "type": "integer", "minimum": 1 },
"start": {
"type": "object",
"required": ["callId", "streamId", "accountId", "tracks", "mediaFormat"],
"properties": {
"callId": { "type": "string", "format": "uuid" },
"streamId": { "type": "string", "format": "uuid" },
"accountId": { "type": "string" },
"tracks": { "type": "array", "items": { "type": "string" } },
"mediaFormat": {
"type": "object",
"required": ["encoding", "sampleRate"],
"properties": {
"encoding": { "type": "string" },
"sampleRate": { "type": "integer" }
}
}
}
},
"extra_headers": { "type": "string" }
}
},
"MediaEvent": {
"type": "object",
"required": ["event", "sequenceNumber", "streamId", "media", "extra_headers"],
"properties": {
"event": { "const": "media" },
"sequenceNumber": { "type": "integer" },
"streamId": { "type": "string", "format": "uuid" },
"media": {
"type": "object",
"required": ["track", "timestamp", "chunk", "payload"],
"properties": {
"track": { "type": "string" },
"timestamp": { "type": "string" },
"chunk": { "type": "integer" },
"payload": { "type": "string", "contentEncoding": "base64" }
}
},
"extra_headers": { "type": "string" }
}
},
"DTMFEvent": {
"type": "object",
"required": ["event", "sequenceNumber", "streamId", "dtmf", "extra_headers"],
"properties": {
"event": { "const": "dtmf" },
"sequenceNumber": { "type": "integer" },
"streamId": { "type": "string", "format": "uuid" },
"dtmf": {
"type": "object",
"required": ["track", "digit", "timestamp"],
"properties": {
"track": { "type": "string" },
"digit": { "type": "string", "pattern": "^[0-9*#A-D]$" },
"timestamp": { "type": "string" }
}
},
"extra_headers": { "type": "string" }
}
},
"PlayedStreamEvent": {
"type": "object",
"required": ["event", "sequenceNumber", "streamId", "name"],
"properties": {
"event": { "const": "playedStream" },
"sequenceNumber": { "type": "integer" },
"streamId": { "type": "string", "format": "uuid" },
"name": { "type": "string" }
}
},
"ClearedAudioEvent": {
"type": "object",
"required": ["event", "sequenceNumber", "streamId"],
"properties": {
"event": { "const": "clearedAudio" },
"sequenceNumber": { "type": "integer" },
"streamId": { "type": "string", "format": "uuid" }
}
},
"PlayAudioEvent": {
"type": "object",
"required": ["event", "media"],
"properties": {
"event": { "const": "playAudio" },
"media": {
"type": "object",
"required": ["contentType", "sampleRate", "payload"],
"properties": {
"contentType": { "type": "string" },
"sampleRate": { "type": "integer" },
"payload": { "type": "string", "contentEncoding": "base64" }
}
}
}
},
"CheckpointEvent": {
"type": "object",
"required": ["event", "streamId", "name"],
"properties": {
"event": { "const": "checkpoint" },
"streamId": { "type": "string", "format": "uuid" },
"name": { "type": "string" }
}
},
"ClearAudioEvent": {
"type": "object",
"required": ["event", "streamId"],
"properties": {
"event": { "const": "clearAudio" },
"streamId": { "type": "string", "format": "uuid" }
}
}
}
}