gaël alloyer, marc cabocel, romain castagnet, pascal clement, pierre leroy, guillaume lesne,...

Download Gaël ALLOYER, Marc CABOCEL, Romain CASTAGNET, Pascal CLEMENT, Pierre LEROY, Guillaume LESNE, Nicolas PEPIN Bring mobility for a connecting world… Tutors:

If you can't read please download the document

Upload: baldwin-watts

Post on 29-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Slide GUIGUI

Gal ALLOYER, Marc CABOCEL, Romain CASTAGNET, Pascal CLEMENT, Pierre LEROY, Guillaume LESNE, Nicolas PEPINMobility Project - VoIP over 3G/WiFi networksBring mobility for a connecting worldTutors: Julien ARNAUD, Daniel NEGRU

Hello everyone, and thank you for coming. During this session we will present your our project, VoIP over 3G and WiFi networks.

1MobilityMobility is the ability of a device to switch between two networks without cuttings of communication

3G and WiFi are two network accesses for mobile devices

Quality of servicesLess communication cuttingsBandwidth savingMoney saving Project Aims Management Environment Android iOS Demo Conclusion

First of all let me give you the definition of mobility over Internet networks.Four main advantages can directly be linked to this evolution.2Why Android and iOS?Android and iOS provide to developpers a powerful developping platformAndroid and iOS are the quickly growing on the Market of mobile OS Project Aims Management Environment Android iOS Demo Conclusion

So, why Android and iOS ?First because these two OS provide a good and easy developping platform. And also because there are more and more present on the Market.

3So you said VoIP?Voice over IP is a family of communication protocols to deliver voice communications and multimedia sessions over IP networks

Acheiving mobility with VoIP also means acheiving mobility for any other communication services such as mobile TV, Audio/Video Streaming

Project Aims Management Environment Android iOS Demo Conclusion

So, VoIP provides a family of communication protocols we are using in this project.Acheiving mobility with VoIP also means achieving mobility for more communication services such as mobile TV or Audio and Video Streaming.4Project management Project Aims Management Environment Android iOS Demo Conclusion

Project ManagerANDROID Team(4 students)iOS Team(3 students)

5Project management Project Aims Management Environment Android iOS Demo Conclusion

6

1. SVN

2. Wiki3. GANTT Diagram

Project tools Project Aims Management Environment Android iOS Demo Conclusion

Mobility Application IMSLoad ApplicationRegisterMake callEnd callEnd callRegister (WIFI)AcknowledgeInviteAcceptRegister (3G)ReinviteAcceptByeAcceptSwitch to 3GinterfaceAcknowledgeUserPress Register buttonPress Reinvite buttonSequence Diagram7

Project Aims Management Environment Android iOS Demo Conclusion

+

8Test Environment Project Aims Management Environment Android iOS Demo Conclusion

-Now we will discover theTest environnement through 4 differents part:9VoIP ProtocolsSession Initiation Protocol (SIP) RFC 3261Signaling ProtocolRegistrationConnexion initialization

Real Time Protocol (RTP)RFC 3550Media Flow TransportUDP Transport

Project Aims Management Environment Android iOS Demo Conclusion

So, Firstly, SIP & RTP ProtocolsThey are 2 major complementary VoIP ProtocolsSIP is the signaling protocol, used for registration and connexion into the IMSwhereas RTP is the protocol used for media transport during communicationsIP Multimedia Subsystem (IMS)

Entry ProxyP-CSCFCore NetworkDatabase (HSS)Session Contrle (S-CSCF)Exit ProxyI-CSCFAdded Entry Proxy for mobility management Project Aims Management Environment Android iOS Demo Conclusion10

Now lets move on IMS.The IMS is an architectural framework for delivering Internet Protocol multimedia servicesHe originally consits of an entry proxy (P-cscf), a Core Network and an exit proxy.To register into the IMS the device send a sip INVITE request (red)Then the RTP flux pass through the blue wayIn order to added mobility to our project, a second entry proxy has been added to the IMS

Help:Call Session Contrle Function (CSCF)Proxy-CSCF (P-CSCF)Border Session ControleServing-CSCF (S-CSCF)Session Controle with HSSInterrogation-CSCF (I-CSCF)Home Suscriber Serveur (HSS)User Database

11PJSIP Library

VoIP Library:Open SourceMultiplateformsC writtenUse SIP & RTP ProtocolsInclude VoIP Application (PJSUA)

Project Aims Management Environment Android iOS Demo Conclusion

PJSIP is an open source, multiplateforms and c written VoIP Library. It use SIP & RTP protocols and include a VoIP Application called PJSUA which will be describe lately

This schema represent all the different PJSIP layer's

