{
    "type": "object",
    "description": "This event is sent by the caller when they wish to establish a call.",
    "allOf": [{
        "$ref": "core-event-schema/room_event.yaml"
    }],
    "properties": {
        "content": {
            "type": "object",
            "properties": {
                "call_id": {
                    "type": "string",
                    "description": "A unique identifier for the call."
                },
                "offer": {
                    "type": "object",
                    "title": "Offer",
                    "description": "The session description object",
                    "properties": {
                        "type": {
                            "type": "string",
                            "enum": ["offer"],
                            "description": "The type of session description."
                        },
                        "sdp": {
                            "type": "string",
                            "description": "The SDP text of the session description."
                        }
                    },
                    "required": ["type", "sdp"]
                },
                "version": {
                    "type": "integer",
                    "description": "The version of the VoIP specification this message adheres to. This specification is version 0."
                },
                "lifetime": {
                    "type": "integer",
                    "description": "The time in milliseconds that the invite is valid for. Once the invite age exceeds this value, clients should discard it. They should also no longer show the call as awaiting an answer in the UI."
                }
            },
            "required": ["call_id", "offer", "version", "lifetime"]
        },
        "type": {
            "type": "string",
            "enum": ["m.call.invite"]
        }
    }
}
