SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Voice and Video
       Communications on the Web

                                        Carol Davids, Alan Johnston,
                                        Kundan Singh, Henry Sinnreich,
                                        Wilhelm Wimmreuter

                                        Aug 2011




I will talk about our short paper on SIP APIs for voice and video
communications on the web. This is a joint work with Carol, Alan, Henry and
Wili with support from students at real-time communications lab. In particular
Isioma and Harinath helped in implementing part of this project.


I will talk about the motivation and challenges of web communications in
comparison with traditional VoIP. Then I will describe the available platform
options such as modifying the browser, using a plugin or a separate host
application. Finally, I will describe the components of our project along with a
brief demonstration.




                                                                                   1
VoIP




                                            Web




        Separate islands of innovations

Web and VoIP have evolved into separate islands of innovations. There
is a very strong motivation to bridge the gap to enable the millions of
web developers to include communications on web pages. Seamless
integration of web and communications will result in many more
innovative applications. Due to separate islands of innovations, there
are different protocols, programming language APIs, developer tools,
and developer communities.


Web companies are fast paced, with quick turnaround, and build easy
to use application whereas VoIP is traditionally linked to complex
protocol machinery which is difficult to get right across different
equipments.


Critical voice and video programming primitives are also missing in web:
UDP transport, listening socket, native device access.




                                                                           2
From VoIP to Web
            Provider and user perspective
            Trust model, session negotiation, …




Moving from traditional VoIP to Web communications requires lot of changes.
Firstly the provider perspective changes. Typically a web site owner wants to
own the content and customer interactions, unlike a VoIP provider who should
provide connectivity to other VoIP networks as well. From user’s perspective,
unlike a software rendition of a phone or a phone book, web allows
communication to be part of existing web browsing experience. For example,
embedded click to call, auto-conference among current visitors on a page, etc.
Trust model is different in web. The way session is negotiated is different
because unlike offer/answer model of VoIP here the publisher may advertise
the session and anyone visiting a web page automatically joins instead of
explicit answer.




                                                                                 3
Minimum Protocol Requirements
                                                  HTTP
                                                   signaling and
                                                   control
                                                  UDP
                                                   media transport




While there are many different protocols for multimedia communications, you
just need two protocols on the web: HTTP for signaling and control such as
discovering other people on the web page and sending invitation to connect,
and UDP to do low latency real-time media transport. All other services,
protocols and mechanisms are outside in the application space. This was the
main motivation to start our project on voice and video on web.


Understanding the minimum requirements is useful in designing the solution. It
helps in keeping unwanted stuff outside the scope.




                                                                                 4
Modify browser                           Use existing plugin
         Extend web protocols/languages           Most existing web communication
         1. Include SIP/RTP stack                 systems use Flash Player
         2. Add device access, codecs and
            e2e transport (IETF, W3C)
                       Web                                      server proprietary
               HTTP server
                                                 HTML                              HTML
        HTML                            HTML      FP                                FP
                   UDP                                             proprietary
                                                                   over UDP

                             Available Options
         Build new plugin                         Use separate app
         Just handles missing pieces              Runs as a separate process/service
         (device access, codec, transport)
                                                                Web
                                                         HTTP   server
                 HTTP Web
                      server                                                     HTML
        HTML                            HTML     HTML                              HTML
        plugin                          plugin
                       UDP                                      UDP
                                                   App                           App



At the high level there are four alternatives to enable voice and video
communications in the browser: (1) modify the browser to use new protocols
and programming API, (2) use an existing plugin that provides end-to-end
media path and device access, (3) build a new plugin to provide the missing
pieces in the browser such as device access, codec, transport, and finally (4)
use a separate application that runs on user’s computer, and allows the web
browser as well as other applications to enable end-to-end media path and
device access.


In the first option, you can either include a complete SIP/RTP stack in a
browser or add only the missing pieces. The new working groups at IETF and
W3C are focused on this effort. Including a full SIP/RTP stack is possible but
presents difficult challenges in terms of agreeing on common API and
interoperability among multiple implementations. The signaling is better left to
HTTP and web protocols instead of trying to use SIP in this context.


Existing web-based communication systems have largely built upon Flash
Player (or Silverlight) browser plugin. Flash Player allows end-to-end media
path using a proprietary protocol (RTMFP) over UDP.




                                                                                          5
