You are previewing WebRTC Integrator's Guide.
O'Reilly logo
WebRTC Integrator's Guide

Book Description

Successfully build your very own scalable WebRTC infrastructure quickly and efficiently

In Detail

WebRTC enables real-time communication across the Web and with the whole telecom world behind a single button on a web page. WebRTC promises to bring new reforms and innovation for IP telephony. WebRTC comes with numerous integration features, such as new standards for VoIP services, call control applications, profile and phonebook management, and much more.

This book covers all aspects of building a standalone WebRTC communication platform, making a WebRTC SIP-based Communicator, and shows you how to overcome challenges. It also describes the integration of Rich Services such as voicemail, conference calls, and file transfers, as well as call control mechanisms such as screening and routing. The book then takes you through building a WebRTC project and its integration in the access, network, and service layers of IMS. The book ends with the creation of a commercial-quality web application capable of setting and receiving calls, messages, and conference calls, and other numerous services.

What You Will Learn

  • Understand the purpose of Media APIs in the WebRTC media stack
  • Discover more about WebRTC and next generation communication networks
  • Learn how to run simple WebRTC clients with the default peer-to-peer behavior
  • Run WebRTC calls over a WebSocket protocol using a WebSocket signaling server
  • Integrate WebRTC with old networks
  • Learn best practices to build up a dynamic web project with support for WebRTC calls
  • Explore the usefulness of the interconversion of protocols and the transcoding of codecs with WebRTC
  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

    Table of Contents

    1. WebRTC Integrator's Guide
      1. Table of Contents
      2. WebRTC Integrator's Guide
      3. Credits
      4. About the Author
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Downloading the color images of this book
          3. Errata
          4. Piracy
          5. Questions
      8. 1. Running WebRTC with and without SIP
        1. JavaScript Session Establishment Protocol (JSEP)
          1. Signal and media flows
        2. Running WebRTC without SIP
          1. Sending media over WebSockets
            1. getUserMedia
            2. RTCPeerConnection
            3. RTCDataChannel
            4. Media traversal in WebRTC clients
        3. WebRTC through WebSocket signaling servers
          1. Node.js
          2. Making a peer-to-peer audio call using Node.js for signaling
        4. Running WebRTC with SIP
          1. Session Initiation Protocol (SIP)
          2. JavaScript-based SIP libraries
        5. Summary
      9. 2. Making a Standalone WebRTC Communication Client
        1. Description of the WebRTC client-server model
          1. The sipML5 WebRTC client
            1. Developing a minified webphone application using Tomcat
            2. Developing our customized version of the sipML5 client
          2. The jsSIP WebRTC client
            1. Developing our version of the jsSIP client
        2. SIP servers
          1. SIP-WS to SIP-WS
            1. SIP2SIP
            2. OfficeSIP
            3. SIP WS to SIP and vice-versa
          2. The gateway to convert SIP over WebSocket to native SIP
            1. The WebRTC2SIP gateway
            2. The WebRTC client with Brekeke SIP server
            3. The WebRTC client with the Kamailio SIP server
        3. Limitations of the existing setup
          1. Firewall and NAT issues
          2. Media transcoding
        4. Summary
      10. 3. WebRTC with SIP and IMS
        1. The Interaction with core IMS nodes
          1. The Call Session Control Function
          2. Home Subscriber System
        2. The IP Multimedia Subsystem core
          1. The OpenIMS Core
        3. The Telecom server
          1. The Mobicents Telecom Application Server
        4. The Media Server
          1. The FreeSWITCH Media Server
            1. Media Services
        5. WebRTC over firewalls and proxies
        6. The final architecture for the WebRTC-to-IMS integration
        7. Summary
      11. 4. WebRTC Integration with Intelligent Network
        1. From mobiles to WebRTC client through GPRS
          1. IMS connectivity to Gateway GPRS Support Node
        2. From mobiles to WebRTC client through GSM
        3. Call processed with the IN service logic
          1. The WebRTC client's communication with the GSM phone through IMS
          2. The WebRTC client's communication with a GSM phone with IN services
          3. The services broker for endpoints and WebRTC in IMS to GSM phone in Intelligence Networks
        4. The WebRTC client's SIP messages to SMS in a GSM phone (SMSC)
          1. The Kannel gateway
        5. Summary
      12. 5. WebRTC Integration with PSTN
        1. What is PSTN?
        2. WebRTC connectivity to the PSTN
          1. The PSTN gateway
          2. The PSTN connectivity to IMS via PSTN gateways
            1. The call flow from a WebRTC SIP browser client to a fixed landline phone
        3. The challenges in connecting the WebRTC world to the PSTN landscape
          1. Address mapping
          2. Translation from SIP to ISUP
            1. The call setup
            2. The call termination
            3. The call in progress
        4. The service logic
          1. SIP service logic through application server
          2. IN services via IMSSF
          3. The Service Broker for the orchestration of services
        5. Summary
      13. 6. Basic Features of WebRTC over SIP
        1. SIP services
          1. Registering a SIP client
          2. Making audio and video calls using SIP
          3. Text Chat using SIP
          4. Obtaining the online/offline status of users using SIP
        2. Services in the Application Server
          1. Back-to-back user agent
          2. Call screening
            1. Basic call screening
            2. Enhanced call screening
          3. Call hold/resume
          4. Call forwarding
            1. Unconditional call forwarding
            2. Call forwarding when the user is unavailable
          5. Call transfer
            1. Attended call transfer
            2. Unattended call transfer
          6. Generation of call log for tracking
        3. Media Server-based features
          1. Announcement
          2. Media relay
          3. Voicemail
          4. Music on Hold
          5. Interactive Voice Response
          6. Conferencing
            1. Multipart communication
        4. Features of a web application
          1. Geolocation
          2. Authenticating users with OAuth
          3. Import contacts from other accounts
          4. Advertisements in the WebRTC call
          5. Delivering an instant message as a mail
        5. The admin console
        6. Summary
      14. 7. WebRTC with Industry Standard Frameworks
        1. The Multitier architecture
        2. The design of a WebRTC client
          1. The Class diagram
          2. The Entity Relationship model
        3. The environment setup
          1. Java Runtime Environment (JRE)
          2. Integrated Development Environment with Java Enterprise Edition (EE)
          3. Databases
          4. The web application server
          5. The web application infrastructure
          6. JSP- / Servlet-based WebRTC web project
            1. Programming the JSP- / Servlet-based web project structure
            2. The development of modules
              1. The User Account module
              2. The Communication module
              3. The Phonebook module
          7. Struts- / Hibernate-based WebRTC web project
            1. Programming the Struts- / Hibernate-based web project structure
            2. The development of modules
              1. The OtherAccount module
          8. Spring 3 MVC-based WebRTC web project
            1. Programming the Spring 3 MVC web project structure
            2. The development of modules
              1. The Geolocation module
        4. Testing
          1. Testing the signal flow
          2. Test cases for WebRTC client validation
        5. Summary
      15. 8. WebRTC and Rich Communication Services
        1. Rich Communication Services
          1. Position and adoption of RCS
          2. Business impact of RCS
          3. Technology impact
          4. Rich Communication Services enhanced (RCS-e)
          5. Joyn
          6. The RCS configuration process
          7. RCS specifications
            1. Service discovery by an RCS-enabled device
            2. User capability exchange
            3. Chats with multimedia sharing
              1. The one-to-one text chat over MSRP
              2. File transfer over MSRP
            4. Group chat in a conference session
            5. User availability through XCAP
            6. REST-based notifications
            7. Interoperability and interworking
        2. The RCS ecosystem and WebRTC
          1. RCS services in WebRTC
            1. User profile
            2. Integration with social networks
            3. The enhanced phonebook
            4. User capabilities and Presence
            5. Unified messaging box
            6. Message history
            7. Rich calls
            8. Call logs
            9. Message history
            10. Multiparty conferencing
          2. WebRTC architecture with RCS modules
        3. Telecom operator's benefit derived from RCS
        4. Voice over LTE
          1. Combination of WebRTC, VOLTE, and RCS
        5. Summary
      16. 9. Native SIP Application and Interaction with WebRTC Clients
        1. Support for WebRTC in various operating systems
          1. Windows OS
            1. Native browser support for WebRTC clients
              1. Chrome browser support for WebRTC clients
              2. Mozilla browser support for WebRTC clients
              3. Opera browser support for WebRTC clients
            2. SIP softphones capable of interacting with WebRTC clients
              1. X-Lite
              2. Zoiper
              3. Boghe
            3. WebRTC unsupported browsers interacting with WebRTC clients
          2. Linux OS
            1. Native browser support for WebRTC clients
              1. Chrome browser support for WebRTC clients
              2. Mozilla browser support for WebRTC clients
              3. Opera browser support for WebRTC clients
            2. SIP softphones capable of interacting with WebRTC clients
              1. Kapanga
              2. Linphone
              3. Yate
              4. SFL
          3. Mac OS

            1. Native browser support for WebRTC clients
            2. SIP softphones capable of interacting with WebRTC clients
              1. iDoubs
              2. Jitsi
            3. WebRTC unsupported browsers interacting with WebRTC client
          4. Android OS for mobiles
            1. Native browser support for WebRTC clients
            2. Android phone's/tablet's SIP applications capable of interacting with WebRTC clients
            3. Developing a lightweight Android SIP application
          5. Windows OS for mobiles
          6. Apple iPhone
            1. iPhone/iPad IP applications interacting with WebRTC clients
            2. Developing an iPhone SIP application
        2. Summary
      17. 10. Other WebRTC Use Cases
        1. Unified Communicator
          1. Team Communicator
        2. Customized Communicator for specific enterprise segments
          1. Branches and back office communications
        3. The Customer Relationship Management system
        4. Network Operation Center
        5. The human resource management tool
          1. Communicating with candidates for an open post directly from the job portal
        6. Social networking – targeting consumers
          1. Social networking platforms
          2. Dating sites with anonymous call and chat
        7. Retail services
          1. WebRTC online marketing centers
          2. WebRTC contact centers
          3. Users contacting customer care
        8. Health care
          1. Online medical consultation with the doctor
        9. Financial services
          1. Communication with financial services
          2. Insurance claims
          3. Calling from the ATM
        10. Remote management
          1. Surveillance
          2. Managing the connected device
        11. WebRTC games
          1. Two-player games
          2. Multiplayer games
        12. TV experience with WebRTC
          1. Live broadcasting
          2. IPTV integration and streaming
          3. Streaming movies among peers
        13. Interfacing services
          1. WebRTC for e-learning
          2. WebRTC for e-governance
        14. Summary
      18. Index