Technische Universität Ilmenau Fakultät Für Elektrotechnik Und
Total Page:16
File Type:pdf, Size:1020Kb
Technische Universitat¨ Ilmenau Fakult¨at fur¨ Elektrotechnik und Informationstechnik Diplomarbeit Further development of VoIP softphone based on ’Microsoft RTC Client API’ vorgelegt von: Carla Garc´ıa S´anchez eingereicht am: 15. 11. 2006 geboren am: Studiengang: Elektrotechnik und Informationstechnik Anfertigung im Fachgebiet: Kommunikationsnetze Fakult¨at fur¨ Elektrotechnik und Informationstechnik Verantwortlicher Professor: Prof. Dr. rer. nat. habil. Jochen Seitz Wissenschaftlicher Betreuer: Dipl.-Ing. Yevgeniy Yeryomin Thanksgiving Many people have helped me in one way or another during the course of this project. Through these lines, I would like to express to them my most sincere gratitude. To my professors, thank you for guiding and advising me at any moment. Every suggestion has been constantly useful to improve this work. I appreciate all the support from the personnel of the department of Communication Networks. To my family and friends, thank you for your unconditional support, for encouraging me in the hardest and most stressful moments. I appreciate that you have been there for me and trusted me. Especially, I want to show my gratefulness to my roommates and close friends in Ilmenau, because they have been sharing the everyday life with me these last months. Finally, I would like to thank TU - Ilmenau for allowing me to develop this project. Once again, thank you everyone. Abstract In the time being, VoIP has become a widespread technology because enhances real- time communication making it easier and more natural, regardless where people are located. Voice over Internet Protocol (VoIP), like its name says, is a technology that enables voice communication over the network. This project intends to achieve the further development of a VoIP softphone based on SIP that was implemented as part of a PhD thesis in the department of Communication Networks. One of the aims of the project is to study the availability of this technology on a mobile environment and the adaptation of this softphone to mobile devices. A softphone is a software used to establish telephone calls from one computer to other softphones or conventional telephones making use of VoIP technology. Besides, it supports additional functionalities that can help and facilitate exclusive services to the final user that would not be possible with the current telephone network; for example, location of users independently of where they are connected or multiple videoconference calls. Before beginning with the development of the software application, it is essential to understand the operation and the structure of softphones based on Session Initiation Protocol (SIP), a protocol responsible of the establishment of the VoIP session between users. For that purpose, the first part of this project consists in a survey about VoIP technology and the protocols related to the VoIP environment, such as Session Initia- tion Protocol, Session Description Protocol (SDP) and Real-time Transport Protocol (RTP). Nowadays, there are many types of softphones running on diverse operating systems and programmed in different languages. Although they must follow the same basic structure, they can be totally differentiated because of the extra features they provide and the platform on which they are built. In this case, this application uses Microsoft RTC Client API, that supplies the libraries and interfaces required to implement the functionalities of the VoIP protocols previously mentioned. Some of the new features that will be added to this software application are: • Management of the contact list: It will allow users to storage information about their contacts and access to it easily. Furthermore, it informs users about the presence availability of their buddies. • Videoconference call: In order to improve people communications, multimedia calls with audio and video become more real. Although only a few functionalities are going to be developed, the capabilities of the softphone could be increased by adding new ones in function of future people needs and communication requirements. Contents i Contents 1 VoIP Technology based on SIP 1 1.1 Introduction................................. 1 1.2 VoIPFeatures................................ 1 1.3 Advantages ................................. 2 1.4 TypesofVoIPcalls............................. 2 1.5 Operation .................................. 3 1.6 VoIPprotocols ............................... 3 1.6.1 Session Initiation Protocol (SIP) . 4 1.6.1.1 Introduction . 4 1.6.1.2 Protocol Design . 4 1.6.1.3 SIP Clients and Servers . 5 1.6.1.4 SIP Messages . 7 1.6.2 Session Description Protocol (SDP) . 10 1.6.2.1 Introduction . 10 1.6.2.2 Operation......................... 11 1.6.3 Real-time Transport Protocol (RTP) . 12 1.6.3.1 Real-time Transport Control Protocol (RTCP) . 13 1.7 VoIPClients................................. 16 1.7.1 VoIP Clients running on different OS . 17 1.7.2 VoIP Clients for mobile devices . 20 1.7.3 Structure and operation of softphones . 21 1.7.3.1 Registration procedure . 23 1.7.3.2 Multimedia session establishment . 26 1.7.4 Softphones for Windows Mobile OS . 31 1.7.5 OS for mobile devices . 32 Diplomarbeit Carla Garc´ıaS´anchez Contents ii 2 Microsoft RTC Client API 34 2.1 Introduction................................. 34 2.2 Object Model Overview . 35 2.3 Architecture................................. 36 2.4 .NET Platform . 36 2.4.1 Introduction............................. 36 2.4.2 Operation .............................. 37 2.4.3 Advantages ............................. 38 3 Development of VoIP softphone for Windows 2000/XP 39 3.1 Understanding the code source . 39 3.2 New functionalities . 40 3.2.1 Volume bar for microphone and speakers . 40 3.2.2 Sending DTMF signals . 40 3.2.3 Addition of videoconference . 41 3.2.4 ContactList............................. 42 3.2.5 Encryption of media . 42 3.3 Testing the program and results . 44 3.3.1 Volume bar for microphone and speakers . 45 3.3.2 Sending DTMF signals . 45 3.3.3 Addition of videoconference . 47 3.3.4 ContactList............................. 49 3.3.5 Encryption of media . 52 3.4 Softwaretools................................ 54 4 Adaptation of the VoIP softphone for mobile devices 55 5 UML Structure 58 5.1 Classdiagram................................ 61 5.2 Use case diagram . 61 5.3 Sequencediagram.............................. 73 5.4 Statediagram................................ 74 5.4.1 Buddy state diagram . 74 5.4.2 Watcher state diagram . 75 5.4.3 Session state diagram . 75 5.4.4 Client state diagram . 76 Diplomarbeit Carla Garc´ıaS´anchez Contents iii 6 Getting Started 79 6.1 Software requirements . 79 6.2 Getting an account . 79 6.3 Description of Graphical User Interface . 80 A UML Diagrams 83 A.1 Classdiagram................................ 83 A.2 Use case diagram . 83 A.3 Sequence diagram . 83 A.4 Buddystatediagram ............................ 83 A.5 Watcher state diagram . 83 A.6 Session state diagram . 83 A.7 Clientstatediagram ............................ 83 Bibliography 91 List of Figures 92 List of Tables 93 List of Abbreviations and Symbols 94 Thesis of Diplomarbeit 97 Erkl¨arung 98 Diplomarbeit Carla Garc´ıaS´anchez 1 VoIP Technology based on SIP 1 1 VoIP Technology based on SIP 1.1 Introduction VoIP (Voice over Internet Protocol) is simply the transmission of voice traffic over IP - based networks. It is also called IP Telephony, Internet telephony, Broadband telephony or Digital Phone. Companies providing VoIP service are usually known as VoIP providers, and protocols used to route voice signals over the IP network are identified as VoIP protocols. Although the Internet Protocol (IP) was originally de- signed for data networking, the success of IP in becoming a world standard for it has contributed to its use to voice networking. VoIP uses a broadband internet connection for routing telephone calls, as opposed to conventional switching and fibre optic alternatives. This process provides lower cost for communication consumers. Maybe the most interesting point of the technology for the user is that the current infrastructure is not needed to be reconfigured. The only requirements are to adapt the internet functionality and a conventional phone into one single service with software and hardware support. 1.2 VoIP Features The biggest advantage of VoIP is that the customers can make and receive calls from anywhere in the world where a broadband internet connection is available without changing their phone number. This is known as mobility. It is not necessary to have multiple numbers (office, home, mobile, and so on) from the same person because the calls can be automatically routed to the VoIP phone where the user is registered. The customers can take their IP phones with them on national and international trips and still can manage to access what is essentially an individual’s domestic phone line. On the other hand there are the softphones, which are a software application that loads the VoIP services onto the desktop or laptop. Some even simulate an interface that looks like a telephone, with which you can place VoIP calls to anybody around the world, through a standard broadband connection. Diplomarbeit Carla Garc´ıaS´anchez 1 VoIP Technology based on SIP 2 Most VoIP services come with the caller id, call waiting, call transfer, repeat dialling, or multi-conference call features. For additional features such as call filtering, forward- ing a call, or sending calls directly to the voice mail, the service provider may assess an additional fee. Most VoIP services also allow the user to check his/her voicemail over the web or attach messages to an e-mail that is sent to his/her PDA or PC. The facil- ities and components provided by VoIP phone system suppliers and service operators may vary in significant ways because not all of them support the same functionalities. 1.3 Advantages Since calls can be placed across the Internet, using the Internet connection for both data traffic and voice calls allows consumers to save amounts of money. Thereby, the major reason to change to VoIP technology for telephone service could be cost reduction, for instance, the cost of the call is independently of the destination place, so there is no extra charge for long distances.