Modify browser                                Use existing plugin
            No other dependencies                         Ubiquitous availability
            Eventually a standard                         Browser agnostic
            Numerous web developers                       Rich developer tools and experience
            Reluctance to change                          One-to-one as well as group
            Portable device access/sharing                Transport is not enough (for SIP/RTP)
            Time to ubiquitous availability               Cannot install new codecs
                                                          Depends on vendor for updates


                                Available Options
                  Comparison                              Use separate app
          1.   With existing technologies                 Browser and app agnostic
          2.   Emerging standard protocols                Any transport, language, codecs.
          3.   Allow walled garden                        Persistent/long lived state
          4.   Require new install                        Yet another install, slow adoption
          5.   App dies on page close                     Security and access control
          6.   Re-use web security means                  Video display needs plugin




This slide compares the various options. The green lines are advantages and red ones disadvantages.
Modifying the browser to adopt the emerging standards is the ideal solution in the long run. It doesn’t
have additional dependencies on plugins or other applications. However, typically changing the browser
for new standards takes time, and much more time before the feature is ubiquitously available to many
common browsers.

Traditionally, plugins such as Flash Player and silverlight have filled the lack of real-time support in the
browser. The main advantage of Flash Player is that it is already available on most PCs and thus do not
require additional installation. Moreover availability of rich developer tools and user interface experience
makes it a good choice. Same application code works on all browsers, instead of having to write a lot of
browser dependent hacks. The main problem is that developers and users are dependent on plugin
vendor for updates such as for security or new features. Secondly the existing programming primitives in
Flash do not allow implementing a full SIP/RTP stack or installing new codecs. Building a separate plugin
solves some of these problems but the challenges of portability across all platforms and all browsers
makes it a tough answer to the problem.

Using a separate application is not only browser agnostic but can also be used by other host
applications. Unlike plugins or web page’s DOM states, a separate application can keep persistent and
long lived states. For example, existing solutions such as Host Identity Protocol for NAT traversal,
mobility and multihoming can be easily incorporated. NAT ports can be pre-detected to speed up
connection setup. Going from one web page to another within the same domain can easily preserve
sessions. The main problem is that a new installation slows the adoption among end users. Allowing
access some multiple competing web pages or browsers require careful security and access control
mechanism. Finally video display needs some plugin presence in the browser for immersive experience.

These options can also be compared with criteria such as it can built using existing technologies (no,
yes, yes), whether it can use emerging standards protocols (yes, no, yes), whether building a walled
garden is easy (no, yes, no), whether a new installation is required (no, yes, yes), whether session dies
on page close (yes, yes, no) and whether existing web security can be reused (yes, yes, no).




                                                                                                               6
Our Project
               (1) Signaling API
               Resource-based, SDP=>XML/JSON,                            Apache web server,
               subscribe/notify, long-lived connection,                  PHP websocket server,
               persistent vs transient data, access control              MySQL database

                                                                    DB


                                        (2) Communication Widgets
                                        Click to call, contact list,
                                        conference object


                                                        (3) Media Application API
                                                        Transport, auth and media objects




Our project has three parts: (1) signaling, (2) communication widgets, and (3) media
application API. This applies to other web communication applications as well. The signaling
API defines how people discover each other and how session is negotiated. Essentially this is
a web version of SIP/SDP. As discussed earlier, the idea is to use web oriented protocol such
as HTTP. All client server interaction happens over HTTP. The various data model inspired by
SIP systems such as online users, and call state, are maintained as resources. The resource-
oriented (unlike service oriented) API allows for more scalable system with complex logic
inside the client. For example, list of logged in users are at /login, so doing a PUT or POST
under that URL will allow an end-user to login, and be discovered by others. The session
parameters are represented using web oriented formats such as XML and JSON. Finally, to
receive events from other users or from web server, a subscribe/notify mechanism is
implemented on top of long-lived websocket connection. The way it works is that a client can
subscribe to changes in a particular resource, say /call/call123 and be notified whenever this
resource or its immediate children change. (Show the message flow in Chrome during the
demo). We have implemented a generic RESTful client-server API with these features so that
the application can define its own resources for web communication.

The second part is the commonly used communication widgets. When the browser comes up it
uses a communication widget (group of HTML, Javascript, Flash files) that implement a
particular application. The widget connects to the signaling server to enable rendezvous as
well as connects, detects, installs local separate application to handle media path.

The third part is the separate application with some media application API that receives
commands from the web pages, and performs device access, media transport and codecs. In
our preliminary implementation we have used Flash Player as an intermediate solution until we
implement the separate application. It should be noted that the different parts can be used
independent of each other, e.g., the media part can first detect if WebRTC extensions are
available natively in the browser, and if not fall back to plugin or separate application approach.




                                                                                                      7
