report - An-Najah National University

advertisement
Acknowledgement
We would like to thank our supervisor Dr. Ahmed Masri for supervising this project. His
notes about our work were of key importance that without his efforts achieving this work
would not be possible.
[1]
Disclaimer
This report was written by student Mostafa Basher and Diaa Badawi at the Electrical and
telecommunication Engineering Department, Faculty of Engineering and information
technology, An-Najah National University. It has not been altered or corrected, other than
editorial corrections, as a result of assessment and it may contain language as well as
content errors. The views expressed in it together with any outcomes and recommendations
are solely those of the students. An-Najah National University accepts no responsibility or
liability for the consequences of this report being used for a purpose other than the purpose
for which it was commissioned.
[2]
Contents
Abstract ........................................................................................................................................... 7
1.
Introduction ............................................................................................................................. 8
1.1About this project ................................................................................................................... 8
1.2 Significance of this work ........................................................................................................ 8
1.2.1 Benefits for the client ..................................................................................................... 8
1.2.2 Benefits for the operator................................................................................................ 8
1.3 Objectives of this work .......................................................................................................... 8
1.4 Scope of this work ................................................................................................................. 9
1.4.1 Area of interest ............................................................................................................... 9
1.4.2 Limitations to this work .................................................................................................. 9
1.5 Organization of this report .................................................................................................... 9
2.
Constraints, Standards/ Codes and Earlier course work: ...................................................... 10
2.1 Constraints........................................................................................................................... 10
2.2 Standards ............................................................................................................................. 11
2.3 Earlier coursework............................................................................................................... 11
3. Literature review ....................................................................................................................... 12
3.1 General background ............................................................................................................ 12
3.2 Mobile to fixed-line Offloading: general review ................................................................. 15
3.3 Types of offloading .............................................................................................................. 17
3.4 Related work........................................................................................................................ 18
3.5 GSM networks ..................................................................................................................... 18
3.6 Android ................................................................................................................................ 21
3.6.1 Services ......................................................................................................................... 22
3.6.2 Content Providers ......................................................................................................... 22
3.6.2 Broadcast Receivers ..................................................................................................... 22
3.6.2 Android manifest .......................................................................................................... 22
3.7 Wampserver ........................................................................................................................ 22
3.7.1 FUNCTIONALITIES ......................................................................................................... 23
4. Methodology ............................................................................................................................. 23
4.1 The user’s application:......................................................................................................... 24
4.2 The database server programming: .................................................................................... 24
4.3 Signaling procedure: ............................................................................................................ 24
[3]
4.4 Offloading process ............................................................................................................... 26
5. Results and analysis ................................................................................................................... 29
5.1The first interface when starting the application ................................................................. 29
5.2 Case1: If the user is not authenticated: .............................................................................. 29
5.3 Case2: If the user is authenticated: ..................................................................................... 30
5.3.1 Case1: If the access point is registered in the database: ............................................. 31
5.3.2 Case 2: If the access point address does not exist yet in the database: ...................... 31
5.3.3 After inserting a new destination: ................................................................................ 32
6. Discussion .................................................................................................................................. 33
7. Ongoing work ............................................................................................................................ 33
7.1 Implementation and testing .................................................... Error! Bookmark not defined.
7.2 Testing ..................................................................................... Error! Bookmark not defined.
7.3 Results and analysis ................................................................. Error! Bookmark not defined.
7.4 Operator approval ................................................................... Error! Bookmark not defined.
7.5 Technical issues ................................................................................................................... 33
8. Conclusion ................................................................................................................................. 34
References ..................................................................................................................................... 35
Appendices: ................................................................................................................................... 36
Appendix A: Permissions ........................................................................................................... 36
Appendix B: Pseudo code: ......................................................................................................... 36
Appendix C: Offloading Process (in case of using MSC’s assets) ................................................... 41
Call routing without offloading: ............................................................................................ 41
Call routing with offloading: .................................................................................................. 41
[4]
List of figures:
Figure 1: the numbers of fixed-line subscription in the world (International Telecommunication
Union: ICT Data and Statistics Division, 2014) .............................................................................. 13
Figure 2: the numbers of mobile subscriptions in the world (International Telecommunication
Union: ICT Data and Statistics Division, 2014) .............................................................................. 13
Figure 3: the numbers of individuals using internet in world (International Telecommunication
Union: ICT Data and Statistics Division, 2014). ............................................................................. 14
Figure 4: Power consumption and Access bit rate for different ICTs (Vereecken, et al., 2011) ... 15
Figure 5: The general idea of offloading........................................................................................ 16
Figure 6: A Femtocell .................................................................................................................... 17
Figure 7: Mobile data offloading process by Oracle (Ramakrishnan & Rotundo, 2014) ............... 17
Figure 8: GSM network architecture ............................................................................................. 19
Figure 9: RSS .................................................................................................................................. 20
Figure 10: A simplified illustration of the Activity lifecycle, expressed as a step pyramid ........... 22
Figure 11: flowchart summarizing signaling process .................................................................... 26
Figure 14: Starting interface for the user’s application: Mopho ................................................... 29
Figure 15: Case1 ............................................................................................................................ 30
Figure 16: Interface with place name and Telephone number text field and have Add button .. 32
Figure 17: Map showing the conventional route of call data in mobile network. ........................ 41
Figure 18: Map showing the alternative route for call data in the mobile network ..................... 42
[5]
List of tables
Table 1: user table from data base containing information about the user's offloeaded point .. 31
Table 2 showing the database after inserting a new access point................................................ 33
[6]
Abstract
Offloading has become an interesting topic in telecommunications in the recent years
prompted by seeking solutions for data traffic aggression and the inadequacy of
bandwidth in wireless telecommunication. In this report, we present our work: mobile
to-fixed line offloading. The objective of this work is to implement software that
performs offloading signaling process from the mobile network to the fixed-line network
by creating an integrated environment in which an end-user application communicates
with the operator’s switching system. Based on the user’s queries, the operator carries
out offloading to the targeted fixed-line destination. We carried out this work by
programming software for the users that enables them of activating/ deactivating this
service as well as adding/deleting targeted points anytime they wish to do so with a
need for having internet access at the time. We present in detail the limits of this work.
Moreover, we present general knowledge about offloading and its types and other
knowledge that is essential in order to carry out offloading. We show results obtained
by this work and discuss them. Furthermore, we state our ongoing work in bid of
improving and developing this work. Finally, we have our conclusion for this work.
[7]
1. Introduction
1.1About this project
In this project we wish to implement a mobile service for mobile to fixed-line offloading.
As the title suggests, this service, which is to be conducted by the client Mobile network
operator (MNO), is about offloading received mobile calls to the fixed-line path available
near the client. Therefore, the call will not be routed throughout the mobile operator’s
network but rather throughout the fixed-line network. The name that we chose to
present this service to the client is Mopho, indicating the first syllables of the two words
mobile and phone. Our mission is to facilitate such redirection regarding end user’s
query as well as controlling the switching process. The service is to be presented as end
user service with the user having all the freedom to choose when to activate the service
with no effect on the quality of service.
1.2 Significance of this work
This work carries significance for both client and operator comes as follows:
1.2.1 Benefits for the client
For the client, it is known that many people wish to not be disturbed by calls while they
are at work and they would like to hand on calls answering for someone else on duty.
Moreover, this will lengthen the battery lasting time as the mobile will already be callfree while the offloading is enabled. Additionally, many people would prefer using
cordless phones instead of mobile phone regarding health issues.
1.2.2 Benefits for the operator
For the operator, the importance of this service stems from its omission to the power in
the base transceiver station needed to communicate with the client mobile station and,
instead, the transmission will be induced throughout the fixed-line network. Bear in
mind that the energy consumption of the fixed-line network is far less than that of the
mobile network, in which most of the energy consumption happens at the Base station
system.
1.3 Objectives of this work
Our objective is to provide integrated software system solution for signaling process for
the offloading as follows: First, implementing the client software application that’s to be
[8]
installed on the client’s platform with designing a dynamically user-friendly interface.
Secondly, implementing the MNO server software and database that is to be integrated
into mobile switching control (MSC) communication for the sake of this service. Thus we
need to deploy new servers allocated to this service. Moreover, we will investigate
offloading energy efficiency and its economic feasibility for the operator. Regarding the
client, we will test the service and evaluate it from the client’s point of view. Notice that
the last two objective need the operator permission and cooperation. For the time of
writing this report, we have achieved the first two objectives. The extension of this work
is to be carried out during the course of graduation project 2.
1.4 Scope of this work
1.4.1 Area of interest
Our work will be carried out on the network and switching subsystem layer level. Thus,
no processes will be dealing with inter-communication within Radio Station Subsystem
layer level. Moreover, for the fixed-line network, this work will be dealing with gateway
level. Here, the work is to be adapted to fit in with SS7 protocol as it is devoted to
communication between mobile networks and the public switched telephone
network (PSTN).Moreover, the offloading process can be done quite easily via internet
network with no need for complication of sending signaling data via mobile network.
Subsequently, the client should have access to the WLAN neighboring the fixed-line at
least at the moment of enabling or configuring the service using his smartphone to do
so.
1.4.2 Limitations to this work
Our work is confined to the following considerations: the technique used in this project
does necessitate that the client has smartphone on which the service application can be
installed. Moreover, this project is about calls off-loading. Thus, data offloading is out of
the scope of this work. However, studying data off-loading can be useful as it is more
common in the world of telecommunication and both techniques have much in
common.
1.5 Organization of this report
This report includes everything regarding our project coming as follows:


