From 641ca0f3ed2cc0068f8686c2a4ef6e0a154c15dd Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 17 Mar 2023 10:04:35 -0400 Subject: [PATCH] MT#56447 support "plain" Janus offers Non-standard extension which is useful for testing. Change-Id: Ice0eca1d68c72dbf13f6a1537c51bad3815fa459 --- daemon/janus.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/daemon/janus.c b/daemon/janus.c index e3ac6d038..66979baa3 100644 --- a/daemon/janus.c +++ b/daemon/janus.c @@ -461,6 +461,11 @@ static const char *janus_videoroom_join(struct websocket_message *wm, struct jan return "JSON object does not contain 'message.ptype' key"; json_reader_end_member(reader); + bool plain_offer = false; + if (json_reader_read_member(reader, "plain")) + plain_offer = json_reader_get_boolean_value(reader); + json_reader_end_member(reader); + *retcode = 436; if (handle->room != 0 && handle->room != room_id) return "User already exists in a different room"; @@ -575,17 +580,25 @@ static const char *janus_videoroom_join(struct websocket_message *wm, struct jan AUTO_CLEANUP(struct sdp_ng_flags flags, call_ng_free_flags); call_ng_flags_init(&flags, OP_REQUEST); - // set all WebRTC-specific attributes - flags.transport_protocol = &transport_protocols[PROTO_UDP_TLS_RTP_SAVPF]; - flags.ice_option = ICE_FORCE; - flags.trickle_ice = 1; flags.generate_mid = 1; - flags.rtcp_mux_offer = 1; - flags.rtcp_mux_require = 1; - flags.no_rtcp_attr = 1; - flags.sdes_off = 1; flags.rtcp_mirror = 1; + if (!plain_offer) { + // set all WebRTC-specific attributes + flags.transport_protocol = &transport_protocols[PROTO_UDP_TLS_RTP_SAVPF]; + flags.ice_option = ICE_FORCE; + flags.trickle_ice = 1; + flags.rtcp_mux_offer = 1; + flags.rtcp_mux_require = 1; + flags.no_rtcp_attr = 1; + flags.sdes_off = 1; + } + else { + flags.transport_protocol = &transport_protocols[PROTO_RTP_AVP]; + flags.ice_option = ICE_REMOVE; + flags.rtcp_mux_demux = 1; + } + int ret = monologue_subscribe_request(&srcs, dest_ml, &flags); if (ret) return "Subscribe error";