Summary
       Opportunities            Available Options               Our project
       Motivation               1.   Modify browser             Signaling API
       to move VoIP to web      2.   Use existing plugin        Communication widgets
                                3.   Build new plugin           Media path
                                4.   Use separate application   Demonstration




                Project: http://sites.google.com/site/vvowproject/
                Source: http://code.google.com/p/vvowproject/
                Demo: http://gardo1.rice.iit.edu/webconf/


We have described the challenges of moving from VoIP to web based
communication, compared available platform options, and described the
architecture of our project. The project is open source and we are happy to
accept your contributions. Further information are available on these web
sites.




                                                                                        8

Mais conteúdo relacionado

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Voice and Video Communications on the Web

  • 1. Voice and Video Communications on the Web Carol Davids, Alan Johnston, Kundan Singh, Henry Sinnreich, Wilhelm Wimmreuter Aug 2011 I will talk about our short paper on SIP APIs for voice and video communications on the web. This is a joint work with Carol, Alan, Henry and Wili with support from students at real-time communications lab. In particular Isioma and Harinath helped in implementing part of this project. I will talk about the motivation and challenges of web communications in comparison with traditional VoIP. Then I will describe the available platform options such as modifying the browser, using a plugin or a separate host application. Finally, I will describe the components of our project along with a brief demonstration. 1
  • 2. VoIP Web Separate islands of innovations Web and VoIP have evolved into separate islands of innovations. There is a very strong motivation to bridge the gap to enable the millions of web developers to include communications on web pages. Seamless integration of web and communications will result in many more innovative applications. Due to separate islands of innovations, there are different protocols, programming language APIs, developer tools, and developer communities. Web companies are fast paced, with quick turnaround, and build easy to use application whereas VoIP is traditionally linked to complex protocol machinery which is difficult to get right across different equipments. Critical voice and video programming primitives are also missing in web: UDP transport, listening socket, native device access. 2
  • 3. From VoIP to Web Provider and user perspective Trust model, session negotiation, … Moving from traditional VoIP to Web communications requires lot of changes. Firstly the provider perspective changes. Typically a web site owner wants to own the content and customer interactions, unlike a VoIP provider who should provide connectivity to other VoIP networks as well. From user’s perspective, unlike a software rendition of a phone or a phone book, web allows communication to be part of existing web browsing experience. For example, embedded click to call, auto-conference among current visitors on a page, etc. Trust model is different in web. The way session is negotiated is different because unlike offer/answer model of VoIP here the publisher may advertise the session and anyone visiting a web page automatically joins instead of explicit answer. 3
  • 4. Minimum Protocol Requirements HTTP signaling and control UDP media transport While there are many different protocols for multimedia communications, you just need two protocols on the web: HTTP for signaling and control such as discovering other people on the web page and sending invitation to connect, and UDP to do low latency real-time media transport. All other services, protocols and mechanisms are outside in the application space. This was the main motivation to start our project on voice and video on web. Understanding the minimum requirements is useful in designing the solution. It helps in keeping unwanted stuff outside the scope. 4
  • 5. Modify browser Use existing plugin Extend web protocols/languages Most existing web communication 1. Include SIP/RTP stack systems use Flash Player 2. Add device access, codecs and e2e transport (IETF, W3C) Web server proprietary HTTP server HTML HTML HTML HTML FP FP UDP proprietary over UDP Available Options Build new plugin Use separate app Just handles missing pieces Runs as a separate process/service (device access, codec, transport) Web HTTP server HTTP Web server HTML HTML HTML HTML HTML plugin plugin UDP UDP App App At the high level there are four alternatives to enable voice and video communications in the browser: (1) modify the browser to use new protocols and programming API, (2) use an existing plugin that provides end-to-end media path and device access, (3) build a new plugin to provide the missing pieces in the browser such as device access, codec, transport, and finally (4) use a separate application that runs on user’s computer, and allows the web browser as well as other applications to enable end-to-end media path and device access. In the first option, you can either include a complete SIP/RTP stack in a browser or add only the missing pieces. The new working groups at IETF and W3C are focused on this effort. Including a full SIP/RTP stack is possible but presents difficult challenges in terms of agreeing on common API and interoperability among multiple implementations. The signaling is better left to HTTP and web protocols instead of trying to use SIP in this context. Existing web-based communication systems have largely built upon Flash Player (or Silverlight) browser plugin. Flash Player allows end-to-end media path using a proprietary protocol (RTMFP) over UDP. 5
  • 6. Modify browser Use existing plugin No other dependencies Ubiquitous availability Eventually a standard Browser agnostic Numerous web developers Rich developer tools and experience Reluctance to change One-to-one as well as group Portable device access/sharing Transport is not enough (for SIP/RTP) Time to ubiquitous availability Cannot install new codecs Depends on vendor for updates Available Options Comparison Use separate app 1. With existing technologies Browser and app agnostic 2. Emerging standard protocols Any transport, language, codecs. 3. Allow walled garden Persistent/long lived state 4. Require new install Yet another install, slow adoption 5. App dies on page close Security and access control 6. Re-use web security means Video display needs plugin This slide compares the various options. The green lines are advantages and red ones disadvantages. Modifying the browser to adopt the emerging standards is the ideal solution in the long run. It doesn’t have additional dependencies on plugins or other applications. However, typically changing the browser for new standards takes time, and much more time before the feature is ubiquitously available to many common browsers. Traditionally, plugins such as Flash Player and silverlight have filled the lack of real-time support in the browser. The main advantage of Flash Player is that it is already available on most PCs and thus do not require additional installation. Moreover availability of rich developer tools and user interface experience makes it a good choice. Same application code works on all browsers, instead of having to write a lot of browser dependent hacks. The main problem is that developers and users are dependent on plugin vendor for updates such as for security or new features. Secondly the existing programming primitives in Flash do not allow implementing a full SIP/RTP stack or installing new codecs. Building a separate plugin solves some of these problems but the challenges of portability across all platforms and all browsers makes it a tough answer to the problem. Using a separate application is not only browser agnostic but can also be used by other host applications. Unlike plugins or web page’s DOM states, a separate application can keep persistent and long lived states. For example, existing solutions such as Host Identity Protocol for NAT traversal, mobility and multihoming can be easily incorporated. NAT ports can be pre-detected to speed up connection setup. Going from one web page to another within the same domain can easily preserve sessions. The main problem is that a new installation slows the adoption among end users. Allowing access some multiple competing web pages or browsers require careful security and access control mechanism. Finally video display needs some plugin presence in the browser for immersive experience. These options can also be compared with criteria such as it can built using existing technologies (no, yes, yes), whether it can use emerging standards protocols (yes, no, yes), whether building a walled garden is easy (no, yes, no), whether a new installation is required (no, yes, yes), whether session dies on page close (yes, yes, no) and whether existing web security can be reused (yes, yes, no). 6
  • 7. Our Project (1) Signaling API Resource-based, SDP=>XML/JSON, Apache web server, subscribe/notify, long-lived connection, PHP websocket server, persistent vs transient data, access control MySQL database DB (2) Communication Widgets Click to call, contact list, conference object (3) Media Application API Transport, auth and media objects Our project has three parts: (1) signaling, (2) communication widgets, and (3) media application API. This applies to other web communication applications as well. The signaling API defines how people discover each other and how session is negotiated. Essentially this is a web version of SIP/SDP. As discussed earlier, the idea is to use web oriented protocol such as HTTP. All client server interaction happens over HTTP. The various data model inspired by SIP systems such as online users, and call state, are maintained as resources. The resource- oriented (unlike service oriented) API allows for more scalable system with complex logic inside the client. For example, list of logged in users are at /login, so doing a PUT or POST under that URL will allow an end-user to login, and be discovered by others. The session parameters are represented using web oriented formats such as XML and JSON. Finally, to receive events from other users or from web server, a subscribe/notify mechanism is implemented on top of long-lived websocket connection. The way it works is that a client can subscribe to changes in a particular resource, say /call/call123 and be notified whenever this resource or its immediate children change. (Show the message flow in Chrome during the demo). We have implemented a generic RESTful client-server API with these features so that the application can define its own resources for web communication. The second part is the commonly used communication widgets. When the browser comes up it uses a communication widget (group of HTML, Javascript, Flash files) that implement a particular application. The widget connects to the signaling server to enable rendezvous as well as connects, detects, installs local separate application to handle media path. The third part is the separate application with some media application API that receives commands from the web pages, and performs device access, media transport and codecs. In our preliminary implementation we have used Flash Player as an intermediate solution until we implement the separate application. It should be noted that the different parts can be used independent of each other, e.g., the media part can first detect if WebRTC extensions are available natively in the browser, and if not fall back to plugin or separate application approach. 7
  • 8. Summary Opportunities Available Options Our project Motivation 1. Modify browser Signaling API to move VoIP to web 2. Use existing plugin Communication widgets 3. Build new plugin Media path 4. Use separate application Demonstration Project: http://sites.google.com/site/vvowproject/ Source: http://code.google.com/p/vvowproject/ Demo: http://gardo1.rice.iit.edu/webconf/ We have described the challenges of moving from VoIP to web based communication, compared available platform options, and described the architecture of our project. The project is open source and we are happy to accept your contributions. Further information are available on these web sites. 8