IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 546

Aggregated Call Module for Lollipop Mobile Call Sequences

1 Venkata Sanyasi Rao Sasipalli, 2 Zulfadhli Bin Zainuddin, 3 Gouri Shankar Sasipalli, 4 Krishnam Raju Gottumukkala

1 Center for Excellence in Computer Technology Hiroshima, Hiroshima, 7300048, Japan

2 RAMTEJ Technologies Corp., Hiroshima, Hiroshima, 7300048, Japan

3 Center for Excellence in Computer Technology Collierville, Tennessee, 38017, USA

4 Center for Excellence in Computer Technology Visakhapatnam, Andhra Pradesh, 531001, India

Abstract – Call sequences in Lollipop posed some problems Reference [1]. Today, carriers, device manufacturers and of call success rate. It is identified that processing call developers exploit this innovative platform to create sequences need to be modified with new methods and applications. Software companies are creating a variety of techniques. In this paper we presented new method and applications over this platform and achieving higher techniques “Aggregated Call Module” (ACM) to replace benefits. As well, with the advancements of network traditional call sequences adopted by many OEMs, technology the carriers are also exploiting and providing Developers. Android call processes, Network types and Error handling are clearly separated into different feasibility to a variety of network variants. In order to components. This separation allowed the processes to act facilitate and support creative applications and network independently and hence problems such as inter-process innovations, device manufacturers or OEMs are dependency, asynchronous communication, etc are aggressively offering a wide range of device models [2]. eliminated. This new design concept and method allowed All these three entities, developers / software companies, programmers to develop strongly intact classes / methods. network carriers and OEM form a set together with the On the business point also, ACM provided more flexibility Android platform. to add new business components with minimal configuration and programming changes. Adoptions and Android Present Lollipop version is an excellent development upgrades also can be implemented easily. compared to Kitkat, brought to us by Android with many Keywords - Call Sequences, Network Types, ACM, rich applications [3]. To name some apps, Multitasking. 1. Look and Feel - Holo vs : Holo was 1. Introduction clean and minimal. Material Design represents the pendulum swinging back the other way so far that it Android Open Source Project (AOSP) is an initiative of almost looks like iOS. Bright colors, super flat, card- (OHA, led by . Android based design and animations everywhere make Material software stack is created for a wide array of devices with Design the single most recognizable OS version around. different form factors. The primary purposes of Android are to create an open software platform available for 2. Security - Lock Screen All the Things: Lollipop is carriers, OEMs, and developers to make their innovative much more geared towards multitasking and convenient. ideas a reality and to introduce a successful, real-world From personal unlocking to notifications and quick product that improves the mobile experience for users, settings accessible from the lock screen, Lollipop goes one better and adds a Caller shortcut.

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 547

3. Recent Apps: Lollipop introduces a refreshed Recent As well the important components of Security, Apps area, with a scrolling card-based Rolodex stack of Configuration and Connectivity are also shown, however, your apps. Lollipop also introduces the search bar to the they are not discussed in this paper. Recents menu. 2.1 Presentation Layer (PL) 4. Settings Menu: Again, the big change here is from dark to light, with Lollipop opting for a light gray Roboto Presentation layer (PL) provides all application level with green icons on a white ground. Lollipop embeds components with UI perspective. This layer is responsible them a layer down. The idea is, of course, that you access to display the graphical interface and providing it with those switches via the Quick Settings shortcuts instead. As data from Data Layer. There are two main components: far as functionality goes, there's a lot to be said: but it all UI Components and Process Components. When the boils down to the simple premise that lollipop is KitKat Dialer app initiates a call intent in the UI component a but better. notification is sent to Process component. The interface adapters convert the notification details into data object. 5. Dialer: All the other apps are onside of the balance and The process component parses and initiates sequencing. Dialer application itself stays on the other side to make equilibrium. This app provides wider scope to explore the Individual Users implementation of the technology improvements of various network types. With the introduction of network types, 3G, 4G and their variants, carriers and OEMs Mobile Client Application respond intelligently to the architectural changes in the UI Components network communications and implementations in Dialer Dialer / Call

application. However, the call sequencing methodology Process Comps. adopted by each OEM or Software developers throws n Layer Presentatio functional disparities and diminishes call success rates and results in faulty mobile operation [4][5]. / Settings

App. Facade

This is where we propose a new method of implementing Biz Workfl Biz Layer Security call sequences. The proposed new method (1) avoids Business comp ows Entities Connectivity inter-process dependency, addressed in [5], (2) handles Cross-Cutting network variants independently and (3) provides Data Data Servi Configuration opportunity to easily add business components. Basic and Access Helper s ce essential architecture of android app highlighting Data Layer Agen presentation layer, business layer and data layer is given t in Fig.1.

Unreliable

Local Business Data Cache Networks Presentation Data &

Layer Layer Layer

Internet / Carrier Networks

Model View Java Objects Repository Boundaries Presenter Interceptors Patterns Data Services Sources

Figure 1: Android 3-level Architecture Mobile Support Infrastructure

2. Detailed Client Components Figure 2: Mobile Client Components & Network Connectivity

Before adopting the newly proposed method for handling 2.2 Business Layer (BL) processes, we need to look into detailed components that are influencing or involved in the design. Our focus is on Business rules here: all the logic happens in this layer. components in the 3-level architecture depicted in Fig.1. Regarding the android project, you will see all the Essential components in each layer are given in Fig.2 [6]. interactors (use cases) implementations here as well. This layer provides room where one can add business

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 548 components that the application will use. Business 3. Proposed Aggregated Call Module (ACM) processes reflect the macro-level activities that the business performs. Examples include call processing. We propose a new method to replace the traditional call These business processes are encapsulated by business sequences. The proposed method is an aggregated call workflow components. Multitasking, a big improvement module in which all the processes, that are involved in in Lollipop, allows these workflows travel together. call sequence, are handled independently. The module is designed with following components Business entities are data containers. They encapsulate - a box for Input values (IN Box) and hide the details of specific data representation formats. - a box for Output values (OUT Box) For instance, a business entity may initially encapsulate a - set of Call Process Units with forward flow (CPU) recordset obtained from a , such as address book. - set of supported Network variants (NTV) and Later, that same business entity may be modified to wrap - set of Error handlings (ERR), as shown in Fig.4. an XML document with minimal impact to the rest of the application. Business and business workflow components can interact with independent business entity components.

2.3 Data Layer (DL)

Data access components in this DL are responsible for exposing the data stored in to the BL. In Dialer app, data source is the database at access provider where are stored, when calls forwarded to message center. In our case this DL includes local data cache also, which we refer very often to check the caller / called information from the object.

2.4 Network Variants

Carriers do support basic (3G) to advanced (4G) networks Figure 4: Aggregated Call Module Process Overview based on the spectrums allowed to them. 4G technologies include HSPA+ 21/42, the now obsolete WiMAX, and 3.1 IN and OUT Boxes LTE. See below picture for 3G, 4G networks and the variants [7]. IN and OUT Boxes are array objects to hold all variable values. These values include the ones received from PL via INN and the ones returned by each of the CPUs. When CPUs are process a call intent it looks for the necessary values in both IN and OUT boxes.

3.2 CPU Component

All the CPUs function independently, however to start and end the module ACM to function, we fix CPU1 as starting and CPUn as ending in compliance with Android Figure 3: Network Variants architecture. The technique we propose is that CPUs process the call intent in forward flow. The input values Some US carriers are in this flow (from fastest to slowest that are necessary to process the call intent are searched speed), Verizon's 4G LTE network was the fastest, in both IN and OUT boxes, and if available they are used followed by T-Mobile LTE, AT&T LTE, T-Mobile and the process continues. Otherwise the CPU is paused HSPA+, Sprint LTE, AT&T HSPA, Verizon 3G and until the necessary values are available. Once a CPU finally Sprint 3G.[8]. We accommodate all of network completes it process it outputs a non-error result value to variants in the new proposal. OUT Box. If a CPU fails to process call intent it outputs an error to OUT Box and send alert to ERR component.

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 549

3.3 NTV Component The proposed ACM also handles multitasking as shown in the below Fig. 5. The ACM accommodates parallel When a network CPU is initiated in CPU component, processing of the call flows, by communicating with CPU, NTVs are initiated. Note that this network CPU is in NTV and ERR components via IN and OUT Boxes. forward flow of CPU, but independent, so does not depend on any other CPU to finish its process. NTVs also take values from IN and OUT boxes and process to identify the supported network of that particular call intent. On successful completion NTV component returns network information to OUT Box. If any error occurs in the processing, it outputs an error value and sends alert to ERR component.

3.4 ERR Component

This ERR component handles all types of errors that are Figure 5: Processing Multiple Call Sequences in Multitasking received from CPU and NTV components. The error messages / values are searched in IN and OUT Boxes and 4. Application of ACM to Call Sequences are converted to compatible format.

The final output to send to OUT shall contain both 4.1 Process Outgoing Call Using ACM success values along with ERR value. When Dialer app initiates outgoing call, a call intent is 3.5 Multitasking initiated and a notification shall be first sent to com.android.server.telecom. This notification is same in As far the Dialer app itself, though the network carriers our method (ref. Fig.8 in Appendix). After receiving this allow multiple calling / receiving at a time, devices also notification, our CPUs start working independently until should support this functionality. Some OEMs offer all the CPUs complete their jobs, unless a failure occurs. conference call, which include 3 to 6 calls at a time. All The CPUs android.telecom, com.android.phone and these calls need to be handled separately but in one com.android.telephony do their jobs communicating with functionality. Lollipop multitasking allows this IN and OUT Boxes for necessary values. functionality.

Figure 6: Outgoing Call Sequence in Lollipop Aggregated Module

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 550

Check device state for placing call, check, network type Store success values in OUT Box are all done simultaneously. They are not dependent on Else other processes, except IN and OUT Boxes, where they Store fail, error values in OUT Box collect necessary values and store resultant values. Finally, Stop A, B, , D, E. modem is notified to place a call. This end part is same Send values of (success/failure, network, error) to OUT with android traditional call sequencing. 4.3 Process Incoming Call Using ACM 4.2 Heuristic of Outgoing Call When the modem is notified an incoming call it sends a Receive Call Intent Notification in IN Box message to android.internal.telephony CPU. This is a A: start service.telecom CPU starting CPU in our ACM, which is functionally same B: start android.telecom CPU with traditional sequencing (refer Fig.9 in Appendix). C: start android.phone CPU Once call notification is registered in IN Box, all CPUs D: start internal.telephony CPU com.android.phone, android.telecom, service.telecom are E: start android.ims CPU initiated to do their jobs. For incoming call, network type Search for input values in IN Box in loop is checked immediately, then call reject process, etc If(not found) follow. Here also all these CPUs in ACM process their pause particular CPU jobs independently and simultaneously communicating else with IN and OUT Boxes for necessary values. Note that continue no CPU is dependent on other CPU, but continuously If(A, B, C, D, E successfully complete) communicate with IN and OUT Boxes.

Figure 7: Incoming Call Sequence in ACM

Once all the CPUs complete their job a set of success / 4.4 Heuristic of Incoming Call failure, network, error values to OUT and InCallUI screen is initiated for successful incoming call. Receive Call Notification in IN Box P: start internal.telephony CPU Q: start android.phone CPU R: start android.telecom CPU

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 551

S: start server.telecom CPU 5.3 ACM Business Advantages T: start android.incallui CPU Search for input values in IN Box in loop All the entities in ACM are independent and clearly If(not found) separated, it become very easy to add new business pause particular CPU components to ACM. If a business operator wants to add else his new network type, it is easy to add to NTV component. continue operator wants to advanced network variant. Even the If(P, Q, R, S, T successfully complete) android version upgrades also easily be ported to ACM. Store success values in OUT Box Else Finally, unlike the traditional call sequencing where inter- Store fail, error values in OUT Box process dependency, asynchronous communication, Stop P, Q, R, S, T. frequent failures, etc., discussed in [99 inter-depend], Send values of (success/failure, network, error) to OUT ACM gives more success to Carriers, OEMs and Developers altogether. 5. Discussions 6. Conclusions 5.1 ACM Design Advantages Introduction of Aggregated Call Module for outgoing and Designing each android call process as Call Process Unit incoming call processing proved superior in design, allows to identify itself as independent entities and programming and business advantages. The ACM solved acquires more responsibility to work towards successfully the problems of inter-process dependency, asynchronous complete its job. This helps increase call success rate. communications addressed in other paper. Helped Since there is no communication with neighboring CPUs, increase call success rates. Provided flexibility to add new multitasking such as conference call becomes more functionality easily in design point of view and smooth. As there is no synchronous or asynchronous programming point of view. Android version upgrades communication or inter-process dependency, failures or also can be ported easily with minimal changes in the unwanted behavior is reduced drastically. CPUs, NTV, programming and configuration. All the flow between end ERR treated as separate components it gives more user and network is addressed with new methodology and flexibility to add new functionality. techniques in this aggregated call module. Though Lollipop brought more richer look & feel, apps, 5.2 ACM Programming Advantages connectivity, etc., the Dialer app was not fully refined. With the introduction of ideas and methodologies The independency of entities helps programmers to define presented in this paper, Network Carriers, OEMs and clear classes and methods for each entity. Due to no direct Developers get more benefits. inter-CPU communications public methods are reduced and hence the occurrence of bugs is reduced. If a new Appendix business component is added to ACM, implementation of the functionality of this new component is also easy with 1. Outgoing Call Sequence in Lollipop minimal changes in CPUs, NTVs and ERRs. Following is the outgoing call sequence discussed in other paper [5], where some problems were identified in call success rates.

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 552

Figure 8: Outgoing Call Sequence in Lollipop

2. Incoming Call Sequence in Lollipop paper [5], where some problems were identified in call success rates. Following is the outgoing call sequence discussed in other

Figure 9: Incoming Call Sequence in Lollipop

IJCSN International Journal of Computer Science and Network, Volume 4, Issue 3, June 2015 ISSN (Online) : 2277-5420 www.IJCSN.org Impact Factor: 0.417 553

Acknowledgments Venkata Sanyasi Rao Sasipalli is a lead researcher at Center for Excellence in Computer Technology and Principal Advisor to RAMTEJ Technologies Corporation, Hiroshima, Japan. He received We acknowledge our gratitude to RAMTEJ Technologies Doctor of Engineering from Hiroshima University, Masters from Corporation for its financial support for this project. Technical University of Kaiserslautern, Germany and Andhra Grant No. RTG-RD-CJ02-2015. Also for providing part University, India. His research interests include Computer Engineering, Data Approximations, Antenna Systems and RFID of the internal code (though open source but customized) Technology. to carry out this project. Zulfadhli Bin Zainuddin is an engineer working on developing architectural designs for mobile applications at RAMTEJ References Technologies Corp., He received his bachelors degree from University of Malaya, Malaysia. His research interests include [1] Android System Architecture: programming languages, logical designing and security network. http://source.android.com/source/index.html Gouri Shankar Sasipalli is a technology consultant at Center for [2] Zane Lackey, “Attacking SMS” BlackHat, USA, 2009 Excellence in Computer Technology, working on database services [3] Alex Dobie, “The Android Central Review” Nov. 2014 for carriers, OEMs and other entities. He received his master in [4] Call Setup Success Rate, computer applications from India and MBA from University of http://en.wikipedia.org/wiki/Call_setup_success_rate Memphis, USA. His research interests include data services, data [5] Venkat Sanyasi Rao et.al. “Inter-Process Dependencies mining and big data strategies. in Lollipop Call Sequences”, Vol. 4, Issue 3, Jun 2015 Krishnam Raju Gottumukkala is an advisor at Center for [6] Android System Architecture: Excellence in Computer Technology, Visakhapatnam, India. He is a http://source.android.com/source/index.html professor emeritus of Engineering Mathematics, Andhra University. [7] Alcatel Lucent, “Options for Providing Voice Over LTE His research interests span to computer engineering, CFD, and and Their Impact on the GSM/UMTS Networks”, 2009 Optimization techniques. [8] “Nexus for Developers”, https://developers.google.com/android/nexus/drivers