Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
1
320
Implementation Lessons Using WebRTC in Asterisk
Understanding WebRTC and the Asterisk implementation for this new technology
Moises Silva
October 10, 2013
Tweet
Share
More Decks by Moises Silva
See All by Moises Silva
FreeSWITCH Performance Scaling
moy
0
550
Other Decks in Technology
See All in Technology
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
11
480
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
1
120
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
260
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
830
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
150
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
130
MLflowダイエット大作戦
lycorptech_jp
PRO
1
140
regrowth_tokyo_2025_securityagent
hiashisan
0
250
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
240
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
160
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.5k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.7k
Speed Design
sergeychernyshev
33
1.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating Team Friction
lara
191
16k
Designing Experiences People Love
moore
143
24k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
The Invisible Side of Design
smashingmag
302
51k
It's Worth the Effort
3n
187
29k
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