We are in the midst of a multimedia communications revolution. This revolution has become possible due to the rapid advances being made in the fields of wireless and processor technologies. Until a few years ago, multimedia technologies were growing at a faster rate than wireless. This resulted in a lot of high quality content being generated but the lack of bandwidth to handle such high quality content was a major impediment to content sharing. Recent advances in the wireless technologies - especially the deployment of Long Term Evolution (LTE) networks has provided the fillip that was missing thus far. Further, advances in processor technologies have made the creation and consumption of high quality multimedia content on low power hand held devices like smartphones and tablets ubiquitous. The time is ripe to study how to best utilize the available network resources in order to achieve the best possible multimedia communications experience - both from the user perspective and from the codec and network utilization perspective. Adapative streaming technologies are becoming ever so popular as a means to achieve this goal. In a broadcast/multicast setting, protocols such as Apple's HTTP Live Streaming (HLS), Microsoft's Smooth Streaming (SS) and MPEG's Dynamic Adaptive Streaming over HTTP (DASH) address this problem. Importantly, all these protocols are in the public domain. The focus of this thesis however is on adaptive streaming techniques for two-way telephony applications. The motivation for studying two way telephony is due to the renewed interest in this form of communication as evidenced by the popularity of applications such as FaceTime and Skype. Currently however, there are no equivalents for the HLS, SS or DASH for two way telephony. Existing solutions are either closed (FaceTime), proprietary (Skype) or require access to proprietary vendor solutions for hardware acceleration (ooVoo). Also, these solutions are hidden under-the-hood and provide the user no control on switching decisions. In this thesis we provide a framework for user-controlled adaptive two-way telephony. The proposed framework is software based and furthermore based off of open-source software. The user can vary the three basic settings of the encoder bit rate, frame resolution and frame rate, dynamically without having to tear down and recreate the session. The user can switch to a higher bit rate or resolution only when needed (for example, to show a skin lesion,) and switch back to a lower bit rate otherwise. The user can also reduce the frame rate when a high bit rate video is transmitted. The outline to dynamically change resolution is also provided. An Android application has been developed to demonstrate the proposed scheme. As an impressive outcome of our experiments, we observed savings in bandwidth consumption as well as improved video quality when demanded.