예제 #1
0
void linphone_gtk_add_buddy_from_database(GtkWidget *button){
	GtkWidget *w=gtk_widget_get_toplevel(button);
	GtkTreeSelection *select;
	GtkTreeIter iter;
	GtkTreeModel *model;
	select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"search_results")));
	if (gtk_tree_selection_get_selected (select, &model, &iter))
	{
		char *uri;
		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);
		g_free(uri);
		g_free(name);
	}
}
예제 #2
0
void linphone_core_add_subscriber(LinphoneCore *lc, const char *subscriber, SalOp *op){
	LinphoneFriend *fl=linphone_friend_new_with_addr(subscriber);
	if (fl==NULL) return ;
	fl->insub=op;
	linphone_friend_set_inc_subscribe_policy(fl,LinphoneSPAccept);
	fl->inc_subscribe_pending=TRUE;
	lc->subscribers=ms_list_append(lc->subscribers,(void *)fl);
	if (lc->vtable.new_unknown_subscriber!=NULL) {
		char *tmp=linphone_address_as_string(fl->uri);
		lc->vtable.new_unknown_subscriber(lc,fl,tmp);
		ms_free(tmp);
	}
}
예제 #3
0
static void linphone_vcard_update_existing_friends_test(void) {
	LinphoneFriend *lf = linphone_friend_new_with_addr("sip:[email protected]");

	BC_ASSERT_PTR_NOT_NULL_FATAL(lf);
	BC_ASSERT_PTR_NULL(linphone_friend_get_vcard(lf));

	linphone_friend_edit(lf);
	linphone_friend_set_name(lf, "Old Friend");
	linphone_friend_done(lf);

	BC_ASSERT_PTR_NOT_NULL(linphone_friend_get_vcard(lf));
	BC_ASSERT_STRING_EQUAL(linphone_vcard_get_full_name(linphone_friend_get_vcard(lf)), "Old Friend");
	linphone_friend_unref(lf);
	lf = NULL;
}
예제 #4
0
파일: chat.c 프로젝트: TsepoNtsaba/linphone
void linphone_gtk_chat_add_contact(const LinphoneAddress *addr) {
    LinphoneFriend *lf=NULL;
    char *uri=linphone_address_as_string(addr);
    lf=linphone_friend_new_with_addr(uri);
    ms_free(uri);
    char *fixed_uri=NULL;
    gboolean show_presence=FALSE;

    linphone_friend_set_inc_subscribe_policy(lf,LinphoneSPDeny);
    linphone_friend_send_subscribe(lf,show_presence);

    linphone_core_interpret_friend_uri(linphone_gtk_get_core(),uri,&fixed_uri);
    if (fixed_uri==NULL) {
        linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !"));
        return ;
    }
    linphone_friend_set_addr(lf,addr);
    linphone_core_add_friend(linphone_gtk_get_core(),lf);
    ms_free(fixed_uri);
    linphone_gtk_show_friends();
}
예제 #5
0
void linphone_gtk_add_buddy_from_database(GtkWidget *button){
	GtkWidget *w=gtk_widget_get_toplevel(button);
	GtkTreeSelection *select;
	GtkTreeIter iter;
	GtkTreeModel *model;
	select = gtk_tree_view_get_selection(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"search_results")));
	if (gtk_tree_selection_get_selected (select, &model, &iter))
	{
		char *uri;
		char *name;
		char *addr;
		LinphoneFriend *lf;
		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);
		g_free(addr);
		g_free(uri);
		g_free(name);
		linphone_gtk_show_contact(lf);
	}
}