Introduction: here we briefly discuss the general idea about our project and its
significance and our objective of carrying out such work. Moreover, we discuss
what this work covers and what it does not.
Constraints, Standards/ Codes and Earlier Couse work: In this section we discuss
the constraints that we encountered and how we managed to solve them.
[9]







Moreover, we state the standards of the programming environments and the
permissions that we used. For the Earlier course work, we discuss our
progression in carrying out this work.
Literature review: in this section, we state the essential knowledge about offloading and its types and we present general knowledge about Mobile networks,
Telephony networks and Android platform. Moreover, we present related work.
Methodology: In this section, we provide details about how our work goes into
successive steps in order to achieve signaling operation and what happens
afterwards to the calls as offloading functions.
Results and analysis: In this section, we present our results based on covering
different cases. We support our description by screenshots of the application as
well as tables depicting database in order to show modifications based on the
user’s personal configuration. Moreover, we present the virtual offloading
environment which takes place at the operator’s side.
Discussion: In this section, we discuss our results that we achieved and what our
results represent in term of quality of service.
Ongoing work: In this section, we state what we wish to achieve for future. We
wish to implement and test this work as well as improving security and
authentication.
Conclusion: In this section, we come to our conclusion about the overall work
and its performance and
Appendices: Two appendices are attached to this report, the first one is for
permissions used to work on android platform. The second appendix was a
pseudo code for this project.
2. Constraints, Standards/ Codes and Earlier course work:
2.1 Constraints
In this work, we faced some constraints as we created virtual system for carrying out
experiments. The first constraint was that implementing virtual server caused a lot of
technical issues including its reliability and the hardship of getting the Internet protocol
(IP) for the virtual server as it kept changing with every new connection to the local area
network, the solution was to make flexible code that only used a class responsible for
acquiring the new IP without the need for changing the whole codes. Moreover, we
faced the problem of collecting enough data to test the reliability of the code. For the
time being, the code has been tested on few number of virtual clients (i.e. SIM cards and
[10]
platforms).However, this is not an issue since the code is to be thoroughly tested after
its implementation into the network.
2.2 Standards
The standards used in our work are as follows: for the client’s software, the software
was codded for Android platform with targeted SDK version 20 and minimum SDK
version 14. Moreover, we used some permissions for using mobile features (see
appendix A).
The code was edited using ADT package version 23.0.2.1259578 provided by The
Android Open Source Project and Eclipse platform version 4.2.1 provided by eclipse.org.
As eclipse enable flexibility of creating graphical user interface (GUI), we used XML
language in order to implement graphic elements. Moreover and in order to have a
visually appealing interface, we used Adobe Illustrator CS6 for designing the cover of the
android application and other elements.
For the operator’s software: we used Wampserver platform version 2.5 that allows
creating web applications in order to create our database and the management pages.
This Wampserver version uses Apache HTTP server version 2.4.9 (WIN 64), PHP version
5.5.12 and MySQL version 5.6.17. .
For user’s identification we used International SIM serial number which is unique to
every subscription and for the identification of the WLAN related to the fixed-line we
used Mean Access Control (MAC) address, which is an identifier unique to the access
point that is to perform the internet access to activate or configure the offloading.
2.3 Earlier coursework
Our course work spanned over the academic year of 2014/2015. Assignments were
disseminated over the first semester and the second semester. The work was scheduled by our
supervisor Dr. Ahmed Masri.
For the first semester, the first assignment was writing a code that can communicate between
android platform and Virtual server and checking for authentication. For that, we learned about
android programming powered by our previous knowledge in object-oriented programming.
The second assignment was to design android interfaces in order to fit with what the service
should cover. Moreover, we created the database in the primal form for actual implementation.
The third assignment was about generally debugging the code and improving the interface map
and in this assignment we improved our code functionality by using JSON objective that
encapsulate costume types of varies in order to be sent between both parties.
[11]
For the second semester, however, we encountered some challenges that were out of our
hands. We had to wait for one operator’s response in order to incubate this project so as to
implement it on operator’s switching center’s environment as we had planned for.
Unfortunately, we didn’t receive any response from any mobile operator company despite many
attempts of eliciting a response. This was a drawback for the advancement of our work for some
time until we came up with an alternative solution.
Fortunately, our plan worked. The solution that we came up with was that to dispense with any
dependency on mobile operator for the time as we implemented our virtual offloading
environment that was capable of performing the same functionalities that we had hoped we
would have received from the operator’s side. We used Asterisk environment to function as the
off-loading performer. Moreover, we used Elastix utility in order to deal with Asterisk operating
system. Moreover, we used Visual Dial Plan Professional which supports graphical user interface
that has access to Asterisk environment in order to build up dial plans in an easy way in order to
implement our desired dial plan. Additionally, we utilized Zoiper to carry out calling process on
internet network instead of using the conventional cellular environment. Notice that this
modification did not affect the core of our service as offloading was still performed between
different parties with only the need of having Mopho on the side of the subscriber just as in the
case of handling signaling process to mobile operator’s switching system.
Generally speaking, our knowledge in programming was the cornerstone for carrying
out this work. Moreover, previous knowledge of mobile networking and telephony
networking helped us virtually build the off-loading process including: signaling process
and routing process. Since this work is to move further to implementation, this
knowledge will be more useful practically.
Knowledge of Computer networking was of key importance in order to conduct
programming software that was capable of sending queries and receiving queries
adhering to network ISO/OSI ubiquitous model.
Knowledge of operating systems utilized for switching centers such as: Asterisk and its
accessory programs was essential to establishing the offloading environment. Notice
that Asterisk is not confined to virtual realization of switching systems but is actually
relied on by mobile and land-line operators in order to manage their switching systems.
3. Literature review
3.1 General background
Information and communication technologies (ICTs) are amongst the most prosperous
and fast growing technologies in the world. One can learn about the immense increase
in the scale of these technologies by merely looking at the number of subscriptions all
over the world for different ICTs as it is shown in figures 1, 2 &3.
[12]
Figure 1: the numbers of fixed-line subscription in the world (International Telecommunication Union: ICT Data and
Statistics Division, 2014)
Figure 2: the numbers of mobile subscriptions in the world (International Telecommunication Union: ICT Data and
Statistics Division, 2014)
[13]
Figure 3: the numbers of individuals using internet in world (International Telecommunication Union: ICT Data and
Statistics Division, 2014).
It’s obvious that the growing rate in the developing countries is far greater than that of
the developed countries probably because in developed countries the market has
almost been saturated and no more individuals are likely to have further subscriptions.
This brings into questions the ability of communication technologies to keep up with
this traffic aggression. In fact, the data traffic is growing exponentially. Statistically
speaking, the data traffic is expected to experience a growth of 26 times between 2010
and 2015.This will be quite challenging for communication developers as well as service
provides even in the most developed countries. While there are many attempts on
improving data bitrates and channel efficiency for mobile technologies with presenting
more efficient modulation techniques and more sophisticated high-speed circuit
devices, there exist the fundamental boundaries for channel capacity as Shannon’s
theory states for that we have, in wireless world, strictly scarce licensed bandwidth.
With the hardship of employing new 4G cellular networks due to its high infrastructural
and operational cost and its non-backward compatibility, developers thus should seek
for other alternative solutions. Thus, offloading to a better-bandwidth channel appears
to be a solution. Figure2 shows some communication technologies and their access bit
rate related to their power consumption.
[14]
Figure 4: Power consumption and Access bit rate for different ICTs (Vereecken, et al., 2011)
3.2 Mobile to fixed-line Offloading: general review
Offloading has become a popular topic in telecommunication recently. In brief, it is the
use of alternative network to deliver data originally targeted for mobile networks. So
instead of having access to internet via base transceiver station and then the cellular
network or routing data packets through base transceiver stations and/or base station
subsystem, data is offloaded to the alternative network. Figure4 illustrates this.
Typically, the alternative network is any type of the fixed-line network such as: DSL,
FTTx...Etc or the usage of hybrid system. For the end-point transmission, it can be
achieved by deploying Wi-Fi access points or Femtocells as known also as small cells.
[15]
Figure 5: The general idea of offloading
Femtocells were originally presented as a solution for mobile coverage problems indoor
by reducing the distance between mobile station and base transceiver unit. And since its
compatibility with IP backbone network as well as the cellular network, Femtocells can
is one candidate for offloading. Nevertheless, for its prevalence indoor and outdoor, WiFi seems also to be quite an option for offloading. This bring us into questioning which
technology is to be selected. On the one hand, Wi-Fi supports better data rates and it
does not need license to operate in contrary to Femtocells. On the other hand,
Femtocells are considered as an extension for mobile networks and therefore its
compatibility with the mobile network is for its credit as well as having lower power
consumption. However, we can’t determine which one would be more feasible and
reliable and researches are demanded for this issue (Hasan, Intell. Syst. Res. Centre,
Siddique, & Chakraborty, 2009). Commercial Wi-Fi can have data rate up to 54Mbps for
IEEE 802.11a/g and up to 7Gbps for IEEE 802.11ac for it utilizes MIMO technology while
rates in Femtocells transmission are still lower. (Cisco, 2014)
[16]
Figure 6: A Femtocell
3.3 Types of offloading
Offloading can be for either data, voice or both. Data off-loading is mainly used to
improve the service when it is not possible by the macro cells, typically in highly
congested areas such as: shopping malls, stadiums, airports, campuses …Etc. due to
bandwidth limitation. Thus, it enables users to experience data transmission as they
would do if there were no congestion in a seamless and reliable fashion. Figure5 shows
mobile data offloading process using geo-localization technique in order to find the
nearest to-offload Wi-Fi access point.
Figure 7: Mobile data offloading process by Oracle (Ramakrishnan & Rotundo, 2014)
Voice off-loading appears to be a special service for those who seek for higher voice
quality or they would like to experience off-loading as in clinics, offices ….Etc. Calls can
be offloaded to the public switched telephone network or using IP- based techniques
(Voice over IP). Offloading to PSTN seems easier to implement and it suffices the service
[17]
when there is no need for higher voice quality. However, this type of calls-offloading
depends on the coexistence between the mobile network operator and the PSTN
operator. Sometimes, interconnection charges for the PSTN, with the lack of
cooperation between the two parties, can render offloading infeasible for the mobile
operator (Cisco, 2006). However, in the world of telecommunication, strong alliances
have been forged between different networks operators. For example, in Palestine we
have the PALTEL group which embodies both the cellular operator (JAWWAL) and the
fixed-line and internet access operator (PALTEL).
3.4 Related work
There is many offloading work in the market. For example, Anaconda Mobile Company
has introduced a new service that uses off-loading for calling back services in
intercontinental scale. Anaconda Mobile claims that using landline network for calling
instead of mobile network can considerably reduce the tariffs for the costumers
(Anaconda Mobile Company, n.d.).
3.5 GSM networks
GSM or commercially known as 2nd generation (2G) network is a mobile network that
consists of radio frequency operating on the range of 824 MHz up to 925MHz. It carries
the data on time slots with duration of 577 us for each one carrying 156.25 bits. The
base of 3G network is a GSM so GSM is widely used in the world.
The network components in any GSM system are:



