Download presentation
Presentation is loading. Please wait.
Published byKailyn Voshall Modified over 9 years ago
1
Implementation Lessons using WebRTC in Asterisk
Astricon, October 2013 Moisés Silva Manager, Software Engineering
2
Agenda WebRTC Intro WebRTC Asterisk Architecture Install & Config
Sangoma Technologies - © 2013 WebRTC Intro WebRTC Asterisk Architecture Install & Config Troubleshooting
3
WebRTC Intro It is not a phone in the browser!
Sangoma Technologies - © 2013 It is not a phone in the browser!
4
WebRTC Intro It is a full RTC engine in the browser!
Sangoma Technologies - © 2013 It is a full RTC engine in the browser!
5
WebRTC Intro Yes, it can be used for a phone in the browser
Sangoma Technologies - © 2013 Yes, it can be used for a phone in the browser
6
WebRTC Intro Full media engine API in the web browser
Sangoma Technologies - © 2013 Full media engine API in the web browser No “call” or “session” signaling defined Generic data interchange between browsers, peer to peer State of the art NAT traversal techniques
7
WebRTC Intro WebRTC comes with multiple APIs, ie:
Sangoma Technologies - © 2013 WebRTC comes with multiple APIs, ie: Peer-to-Peer Connections (RTCPeerConnection) Peer-to-Peer Data API (RTCDataChannel) Statistics (RTCStats) Media Stream (getUserMedia)
8
WebRTC Intro WebRTC uses established protocols:
Sangoma Technologies - © 2013 WebRTC uses established protocols: SRTP/SRTCP for media exchange (secure RTP) SDP (its use is controversial and currently challenged) ICE, STUN, TURN for NAT Traversal DTLS for key exchange G.711, Opus, VP8/H.264 etc; for voice and video
9
WebRTC Intro What signaling to use is up to you: SIP XMPP/Jingle
Sangoma Technologies - © 2013 What signaling to use is up to you: SIP XMPP/Jingle RESTful API (json) OpenPeer ….
10
WebRTC Intro Applications A phone, video calls, conferencing etc!
Sangoma Technologies - © 2013 Applications A phone, video calls, conferencing etc! Video games P2P Video Streaming (Chromecast) Motion-detecting Baby Monitor (
11
WebRTC Intro WebRTC Web Triangle Web Signaling Signaling
Sangoma Technologies - © 2013 WebRTC Web Triangle Web Signaling Signaling Encrypted Media Alice’s Browser Bob’s Browser
12
WebRTC in Asterisk SIP over WS SIP over WS Encrypted Media
Sangoma Technologies - © 2013 SIP over WS SIP over WS Encrypted Media Encrypted Media Alice’s Browser Bob’s Browser
13
WebRTC in Asterisk WebRTC Gateway SIP/RTP, Jingle, FXO/FXS,
Sangoma Technologies - © 2013 WebRTC Gateway SIP/RTP, Jingle, FXO/FXS, PRI, SS7 etc … SIP over WS Encrypted Media Alice’s Browser
14
WebRTC in Asterisk Javascript SIP res_http_websocket chan_sip WebRTC
Sangoma Technologies - © 2013 Javascript SIP res_http_websocket chan_sip WebRTC res_rtp_asterisk res_srtp
15
WebRTC in Asterisk sipml5 Asterisk 11 Chrome 30
Sangoma Technologies - © 2013 sipml5 Asterisk 11 Chrome 30
16
Installing WebRTC Support
Sangoma Technologies - © 2013 Make sure you have: libuuid-devel (required by res_rtp_asterisk) OpenSSL w/ DTLS support (1.0.1e has SSL_CTX_set_tlsext_use_srtp) libsrtp-devel
17
Installing WebRTC Support
Sangoma Technologies - © 2013 Easy usual steps … ./configure make menuselect: res_http_websocket res_rtp_asterisk make install
18
Configuring WebRTC Support
Sangoma Technologies - © 2013 Enable the websockets server (http.conf) enabled=yes bindaddr= bindport=8088
19
Configuring WebRTC Support
Sangoma Technologies - © 2013 Good idea to use secure websockets (http.conf) tlsenable=yes tlsbindaddr= :8089 tlscertfile=localhost.crt tlsprivatekey=localhost.key
20
Configuring WebRTC Support
Sangoma Technologies - © 2013 But … Asterisk currently seems to have issues with secure WebSockets, patches available to fix them
21
Configuring WebRTC Support
Sangoma Technologies - © 2013 Verify the HTTP server status
22
Configuring WebRTC Support
Sangoma Technologies - © 2013 Test websockets connectivity npm install –g ws wscat –s echo –c ws://<host>:<port>/ws wscat –s echo –c wss://<host>:<port>/ws
23
Configuring WebRTC Support
Sangoma Technologies - © 2013 Test websockets connectivity
24
Configuring WebRTC Support
Sangoma Technologies - © 2013
25
Configuring WebRTC Support
Sangoma Technologies - © 2013 Enable SIP over websockets (sip.conf) transport=udp,ws,wss Make sure you use the /ws URL when connecting from JavaScript
26
Configuring WebRTC Support
Sangoma Technologies - © 2013 Testing using sipml5.org/call.htm
27
Configuring WebRTC Support
Sangoma Technologies - © 2013
28
Troubleshooting Troubleshooting Toolkit javascript console
Sangoma Technologies - © 2013 Troubleshooting Toolkit javascript console chrome://webrtc-internals Node ws (test websockets) Wireshark!
29
Troubleshooting The javascript console is your friend
Sangoma Technologies - © 2013 The javascript console is your friend
30
Troubleshooting Checking out chrome://webrtc-internals
Sangoma Technologies - © 2013 Checking out chrome://webrtc-internals
31
Troubleshooting Checking out chrome://webrtc-internals
Sangoma Technologies - © 2013 Checking out chrome://webrtc-internals
32
Troubleshooting Sangoma Technologies - © 2013 Note that Wireshark VoIP calls menu won’t work for calls over websockets You can however use “Follow TCP stream” and see the entire SIP signaling flow RTP decoding will not work either (rtcp-mux)
33
Troubleshooting Sangoma Technologies - © 2013 TLS decryption can be achieved by installing the private key on Wireshark Preferences -> Protocols -> SSL -> RSA Key List
34
Troubleshooting Wireshark decrypted secure WebSocket payload
Sangoma Technologies - © 2013 Wireshark decrypted secure WebSocket payload
35
Future Trickle Ice Use of other codecs (ie Opus, iSAC) Video (VP8)
Sangoma Technologies - © 2013 Trickle Ice Use of other codecs (ie Opus, iSAC) Video (VP8) Use libwebsockets in res_http_websocket?
36
Conclusion Asterisk + WebRTC gateway is easy to setup!
Sangoma Technologies - © 2013 Asterisk + WebRTC gateway is easy to setup! Know your debugging tools Understand the protocols involved Have fun and hack away!
37
QUESTIONS
38
Contact Us Sangoma Technologies Website http://www.sangoma.com/
100 Renfrew Drive, Suite 100 Markham, Ontario L3R 9R6 Canada Website Telephone x2 (for Sales)
39
THANK YOU
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.