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
320
1
Share
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
570
Other Decks in Technology
See All in Technology
スケーリングを封じられたEC2を救いたい
senseofunity129
0
130
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
130
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
170
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
160
ブラックボックス化したMLシステムのVertex AI移行 / mlops_community_62
visional_engineering_and_design
1
240
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
220
MIX AUDIO EN BROADCAST
ralpherick
0
140
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
AI時代のIssue駆動開発のススメ
moongift
PRO
0
320
OCI技術資料 : 証明書サービス概要
ocise
1
7.1k
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
330
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
660
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
300
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
240
Building the Perfect Custom Keyboard
takai
2
720
The SEO identity crisis: Don't let AI make you average
varn
0
430
Music & Morning Musume
bryan
47
7.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Navigating Weather and Climate Data
rabernat
0
150
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