Base station subsystem
Network subsystem
Operations and Maintenance Subsystem
[18]
Figure 8: GSM network architecture
The main component of the GSM system are: Mobile station (MS), Base station (BS),
Mobile switching center (MSC) and Location register (LR).Subsystems for GSM are as
follows:



RSS (Radio Subsystem): this subsystem is responsible for covering all radio
aspects
Base station subsystem (BSS).
NSS (Network and switching subsystem): this system is responsible for call
forwarding, handover and switching and this layer will contact to our data base.
OSS (operational subsystem): Here, this subsystem is for managing the network.
The numbers of MSC are typically from 1 to 10 MSC per 1 million subscriber and 10 -100
BSC per MSC and 1000 of BTSs per 1 million subscriber and BSC serves up to 40 BTSs.
For the radio subsystem (RSS) comprises the cellular mobile network up to the switching
centers.
A gsm network comprises many BTSs, each controlled by a base station controller and
the BSS performs all functions necessary to maintain radio connections to a mobile
station as follows:


Base Transceiver station (BTS): radio components include sender,
receiver, and antenna, connected to MS via the Um interface and to the
BSC via the Abis interface.
Base Station Controller (BSC): The BSC basically manages the BTSs and it
reserves radio frequencies and handles the handover from one BTS to
another within the BSS, and performs paging of the MS.
[19]

