- dbus_g_proxy_connect_signal (DBUS_G_PROXY (priv->channel), "Closed",
- G_CALLBACK (tp_call_channel_closed_cb), (gpointer) call, NULL);
-
- streamed_iface = tp_chan_get_interface (priv->channel,
- TELEPATHY_CHAN_IFACE_STREAMED_QUARK);
- dbus_g_proxy_connect_signal (streamed_iface, "StreamStateChanged",
- G_CALLBACK (tp_call_stream_state_changed_cb),
- (gpointer) call, NULL);
- dbus_g_proxy_connect_signal (streamed_iface, "StreamDirectionChanged",
- G_CALLBACK (tp_call_stream_direction_changed_cb),
- (gpointer) call, NULL);
- dbus_g_proxy_connect_signal (streamed_iface, "StreamAdded",
- G_CALLBACK (tp_call_stream_added_cb), (gpointer) call, NULL);
- dbus_g_proxy_connect_signal (streamed_iface, "StreamRemoved",
- G_CALLBACK (tp_call_stream_removed_cb), (gpointer) call, NULL);
-
- mc = empathy_mission_control_new ();
- account = mission_control_get_account_for_connection (mc, priv->connection,
- NULL);
- priv->group = empathy_tp_group_new (account, priv->channel);
- g_object_unref (mc);
-
- g_signal_connect (G_OBJECT (priv->group), "member-added",
- G_CALLBACK (tp_call_member_added_cb), (gpointer) call);
- g_signal_connect (G_OBJECT (priv->group), "local-pending",
- G_CALLBACK (tp_call_local_pending_cb), (gpointer) call);
- g_signal_connect (G_OBJECT (priv->group), "remote-pending",
- G_CALLBACK (tp_call_remote_pending_cb), (gpointer) call);
-
- tp_call_start_stream_engine (call);
- /* FIXME: unnecessary for outgoing? */
- tp_call_identify_streams (call);
+ /* Setup streamed media channel */
+ g_signal_connect (priv->channel, "invalidated",
+ G_CALLBACK (tp_call_channel_invalidated_cb), call);
+ tp_cli_channel_type_streamed_media_connect_to_stream_added (priv->channel,
+ tp_call_stream_added_cb, NULL, NULL, G_OBJECT (call), NULL);
+ tp_cli_channel_type_streamed_media_connect_to_stream_removed (priv->channel,
+ tp_call_stream_removed_cb, NULL, NULL, G_OBJECT (call), NULL);
+ tp_cli_channel_type_streamed_media_connect_to_stream_state_changed (priv->channel,
+ tp_call_stream_state_changed_cb, NULL, NULL, G_OBJECT (call), NULL);
+ tp_cli_channel_type_streamed_media_connect_to_stream_direction_changed (priv->channel,
+ tp_call_stream_direction_changed_cb, NULL, NULL, G_OBJECT (call), NULL);
+ tp_cli_channel_type_streamed_media_call_list_streams (priv->channel, -1,
+ tp_call_request_streams_cb, NULL, NULL, G_OBJECT (call));
+
+ /* Setup group interface */
+ priv->group = empathy_tp_group_new (priv->channel);
+
+ g_signal_connect (priv->group, "member-added",
+ G_CALLBACK (tp_call_member_added_cb), call);
+ g_signal_connect (priv->group, "remote-pending",
+ G_CALLBACK (tp_call_remote_pending_cb), call);
+
+ /* Start stream engine */
+ tp_call_stream_engine_handle_channel (call);