Many multiagent systems are comprised of self-interested, autonomous agents that have to collaborate with each other in order to maximize their individual utilities. Most real world agents are inhibited with limited resources, capabilities and knowledge about their environment, and their interactions are limited to a select set of other agents depending on their social network. Typically, such systems also lack any central authority to resolve issues between multiple agents. Such agents can pool their resources and combine their services to handle complex tasks, which they would otherwise be unable to accomplish, by forming coalitions. Coalition formation entails determining solutions that are stable. Some of the other desirable properties for multiagent systems are social welfare maximization and fairness of revenue distribution amongst the agents. Solving some of these properties are computationally expensive as they involve a combinatorial search, and considering them together exacerbates the problem further. Our research focus is on devising bargaining processes that allow the agents to act in their best interests, while the system as a whole reaches an equilibrium state that is utilitarian, fair, and stable. In this paper, we present our negotiation algorithm where agents make their decisions based only on their local information, and handle tasks in a completely distributed fashion. We present experimental results to demonstrate the quality of our solution in terms of agent utility maximization, stability in terms of the bargaining set, and scalability for various network topologies.