SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
WebRTC	
  on	
  the	
  telco	
  side	
  
Who	
  are	
  we?	
  
•  Based	
  in	
  Paris,	
  France	
  
•  A	
  developer	
  oriented	
  cloud	
  communica>ons	
  
provider	
  
•  We	
  built	
  our	
  infrastructure	
  with	
  opensource	
  
so@ware	
  
•  We	
  provide	
  a	
  telecom	
  API	
  
– apidaze.io	
  :	
  a	
  REST/XML	
  API	
  for	
  web	
  developers	
  
WebRTC	
  and	
  (opensource)	
  
telecom	
  
•  How?	
  
– WebSocket	
  +	
  SIP	
  
– A	
  JavaScript	
  SIP+WebSocket	
  API	
  on	
  the	
  client	
  side	
  
•  JsSIP	
  /	
  Doubango	
  /	
  QoffeeSIP	
  
– A	
  SIP+WebSocket	
  server	
  	
  
•  Asterisk	
  (possibly	
  OverSIP	
  or	
  Kamailio	
  as	
  a	
  frontend)	
  
•  Turns	
  the	
  web	
  browser	
  into	
  a	
  SIP	
  client	
  
For	
  the	
  developer	
  
•  Include	
  a	
  SIP+WebSocket	
  library,	
  and	
  start	
  coding	
  
