rem: unsigned int _flags, int _rep, struct ucontact** _con, str* _ua, str* _recv)
add: unsigned int _flags, int _rep, struct ucontact** _con, str* _ua, str* _recv, struct socket_info* sock)
context: int mem_insert_ucontact(urecord_t* _r, str* _c, time_t _e, qvalue_t _q, str* _cid, int _cs, 			unsigned int _flags, int _rep, struct ucontact** _con, str* _ua, str* _recv){	ucontact_t* ptr, *prev = 0;	if (new_ucontact(_r->domain, &_r->aor, _c, _e, _q, _cid, _cs, _flags, _rep, _con, _ua, _recv) < 0) {		LOG(L_ERR, "mem_insert_ucontact(): Can't create new contact\n");		return -1;	}		ptr = _r->contacts;	if (!desc_time_order) {		while(ptr) {			if (ptr->q < _q) break;			prev = ptr;			ptr = ptr->next;		}	}	if (ptr) {		if (!ptr->prev) {			ptr->prev = *_con;			(*_con)->next = ptr;			_r->contacts = *_con;		} else {			(*_con)->next = ptr;			(*_con)->prev = ptr->prev;			ptr->prev->next = *_con;			ptr->prev = *_con;		}	} else if (prev) {		prev->next = *_con;		(*_con)->prev = prev;	} else {		_r->contacts = *_con;	}	return 0;}