diff --git a/linphone/gtk-glade/buddylookup.c b/linphone/gtk-glade/buddylookup.c index 509a7b7b49a6d80b390d90ee9e2a687570464f41..f0b2f61951aa9066c554a9d7be075a30e9697fa2 100644 --- a/linphone/gtk-glade/buddylookup.c +++ b/linphone/gtk-glade/buddylookup.c @@ -279,9 +279,13 @@ void linphone_gtk_add_buddy_from_database(GtkWidget *button){ char *name; char *addr; LinphoneFriend *lf; + int presence=linphone_gtk_get_ui_config_int("use_subscribe_notify",1); gtk_tree_model_get (model, &iter,LOOKUP_RESULT_SIP_URI , &uri,LOOKUP_RESULT_NAME, &name, -1); addr=g_strdup_printf("%s <%s>",name,uri); + lf=linphone_friend_new_with_addr(addr); + linphone_friend_set_inc_subscribe_policy(lf,presence ? LinphoneSPAccept : LinphoneSPDeny); + linphone_friend_send_subscribe(lf,presence); linphone_core_add_friend(linphone_gtk_get_core(),lf); linphone_gtk_show_friends(); g_free(addr); diff --git a/linphone/gtk-glade/friendlist.c b/linphone/gtk-glade/friendlist.c index ea2ada25865e497a8882aa4d8179f0cd5136dd87..5e7d48137e161b82e033ebee5bcbef6d2b31dc07 100644 --- a/linphone/gtk-glade/friendlist.c +++ b/linphone/gtk-glade/friendlist.c @@ -352,6 +352,11 @@ void linphone_gtk_show_friends(void){ void linphone_gtk_add_contact(void){ GtkWidget *w=linphone_gtk_create_window("contact"); + int presence_enabled=linphone_gtk_get_ui_config_int("use_subscribe_notify",1); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence")),presence_enabled); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence")), + presence_enabled); gtk_widget_show(w); } @@ -430,10 +435,16 @@ void linphone_gtk_contact_ok(GtkWidget *button){ GtkWidget *w=gtk_widget_get_toplevel(button); LinphoneFriend *lf=(LinphoneFriend*)g_object_get_data(G_OBJECT(w),"friend_ref"); char *fixed_uri=NULL; - gboolean show_presence,allow_presence; + gboolean show_presence=FALSE,allow_presence=FALSE; const gchar *name,*uri; if (lf==NULL){ lf=linphone_friend_new(); + if (linphone_gtk_get_ui_config_int("use_subscribe_notify",1)==1){ + show_presence=FALSE; + allow_presence=FALSE; + } + linphone_friend_set_inc_subscribe_policy(lf,allow_presence ? LinphoneSPAccept : LinphoneSPDeny); + linphone_friend_send_subscribe(lf,show_presence); } name=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name"))); uri=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"sip_address")));