Mobile station (client Mobile Phone) make calls and receive them the MS
contains:
1-Serial Number or SIM Serial Number which we used in our project.
2-PUK unlocking key.
3-IMSI international mobile subscriber number.
4-authentication key Ki.
5- Personal identity number (PIN).
6-IMEI international mobile equipment identity.
Figure 9: RSS
NSS is the main component of the public mobile network GSM:



Connects the wireless network with standard public networks
Performs handovers between different BSSs
Comprises functions for worldwide localization users
Support charging accounting and roaming of users between different providers
in different countries.
The main components of the NSS are: Mobile switching center and gateway mobile
switching center.

MSC (Mobile switching center): basically, it controls all connection via a separated
network to/from a mobile terminal within the domain of the MSC-several. BSC can
belong to a MSC.
[20]

MSC has Specific functions for paging and call forwarding, termination of SS7 ,
mobility specific signaling, location register and forwarding of location information,
provision of new service (fax, data calls),support of short message service(SMS),
generation and forwarding of accounting and billing information.
GMSC(getaway Mobile switching center): The getaway is the center of
communication of the outer networks and the functions of the GMSC are: Delivers calls between mobile between mobile networks and fixed networks
(PSTN, other mobile networks)
 Performs the routing functions to the actual location of the MS
 Often implemented in the same machines as the MSC.
