Peer-to-Peer Assisted Voice Communication using Cell Phones
CISE Technical Report 05-005
Department of Computer and Information Science and Engineering
University of Florida, Gainesville, FL 32611, USA.
August 22, 2005
Cell phones are ubiquitous today millions of wireless consumers making billions of calls each year in the
United States alone. Service providers are facing a huge growth of networks accompanied with the unfair
demographic distribution that can be concentrated one day in one place and another day in a different place. A
large number of callers suddenly appear during a big event in convention centers, conferences, libraries, and
football stadiums. Cell phone service providers are overwhelmed with such hotspots and many calls are
dropped. These calls are likely to be in close proximity and are usually short in duration. We propose a
solution to relieve the infrastructure from this sudden I "1l ti '1P by allowing cell phone users to communicate
directly using a peer-to-peer network. Cell phones handle connection establishment, Io,,i., and maintaining
the conversation with minimal infrastructure use. As a result, cell phone users can make phone calls free of any
charge. Moreover, calls consume less power by using peer-to-peer communication. Our experimental results
using the network simulator ns-2 as well as our prototype implementation demonstrate the utility of our
Cell phones are becoming ubiquitous as the number of subscribers is more than 180 millions in
North America (shown in Figure 1), and more than 300 millions in China according to
NEWS.COM. Few years ago, a person was considered on pace with new technologies if he had a
cell phone on him. Today, a cell phone is a requirement in our personal and business life. Cell
phones are obviously becoming 'invisible' according to the definition of Mark Weiser on ubiquitous
computing . As a consequence of this huge growth of cellular networks, new challenges arise
and new solutions need to be added to the current operating structures. Service providers are facing
a huge growth of networks accompanied with the unfair demographic distribution that can be
concentrated one day in one place and another day in a different place. Areas where a large number
of callers suddenly appear during a big event are called hotspots. These hotspots such as university
campuses, conventions centers, conferences, libraries, and football stadiums have huge
concentrations of cell phone users for relatively short interval of time, in the order of hours. Phone
calls in these areas between two calling parties are likely to be in close proximity, usually less than
500 meters. These calls are usually short in duration, very large in volume, and found in human
concentrated places. Consequently, cell phone service providers are overwhelmed and many calls
Figure 1 Cell Phone Subscribers in North America
We propose a solution to relieve the infrastructure from this sudden congestion by allowing cell
phone users to communicate directly using a peer-to-peer network. Cell phones handle connection
establishment, routing, and maintaining the conversation with minimal infrastructure use. As a
result, cell phone users can make phone calls free of any charge. Moreover, calls consume less
power by using peer-to-peer communication . Infrastructure help can be very useful to determine
whether the destination can be reached using peer-to-peer communication or not. However, if the
infrastructure connection is not available, the caller can still try to reach out to peers to look for
information regarding the destination [5, 11].
The rest of the report is organized as follows. Section 2 presents related work addressing peer-to-
peer communication. Section 3 presents our technique followed by a case study in section 4.
Finally, section 5 concludes the report.
2 Related Work
A lot of research has been done in the areas of wireless communication. This section briefly
describes two areas related to our work Voice-over-IP and peer-to-peer networking.
Voice-over-IP (VoIP) allows users to make voice calls over IP data networks instead of the
common telephone network. Encoded voice data is encapsulated in IP packets and sent as regular
data packets to the destination. Consequently, packet switching, which is more efficient for data
transmission , is used instead of circuit switching. The use of IP networks raises several
challenges for VoIP, namely delay, out of order packets, jitter (delay variance) and packet loss.
Excessive end-to-end delay makes conversation inconvenient and unnatural. Each hop in the
transmission path adds delay. Usually, a maximum one-way latency of 150 ms is required to
achieve good quality voice conversations . Congestion in packet switched networks can cause
packets to take different routes to reach the same destination. Packets may arrive out of order
resulting in garbled speech jitter. This problem occurs when packets are transmitted at equal
intervals from the source and arriving at the destination at irregular intervals. Excessive jitter makes
speech choppy and difficult to understand. Packet loss can occur either in bursts or periodically due
to a consistently congested network. Periodic loss in excess of 5-10% of all voice packets
transmitted can degrade voice quality significantly. Occasional bursts of packet loss can also make
Peer-to-peer networks remove the dependency on centralized servers, and instead, peer nodes
function as both client and servers. In a peer-to-peer network, any node is able to initiate or
complete any supported transaction with any other node. The total bandwidth is used by all nodes
instead of dividing it among different users where more clients mean less bandwidth for users.
In the wireless communication area, Hsieh et al.  propose three main approaches for cellular
wireless data networks: pure peer-to-peer communication, base station assistance, and multihomed
peers relays. Our design falls between the pure peer-to-peer communication and the base station.
Peers need to connect to other peers only when operating in peer-to-peer mode. The base station is
only used at the call query. This call is used to determine nearby nodes in order to find out if the
destination is reachable. Once the peer-to-peer connection is established, the base station is no
longer useful. Base station assistance is not used while holding peer-to-peer communication as we
are attenuating the use of the cell phone infrastructure as much as possible. It has been demonstrated
by Hsieh et al.  that peer-to-peer communication has several advantages over infrastructure
connection regarding spatial reuse, lower power consumption, and high throughput per unit power.
However, the cellular network model has better throughput and the connection is less affected by
mobility in addition to fairness which is considered as a reference for other topologies.
In Schollmeier et al. , a mobile peer-to-peer protocol (MPP) architecture is introduced to
create new services and possibilities for a combination of both, peer-to-peer networks and mobile ad
hoc networks (MANETs). In MANETs, link breaks are common as nodes are always in motion.
According to the authors, MANETs and P2P have two challenges in common: peer detection and
packet routing. MPP consists of the application layer of the protocol suite which provides a
framework for peer-to-peer applications. Luo et al.  propose unified cellular and ad hoc network
architecture (UCAN) where cell phones use other cell phones channel in order to reach the base
station. This alternative reduces the impact of poor infrastructure connection and tries to benefit as
much as possible from the bandwidth of the channel in order to get a better service.
There are no existing literatures on using peer-to-peer wireless data networks for voice
communications. In this report, we present a peer-to-peer assisted voice communication using cell
3 P2P Assisted Voice Communication
Technological advances in embedded devices have greatly reduced the size and power
consumption of cell phones, providing the ability to include wireless networking functionality (such
as IEEE 802.11). Cell phones are in idle or standby mode approximately 90% of the time. This idle
time can be used by routing voice traffic and establishing connections. The problem for sudden
hotspots is solved using voice conversations through peer-to-peer cell phone networks as mentioned
earlier. Cell phones handle connection establishment, routing, and maintaining the phone
conversation by themselves without any help from the infrastructure. Most cell phones nowadays
have wireless peer-to-peer data connectivity. For example, the latest phone from T-mobile (HP iPAQ
h6315) features 802.1 lb connectivity using Pocket PC 2003 (phone edition) OS. Cell phones can
route voice packets by operating in peer-to-peer mode when idle and switching back to
infrastructure mode if the user needs to use the Internet or other infrastructure based services. The
way the connection is established in traditional cell phone communication relies on direct
connection to the infrastructure. We have modified the protocol so that a peer-to-peer connection is
established between two nodes whenever possible. This allows the two nodes to communicate
independently of the infrastructure. In addition it benefits users with better availability and service
providers with better scalability.
Figure 2 demonstrates a basic scenario where 'A' wants to communicate with 'B'. 'A' is in Base
Station 1 (BS1) and 'B' is in BS2. The base stations are connected to the Mobile Switching Center
(MSC). The following subsections describe the five steps in the modified protocol in order for 'A'
to communicate with 'B'.
A BS1 BS2
P\ ath L, -l -
Can idate -
Candidate Lis Path sC1
Figure 2: Assisted P2P Communications
Step 1 Call Request
Node 'A' requests a call to be made to node 'B'. In this particular scenario, node 'A' and 'B' are
located in different cells where other cell phones in between used for routing as shown in Figure 2.
The request is forwarded by the base station of A to the MSC. MSC has a registry that keeps track
of each node (cell phone) and knows which base station is serving each node. The MSC looks up
the location of 'A' and 'B'. The MSC knows the relative locations of the base stations in addition to
how many nodes are in each base station. If there are enough nodes between the two endpoints
within a short range, the call request will have a good chance of establishing a peer-to-peer
connection. In case the nodes are far apart or there are not enough nodes in between, no peer-to-peer
connection is attempted and the system resorts to the infrastructure mode of operation. In case of
peer-to-peer connection, the nodes being served by the two base stations are looked up and are
placed in a list called the Candidate List. These Candidate Lists are sent to node 'A'.
Step 2 Node Discovery
Node 'A' sends a multicast message to all its neighbors. The nodes that receive the multicast reply
back. Node 'A' then compares the replies with the Candidate List that was sent by the MSC. If there
is a matching node, a Path Discovery (PD) packet is sent to that node. The PD packet contains the
Candidate List and a Path List. The Path List now only contains the node 'A' and will be populated
in the path discovery in step 3.
Step 3 Path Discovery
The PD packet contains the Candidate List and the Path List. Each node that receives the Candidate
list removes its entry from the list. This ensures that the PD packet does not go back to the path it
came from. Furthermore, each node appends its entry to the end of the Path List. Consequently, the
Path List holds all the routing information. Each node that receives the PD packet does a node
discovery and compares the nodes to the Candidate List in the PD packet it received. The PD packet
is forwarded until it reaches node 'B' which is similar to direct flooding. Figure 3 shows the Path
Discovery algorithm in pseudo-code.
//pathList is initially empty (path b/w 2 end-points)
//PList is initially empty (list of path lists)
if( pathList.Length < 15 )
src = msg.src // message source
dst = msg.dst // message destination
cList = msg.cList // message candidate list
pList = msg.pList // message path list
if ( dst == currentNode )
append CurrentNode to pathList
send Ack to source node
Figure 3: Path Discovery Algorithm
Step 4 Best Path Selection
After path discovery, node 'B' receives many PD packets that contain Path Lists. 'B' selects the
paths based on two main criteria, namely least number of hops and propagation time. 'B' selects the
best five paths. Then 'B' sends back ACK packets to 'A' on each of the five paths. In the header of
the ACK packet, there is the Path List in reverse order. The candidate list is no longer needed.
Step 5 Communication
'A' uses the received Path Lists to communicate with 'B'. Since we are using multiple paths, we
need to make sure that the packets do not arrive out of order. We append a 16-bit sequence number
to the header. The packets are sent on each path using a round-robin approach. For example,
packet is sent on pathl, packet2 on path2, packet on path3 and so on. 'B' keeps track of the
number of packets it receives on each path. This enables 'B' to detect losses of packets on a
particular path. The more reliable paths get the most packets. In addition, if the number of paths
becomes 1, then Path Discovery is executed once again to find additional paths in order to maintain
a higher level of consistency and reliability.
In order to demonstrate the feasibility of our approach, we have performed experiments in two
directions. First, we simulate the algorithm using the network simulator ns-2 . Second, we
implement and test the peer-to-peer communication using cell phones and a cell phone emulator
running on wireless enabled laptops.
4.1 Protocol Simulation
We evaluated our peer-to-peer model and algorithm using the network simulator ns-2.
Assumptions had been made to come up more realistic results:
Topology: The area chosen is 1000m x 1000m and the number of nodes varies from 32 to 256
Network: The wireless nodes are connected using the 802.11 protocol as the MAC protocol. We
are using only the IP header of the IP packet to minimize the overhead.
100 144 196 256
Number of Nodes
Figure 4 Path Discovery Delay
The following experiments show the time needed for connection setup and the throughput of the
connection between two randomly chosen nodes. These results will be then compared and analyzed.
The first simulation is made on 32 static nodes uniformly distributed as a grid in the provided area.
After several tests, the path discovery took about 150 to 250 milliseconds as shown in Figure 4. The
delay of time needs to take place only at the beginning of the end-to-end communication. Once the
paths are known to the phone that instantiated the call request, peer-to-peer communication is
established using the proposed protocol as a way to handle VoIP for wireless phones. Furthermore,
we considered a more realistic topology where the nodes are randomly distributed. Figure 4 and 5
summarize the results that were conducted using the ns-2 simulator.
Figure 4 shows the time taken in milliseconds to discover the destination end-point. As expected,
the time required for path discovery increases linearly with the number of nodes. This is mainly due
to the number of hops the packets need to pass by in order to reach the destination. Another reason
is the interference with other nodes that are transmitting at the same time. The results of connection
establishment do not pass 0.5 second for 256 nodes which is an improvement over regular cell
phone connection that can reach few seconds to establish the connection.
0 400 Throughput in
0 I I I
64 100 144 196 256
Number of Nodes
Figure 5 Throughput
Figure 5 shows the throughput for data communication between two nodes. The packets are sent
through specific path found after path discovery. In our experiments we chose the path with the
least number of hops. Other criteria may be considered like distance, throughput, location, etc. The
throughput for nodes fewer than 256 nodes is close to 400 Kbps while the throughput is
approximately 600 Kbps for 144 and 196 nodes. It is difficult to find a pattern regarding these
results as many factors play important roles like node distribution, distance and the number of hops.
The throughput achieved is considered decent although there are some differences of about 200
Kbps. The throughput needed for a good quality of voice communication is between 64 and 128
Kbps which is achieved using our peer-to-peer communication model.
4.2 Prototype Implementation
As a case study, we implemented our algorithm using cell phones and laptops. One laptop
provides the functionality of the MSC which is discussed in section 3. A wireless router acts as a
base station. Our implementation framework consists of:
- Platform: Pocket PC 2003 (windows CE 4.2) phone edition. Since 802.11 enabled phones are
hard to find, we are using emulators on our laptops (Microsoft Pocket PC 2003 SDK).
- Language: C# provides the functionality and the flexibility needed to take full advantage of the
.NET Compact Framework.
- Transport Layer: We will be using real-time voice communication using UDP packets.
- Security: We are using existing WEP on 802.11 networks.
Voice communication was achieved in the simple scenario described above. The call establishment
took less than a second. Moreover, the voice quality is perfect. This prototype implementation
demonstrates the feasibility of our approach. Our design for mobile peer-to-peer networks enables
people to communicate free of any charge when destinations are reachable. For the security and
privacy issues, our multipath technique for packet routing that sends voice data using different paths
theoretically prevents intruders from capturing the complete message. Moreover, the WEP security
encryption feature that is provided with the 802.11 protocol improves wireless security
Cell phones are ubiquitous today. Many calls are dropped when a large number of callers appear in
small concentrated areas such as stadiums and convention centers. We proposed a solution to
relieve the infrastructure from this sudden congestion by allowing cell phone users to communicate
directly using a peer-to-peer network. We demonstrated the feasibility of our approach by using a
prototype implementation as well as network simulation.
P2P assisted voice communication for cell phones expands cell phone coverage, usability, and
throughput. With more connectivity being added to cell phones and embedded devices, the concept
of peer-to-peer communication becomes more feasible and applicable. Our future work includes
implementation of our algorithm in the real environment.
We would like to thank Carlos Giraldo and Michael Yaacoub for their contributions to this work.
 Tetsuya Iwata, Sumio Miyazaki, Michiharu Takemoto, Kiyoshi Ueda, Hiroshi Sunaga, "P2P Platform