PJLIB is the base/foundation library for all other libraries into PJSIP, and it provides complete OS abstraction layer.

Then you have other upper's layer librarys like: Pjmedia for media Transport or PJSIP for SIP portocol.

Above there is PJSUA-LIB which the highest level library that abstract all the others librarys for the user/Programmer.

PJSIP also provide a VoIP application directly using itself which is called PJSUA,.

12PJSIP Mobility PatchiPhoneAndroid[Patched] = With mobility management Project Aims Management Environment Android iOS Demo Conclusion

The PJSIP library has been modified in order to implement mobility management.

A patch containing all those modifications has been created and could be used in order to add mobility management on 1.6.x PJSIP version

PLUS CLAIR AVEC 1.8.10 ainsi que 1 block ios et 1 android13Network Access3G Network ImplementationOpenVPNSSH Tunnel

Firewall works around over 3GRouter Security over WifiWPA2OpenVPN certificatespublic/private Key for SSH Project Aims Management Environment Android iOS Demo Conclusion

To finish with test Environemment, Our results need to be test. Thus a 3G connection between IMS and the device is needed. So, a VPN as been create inside the 2nde test Network to connecte the device 3G interface with the IMS.An ssh tunnel as also been created in order to forward packets trhough the ENSEIRB Firewall

Technologies such as certificates, WPA2 or public/private Key were usedour Network Acces are protected.

Now the Android team will present you their work.

EXPLICATION: ON DOIT TESTER, ON A DONC NOS SERVEURS MAIS LA 3G PEUT PAS PASSER DANS LENSEIRB. On a donc cr un vpn ainsi quun tunnel ssh pour permettre au device de passer le firewall de lenseirb et datteindre lIMS

14Android Project Aims Management Environment Android iOS Demo Conclusion

15Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

We would like to know if Wifi and 3G can be enable at the same time on android phones.To discover that, some tests have been performed on a Samsung Galaxy Tab and a Samsung Galaxy S; these phones have been flashed and rooted in order to enable access to a root terminal. Thanks to a tool named Busybox some UNIX command like ifconfig are now available on Android phones.

16Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

Svnet0, cest quoi? Vmware

As we can see on these screenshots, Thanks to the busybox ifconfig command applied on the Android phones, Wifi and 3g have each, one distinct networks interface: Eth0 for wifi and pdp for 3G.

However, Apparently the system seems to change the status of 3G interface while Wifi is enable.

Because, If Wifi is enable 3G is automatically disable. To be sure of that, more tests have been performed.

SSH tunnel

17Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

For example,In order to avoid the fact that the data flow is switched from an interface to another a persistent connection like ssh has been used. Indeed, the data flow going through the ssh tunnel cannot be transferred from one interface to another.

Thus, thanks to a ssh client installed on the phone, a ssh tunnel is performed to the Enseirb server with the 3G network interface while WiFi is disable. Then, the wifi interface is turned on and connected to a network. After that the ssh connection is lost.

SSH tunnel

A WiFi network

18Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

For example,In order to avoid the fact that the data flow is switched from an interface to another a persistent connection like ssh has been used. Indeed, the data flow going through the ssh tunnel cannot be transferred from one interface to another.

Thus, thanks to a ssh client installed on the phone, a ssh tunnel is performed to the Enseirb server with the 3G network interface while WiFi is disable. Then, the wifi interface is turned on and connected to a network. After that the ssh connection is lost.

Not allowed by the Android system Eitheror19Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

Consequently we are now sure that the Android system has been implemented to have only one data connection enable at the same time.

However, a hack applied on the Android system has been found to solve this problem.

So I let the speech to romain Castagnet which will present this part.20Hack Process