3.6 Android
Mobile operating system based on Linux Kernel and developed by Google developers.it
consists of multilayers of User interface based on direct manipulation. The OS uses
touch inputs that loosely correspond to real-world actions, like swiping, tapping,
pinching, and reverse pinching to manipulate on-screen objects, and a virtual keyboard.
Android’s source code is released by google under open source licenses.
Android is object-oriented programming concepts which uses most cases JAVA language
which can be learned and
Android components





Create an activity
Services
Content providers
Broadcast receivers
Android manifest file
Activity
An activity represents a single screen with a user interface and most applications
contain multiple activities also when a new activity start it is pushed onto the back
stack.
User interface can be built with XML or in Java, and we a can monitor lifespan through
callback method like onStart() , OnPuase(),etc
[21]
Figure 10: A simplified illustration of the Activity lifecycle, expressed as a step pyramid
3.6.1 Services
Services perform long-running operations in the background and it doesn’t contain a
user interface also it is useful for things like network operations, playing music, etc.
It runs independently of the component that created it and it can be bound to by other
applications components, if allowed.
3.6.2 Content Providers
Used to store and retrieve data and make it accessible to all applications and they are
the only way to share data across applications, and it is exposes a public URL that
uniquely identifies its data set, data is exposed as a simple table on a database model.
Android contains many providers for things like contact and media.
3.6.2 Broadcast Receivers
A component that responds to system-wide broadcast announcements like screen turns
off, battery is low. Applications can also initiate their own broadcasts, these broadcast
receivers contain no user interface and they can create status bar notification to alert
the user
3.6.2 Android manifest
This file is auto generated in the android application, and the application won’t start
without it, it presents information about the application to the android system and it’s
describes the components used in the application, declares the permission required to
run the application and declares the minimum android API level that the application
requires
3.7 Wampserver
WampServer is a Windows web development environment. It allows you to create web
applications with Apache2, PHP and a MySQL database. Alongside, PhpMyAdmin allows
you to manage easily your databases.
[22]
3.7.1 FUNCTIONALITIES
WampServer’s functionalities are very complete and easy to use. With a left click on
WampServer’s icon, you will be able to:







Manage your Apache and MySQL services.
Switch online/offline (give access to everyone or only localhost).
Install and switch Apache, MySQL and PHP releases.
Manage your server’s settings.
Access your logs.
Access your settings files.
Create aliases.
4. Methodology
In order to understand how this project works, figure y summarizes the whole process.
Nevertheless, this project comprises two main phases:


Implementing software for the signaling process.
Implementing the environment responsible for routing calls through alternative
path.
Figure 11 Block diagram of the whole system
Implementing Software:
[23]
Software is needed at the end-user point and the Switching system’s server point for
signaling process.
4.1 The user’s application:
Basically, the user’s application is responsible for:



Subscription and recognizing user’s ID (authentication).
Enabling or disabling the service.
Flagging the targeted phone number for offloading as well as enabling the user
of adding new points for service.
We application was dedicated for android- environment platform, thanks to its open
source and its ease and prevalence. We utilized the features of android and presented a
graphic-user interface (GUI) for the user’s comfort.
4.2 The database server programming:
In order to establish communication between user’s application and the signaling
database, we used PHP and PHP MySQL environment to program intermediate codes
that perform the following:


Getting information from user’s application and search the database and inform
the user back if results were negative.
Editing the database based on the user’s new data.
4.3 Signaling procedure:
Generally speaking, the methodology used was to code both client software and
operator software with integration to each other.


First of all, the platform should have access to the WLAN at the time of enabling
the service in order to send the virtual signaling data. If there is no connection to
WLAN, the process will not work. Notice that if there happens any disconnection
after enabling the service, the client will not be able to either terminate or
update the service. One suggested solution in the case of losing WLAN
connection is to have the client sending an SMS to the operator in order to
terminate the service. Since we had not obtained a static IP address by the time
of writing this report, the user will have access to the application though no
further steps will be taken.
Having accessed to WLAN, The application will communicate with the database
by sending the client’s SIM serial number. If the number exists at the time of
logging in, the process proceeds to the next step. Otherwise, the application will
be terminated.
[24]






