events: Move CalCapabilities behind feature unstable-msc2747
This commit is contained in:
parent
77454b70e9
commit
6df78e8aee
@ -32,6 +32,7 @@ unstable-msc1767 = []
|
||||
unstable-msc2448 = []
|
||||
unstable-msc2677 = []
|
||||
unstable-msc2746 = []
|
||||
unstable-msc2747 = []
|
||||
unstable-msc2870 = []
|
||||
unstable-msc3245 = ["unstable-msc3246"]
|
||||
unstable-msc3246 = ["unstable-msc3927"]
|
||||
|
@ -107,7 +107,7 @@ impl OfferSessionDescription {
|
||||
}
|
||||
|
||||
/// The capabilities of a client in a VoIP call.
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
|
||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
||||
pub struct CallCapabilities {
|
||||
@ -120,7 +120,7 @@ pub struct CallCapabilities {
|
||||
pub dtmf: bool,
|
||||
}
|
||||
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
impl CallCapabilities {
|
||||
/// Creates a default `CallCapabilities`.
|
||||
pub fn new() -> Self {
|
||||
|
@ -6,7 +6,7 @@ use ruma_macros::EventContent;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::AnswerSessionDescription;
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
use super::CallCapabilities;
|
||||
use crate::{OwnedVoipId, VoipVersionId};
|
||||
|
||||
@ -31,8 +31,8 @@ pub struct CallAnswerEventContent {
|
||||
/// The version of the VoIP specification this messages adheres to.
|
||||
pub version: VoipVersionId,
|
||||
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
/// **Added in VoIP version 1.** The VoIP capabilities of the client.
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
/// The VoIP capabilities of the client.
|
||||
#[serde(default, skip_serializing_if = "CallCapabilities::is_default")]
|
||||
pub capabilities: CallCapabilities,
|
||||
}
|
||||
@ -50,7 +50,7 @@ impl CallAnswerEventContent {
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
party_id: None,
|
||||
version,
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
capabilities: Default::default(),
|
||||
}
|
||||
}
|
||||
@ -68,8 +68,14 @@ impl CallAnswerEventContent {
|
||||
answer: AnswerSessionDescription,
|
||||
call_id: OwnedVoipId,
|
||||
party_id: OwnedVoipId,
|
||||
capabilities: CallCapabilities,
|
||||
) -> Self {
|
||||
Self { answer, call_id, party_id: Some(party_id), version: VoipVersionId::V1, capabilities }
|
||||
Self {
|
||||
answer,
|
||||
call_id,
|
||||
party_id: Some(party_id),
|
||||
version: VoipVersionId::V1,
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
capabilities: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ use js_int::UInt;
|
||||
use ruma_macros::EventContent;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
use super::CallCapabilities;
|
||||
use super::OfferSessionDescription;
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
@ -40,8 +40,8 @@ pub struct CallInviteEventContent {
|
||||
/// The version of the VoIP specification this messages adheres to.
|
||||
pub version: VoipVersionId,
|
||||
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
/// **Added in VoIP version 1.** The VoIP capabilities of the client.
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
/// The VoIP capabilities of the client.
|
||||
#[serde(default, skip_serializing_if = "CallCapabilities::is_default")]
|
||||
pub capabilities: CallCapabilities,
|
||||
|
||||
@ -71,7 +71,7 @@ impl CallInviteEventContent {
|
||||
lifetime,
|
||||
offer,
|
||||
version,
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
capabilities: Default::default(),
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
invitee: None,
|
||||
@ -92,7 +92,6 @@ impl CallInviteEventContent {
|
||||
party_id: OwnedVoipId,
|
||||
lifetime: UInt,
|
||||
offer: OfferSessionDescription,
|
||||
capabilities: CallCapabilities,
|
||||
) -> Self {
|
||||
Self {
|
||||
call_id,
|
||||
@ -100,7 +99,8 @@ impl CallInviteEventContent {
|
||||
lifetime,
|
||||
offer,
|
||||
version: VoipVersionId::V1,
|
||||
capabilities,
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
capabilities: Default::default(),
|
||||
invitee: None,
|
||||
}
|
||||
}
|
||||
|
@ -188,8 +188,11 @@ fn hangup_content_serialization() {
|
||||
#[cfg(feature = "unstable-msc2746")]
|
||||
mod msc2746 {
|
||||
use assert_matches::assert_matches;
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
use assign::assign;
|
||||
use js_int::uint;
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
use ruma_common::events::call::CallCapabilities;
|
||||
use ruma_common::{
|
||||
events::{
|
||||
call::{
|
||||
@ -200,8 +203,8 @@ mod msc2746 {
|
||||
negotiate::CallNegotiateEventContent,
|
||||
reject::CallRejectEventContent,
|
||||
select_answer::CallSelectAnswerEventContent,
|
||||
AnswerSessionDescription, CallCapabilities, OfferSessionDescription,
|
||||
SessionDescription, SessionDescriptionType,
|
||||
AnswerSessionDescription, OfferSessionDescription, SessionDescription,
|
||||
SessionDescriptionType,
|
||||
},
|
||||
AnyMessageLikeEvent, MessageLikeEvent,
|
||||
},
|
||||
@ -216,7 +219,6 @@ mod msc2746 {
|
||||
"9876".into(),
|
||||
uint!(60000),
|
||||
OfferSessionDescription::new("not a real sdp".to_owned()),
|
||||
CallCapabilities::new(),
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
@ -265,7 +267,6 @@ mod msc2746 {
|
||||
assert_eq!(content.lifetime, uint!(60000));
|
||||
assert_eq!(content.version, VoipVersionId::V1);
|
||||
assert_eq!(content.offer.sdp, "not a real sdp");
|
||||
assert!(!content.capabilities.dtmf);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -274,7 +275,34 @@ mod msc2746 {
|
||||
AnswerSessionDescription::new("not a real sdp".to_owned()),
|
||||
"abcdef".into(),
|
||||
"9876".into(),
|
||||
assign!(CallCapabilities::new(), { dtmf: true }),
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
to_json_value(&content).unwrap(),
|
||||
json!({
|
||||
"call_id": "abcdef",
|
||||
"party_id": "9876",
|
||||
"version": "1",
|
||||
"answer": {
|
||||
"type": "answer",
|
||||
"sdp": "not a real sdp",
|
||||
},
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
#[test]
|
||||
fn answer_event_capabilities_serialization() {
|
||||
let content = assign!(
|
||||
CallAnswerEventContent::version_1(
|
||||
AnswerSessionDescription::new("not a real sdp".to_owned()),
|
||||
"abcdef".into(),
|
||||
"9876".into()
|
||||
),
|
||||
{
|
||||
capabilities: assign!(CallCapabilities::new(), { dtmf: true }),
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
@ -326,6 +354,7 @@ mod msc2746 {
|
||||
assert_eq!(content.party_id.unwrap(), "9876");
|
||||
assert_eq!(content.version.as_ref(), "org.matrix.1b");
|
||||
assert_eq!(content.answer.sdp, "not a real sdp");
|
||||
#[cfg(feature = "unstable-msc2747")]
|
||||
assert!(content.capabilities.dtmf);
|
||||
}
|
||||
|
||||
|
@ -162,6 +162,7 @@ unstable-msc2677 = [
|
||||
"ruma-common/unstable-msc2677",
|
||||
]
|
||||
unstable-msc2746 = ["ruma-common/unstable-msc2746"]
|
||||
unstable-msc2747 = ["ruma-common/unstable-msc2747"]
|
||||
unstable-msc2870 = ["ruma-common/unstable-msc2870"]
|
||||
unstable-msc2965 = ["ruma-client-api?/unstable-msc2965"]
|
||||
unstable-msc2967 = ["ruma-client-api?/unstable-msc2967"]
|
||||
@ -209,6 +210,7 @@ __ci = [
|
||||
"unstable-msc2666",
|
||||
"unstable-msc2677",
|
||||
"unstable-msc2746",
|
||||
"unstable-msc2747",
|
||||
"unstable-msc2870",
|
||||
"unstable-msc2965",
|
||||
"unstable-msc2967",
|
||||
|
Loading…
x
Reference in New Issue
Block a user