<head>
<script src="http://jssip.net/download/jssip-devel.js">
</head>
<body>
<script>
var configuration = { 'outbound_proxy_set': 'ws://94.23.192.150:8088',
'uri': 'sip:alice@example.com',
'password': 'superpassword' };
var useAudio = true;
var useVideo = true;
var views = { 'selfView': document.getElementById('my-video'),
'remoteView': document.getElementById('peer-video')};
var eventHandlers = {
'connecting': function(e){ // Your code here },
'progress': function(e){ // Your code here },
'failed': function(e){ // Your code here },
'started': function(e){ // Your code here },
'ended': function(e){ // Your code here } };
var phone = new JsSIP.UA(configuration);
phone.call('sip:bob@example.com', useAudio, useVideo, eventHandlers, views);
…
</script>
</body>
Is	
  SIP	
  necessary?	
  
•  A	
  WebRTC	
  developer	
  is	
  a	
  web	
  developer	
  
– SIP	
  :	
  What	
  is	
  this?	
  I’m	
  not	
  a	
  telco	
  guy,	
  I’m	
  a	
  web	
  
developer!	
  
– The	
  WebRTC	
  API	
  is	
  here,	
  why	
  not	
  use	
  it?	
  
•  Solu>on	
  :	
  a	
  WebRTC	
  gateway,	
  with	
  no	
  or	
  liZle	
  
signalling	
  
– Use	
  JSON,	
  a	
  well	
  known	
  format	
  for	
  web	
  
developers,	
  to	
  carry	
  signalling	
  messages	
  
WebSocket	
  gateway	
  
capabili>es	
  
•  Must	
  «	
  speak	
  »	
  ICE	
  
•  Must	
  encrypt	
  media	
  traffic	
  	
  
– SRTP/SDES	
  now,	
  SRTP/DTLS	
  in	
  the	
  future	
  
Example,	
  web	
  conferencing	
  
Show	
  me	
  the	
  code!	
  
socket = new WebSocket('ws://94.23.192.150:8088/agaf6c31?secret=43fdre03fa1705a&action=joinroom&roomname=' +
roomName, 'webrtc');
/* Set listeners on the socket for events 'open', 'close', 'message' */
socket.addEventListener("open", function(event) {console.log("S->C : WebSocket connection open")});
socket.addEventListener("close", function(event) {console.log("S->C : WebSocket connection closed")});
socket.addEventListener("message", onMessage, false);
…
function onMessage(evt) {
console.log("S->C: "+evt.data);
var obj = JSON.parse(evt.data);
switch (obj.event.type) {
case "confbridgejoin":
break;
case "confbridgetalking”:
break;
case “confbridgeleav”:
break;
}
}
…
/* Send message as a JSON string */
function sendMessage(type, body) {
var tmp = {};
tmp['type'] = type;
tmp['sdp'] = body;
message = JSON.stringify(tmp);
console.log("C->S : " + message);
socket.send(message);
}
Interac>ng	
  with	
  the	
  gateway	
  
•  Enter	
  key	
  iden>fier/secret	
  
socket = new WebSocket('ws://94.23.192.150:8088/agaf6c31?
secret=43fdre03fa1705a&action=joinroom&roomname=' + roomName, 'webrtc');	
  
•  Send	
  commands	
  through	
  the	
  WebSocket	
  
– JSON	
  
– Implement	
  your	
  own	
  signalling	
  protocol	
  using	
  our	
  
gateway	
  
More	
  to	
  come	
  
	
  
	
  

Weitere ähnliche Inhalte

Was ist angesagt?

WEB SOCKET 應用
WEB SOCKET 應用WEB SOCKET 應用
WEB SOCKET 應用
Jerromy Lee
 

Was ist angesagt? (20)

WEB SOCKET 應用
WEB SOCKET 應用WEB SOCKET 應用
WEB SOCKET 應用
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
 
WebSockets and Java
WebSockets and JavaWebSockets and Java
WebSockets and Java
 
J web socket
J web socketJ web socket
J web socket
 
Real time web (Orbited) at BCNE3
Real time web (Orbited) at BCNE3Real time web (Orbited) at BCNE3
Real time web (Orbited) at BCNE3
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
 
Getting Started with Pelican
Getting Started with PelicanGetting Started with Pelican
Getting Started with Pelican
 
Introduction to ewasm
Introduction to ewasmIntroduction to ewasm
Introduction to ewasm
 
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
NodeJS & Socket IO on Microsoft Azure Cloud Web Sites - DWX 2014
 
Lity - 讓你更安全的 Smart Contract Language
Lity - 讓你更安全的 Smart Contract LanguageLity - 讓你更安全的 Smart Contract Language
Lity - 讓你更安全的 Smart Contract Language
 
Let's Encrypt!
Let's Encrypt!Let's Encrypt!
Let's Encrypt!
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
 
Realtime rocks
Realtime rocksRealtime rocks
Realtime rocks
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 
Lets Encrypt!
Lets Encrypt!Lets Encrypt!
Lets Encrypt!
 
[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole
 
WebGL and Real-Time Web Communication
WebGL and Real-Time Web CommunicationWebGL and Real-Time Web Communication
WebGL and Real-Time Web Communication
 
ACME and Let's Encrypt: HTTPS made easy
ACME and Let's Encrypt: HTTPS made easyACME and Let's Encrypt: HTTPS made easy
ACME and Let's Encrypt: HTTPS made easy
 
Ws
WsWs
Ws
 
IoT dla programistów
IoT dla programistówIoT dla programistów
IoT dla programistów
 

Ähnlich wie Apidaze WebRTC Workshop barcelona 21st april 2013

WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
 
V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocket
brent bucci
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
Victor Pascual Ávila
 

Ähnlich wie Apidaze WebRTC Workshop barcelona 21st april 2013 (20)

Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTCKamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
 
HTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the WebHTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the Web
 
Azure SignalR Service, il web socket che tanto ci mancava
Azure SignalR Service, il web socket che tanto ci mancavaAzure SignalR Service, il web socket che tanto ci mancava
Azure SignalR Service, il web socket che tanto ci mancava
 
Workshop KrakYourNet2016 - Web applications hacking Ruby on Rails example
Workshop KrakYourNet2016 - Web applications hacking Ruby on Rails example Workshop KrakYourNet2016 - Web applications hacking Ruby on Rails example
Workshop KrakYourNet2016 - Web applications hacking Ruby on Rails example
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
RoR Workshop - Web applications hacking - Ruby on Rails example
RoR Workshop - Web applications hacking - Ruby on Rails exampleRoR Workshop - Web applications hacking - Ruby on Rails example
RoR Workshop - Web applications hacking - Ruby on Rails example
 
Tuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on MobicentsTuning and development with SIP Servlets on Mobicents
Tuning and development with SIP Servlets on Mobicents
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocket
 
VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14
 
The FRAFOS ABC SBC WebRTC gateway
The FRAFOS ABC SBC WebRTC gateway The FRAFOS ABC SBC WebRTC gateway
The FRAFOS ABC SBC WebRTC gateway
 
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on KamailioAstricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
 
Building websites with Node.ACS
Building websites with Node.ACSBuilding websites with Node.ACS
Building websites with Node.ACS
 
Building websites with Node.ACS
Building websites with Node.ACSBuilding websites with Node.ACS
Building websites with Node.ACS
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
Building APIs with NodeJS on Microsoft Azure Websites - RedmondBuilding APIs with NodeJS on Microsoft Azure Websites - Redmond
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
 
HTML 5 - Overview
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - Overview
 

Mehr von Alan Quayle

Mehr von Alan Quayle (20)

What is a vCon?
What is a vCon?What is a vCon?
What is a vCon?
 
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias Goebel
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João Casal
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas Granig
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
 
How to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciHow to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro Gauci
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
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...
 
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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Apidaze WebRTC Workshop barcelona 21st april 2013

  • 1. WebRTC  on  the  telco  side  
  • 2. Who  are  we?   •  Based  in  Paris,  France   •  A  developer  oriented  cloud  communica>ons   provider   •  We  built  our  infrastructure  with  opensource   so@ware   •  We  provide  a  telecom  API   – apidaze.io  :  a  REST/XML  API  for  web  developers  
  • 3. WebRTC  and  (opensource)   telecom   •  How?   – WebSocket  +  SIP   – A  JavaScript  SIP+WebSocket  API  on  the  client  side   •  JsSIP  /  Doubango  /  QoffeeSIP   – A  SIP+WebSocket  server     •  Asterisk  (possibly  OverSIP  or  Kamailio  as  a  frontend)   •  Turns  the  web  browser  into  a  SIP  client  
  • 4. For  the  developer   •  Include  a  SIP+WebSocket  library,  and  start  coding   <head> <script src="http://jssip.net/download/jssip-devel.js"> </head> <body> <script> var configuration = { 'outbound_proxy_set': 'ws://94.23.192.150:8088', 'uri': 'sip:alice@example.com', 'password': 'superpassword' }; var useAudio = true; var useVideo = true; var views = { 'selfView': document.getElementById('my-video'), 'remoteView': document.getElementById('peer-video')}; var eventHandlers = { 'connecting': function(e){ // Your code here }, 'progress': function(e){ // Your code here }, 'failed': function(e){ // Your code here }, 'started': function(e){ // Your code here }, 'ended': function(e){ // Your code here } }; var phone = new JsSIP.UA(configuration); phone.call('sip:bob@example.com', useAudio, useVideo, eventHandlers, views); … </script> </body>
  • 5. Is  SIP  necessary?   •  A  WebRTC  developer  is  a  web  developer   – SIP  :  What  is  this?  I’m  not  a  telco  guy,  I’m  a  web   developer!   – The  WebRTC  API  is  here,  why  not  use  it?   •  Solu>on  :  a  WebRTC  gateway,  with  no  or  liZle   signalling   – Use  JSON,  a  well  known  format  for  web   developers,  to  carry  signalling  messages  
  • 6. WebSocket  gateway   capabili>es   •  Must  «  speak  »  ICE   •  Must  encrypt  media  traffic     – SRTP/SDES  now,  SRTP/DTLS  in  the  future  
  • 8. Show  me  the  code!   socket = new WebSocket('ws://94.23.192.150:8088/agaf6c31?secret=43fdre03fa1705a&action=joinroom&roomname=' + roomName, 'webrtc'); /* Set listeners on the socket for events 'open', 'close', 'message' */ socket.addEventListener("open", function(event) {console.log("S->C : WebSocket connection open")}); socket.addEventListener("close", function(event) {console.log("S->C : WebSocket connection closed")}); socket.addEventListener("message", onMessage, false); … function onMessage(evt) { console.log("S->C: "+evt.data); var obj = JSON.parse(evt.data); switch (obj.event.type) { case "confbridgejoin": break; case "confbridgetalking”: break; case “confbridgeleav”: break; } } … /* Send message as a JSON string */ function sendMessage(type, body) { var tmp = {}; tmp['type'] = type; tmp['sdp'] = body; message = JSON.stringify(tmp); console.log("C->S : " + message); socket.send(message); }
  • 9. Interac>ng  with  the  gateway   •  Enter  key  iden>fier/secret   socket = new WebSocket('ws://94.23.192.150:8088/agaf6c31? secret=43fdre03fa1705a&action=joinroom&roomname=' + roomName, 'webrtc');   •  Send  commands  through  the  WebSocket   – JSON   – Implement  your  own  signalling  protocol  using  our   gateway  
  • 10. More  to  come