The database, based on the SIM serial number, recognizes the user’s ID as well
as all information belonging to this client.
After informing the user that login has succeeded, a new user interface will
appear to the user. This interface has an option for enabling/disabling the service
depending on the previous status. If the user enables the service, the application
will send the address of the access point related to the fixed-line to the
database. For its uniqueness and reliability, MAC address is used.
If the MAC address exists in the database, the server will set this address flagged
on. Otherwise, the server will send the application back asking the user to add
the new labeling point.
On the previous interface, a new option will pop out asking the user to add this
new location. Once the user uses the add option, a new interface appears. In this
interface the user adds the place name and the phone number. Notice that the
place name is for the user’s comfort as dealing with MAC address is not easy for
the user.
After setting the place name and the phone number, the application send this
new update to the server, which updates the user’s information in the database
accordingly.
Now the server has all information about the client. The server communicates
with the operator’s Mobile switching center’s server.
Figure 11 summarizes these previous steps in flowchart fashion.
[25]
Figure 12: flowchart summarizing signaling process
4.4 Offloading process
It is important to notice that our alternative plan was to use Asterisk-based environment in
order to carry out offloading instead of utilizing the mobile operator’s switching center’s
facilities. Therefore, we shifted our interest from the mobile operator’s assets to the Asterisk[26]
based environment. As setting cooperation with mobile operator is still an option for future
work, we elaborate on how the process would be carried out on the mobile operator’s side in
Appendix C.
Nevertheless, here we present handling offloading by the Asterisk-based environment in details
as follows:








First of all, an off-service user initiates a call to Mopho user using Zoiper utility. Notice
that the user’s account on Zoiper must be registered previously on Asterisk server.
Second, call is forwarded to Asterisk server.
Asterisk server now checks for the SIP extension. If it does not exist in database, then a
massage of unavailability will play before the call terminates.
Otherwise, Asterisk starts the dial plan.
After that, the visual dial plan embedded server starts to work after acquiring SIP
extensions from Asterisk. Here the server communicates with Wampserver database in
order to look up the status of Mopho user who has been called.
If Mopho user has activated offloading service, the visual dial plan server will search the
telephone numbers in order to find the telephone number whose flag is set to unity. If
there’s no such flag, no routing will take place.
If the Dial Plan server finds such a telephone number, an audio transformation massage
will play informing the caller of the routing that will take action after playing this audio
massage.
After that, call is transformed to the Mopho user’s telephone number.
Figure x illustrates the whole process.
[27]
[28]
5. Results and analysis
The results came as follows:
5.1The first interface when starting the application
The following interface appears at the beginning:
Figure 13: Starting interface for the user’s application: Mopho
5.2 Case1: If the user is not authenticated:
The application shows the following message to the user and shortly after that the application
terminates.
[29]
Figure 14: Case1
5.3 Case2: If the user is authenticated:
The application informs the user that login has succeeded .Then a new interface called
homepage appears asking the client to either enable or disable the service as shown in figure12.
[30]
5.3.1 Case1: If the access point is registered in the database:
In this case, the state of this access point will be changed according to the client’s query.
For enabling, the server sets the flagged on. For disabling, the server sets the flagged off.
The following table contains the place name, telephone number and flag in addition to IDs for
the user and the access point. The flag entry will be changed according to the user demand:
Table 1: user table from data base containing information about the user's offloeaded point
P_ID
ID
MAC_address
Place
1
2
3
23
23
23
C0:14:CD:D8:C7:79 Home
E8:94:F6:93:E7:95 Office
D0:13:46:33:AB:7f Workshop
Telephone
number
092374229
092329958
092358445
Flag
0
1
0
5.3.2 Case 2: If the access point address does not exist yet in the database:
The application will inform the user that this destination has not yet been registered to the
database. A new interface appears to user with button” add” as it is shown in Figure12.
[31]
Figure 15: Interface with place name and Telephone number text field and have Add button
5.3.3 After inserting a new destination:
When the user adds the new destination for offloading, his corresponding table in the database
will be updated automatically. Notice that a new added destination will have its flag set on by
default.
The following table shows the user information after adding a new destination.
[32]
Table 2 showing the database after inserting a new access point
P_ID
ID
MAC_address
Place
1
2
3
4
23
23
23
23
C0:14:CD:D8:C7:79
E8:94:F6:33:E7:95
00:13:46:33:AB:7f
F5:38:S7:E4:L4:45
Home
Office
Workshop
New Place
Telephone
number
092374229
092329958
092358445
092365889
Flag
0
0
0
1
6. Discussion
In this work, we implemented a system that was able of routing calls based on the receiver’s
choice using a mobile application for the receiver. This application was called Mopho and it
performed signaling process via internet network. Additionally, we created the database server
in which users’ statuses and configurations are listed. Moreover, we used Zoiper as voice over IP
utility in order to carry out calling as we dispensed with operator’s approval. We used Visual dial
plan program in order to handle the calls coming from Zoiper in order to route them according
to the receiver’s preferences specified by Mopho.
7. Future work
Since we have changed our interest to implementing this service using voice over IP utilities, we
now think of making our work into an actual smartphone application that offers smart solutions
for calls traffic control. Therefore, we are willing to implement our own voice-over-IP
environment that will be able to distribute SIP extensions over users and handle them. We also
think of merging both the Voip software with Mopho software so as to make it more convenient
for the customer to use. These options need thorough studying in terms of applicability and
feasibility.
7.1 Technical issues
In addition of that, here are some technical issues that we believe they will improve the
user’s experience for Mopho application.



Creating white list: many users would need not to offload all their incoming calls
as there are some numbers of interests such as: Family member’s mobile
number, friend’s number… Etc. Thus white list can help users add/delete these
numbers in an easy way.
Improving graphics of the GUI: We wish to create a better-looking GUI for the
sake of marketing.
Security and authentication: Since this service is to be implemented in the
mobile network environment and charging calls is involved in the process of
offloading, security and authentication are of key importance. We used SIM
[33]



