aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdino/src/service/calls.vala6
-rw-r--r--xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala8
2 files changed, 14 insertions, 0 deletions
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(