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
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
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
300
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
280
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
150
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
150
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
16k
日本Rubyの会: これまでとこれから
snoozer05
PRO
6
250
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
12
4.5k
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
Claude Codeを使った情報整理術
knishioka
14
11k
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
6
2.3k
Introduce marp-ai-slide-generator
itarutomy
0
140
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.3k
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
Accessibility Awareness
sabderemane
0
26
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
53
47k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
96
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
250
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
New Earth Scene 8
popppiees
0
1.3k
The Language of Interfaces
destraynor
162
26k
Done Done
chrislema
186
16k
The agentic SEO stack - context over prompts
schlessera
0
570
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
68
Everyday Curiosity
cassininazir
0
110
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