serial number for authentication but we wish to increase the level of
authentication by adding more parameters in this process. Likewise, we will
employ our knowledge in decryption for securing signaling data as data travels
throw WLAN which is prone to attacks.
Solving the problem of WLAN disconnection: As we stated before, our work is
fully dependent on having access to internet and thus any disconnection after
activating the service will not enable the costumer to terminate the service.
Here, we would like to use an SMS-signaling message that will enforce the
service to be terminated.
Help interface: we wish to provide the user’s application with a help interface in
order to guide using this service.
Solving the problem of having many WLAN access points neighboring the fixedline: Usually the access point that is the closest to the fixed-line destination is the
one that the user is expectedly to connect to and send its MAC address.
However, this is not always the case as the operation of accessing the service
could be in an area crowded by access points for different landlines. Here, we
wish to solve this problem by using multi-access point’s identification.
8. Conclusion
Offloading is now essential in the world of telecommunication if service providers wish to cope
with the unprecedented explosion in data traffic. The objective of this work is to create
a system that performs calls offloading by allowing the user to activate/deactivate or
configure the service by using android-platform application installed on the client’s
smartphone. As a result, in this work we were able to create the mobile user application
that needs wireless internet connection. Moreover, we created a virtual server that
reads and sends data to the application. The server has database that contains the
users’ information and therefore only authenticated users can get this service. This
database has also the targeted fixed-line destination addresses labeled by their
neighboring WLAN access points whose flags alter depending on the user query. We
carried out the offloading process using voice over IP technique. We created a dial plan
that was able of reading SIP extensions of callers and based on the destination called,
the dial plan performed offloading after reading configuration of the receiver from the
database handled by Wamp server. Our work can be extended to a fully functioning
application that can be installed in market or it can still be considered for any
cooperation with a mobile operator company.
[34]
References
Anaconda Mobile Company. (n.d., n.d. n.d.). OFF-LAOD CALLING. Retrieved from Anaconda
Mobile:
https://www.anacondamobile.com/index.php?route=product/category&path=59_73
Cisco. (2006, June 1). SpecialCallOffload_WP_0104. Retrieved from Cisco Systems,Inc.:
http://www.ipv6.cisco.com/assets/cdc_content_elements/flash/mobile_sols/partners_s
ite/pdfs/ipngn/itp/SpecialCallOffload_WP_0104.pdf
Cisco. (2014, March a4). 802.11ac The Fifth Generation of Wi-Fi Technical White Paper - Cisco.
Retrieved from www.cisco.com:
http://www.cisco.com/c/en/us/products/collateral/wireless/aironet-3600series/white_paper_c11-713103.html
Hasan, S., Intell. Syst. Res. Centre, U. U., Siddique, N., & Chakraborty, S. (2009). Femtocell versus
WiFi - A survey and comparison of architecture and performance. Wireless
Communication, Vehicular Technology, Information Theory and Aerospace & Electronic
Systems Technology, 2009. Wireless VITAE 2009. 1st International Conference on (pp.
916 - 920). Aalborg: IEEE.
International Telecommunication Union: ICT Data and Statistics Division. (2014). ICT FACTS AND
FIGURES. Geneva: International Telecommunication union.
Ramakrishnan, M., & Rotundo, C. (2014). Oracle Process Accelerators for Telecommunications.
Retrieved from Oracle| hardware and software, Engineered to work together:
http://www.oracle.com/us/technologies/bpm/mobile-data-offloading-1969405.pdf
Vereecken, W., Van Heddeghem, W., Deruyck, M., Puype, B., Lannoo, B., Joseph, W., . . .
Demeester, P. (2011, June 6). Power consumption in telecommunication networks:
overview and reduction strategies. Communications Magazine, IEEE, pp. 62 - 69.
[35]
Appendices:
Appendix A: Permissions
These following permissions were used in order to enable the application to work on
android platform based on system requirements:






Uses SDK.
Android.permission.ACCESS_NETWORK_STATE.
Android.permission.ACCESS_WIFI_STATE.
Android.permission.INTERNET.
Android.permission.READ_PHONE_STATE.
Android.permission.WRITE_EXTERNAL_STORAGE.
Appendix B: Pseudo code:
Android Mopho Program
Main activity class




Start main activity class extends activity;
Declare STRING (SIMserial,
mac_address,network_name,input_stream,jasn,line,name) as a
NULL;
Oncreate method;
Create wifi manager;
Create wifi info;
Create telephony manager;
Get BSSID of wifi info and store it in the
mac_address;
Get SSID of wifiinfo and store it in the Network_name;
Get serial number of telephony manager and store it in
the SIMserial;
Execute checkSIMserial method;
Execute getcontent method;
CheckSIM serial number method;
Define httpclient, httppost,
arraylist<namevaluepairs>, Responsehandler<string>;
Add SIMserial on the name value pairs;
If reposone handler contains ‘SIM serial number
found’;
True: toast ‘login success;
Make new intent to first activity class;
Start intent;
[36]

False:
toast ‘login failed’;
Terminate;
Exception error: make toast ‘failed to connect to
server’;
Terminate;
Getcontent method;
Define httpclient, httppost,
arraylist<namevaluepairs>, Responsehandler<string>
, httpentity, httpresponse;
Store the Jason in the name;
Make exception: Logcat ‘fail 1’ ;
First activity class





