telepathy-rakia: Hangup call on receiving error if can't request receiving
Olivier Crête
tester at kemper.freedesktop.org
Tue May 8 10:03:02 PDT 2012
Module: telepathy-rakia
Branch: master
Commit: e8bc26e300582652b392341569403bf58dcbbd6c
URL: http://cgit.freedesktop.org/telepathy/telepathy-rakia/commit/?id=e8bc26e300582652b392341569403bf58dcbbd6c
Author: Olivier Crête <olivier.crete at collabora.com>
Date: Fri Feb 24 21:41:07 2012 -0500
Hangup call on receiving error if can't request receiving
---
rakia/call-channel.c | 16 ++++++++++++++++
rakia/call-channel.h | 6 ++++++
rakia/call-stream.c | 5 ++++-
3 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/rakia/call-channel.c b/rakia/call-channel.c
index 89b4887..5f9de68 100644
--- a/rakia/call-channel.c
+++ b/rakia/call-channel.c
@@ -677,3 +677,19 @@ rakia_call_channel_is_connected (TpBaseCallChannel *self)
*/
return TRUE;
}
+
+void
+rakia_call_channel_hangup_error (RakiaCallChannel *self,
+ TpCallStateChangeReason reason,
+ const gchar *dbus_reason,
+ const gchar *message)
+{
+ TpHandle self_handle = tp_base_channel_get_self_handle (
+ TP_BASE_CHANNEL (self));
+
+ rakia_call_channel_hangup (TP_BASE_CALL_CHANNEL (self),
+ reason, dbus_reason, message);
+
+ tp_base_call_channel_set_state (TP_BASE_CALL_CHANNEL (self),
+ TP_CALL_STATE_ENDED, self_handle, reason, dbus_reason, message);
+}
diff --git a/rakia/call-channel.h b/rakia/call-channel.h
index a4f7733..06c2eaf 100644
--- a/rakia/call-channel.h
+++ b/rakia/call-channel.h
@@ -60,6 +60,12 @@ GType rakia_call_channel_get_type (void);
(G_TYPE_INSTANCE_GET_CLASS ((obj), \
RAKIA_TYPE_CALL_CHANNEL, RakiaCallChannelClass))
+void
+rakia_call_channel_hangup_error (RakiaCallChannel *self,
+ TpCallStateChangeReason reason,
+ const gchar *dbus_reason,
+ const gchar *message);
+
G_END_DECLS
#endif /* #ifndef __RAKIA_CALL_CHANNEL_H__*/
diff --git a/rakia/call-stream.c b/rakia/call-stream.c
index 4f13849..9337ede 100644
--- a/rakia/call-stream.c
+++ b/rakia/call-stream.c
@@ -306,7 +306,10 @@ rakia_call_stream_report_receiving_failure (TpBaseMediaCallStream *bmcs,
g_object_get (self, "can-request-receiving", &can_request_receiving, NULL);
if (!can_request_receiving)
{
- g_warning ("We should fail the whole call now");
+ /* Failing the whole call because we can't stop receivingt */
+ DEBUG ("Closing channel because of error: %s", message);
+ rakia_call_channel_hangup_error (priv->channel, reason, dbus_reason,
+ message);
return;
}
More information about the telepathy-commits
mailing list