From 369755781e4d4fae2f6d790b93ba824e7e049c33 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sun, 11 Apr 2021 14:33:51 +0200 Subject: [PATCH] Send JMI retract --- libdino/src/service/calls.vala | 6 ++++++ .../src/module/xep/0353_jingle_message_initiation.vala | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/libdino/src/service/calls.vala b/libdino/src/service/calls.vala index d8cb7990..b7374607 100644 --- a/libdino/src/service/calls.vala +++ b/libdino/src/service/calls.vala @@ -136,6 +136,7 @@ namespace Dino { sessions[call].terminate(Xep.Jingle.ReasonElement.CANCEL, null, "cancel"); } else { // Only a JMI so far + stream.get_module(Xep.JingleMessageInitiation.Module.IDENTITY).send_session_retract_to_peer(stream, call.counterpart, jmi_sid[call.account]); } call.state = Call.State.MISSED; } else { @@ -207,6 +208,11 @@ namespace Dino { public void mute_own_video(Call call, bool mute) { we_should_send_video[call] = !mute; + if (!sessions.has_key(call)) { + // Call hasn't been established yet + return; + } + Xep.JingleRtp.Module rtp_module = stream_interactor.module_manager.get_module(call.account, Xep.JingleRtp.Module.IDENTITY); if (video_content_parameter.has_key(call) && diff --git a/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala b/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala index dbb6fd81..08e803a2 100644 --- a/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala +++ b/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala @@ -22,6 +22,14 @@ namespace Xmpp.Xep.JingleMessageInitiation { stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, accepted_message); } + public void send_session_retract_to_peer(XmppStream stream, Jid to, string sid) { + MessageStanza retract_message = new MessageStanza() { to=to }; + retract_message.stanza.put_node( + new StanzaNode.build("retract", NS_URI).add_self_xmlns() + .put_attribute("id", sid, NS_URI)); + stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, retract_message); + } + public void send_session_accept_to_self(XmppStream stream, string sid) { MessageStanza accepted_message = new MessageStanza() { to=Bind.Flag.get_my_jid(stream).bare_jid }; accepted_message.stanza.put_node(