diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index ea6076d0f..77fcb0f8b 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -833,12 +833,12 @@ sflphone_get_current_codec_name()
}
void
-sflphone_add_participant()
+sflphone_detach_participant()
{
- DEBUG("sflphone add participant to conference");
+ DEBUG("sflphone detach participant from conference");
callable_obj_t * selectedCall = calltab_get_selected_call(current_calls);
- dbus_add_participant(selectedCall);
+ dbus_detach_participant(selectedCall);
}
void
diff --git a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
index 62b9d5db6..f627cd73d 100644
--- a/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/callmanager-introspec.xml
@@ -61,6 +61,14 @@
+
+
+
+
+
+
+
+
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 02cbc3fad..bf3a03d2b 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -1242,24 +1242,6 @@ dbus_set_volume_controls( )
}
}
- void
-dbus_add_participant(const callable_obj_t * c)
-{
-
- DEBUG("dbus_add_participant %s\n", c->_callID);
-
- GError* error = NULL;
- org_sflphone_SFLphone_CallManager_add_participant(
- callManagerProxy,
- c->_callID,
- &error);
- if(error)
- {
- g_error_free(error);
- }
-
-}
-
dbus_join_participant(const callable_obj_t * c_sel, const callable_obj_t * c_drag)
{
@@ -1278,6 +1260,24 @@ dbus_join_participant(const callable_obj_t * c_sel, const callable_obj_t * c_dra
g_error_free(error);
}
+}
+
+ void
+dbus_detach_participant(const callable_obj_t * c)
+{
+
+ DEBUG("dbus_detach_participant %s\n", c->_callID);
+
+ GError* error = NULL;
+ org_sflphone_SFLphone_CallManager_detach_participant(
+ callManagerProxy,
+ c->_callID,
+ &error);
+ if(error)
+ {
+ g_error_free(error);
+ }
+
}
diff --git a/sflphone-client-gnome/src/toolbar.c b/sflphone-client-gnome/src/toolbar.c
index b88d67fd1..35995dbb2 100644
--- a/sflphone-client-gnome/src/toolbar.c
+++ b/sflphone-client-gnome/src/toolbar.c
@@ -30,9 +30,9 @@ is_inserted( GtkWidget* button )
* Static create_conference
*/
static void
-conference_button( GtkWidget *widget UNUSED, gpointer data UNUSED)
+detach_button( GtkWidget *widget UNUSED, gpointer data UNUSED)
{
- sflphone_add_participant();
+ sflphone_detach_participant();
}
/**
@@ -165,6 +165,7 @@ GtkWidget *create_toolbar ()
{
GtkWidget *ret;
GtkWidget *image;
+ const gchar *label_detach;
ret = gtk_toolbar_new();
toolbar = ret;
@@ -277,14 +278,16 @@ GtkWidget *create_toolbar ()
gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(recButton), -1);
- conferenceButton = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_RECORD);
+ detachButton = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_RECORD);
+ label_detach = "Detach";
+ gtk_button_set_label(GTK_BUTTON(detachButton), label_detach);
#if GTK_CHECK_VERSION(2,12,0)
- gtk_widget_set_tooltip_text(GTK_WIDGET(conferenceButton), _("Conference"));
+ gtk_widget_set_tooltip_text(GTK_WIDGET(detachButton), _("Detach"));
#endif
- gtk_widget_set_state( GTK_WIDGET(conferenceButton), GTK_STATE_INSENSITIVE);
- g_signal_connect (G_OBJECT (conferenceButton), "clicked",
- G_CALLBACK (conference_button), NULL);
- gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(conferenceButton), -1);
+ gtk_widget_set_state( GTK_WIDGET(detachButton), GTK_STATE_INSENSITIVE);
+ g_signal_connect (G_OBJECT (detachButton), "clicked",
+ G_CALLBACK (detach_button), NULL);
+ gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(detachButton), -1);
return ret;
@@ -334,7 +337,7 @@ toolbar_update_buttons ()
case CALL_STATE_INCOMING:
gtk_widget_set_sensitive( GTK_WIDGET(pickupButton), TRUE);
gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE);
- gtk_widget_set_sensitive( GTK_WIDGET(conferenceButton), TRUE);
+ gtk_widget_set_sensitive( GTK_WIDGET(detachButton), TRUE);
g_object_ref(callButton);
gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton));
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0);
diff --git a/sflphone-client-gnome/src/toolbar.h b/sflphone-client-gnome/src/toolbar.h
index fa9c1b8c2..7c539f34f 100644
--- a/sflphone-client-gnome/src/toolbar.h
+++ b/sflphone-client-gnome/src/toolbar.h
@@ -34,7 +34,7 @@ GtkToolItem * holdButton;
GtkToolItem * transfertButton;
GtkToolItem * unholdButton;
GtkToolItem * mailboxButton;
-GtkToolItem * conferenceButton;
+GtkToolItem * detachButton;
GtkToolItem * recButton;
GtkToolItem * historyButton;
GtkToolItem * contactButton;
diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml
index fe0e6ee09..8777adce8 100644
--- a/sflphone-common/src/dbus/callmanager-introspec.xml
+++ b/sflphone-common/src/dbus/callmanager-introspec.xml
@@ -61,6 +61,14 @@
+
+
+
+
+
+
+
+
diff --git a/sflphone-common/src/dbus/callmanager.cpp b/sflphone-common/src/dbus/callmanager.cpp
index ed4ebe374..f8d7593fb 100644
--- a/sflphone-common/src/dbus/callmanager.cpp
+++ b/sflphone-common/src/dbus/callmanager.cpp
@@ -131,6 +131,16 @@ CallManager::joinParticipant (const std::string& sel_callID, const std::string&
Manager::instance().joinParticipant(sel_callID, drag_callID);
}
+void
+CallManager::detachParticipant (const std::string& callID)
+{
+ _debug ("CallManager::detachParticipant received %s\n", callID.c_str());
+ // Manager::instance().detachParticipant(callID);
+}
+
+
+
+
void
CallManager::setRecording (const std::string& callID)
{
diff --git a/sflphone-common/src/dbus/callmanager.h b/sflphone-common/src/dbus/callmanager.h
index 31da18b45..ea54252e1 100644
--- a/sflphone-common/src/dbus/callmanager.h
+++ b/sflphone-common/src/dbus/callmanager.h
@@ -50,6 +50,7 @@ public:
double getVolume( const std::string& device );
void addParticipant( const std::string& callID );
void joinParticipant( const std::string& sel_callID, const std::string& drag_callID );
+ void detachParticipant( const std::string& callID );
void setRecording( const std::string& callID );
bool getIsRecording(const std::string& callID);
std::string getCurrentCodecName(const std::string& callID);
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 59f1a4288..828bff1c2 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -775,7 +775,7 @@ ManagerImpl::joinParticipant(const CallID& call_id1, const CallID& call_id2)
}
else if(iter->second == "INCOMING")
{
- _debug(" INCOMING %s\n", call_id1.c_str());
+ _debug(" ANSWER %s\n", call_id1.c_str());
answerCall(call_id1);
}
@@ -789,7 +789,7 @@ ManagerImpl::joinParticipant(const CallID& call_id1, const CallID& call_id2)
}
else if(iter->second == "INCOMING")
{
- _debug(" INCOMING %s\n", call_id2.c_str());
+ _debug(" ANSWER %s\n", call_id2.c_str());
answerCall(call_id2);
}