--- type: object description: | If the `m.call.invite` event has `version` `"1"`, a client wishing to reject the call sends an `m.call.reject` event. This rejects the call on all devices, but if the calling device sees an `answer` before the `reject`, it disregards the reject event and carries on. The reject has a `party_id` just like an answer, and the caller sends a `select_answer` for it just like an answer. If another client had already sent an answer and sees the caller select the reject response instead of its answer, it ends the call. If the `m.call.invite` event has `version` `0`, the callee sends an `m.call.hangup` event. If the calling user chooses to end the call before setup is complete, the client sends `m.call.hangup` as previously. The meanings of the `reason` codes are the same as in [`m.call.hangup`](#mcallhangup). allOf: - "$ref": core-event-schema/room_event.yaml properties: content: type: object properties: call_id: type: string description: The ID of the call this event relates to. version: type: string description: The version of the VoIP specification this message adheres to. This specification is version 1. This field is a string such that experimental implementations can use non-integer versions. This field was an integer in the previous spec version and implementations must accept an integer 0. party_id: type: string description: 'This identifies the party that sent this event. A client may choose to re-use the device ID from end-to-end cryptography for the value of this field. ' reason: type: string description: Reason for the hangup. Note that this was optional in previous previous versions of the spec, so a missing value should be treated as `user_hangup`. enum: - ice_timeout - ice_failed - invite_timeout - user_hangup - user_media_failed - user_busy - unknown_error required: - call_id - version - party_id type: type: string enum: - m.call.reject