Copyright 2019 ETSI Copyright 2023 ETSI
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: modification, are permitted provided that the following conditions are met:
......
# JSON Schema # JSON Schema
## General ## General
The following lists SIP Events and Web Services as defined in [ETSI TS 103 479](https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=50130) and provides links to JSON schema files describing respective request and response bodies. You may refer to [EMTEL](http://www.emtel.etsi.org/) for further information. The following lists SIP Events and Web Services as defined in [ETSI TS 103 479](https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=61888) and provides links to JSON schema files describing respective request and response bodies. You may refer to [EMTEL](http://www.emtel.etsi.org/) for further information.
## SIP Events ## SIP Events
### QueueState ### QueueState
QueueState is an event that indicates to an upstream entity the state of a queue. For the message body JSON schema (MIME type application/vnd.emergency.queuestate+json) refer to [queuestate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/queuestate.json) QueueState is an event that indicates to an upstream entity the state of a queue. For the message body JSON schema (MIME type application/vnd.emergency.queuestate+json) refer to [queuestate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/queuestate.json)
### AbandonedCall ### AbandonedCall
AbandonedCall is an event to notify a PSAP that a call was started, but then canceled prior to the PSAP knowing the call occurred. For the message body JSON schema (MIME type application/vnd.emergency.abandonedcall+json) refer to [abandonedcall.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/abandonedcall.json) AbandonedCall is an event to notify a PSAP that a call was started, but then canceled prior to the PSAP knowing the call occurred. For the message body JSON schema (MIME type application/vnd.emergency.abandonedcall+json) refer to [abandonedcall.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/abandonedcall.json)
### SecurityPosture ### SecurityPosture
SecurityPosture is an event that represents a downstream entity's current security state. For the message body JSON schema MIME type application/vnd.emergency.securityposture+json) refer to [securityposture.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/securityposture.json) SecurityPosture is an event that represents a downstream entity's current security state. For the message body JSON schema MIME type application/vnd.emergency.securityposture+json) refer to [securityposture.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/securityposture.json)
### ElementState ### ElementState
ElementState is an event that indicates the state of an element either automatically determined, or as determined by management. For the message body JSON schema (MIME type application/vnd.emergency.elementstate+json) refer to [elementstate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/elementstate.json) ElementState is an event that indicates the state of an element either automatically determined, or as determined by management. For the message body JSON schema (MIME type application/vnd.emergency.elementstate+json) refer to [elementstate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/elementstate.json)
### ServiceState ### ServiceState
ServiceState is an event that indicates the state of service either automatically determined, or as determined by management. For the message body JSON schema (MIME type application/vnd.emergency.servicestate+json) refer to [servicestate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/servicestate.json) ServiceState is an event that indicates the state of service either automatically determined, or as determined by management. For the message body JSON schema (MIME type application/vnd.emergency.servicestate+json) refer to [servicestate.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/servicestate.json)
## Web Services ## Web Services
### Dequeue Registration ### Dequeue Registration
Dequeue Registration is a web service whereby the registering entity becomes one of the dequeuing entities. For the request/response message body JSON schema (MIME type application/json) refer to [dqregrequest.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/dqregrequest.json) and [dqregresponse.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/dqregresponse.json) Dequeue Registration is a web service whereby the registering entity becomes one of the dequeuing entities. For the request/response message body JSON schema (MIME type application/json) refer to [dqregrequest.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/dqregrequest.json) and [dqregresponse.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/dqregresponse.json)
### BadActor ### BadActor
BadActor is a web service to signal the BCF which source is misbehaving. For the request/response message body JSON schema (MIME type application/json) refer to [badactrequest.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/badactrequest.json) and [badactresponse.json](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/badactresponse.json) BadActor is a web service to signal the BCF which source is misbehaving. For the request/response message body JSON schema (MIME type application/json) refer to [badactor.yml](https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/badactor.yml)
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/abandonedcall.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/abandonedcall.json",
"type": "object", "type": "object",
"title": "AbandonedCall", "title": "Abandoned call NOTIFY",
"description": "AbandonedCall event notification", "description": "AbandonedCall event notification",
"required": [ "required": [
"Invite", "abandonedCall"
"InviteTimestamp", ],
"CancelTimestamp" "properties": {
], "abandonedCall": {
"properties": { "type": "object",
"Invite": { "required": [
"type": "string", "invite",
"description": "Content of INVITE message" "inviteTimestamp",
}, "cancelTimestamp"
"InviteTimestamp": { ],
"type": "string", "properties": {
"description": "Timestamp call was received at ESRP" "invite": {
}, "type": "string",
"CancelTimestamp": { "description": "Content of INVITE message"
"type": "string", },
"description": "Timestamp CANCEL was received at ESRP" "inviteTimestamp": {
} "type": "string",
} "description": "Timestamp call was received at ESRP"
},
"cancelTimestamp": {
"type": "string",
"description": "Timestamp CANCEL was received at ESRP"
}
}
}
}
} }
\ No newline at end of file
---
openapi: 3.0.1
info:
title: Bad Actor Service
version: "1.0"
contact:
name: ETSI TC EMTEL
url: https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/badactor.yml
servers:
- url: http://localhost/BadActor/v1
paths:
/BadActors:
post:
tags:
- BadActorRequest
summary: Identifies a source as a "Bad Actor"
operationId: BadActorRequest
requestBody:
description: Bad actor source Id
content:
application/json:
schema:
type: string
required: true
responses:
"201":
description: Bad Actor successfully added
"401":
description: Unauthorized
"432":
description: Already reported
"433":
description: No such sourceId
"454":
description: Unspecified Error
/Versions:
servers:
- url: https://api.example.com/BadActor
description: Override base path for Versions query
get:
tags:
- RetrieveVersions
summary: Retrieves all supported versions, vendor parameter is optional.
operationId: RetrieveVersions
responses:
"200":
description: Versions found
content:
application/json:
schema:
$ref: i3-common.yaml#/components/schemas/VersionsArray
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/badactrequest.json",
"type": "object",
"title": "BadActor Request",
"description": "BadActor is a web service to signal the BCF which source is misbehaving",
"required": [
"BadActorSourceId"
],
"properties": {
"BadActorSourceId": {
"type": "string",
"description": "sourceid from the source parameter that was included in the incoming SIP message"
}
}
}
\ No newline at end of file
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/badactresponse.json",
"type": "object",
"title": "BadActor Response",
"description": "BadActor is a web service to signal the BCF which source is misbehaving",
"required": [
"BadActorStatusCode"
],
"properties": {
"BadActorStatusCode": {
"type": "integer",
"description": "Status Code"
}
}
}
\ No newline at end of file
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/dqregrequest.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/dqregrequest.json",
"type": "object", "type": "object",
"title": "DequeueRegistration Request", "title": "DequeueRegistration Request",
"description": "Dequeue registration is a web service whereby the registering entity becomes one of the dequeuing entities", "description": "Dequeue registration is a web service whereby the registering entity becomes one of the dequeuing entities",
"required": [ "required": [
"DequeueRegistrationQueueUri", "queueUri",
"DequeueRegistrationDequeuer", "dequeuerUri",
"DequeueRegistrationExpirationTime" "expirationTime"
], ],
"properties": { "properties": {
"DequeueRegistrationQueueUri": { "queueUri": {
"type": "string", "type": "string",
"description": "SIP URI of queue to register on" "description": "SIP URI of queue to register on"
}, },
"DequeueRegistrationDequeuer": { "dequeuerUri": {
"type": "string", "type": "string",
"description": "SIP URI of dequeuer (where to send calls)" "description": "SIP URI of dequeuer (where to send calls)"
}, },
"DequeueRegistrationExpirationTime": { "expirationTime": {
"type": "integer", "type": "integer",
"description": "Requested time in seconds this registration will expire" "description": "Requested time in seconds this registration will expire"
}, },
"DequeueRegistrationDequeuePreference": { "dequeuePreference": {
"type": "integer", "type": "integer",
"description": "Integer from 1-5 indicating queuing preference; 5 indicating highest preference", "description": "Integer from 1-5 indicating queuing preference; 5 indicating highest preference",
"minimum": 1, "minimum": 1,
"maximum": 1 "maximum": 5
} }
} }
} }
\ No newline at end of file
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/dqregresponse.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/dqregresponse.json",
"title": "DequeueRegistration Response", "title": "DequeueRegistration Response",
"description": "Dequeue registration is a web service whereby the registering entity becomes one of the dequeuing entities", "description": "Dequeue registration is a web service whereby the registering entity becomes one of the dequeuing entities",
"type": "object", "type": "object",
"properties": { "required": [
"DequeueRegistrationExpirationTime": { "expirationTime"
"description": "Time in seconds this registration will expire", ],
"type": "integer" "properties": {
}, "expirationTime": {
"DequeueRegistrationStatusCode": { "description": "Time in seconds this registration will expire",
"description": "Status Code", "type": "integer"
"type": "integer" }
} }
},
"required": [ "DequeueRegistrationExpirationTime", "DequeueRegistrationStatusCode" ]
} }
\ No newline at end of file
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/elementstate.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/elementstate.json",
"type": "object", "type": "object",
"title": "ElementState", "title": "ElementState",
"description": "ElementState event notification", "description": "ElementState event notification",
"required": [ "required": [
"State" "elementState"
], ],
"properties": { "properties": {
"State": { "elementState": {
"type": "string", "type": "object",
"enum": [ "required": [
"normal", "elementId",
"sheduledMaintenance", "state",
"serviceDisruption", "reason"
"overloaded", ],
"goingDown", "properties": {
"down" "elementId": {
], "type": "string"
"description": "Enumeration of current element state" },
}, "state": {
"Reason": { "type": "string",
"type": "string", "enum": [
"description": "Text containing the reason state was changed, if available" "normal",
} "sheduledMaintenance",
} "serviceDisruption",
"overloaded",
"goingDown",
"down"
],
"description": "Enumeration of current element state"
},
"reason": {
"type": "string"
}
}
}
}
} }
\ No newline at end of file
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/queuestate.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/queuestate.json",
"type": "object", "type": "object",
"title": "QueueState", "title": "QueueState",
"description": "QueueState event notification", "description": "QueueState event notification",
"required": [ "required": [
"QueueStateEventUri", "queueState"
"QueueStateEventQueueLength", ],
"QueueStateEventMaxLength", "properties": {
"QueueStateValuesCode" "queueState": {
], "type": "object",
"properties": { "required": [
"QueueStateEventUri": { "queueUri",
"type": "string", "queueLength",
"description": "The SIP URI of the queue" "queueMaxLength",
}, "state"
"QueueStateEventQueueLength": { ],
"type": "integer", "properties": {
"description": "Indicating current number of calls on the queue", "queueUri": {
"minimum": 0 "type": "string",
}, "description": "The SIP URI of the queue"
"QueueStateEventMaxLength": { },
"type": "integer", "queueLength": {
"description": "Integer indicating maximum length of queue", "type": "integer",
"minimum": 0 "description": "Indicating current number of calls on the queue",
}, "minimum": 0
"QueueStateValuesCode": { },
"type": "string", "queueMaxLength": {
"enum": [ "type": "integer",
"active", "description": "Integer indicating maximum length of queue",
"inactive", "minimum": 0
"disabled", },
"full", "state": {
"standby" "type": "string",
], "enum": [
"description": "Enumeration of current queue state (e.g., Active/Inactive/Disabled)" "active",
} "inactive",
} "disabled",
} "full",
"standby"
],
"description": "Enumeration of current queue state (e.g., active/inactive/disabled)"
}
}
}
}
}
\ No newline at end of file
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/securityposture.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/securityposture.json",
"type": "object", "type": "object",
"title": "SecurityPosture", "title": "SecurityPosture",
"description": "SecurityPosture event notification", "description": "SecurityPosture event notification",
"required": [ "required": [
"Posture" "service",
], "securityPosture"
"properties": { ],
"Posture": { "properties": {
"type": "string", "service": {
"enum": [ "type": "object",
"green", "required": [
"yellow", "name",
"orange", "domain"
"red" ],
], "properties": {
"description": "Enumeration of current security posture" "name": {
} "type": "string"
} },
"domain": {
"type": "string"
}
}
},
"securityPosture": {
"type": "object",
"required": [
"posture"
],
"properties": {
"posture": {
"type": "string",
"enum": [
"green",
"yellow",
"orange",
"red"
],
"description": "Enumeration of current security posture"
}
}
}
}
} }
\ No newline at end of file
{ {
"definitions": {}, "definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.1.1/servicestate.json", "$id": "https://forge.etsi.org/rep/emtel/ts-103-479/json-schema/blob/v1.2.1/servicestate.json",
"type": "object", "type": "object",
"title": "ServiceState", "title": "ServiceState",
"description": "ServiceState event notification", "description": "ServiceState event notification",
"required": [ "required": [
"Service", "service",
"State" "serviceState"
], ],
"properties": { "properties": {
"Service": { "service": {
"type": "string", "type": "object",
"description": "Name of the service" "required": [
}, "name",
"State": { "domain"
"type": "string", ],
"enum": [ "properties": {
"normal", "name": {
"unmanned", "type": "string"
"sheduledMaintenance(down)", },
"sheduledMaintenance(available)", "domain": {
"majorIncidentInProgress", "type": "string"
"partialService", }
"overloaded", }
"goingDown", },
"down" "serviceState": {
], "type": "object",
"description": "Enumeration of current service state" "required": [
}, "state",
"Reason": { "reason"
"type": "string", ],
"description": "Text containing the reason state was changed, if available" "properties": {
} "state": {
} "type": "string",
"enum": [
"normal",
"unmanned",
"sheduledMaintenance(down)",
"sheduledMaintenance(available)",
"majorIncidentInProgress",
"partialService",
"overloaded",
"goingDown",
"down"
],
"description": "Enumeration of current service state"
},
"reason": {
"type": "string",
"description": "Text containing the reason state was changed, if available"
}
}
}
}
} }
\ No newline at end of file