private class MyHandler extends Handler { @Override public void handleMessage(Message msg) { NetworkInfo info; //added to disable Connectivity Service int networkState = 8; //not any following state /*use static google dns server for wifi and 3g*/ if (msg.what == NetworkStateTracker.EVENT_STATE_CHANGED) { SystemProperties.set(net.dns1, 8.8.8.8); SystemProperties.set(net.dns2, 8.8.4.4); bumpDns(); } ////////////////////////////////////////////// //switch (msg.what) { switch (networkState) { case NetworkStateTracker.EVENT_STATE_CHANGED: info = (NetworkInfo) msg.obj; int type = info.getType();......ConnectivityService Project Aims Management Environment Android iOS Demo Conclusion

** First we downloaded the android system source code on the android developers official website.* Then we extracted one of the files managing connectivity services.* We modified a part of this to enable both of metworks interfaces to work at the same time. * Next we built android system with the modification. And thanks to that *

YES21Can WiFi and 3G interfaces be enabled at the same time Project Aims Management Environment Android iOS Demo Conclusion

The problem of interfaces has been finally solved. Indeed now the ifconfig command applied on the phone give the following results. As we can see, WiFi and 3G interfaces are working at the same time .*

22We provide an Open-source Android VoIP Application using a modified version of PJSIP 1.8.10

Project Aims Management Environment Android iOS Demo Conclusion

CSIPsimple is a Open-Source VoIP (Voice over IP) application on android. This application was choosen because it relies on a modified 1.8.10 PJSIP library . CSipSimple is still in development with an active community, however the documentation is fairly rare.The we modified it to make mobility. *

23CSipSimple

Two new buttons for mobility management! Project Aims Management Environment Android iOS Demo Conclusion

These 2 pictures of the CSipSimple Graphical User Interface show us how to create an account. Then we can see on the second picture that we had two buttons. The first one is to register in the IMS the second network interface. The second one : the re-invite is to call the correspendent with the newly registered network interface. However the implementation of the two functions register and re-invite is still in progress.Indeed it was fairly complex to integrate PJSIP writen in C language to a java android apllication. *MARC*

Android applications

PJSIP

CSipSimple

How can it work together?

Project Aims Management Environment Android iOS Demo ConclusionC langage in Java application?

24

NDK (Native Development Kit)Allow to develop in C on Android applications by building libraries (.so)

Library

NDK -BUILDIMPORT

Project Aims Management Environment Android iOS Demo Conclusion

25

SWIG SWIG: Simplified Wrapper and Interface Generator Generate optimized PJSIP functions in C for NDK Project Aims Management Environment Android iOS Demo ConclusionPJSIPOPTIMIZED PJSIPSWIG26

PJSIP to CSipSimple27

PJSIPOPTIMIZED PJSIPLIBRARY PJSIPSWIGNDKIMPORT Project Aims Management Environment Android iOS Demo Conclusion

28iOS

Project Aims Management Environment Android iOS Demo Conclusion

29iOS3G and WiFi network interfaces of the iPhone can work at the same time at the contrary of Android

Jailbreak iPhone Access to ifconfig & OpenVPN Project Aims Management Environment Android iOS Demo Conclusion

Regarding the iOS operating system, WiFi and 3G are working at the same time if both interfaces are activated.To install the two network tools ifconfig and OpenVPN iPhones were JailBreaked.

30iPJSUA Project Aims Management Environment Android iOS Demo ConclusioniPJSUA is provided in PJSIP 1.8.10

iPJSUA is an extension of PJSUA (PJSIP project)

iPJSUA is an extension of PJSUA. This application is only available with PJSIP 1.8.10.31iPJSUA with mobility

With PJSIP 1.8.10 modified with mobility management, two new functions in PJSUA are available for the second interface :

Register (rg)Reinvite (v)

After some issues fixed due to crosscompilation with GCC for iOS, iPJSUA is working as well as PJSUA for mobility management. Project Aims Management Environment Android iOS Demo Conclusion

Thanks to the modifications that were made on PJSUA , the mobility modifications directly work on iPJSUA after some debugging process and some issues encountered during the corsscompilation.Mobility have been tested with OpenVPN over 3G and WiFi connected to the IMS. Youll see a demonstration video of our application later after the presentation of the User Interface.

32A friendly Graphical Interface

A tabBar systemHome View Project Aims Management Environment Android iOS Demo Conclusion

The basic version of UI is with 2tabs at the bottom at the app. We made 2 more sections! The first one is the home view

33

A Contact listUser View

A friendly Graphical Interface Project Aims Management Environment Android iOS Demo Conclusion

34

Make a callAnswer to an incoming callCall View

A friendly Graphical Interface Project Aims Management Environment Android iOS Demo Conclusion

35

Register and Reinvinte buttonsHang upIn Call View

A friendly Graphical Interface Project Aims Management Environment Android iOS Demo Conclusion

36

Command View

A command line interfaceA friendly Graphical Interface Project Aims Management Environment Android iOS Demo Conclusion

37

Configuration View

Account configuration

A friendly Graphical Interface Project Aims Management Environment Android iOS Demo Conclusion

38Video Project Aims Management Environment Android iOS Demo Conclusion

39Checklist Project Aims Management Environment Android iOS Demo ConclusionAchievementsStatusAndroid phones flashed and rootedWiFi and 3G working at the same timeMobility on CSipSimpleUser interface on CSipSimpleANDROIDS GOALiPhone jailbrokenMobility on iPJSUAUser interface on iPJSUAiOSS GOAL

40Our supervisor Julien Arnaud

Daniel NegruThanks Project Aims Management Environment Android iOS Demo Conclusion