Implementation on PDAs organizing Ad Hoc Wireless Network", Proceedings of the 2004 International
Symposium on Applications and the Internet Workshops, IEEE, 2004.
 Hung-Yun Hsieh, Raghupathy Sivakumal, "A Hybrid Network Modelfor Cellular Wireless Packet Data
Networks ", IEEE, 2002
 Duc A. Tran, Kien A. Hua, Tai T. Do, "A Peer-to-Peer Architecture for Media Streaming", IEEE
journal on selected areas in communications, Vol. 22, No. 1, January 2004.
 M. Kelaskar, V. Matossian, P. Mehra, D. Paul, M. Parashar, "A Study of Discovery Mechanisms for
Peer-to-Peer Applications", Proceedings of the 2nd IEEE/ACM International Symposium on Cluster
 G. Aggelou and R. Tafazolli, "On the Relaying Capacity of Next-Generation GSM Cellular Networks",
IEEE Personal Comm. Magazine, vol. 8, no. 1, pp. 40-47, Feb. 2001.
 Elias C. Efstathioul, George C. Polyzos, "Designing a Peer-to-Peer Wireless Network Confederation",
Proceedings of the 28th Annual IEEE International Conference on Local Computer Networks, 2003.
 Leonardo Oliveira, Isabela Siqueira, Antonio Loureiro, "Evaluation ofAd-Hoc Routing Protocols under