Start first class extends activity;
DECLAR STRING(test,mac_address)
DECLAR BUTTON(bb)
On Create method
Create wifi manager;
Create wifi info;
Get BSSID of wifi info and store it in the
mac_address;
Assign view by id of b1 to bb button;
Set bb is invisible;
Declare Switch x;
Set x checked or unchecked;
If x is checked: execute checkmacea
(url+’mactest.php’);
Make toast ‘Action done’;
If x is unchecked: execute
checkmacea(url+’desflag.php’);
Make toast ‘Action done’;
bb set on click Listener
start intent I (first class ,add class)
start activity i
Checkmacea method
Define httpclient, httppost,
arraylist<namevaluepairs>, Responsehandler<string>;
Add mac_address on the name value pairs;
If response handler contains ‘mac found’;
True: Set bb visibility false
Set test true
[37]
False:
toast ‘Place not found;
Set bb visibility true
Set test FALSE
Terminate;
Exception error: make toast ‘failed to connect to
server’;
Terminate;
Add activity class




Start add class extends activity
DECLARE String mac_address ; button anr,rh ;edittext e1,e2
Oncreate method
Create wifi manager;
Create wifi info;
Get BSSID of wifi info and store it in the
mac_address;
Assign anr id to anr;
Assign pn1 id to e1;
Assign pnn id to e2;
Assign rh id to rh;
Set anr visible;
Set rh invisible;
Anr on click listener: insert(url+’insert.php’);
Rh on click listener: new intent I
(add.class,fisrt.class);
Start activity(i);
Insert method
Define httpclient, httppost,
arraylist<namevaluepairs>, Responsehandler<string>;
Add mac_address on the name value pairs;
Add place on the name value pairs from e1;
Add tel_number on the name value pairs from e2;
Add id on the name value pairs from mainactivity.name;
If response contains registered;
True : make toast ‘Registration success’;
Set anr to invisible;
Set th to visible;
Set x to true;
False : make toast ‘Registration failed’;
Set anr to visible;
Set th to invisible;
[38]
Exception error: make toast ‘failed to connect to
server’;
Terminate;
PHP PCODES
SIMserialcheck











$hostname = ‘ local host’;
$database = ‘SIMserialdb’;
$localhost = connect to mysql($hostname,’root’,””); or
trigger_error;
Mysql select($database,$localhost)
$SIMserial = Get SIMserial from android
$qs = "SELECT * FROM SIMserialinfo WHERE SIMserial=
'".$SIMserial."'"
$Query =mysql query($qs) or die
$rows = mysql number of rows(#Query);
If($rows == 0 )
echo ‘SIMserial not found’
Else
echo’SIMserial found’
Mysql close ($database);
Mactest












$hostname = ‘ local host’;
$database = ‘SIMserialdb’;
$localhost = connect to mysql($hostname,’root’,””); or
trigger_error;
Mysql select($database,$localhost)
$mac_address = Get mac_address from android
$qs = "SELECT * FROM mac WHERE mac_address =
'".$mac_address."';
$Query =mysql query($qs) or die
$rows = mysql number of rows(#Query);
If($rows == 0 )
echo ‘mac not found’
Else
echo’mac found’
$query_2 = "UPDATE mac SET flag = '1' WHERE mac_address =
'".$mac_address."'";
$query_ex = mysql_query($query_2) or die(mysql_error())
[39]

Mysql close ($database);
Desflag













$hostname = ‘ local host’;
$database = ‘SIMserialdb’;
$localhost = connect to mysql($hostname,’root’,””); or
trigger_error;
Mysql select($database,$localhost)
$mac_address = Get mac_address from android
$qs = "SELECT * FROM mac WHERE mac_address =
'".$mac_address."';
$Query =mysql query($qs) or die
$rows = mysql number of rows(#Query);
If($rows == 0 )
echo ‘mac not found’
Else
echo’mac found’
$query_2 = "UPDATE mac SET flag = '0' WHERE mac_address =
'".$mac_address."'";
$query_ex = mysql_query($query_2) or die(mysql_error())
Mysql close ($database);
Insert











$hostname = ‘ local host’;
$database = ‘SIMserialdb’;
$localhost = connect to mysql($hostname,’root’,””); or
trigger_error;
Mysql select($database,$localhost)
$mac_address = Get mac_address from android
$qs = "SELECT * FROM mac WHERE mac_address =
'".$mac_address."';
$Query =mysql query($qs) or die
$rows = mysql number of rows(#Query);
If($rows == 0 )
echo ‘not Registered’;
Else
echo’ Registered’;
$query_insert = "insert into mac values
('',".$id.",'".$mac_address."','".$place."','".$tel_number."
','1') ";
[40]


$query_ex = mysql_query($query_insert) or
die(mysql_error());
mysql_close($localhost);
Appendix C: Offloading Process (in case of using MSC’s assets)
Having obtained all signaling data regarding the service, Offloading is performed when
anyone calls the user.
Call routing without offloading:
In order to see what offloading does to the network. Let us look at the call routing
process without offloading. Typically, the routing process comes as follows:




The call starts its route at the end user point by communicating with the BTS
using RF waves. After that the BTS communicate with its corresponding BSS.
The call takes its route to the MSC by means of BSSs connections.
If the destination is in another network, such as: PSTN, another mobile network,
the call travels to the GMSC and then to be relayed to the other network’s
gateway.
If the destination resides in the boundaries of the same network, calls are routed
to their destination by the same fashion but inversely, i.e. from MSC to (other
MSCs) to BSS to BTS and eventually to the destination mobile station.
Figure 17: Map showing the conventional route of call data in mobile network.
Call routing with offloading:
Instead of having the conventional route. In offloading the destination, the call travel from the
mobile station in the same way until it reaches the MSC layer. There, if the call is to go to an
[41]
offloaded destination, the call go on travelling to the GMSC, in which the call is deported to the
PSTN gateway.
The following figure shows the route in the offloading case.
Figure 16: Map showing the alternative route for call data in the mobile network
[42]
Download