Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Implementation Lessons Using WebRTC in Asterisk
Search
Moises Silva
October 10, 2013
Technology
330
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Implementation Lessons Using WebRTC in Asterisk
Understanding WebRTC and the Asterisk implementation for this new technology
Moises Silva
October 10, 2013
More Decks by Moises Silva
See All by Moises Silva
FreeSWITCH Performance Scaling
moy
0
590
Other Decks in Technology
See All in Technology
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
170
internal/testlog で遊ぼう
rokuosan
0
410
ブラウザで変わるID連携(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
380
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
370
NANDでも描画したい!
nichica906
3
830
AI駆動開発をチームに根付かせる - 「1行も書かない」チームがHarnessを育てた1年 -
kenichirokimura
6
3.4k
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
200
AI × Datadog MCP でコスト削減まで実現した Metric Streams の導入
three_mouth_ago
0
110
Introduction to Bill One Development Engineer
sansan33
PRO
0
480
Microsoft MVP プログラムを紹介するから目指す人増えてくれ
tsubakimoto_s
0
150
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
86k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
From π to Pie charts
rasagy
0
330
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
790
The SEO identity crisis: Don't let AI make you average
varn
0
540
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Believing is Seeing
oripsolob
1
200
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
220
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
630
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
Implementa)on Lessons using WebRTC in Asterisk Astricon, October
2013 Moisés Silva <
[email protected]
> Manager, So?ware Engineering
Agenda • WebRTC Intro • WebRTC Asterisk Architecture
• Install & Config • TroubleshooLng 2 Sangoma Technologies -‐ © 2013
WebRTC Intro • It is not a phone in
the browser! 3 Sangoma Technologies -‐ © 2013
WebRTC Intro • It is a full RTC engine
in the browser! 4 Sangoma Technologies -‐ © 2013
WebRTC Intro • Yes, it can be used for
a phone in the browser J 5 Sangoma Technologies -‐ © 2013
WebRTC Intro • 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 6 Sangoma Technologies -‐ © 2013
WebRTC Intro • WebRTC comes with mulLple APIs, ie:
• Peer-‐to-‐Peer ConnecLons (RTCPeerConnecLon) • Peer-‐to-‐Peer Data API (RTCDataChannel) • StaLsLcs (RTCStats) • Media Stream (getUserMedia) 7 Sangoma Technologies -‐ © 2013
WebRTC Intro • 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 8 Sangoma Technologies -‐ © 2013
WebRTC Intro • What signaling to use is up
to you: • SIP • XMPP/Jingle • RESTful API (json) • OpenPeer …. 9 Sangoma Technologies -‐ © 2013
WebRTC Intro • ApplicaLons • A phone,
video calls, conferencing etc! • Video games • P2P Video Streaming (Chromecast) • MoLon-‐detecLng Baby Monitor ( hops://github.com/webrtcHacks/ webrtc_baby_monitor) 10 Sangoma Technologies -‐ © 2013
WebRTC Intro • WebRTC Web Triangle 11
Sangoma Technologies -‐ © 2013 Alice’s Browser Bob’s Browser Encrypted Media Web Signaling Signaling
WebRTC in Asterisk 12 Sangoma Technologies
-‐ © 2013 Alice’s Browser Bob’s Browser Encrypted Media SIP over WS SIP over WS Encrypted Media
WebRTC in Asterisk • WebRTC Gateway 13
Sangoma Technologies -‐ © 2013 Alice’s Browser SIP/RTP, Jingle, FXO/FXS, PRI, SS7 etc … Encrypted Media SIP over WS
WebRTC in Asterisk 14 Sangoma Technologies
-‐ © 2013 Javascript SIP WebRTC chan_sip res_hop_websocket res_rtp_asterisk res_srtp
WebRTC in Asterisk 15 Sangoma Technologies
-‐ © 2013 sipml5 Chrome 30 Asterisk 11
Installing WebRTC Support • 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 16 Sangoma Technologies -‐ © 2013
Installing WebRTC Support • Easy usual steps …
• ./configure • make menuselect: • res_hop_websocket • res_rtp_asterisk • make install 17 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • Enable the websockets server (hop.conf)
• enabled=yes • bindaddr=0.0.0.0 • bindport=8088 18 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • Good idea to use secure
websockets (hop.conf) • tlsenable=yes • tlsbindaddr=0.0.0.0:8089 • tlsceruile=localhost.crt • tlsprivatekey=localhost.key 19 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • But … Asterisk currently seems
to have issues with secure WebSockets, patches available to fix them • hops://issues.asterisk.org/jira/browse/ ASTERISK-‐21930 • hop://svnview.digium.com/svn/asterisk/team/moy/ webrtc-‐11/ 20 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • Verify the HTTP server status
21 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • Test websockets connecLvity •
npm install –g ws • wscat –s echo –c ws://<host>:<port>/ws wscat –s echo –c wss://<host>:<port>/ws 22 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • Test websockets connecLvity 23
Sangoma Technologies -‐ © 2013
Configuring WebRTC Support 24 Sangoma Technologies -‐ ©
2013
Configuring WebRTC Support • Enable SIP over websockets (sip.conf)
• transport=ws,wss • Make sure you use the /ws URL when connecLng from JavaScript • Create a SIP account to receive ws/wss calls 25 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support • TesLng using sipml5.org/call.htm
26 Sangoma Technologies -‐ © 2013
Configuring WebRTC Support 27 Sangoma Technologies -‐ ©
2013
Troubleshoo)ng • TroubleshooLng Toolkit • javascript console
• chrome://webrtc-‐internals • Node ws (test websockets) • Wireshark! 28 Sangoma Technologies -‐ © 2013
Troubleshoo)ng • The javascript console is your friend
29 Sangoma Technologies -‐ © 2013
Troubleshoo)ng • Checking out chrome://webrtc-‐internals 30
Sangoma Technologies -‐ © 2013
Troubleshoo)ng • Checking out chrome://webrtc-‐internals 31
Sangoma Technologies -‐ © 2013
Troubleshoo)ng • Note that Wireshark VoIP calls menu won’t
work for calls over websockets • You can however use “Follow TCP stream” and see the enLre SIP signaling flow • RTP decoding will not work either (rtcp-‐mux) 32 Sangoma Technologies -‐ © 2013
Troubleshoo)ng • TLS decrypLon can be achieved by installing
the private key on Wireshark • Preferences -‐> Protocols -‐> SSL -‐> RSA Key List 33 Sangoma Technologies -‐ © 2013
Troubleshoo)ng • Wireshark decrypted secure WebSocket payload 34
Sangoma Technologies -‐ © 2013
Things to test in the near Future • Trickle
Ice • Use of other codecs (ie Opus, iSAC) • Video (VP8) • Use libwebsockets in res_hop_websocket? 35 Sangoma Technologies -‐ © 2013
Conclusion • Asterisk + WebRTC gateway is easy to
setup! • Know your debugging tools • Understand the protocols involved • Have fun and hack away! 36 Sangoma Technologies -‐ © 2013
QUESTIONS
Contact Us • Sangoma Technologies 100 Renfrew Drive,
Suite 100 Markham, Ontario L3R 9R6 Canada • Website hop://www.sangoma.com/ • Telephone +1 905 474 1990 x2 (for Sales) • Email
[email protected]
Sangoma Technologies -‐ © 2013 38
THANK YOU