a Peer-to-Peer Application ", IEEE, 2003.
 Murali Ramanathan, Vana Kalogeraki, Jim Pruyne, I ,,i,/,, Good Peers in Peer-to-Peer Networks",
Proceedings of the International Parallel and Distributed Processing Symposium, IEEE, 2002.
 Huaiyu Liu and Simon S. Lam, .\ ighi' iir Table Construction and Update in a Dynamic Peer-to-Peer
Network", Proceedings of the 23rd International Conference on Distributed Computing Systems, IEEE,
 Hung-Yun Hsieh, Raghupathy Sivakumar, "On Using Peer-to-Peer Communication in Cellular Wireless
Data Networks ", IEEE Transactions on Mobile Computing, Vol.3, No.1, January-March 2004.
 H. Luo, R. Ramjee, P. Sihna, L. Li, and S. Lu. "UCAN: a Unified Cellular and Ad-Hoc Network
Architecture", ACM MOBICOM Proceedings, Sep. 2003.
 A. Leon-Garcia, I. Widjaja, "Communication Networks, Fundamental Concepts and Key Architectures",
2nd edition, 2004.
 "Service Provider Quality-of-Service Overview ", Cisco Systems, 2003.
 V.Ramasubramanian, Z. J. Haas, E. G. Sirer, "SHARP: A Hybrid Adaptive Routing Protocol for mobile
Ad Hoc Networks ", Proceedings of the ACM International Symposium on Mobile Ad Hoc Networking
and Computing: MobiHoc, IEEE, 2003.
 R. Schollmeier, I. Gruber, F. Niethammer, "Protocol for Peer-to-Peer Networking in Mobile
Environmentss, IEEE, 2003.
 Marc Weiser, "The Computer for the 21st Century", Scientific American, September 1991 Vol. 265 No.
3, pp. 94-104.
 Sethuram Balaji Kodeswaran, Olga Ratsimor, Anupam Joshi, Tim Finin, Yelena Yesha, I '",g peer-to-
Peer Data Routing for Infrastructure-BasedWireless Networks", Proceedings of the First IEEE
International Conference on Pervasive Computing and Communications, 2003.
 The Network Simulator, "ns-2", http://www.isi.edu/nsnam/ns/, 2000.