Implementing Remote Customer Service API Using Webrtc and Jitsi SDK

Implementing Remote Customer Service API Using Webrtc and Jitsi SDK

Implementing Remote Customer Service API using WebRTC and Jitsi SDK Markus Kullberg School of Science Thesis submitted for examination for the degree of Master of Science in Technology. Espoo 29.7.2018 Supervisor Prof. Petri Vuorimaa Advisor M.Sc. (Tech.), M.Sc. (Econ.) Harri Jokela Copyright © 2018 Markus Kullberg Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Abstract of the master’s thesis Author Markus Kullberg Title Implementing Remote Customer Service API using WebRTC and Jitsi SDK Degree programme Computer, Communication and Information Sciences Major Computer Science Code of major SCI3042 Supervisor Prof. Petri Vuorimaa Advisor M.Sc. (Tech.), M.Sc. (Econ.) Harri Jokela Date 29.7.2018 Number of pages 8+54 Language English Abstract WebRTC and SIP open up new interesting possibilities to combine legacy phone systems and the PSTN directly with web applications. In this thesis I examine how such an application can be built using Open Source Software and a SIP trunk. The application is mainly directed towards customer service as a way to integrate video calls in contact center solutions. The technologies and components behind the application are explained before delving into implementation details. Problems faced along the way when developing the application are presented along with solutions to them. Since the audio in a video call travels via the PSTN and is therefore not sent over the IP network in its entirety, there exists audio/video synchronization error. To quantify the differential delay, the latency of audio and video was measured. The results show that audio is delayed w.r.t. video by 150-320 ms, depending on various factors. This range is partly within the acceptable threshold of 240 ms, which is defined by previous studies. The test results also show that using aVoLTE connection and the PCMA codec minimizes audio delay. Keywords WebRTC, PSTN, SIP, customer service, contact center, lip sync Aalto-universitetet, PB 11000, 00076 AALTO www.aalto.fi sammandrag av diplomarbetet Författare Markus Kullberg Titel Implementering av en API för användning inom kundtjänst med hjälp av WebRTC och Jitsi SDK Utbildningsprogram Computer, Communication and Information Sciences Huvudämne Computer Science Huvudämnets kod SCI3042 Övervakare Prof. Petri Vuorimaa Handledare DI, EM Harri Jokela Datum 29.7.2018 Sidantal 8+54 Språk Engelska Sammandrag WebRTC och SIP öppnar nya intressanta möjligheter att kombinera äldre telefon- system och det publika telefonnätet (PTN) direkt med webbapplikationer. I denna avhandling undersöker jag hur en sådan applikation kan byggas med hjälp av en SIP trunk och programvaror med öppen källkod. Applikationen är främst avsedd för användning inom kundtjänst som ett sätt att integrera videosamtal i en kontaktcenter- lösning. Teknologierna och komponenterna bakom applikationen samt detaljerna av implementeringen beskrivs. Motgångar som uppstod under applikationens utveckling samt reflektioner över för- och nackdelar kring olika tillvägagångssätt presenteras. I och med att ljudet i ett videosamtal rör sig via PTN och därmed inte skickas över IP-nätverket i dess helhet, är synkroniseringen av ljud och video ett problem. För att kvantifiera synkroniseringsfelet mätte jag födröjningen av video och ljud. Resultaten visar att ljudet är försenat till video med 150-320 ms, beroende på olika faktorer. Detta intervall ligger delvis inom det godtagbara tröskelvärdet på 240 ms, som är fastsällt av tidigare studier. Testresultaten visar också att användning av en VoLTE-anslutning och PCMA-kodning minimerar ljudfördröjningen. Nyckelord WebRTC, PTN, SIP, kundtjänst, kontaktcenter, läppsynk 5 Preface I want to thank Prof. Petri Vuorimaa for giving me free hands to write my thesis the way I wanted. I also want to thank you for your invaluable feedback and suggestions when I was not sure what to do next. I wish to thank my advisor and colleague Harri Jokela for helping me devise my thesis subject and for taking me into your team at Telia Finland to work on this application. It has been a very interesting project and has taught me a great deal about software development. Thank you Daniel Bruzual for suggesting the latency measurement tests when I struggled to come up with my own ideas. Without your help I would probably still be stuck writing this thesis. Lastly, I wish to thank my colleague Jaakko Lehtinen for spending your time to read through my thesis multiple times to give me feedback. Having just finished your own thesis, your input was very valuable. Otaniemi, 29.7.2018 Markus H. F. Kullberg 6 Contents Abstract3 Abstract (in Swedish)4 Preface5 Contents6 Abbreviations8 1 Introduction1 1.1 Research scope..............................1 1.2 Research questions............................2 1.3 Goal....................................2 1.4 Structure.................................2 2 Background3 2.1 WebRTC as a Unified Communications Platform............3 2.2 Signaling..................................4 2.2.1 SDP................................4 2.2.2 SIP.................................6 2.2.3 Jingle...............................7 2.3 Telephony Networks and VoIP...................... 11 2.3.1 PBX and SIP Trunking..................... 12 2.4 WebRTC.................................. 13 2.4.1 API................................ 14 2.4.2 Codecs............................... 16 2.4.3 ICE................................ 18 2.5 Contact center software.......................... 18 2.6 WebRTC frameworks........................... 21 2.7 Jitsi.................................... 22 2.7.1 Jitsi Meet............................. 23 2.7.2 Jitsi Videobridge......................... 23 2.7.3 Jicofo............................... 25 2.7.4 Jigasi............................... 27 2.8 Callstats.................................. 28 2.9 Related work............................... 28 3 Implementation 30 3.1 Requirements............................... 30 3.2 Architecture................................ 31 3.3 Jitsi modifications............................. 32 3.4 Security and authentication....................... 33 3.5 Issues and workarounds.......................... 35 7 4 Measurements 38 4.1 Results................................... 42 5 Discussion 51 6 Summary 54 Appendices A Appendix 60 8 Abbreviations API Application Programming Interface CSRC Contributing Source (Identifier) DTLS Datagram Transport Layer Security ICE Interactive Connectivity Establishment IETF Internet Engineering Task Force JSEP JavaScript Session Establishment Protocol JWT JSON Web Token MCU Multipoint Control Unit NAT Network Address Translation LTE Long-Term Evolution OSS Open Source Software P2P Peer-To-Peer PBX Private Branch Exchange PCM Pulse Code Modulation PCMA PCM A-law PSTN Public-Switched Telephony Network RTC Real-Time Communications RTCP Real-Time Transport Control Protocol RTP Real-Time Protocol SBC Session Border Controller SDP Session Description Protocol SFU Selective Forwarding Unit SIP Session Initiation Protocol SRTP Secure Real-Time Protocol STUN Session Traversal Utilities for NAT TDM Time Division Multiplexing TURN Traversal Using Relays around NAT VoIP Voice over IP VoLTE Voice over LTE W3C World Wide Web Consortium 1 Introduction Web Real-Time Communications (WebRTC) is a technology, which allows web applications to capture and stream audio and/or video media as well as arbitrary data over the Internet without the need for third-party plugins. In other words, the browser can request access to the user’s microphone and web camera, enabling video calling and file transfer functionality to other browsers. An interesting usecase for WebRTC is the integration with other communications platforms, such as the telephone network. Integrating voice over IP (VoIP) with legacy telephone systems is not a new invention; for example, the renown VoIP application Skype has been able to place calls to the telephone network since long ago. However, integrating a WebRTC application with the telephone network eliminates the need to install an external application such as Skype, since it runs in the browser. This opens up many different possibilities for new services. One use case is in customer service; when the customer browses a company’s website he no longer needs the customer service’s phone number or his own phone. The company can embed a button on the website, which starts a call using WebRTC to the customer service, without the user having to leave the website. On top of this, it is easy to add video or chat functionality to the WebRTC application, opening up possibilities for screen sharing and more. This would not be possible using the telephone network alone. One might wonder why it is important to integrate WebRTC with the telephone network - why not just use WebRTC at both ends? The reason in this use case is that customer services are heavily invested in their customer service software, which are often based on the legacy telephone network. These software implement functions such as call queueing, reporting, recording and more. Also, even though VoIP performance is constantly improving, the performance and stability of traditional phone calls are still better than VoIP calls. Therefore, customer services cannot move away from these systems, so interoperable systems are needed. WebRTC is royalty and license free, which means that companies can save a significant amount of money compared to other video conferencing solutions. Inthis thesis I discuss the background technologies and propose a service based on an Open Source Software

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    70 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us