SlideShare a Scribd company logo
1 of 36
Download to read offline
Top 5 Challenges to Add
Web Calls to Truphone VoIP
Platform
Giacomo Vacca
Senior Network Applications Developer
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
labs.truphone.com
2
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 3
WebRTC is not for VoIP devs
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 4
The “Traditional Architecture”
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• Follow standards
• Use Open Source products
• Think scalability since the beginning
• Don’t compromise on security
• Change often, keep technical debt low
• Deploy automatically
5
Design Principles
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• JS client (JsSIP-based)
• WebSockets
• Authentication
• Media relay for p2p sessions
• FreeSWITCH out of the media path
• Web/VoIP/PSTN interaction
–Support for DTLS
6
Changes Required
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Websocket support
7
Challenge 1
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 8
Adding WebSocket support…
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 9
… with Kamailio
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Kamailio websocket module
loadmodule "websocket.so"
…
event_route[xhttp:request] {
set_reply_close();
set_reply_no_connect();
…
if ($hdr(Upgrade)=~"websocket" && $hdr(Connection)=~"Upgrade"
&& $rm=~"GET") {
if (ws_handle_handshake()) {
exit;
}
}
}
10
WebSockets support
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
v=0
o=- 2700277954018656518 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
m=audio 63529 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 162.243.255.49
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
11
Gigantic SDP 1/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=rtcp:63529 IN IP4 162.243.255.49
a=candidate:1867667642 1 udp 2122260223 192.168.254.1 58603 typ
host generation 0
a=candidate:1867667642 2 udp 2122260223 192.168.254.1 58603 typ
host generation 0
a=candidate:2448668656 1 udp 2122194687 192.168.142.1 58604 typ
host generation 0
a=candidate:2448668656 2 udp 2122194687 192.168.142.1 58604 typ
host generation 0
12
Gigantic SDP 2/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=candidate:882550992 1 udp 2122129151 10.2.129.202 58605 typ host
generation 0
a=candidate:882550992 2 udp 2122129151 10.2.129.202 58605 typ host
generation 0
a=candidate:567387210 1 tcp 1518280447 192.168.254.1 0 typ host
generation 0
a=candidate:567387210 2 tcp 1518280447 192.168.254.1 0 typ host
generation 0
a=candidate:3748678400 1 tcp 1518214911 192.168.142.1 0 typ host
generation 0
a=candidate:3748678400 2 tcp 1518214911 192.168.142.1 0 typ host
generation 0
a=candidate:2048480288 1 tcp 1518149375 10.2.129.202 0 typ host
generation 0
13
Gigantic SDP 3/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=candidate:2048480288 2 tcp 1518149375 10.2.129.202 0 typ host
generation 0
a=candidate:3427568147 1 udp 41754367 162.243.255.49 63529 typ relay
raddr 195.110.37.225 rport 48569 generation 0
a=candidate:3427568147 2 udp 41754367 162.243.255.49 63529 typ relay
raddr 195.110.37.225 rport 48569 generation 0
a=ice-ufrag:JuWsZDrjSjaP91bz
a=ice-pwd:QUc3SJ/aJe+FLa658U5y2qJp
a=ice-options:google-ice
a=fingerprint:sha-256
C0:42:EE:16:BF:BD:87:76:A4:0F:F6:A9:48:C8:BA:45:2E:0E:AD:1F:41:AA:
C3:3C:99:45:CA:FE:50:9D:E4:32
a=setup:actpass
a=mid:audio
14
Gigantic SDP 4/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtcp-mux
a=maxptime:60
a=ssrc:2566549015 cname:TdImtoO7ee/QmnJN
a=ssrc:2566549015 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
d7516c7a-7f81-4598-a2e6-aa71b7ceb8db
a=ssrc:2566549015 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
a=ssrc:2566549015 label:d7516c7a-7f81-4598-a2e6-aa71b7ceb8db
m=video 63529 RTP/SAVPF 100 116 117 96
c=IN IP4 162.243.255.49
a=rtpmap:100 VP8/90000
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
15
Gigantic SDP 5/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=rtcp:63529 IN IP4 162.243.255.49
a=candidate:1867667642 1 udp 2122260223 192.168.254.1 58603 typ
host generation 0
a=candidate:1867667642 2 udp 2122260223 192.168.254.1 58603 typ
host generation 0
a=candidate:2448668656 1 udp 2122194687 192.168.142.1 58604 typ
host generation 0
a=candidate:2448668656 2 udp 2122194687 192.168.142.1 58604 typ
host generation 0
a=candidate:882550992 1 udp 2122129151 10.2.129.202 58605 typ host
generation 0
a=candidate:882550992 2 udp 2122129151 10.2.129.202 58605 typ host
generation 0
16
Gigantic SDP 6/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=candidate:567387210 1 tcp 1518280447 192.168.254.1 0 typ host
generation 0
a=candidate:567387210 2 tcp 1518280447 192.168.254.1 0 typ host
generation 0
a=candidate:3748678400 1 tcp 1518214911 192.168.142.1 0 typ host
generation 0
a=candidate:3748678400 2 tcp 1518214911 192.168.142.1 0 typ host
generation 0
a=candidate:2048480288 1 tcp 1518149375 10.2.129.202 0 typ host
generation 0
a=candidate:2048480288 2 tcp 1518149375 10.2.129.202 0 typ host
generation 0
a=candidate:3427568147 1 udp 41754367 162.243.255.49 63529 typ relay
raddr 195.110.37.225 rport 48569 generation 0
a=candidate:3427568147 2 udp 41754367 162.243.255.49 63529 typ relay
raddr 195.110.37.225 rport 48569 generation 0
17
Gigantic SDP 7/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=ice-ufrag:JuWsZDrjSjaP91bz
a=ice-pwd:QUc3SJ/aJe+FLa658U5y2qJp
a=ice-options:google-ice
a=fingerprint:sha-256
C0:42:EE:16:BF:BD:87:76:A4:0F:F6:A9:48:C8:BA:45:2E:0E:AD:1F:41:AA:
C3:3C:99:45:CA:FE:50:9D:E4:32
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtcp-mux
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
18
Gigantic SDP 8/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
a=ssrc-group:FID 1964375756 3405612694
a=ssrc:1964375756 cname:TdImtoO7ee/QmnJN
a=ssrc:1964375756 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
fb4cdb67-4167-4f63-a934-fa49977f955a
a=ssrc:1964375756 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
a=ssrc:1964375756 label:fb4cdb67-4167-4f63-a934-fa49977f955a
a=ssrc:3405612694 cname:TdImtoO7ee/QmnJN
a=ssrc:3405612694 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
fb4cdb67-4167-4f63-a934-fa49977f955a
a=ssrc:3405612694 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4
a=ssrc:3405612694 label:fb4cdb67-4167-4f63-a934-fa49977f955a
19
Gigantic SDP 9/10
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 20
Gigantic SDP 10/10
Increase tcp_rd_buf_size!
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
WebRTC/VoIP and WebRTC/PSTN
21
Challenge 2
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• FreeSWITCH to the rescue
– session:execute("export", "media_webrtc=true")
– session:setVariable("bypass_media", "true")
• Certs for DTLS
– /etc/freeswitch/tls/dtls-srtp.crt
• Transcoding (mod_opus)
– <load module="mod_opus"/>
22
WebRTC/VoIP (and PSTN)
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 23
WebRTC/VoIP - WebRTC/PSTN
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Authentication
24
Challenge 3
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 25
Ephemeral Authentication
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Kamailio auth_ephemeral module
loadmodule "auth.so“
loadmodule "auth_ephemeral.so“
…
modparam("auth_ephemeral", "secret", AUTH_EPHEMERAL_SECRET)
…
if (!autheph_proxy("$fd")) {
auth_challenge("$fd", "0");
exit;
}
26
Ephemeral Authentication
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Media relay for p2p
27
Challenge 4
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• rfc-5766-turn-server
–Open Source
–Easy to set up (e.g. Puppet)
–Ephemeral auth. applies here too!
• JsSIP configuration easy:
– turn_servers: { urls: [“turn:myturn.com”],
username: “u”, credentials: “c”}
28
Media relay (TURN + STUN)
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 29
Media relay (TURN + STUN)
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Testing
30
Challenge 5
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• From sipp & PJSUA to… Selenium?
• Chrome and FF change
–A lot
–Often
• JsSIP master vs develop (re-INVITEs)
• FreeSWITCH 1.5 or 1.4?
31
5. Testing
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Dealing with Web Developers 
32
Bonus challenge
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• Different tools/processes
• Bleeding edge libs/apps
• Automating deployment of non-stock apps?
• Don’t care about signalling/media
33
Web Development
© 2014 Truphone Limited. All Rights Reserved.05 August 2014 34
findable.io
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
• Big shift to web technologies
• No need to revolutionize your VoIP platform
• SIP can do the job, but…
–verto endpoint for FreeSWITCH?
• (Automated) Testing is hard
• chrome://webrtc-internals is cool
35
Wrapping up
© 2014 Truphone Limited. All Rights Reserved.05 August 2014
Q&A
Giacomo Vacca - @giavac
labs@truphone.com
https://labs.truphone.com/about/
36

More Related Content

What's hot

Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCHChien Cheng Wu
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPThomas Graf
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
 
Knative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and OpenshiftKnative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and OpenshiftChris Suszyński
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話Masahito Zembutsu
 
What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19ShapeBlue
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo Vacca
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updatemganeko
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftKangaroot
 
Storing 16 Bytes at Scale
Storing 16 Bytes at ScaleStoring 16 Bytes at Scale
Storing 16 Bytes at ScaleFabian Reinartz
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service MeshKnoldus Inc.
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月VirtualTech Japan Inc.
 

What's hot (20)

Open Caching Update
Open Caching UpdateOpen Caching Update
Open Caching Update
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCH
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
 
Rethinking Cloud Proxies
Rethinking Cloud ProxiesRethinking Cloud Proxies
Rethinking Cloud Proxies
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
Knative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and OpenshiftKnative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and Openshift
 
Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19What's Coming in CloudStack 4.19
What's Coming in CloudStack 4.19
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
ICE basic
ICE basicICE basic
ICE basic
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample update
 
VPNaaS in Neutron
VPNaaS in NeutronVPNaaS in Neutron
VPNaaS in Neutron
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShift
 
Kamailio - Secure Communication
Kamailio - Secure CommunicationKamailio - Secure Communication
Kamailio - Secure Communication
 
Storing 16 Bytes at Scale
Storing 16 Bytes at ScaleStoring 16 Bytes at Scale
Storing 16 Bytes at Scale
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service Mesh
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
 
OAuth in the Wild
OAuth in the WildOAuth in the Wild
OAuth in the Wild
 

Viewers also liked

KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability2600Hz
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and KamailioGiacomo Vacca
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)Victor Pascual Ávila
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
KazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka StyleKazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka Style2600Hz
 
2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz
 
Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World2600Hz
 
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 20152600Hz
 
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz
 
2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz
 

Viewers also liked (11)

Provisioning Q and A
Provisioning Q and AProvisioning Q and A
Provisioning Q and A
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
KazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka StyleKazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka Style
 
2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits
 
Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World
 
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
 
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
 
2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo
 

Similar to Top 5 Challenges to Add Web Calls to Truphone VoIP Platform

WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspectiveshwetank
 
Clarification material for morocco nis frame bidding 2014 v102
Clarification material for morocco nis frame bidding 2014 v102Clarification material for morocco nis frame bidding 2014 v102
Clarification material for morocco nis frame bidding 2014 v102Lahcen Lahmid
 
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0Yasas Anuradha
 
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるK8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるJUNICHI YOSHISE
 
Cohesive Networks Support Docs: VNS3 Trend Micro Agent
Cohesive Networks Support Docs: VNS3 Trend Micro Agent Cohesive Networks Support Docs: VNS3 Trend Micro Agent
Cohesive Networks Support Docs: VNS3 Trend Micro Agent Cohesive Networks
 
phan phoi airlive camera
phan phoi airlive cameraphan phoi airlive camera
phan phoi airlive cameractyccck
 
Prevent ssh-tunneling
Prevent ssh-tunnelingPrevent ssh-tunneling
Prevent ssh-tunnelingYudi Arijanto
 
How to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWHow to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWYudi Arijanto
 
SBM Orchestrations - Beginners Guide (FUG Presentation)
SBM Orchestrations - Beginners Guide (FUG Presentation)SBM Orchestrations - Beginners Guide (FUG Presentation)
SBM Orchestrations - Beginners Guide (FUG Presentation)Serena Software
 
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...APNIC
 
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...Philippe Lin
 
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)VMware Tanzu
 
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...SGS
 
Ficstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationFicstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationDataStax Academy
 
SIP Pap2 T Sip 1 SETTING
SIP Pap2 T Sip 1 SETTINGSIP Pap2 T Sip 1 SETTING
SIP Pap2 T Sip 1 SETTINGakbar2266778899
 
June 2004 IPv6 – Hands on
June 2004 IPv6 – Hands on June 2004 IPv6 – Hands on
June 2004 IPv6 – Hands on Videoguy
 

Similar to Top 5 Challenges to Add Web Calls to Truphone VoIP Platform (20)

WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140) Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140)
 
Clarification material for morocco nis frame bidding 2014 v102
Clarification material for morocco nis frame bidding 2014 v102Clarification material for morocco nis frame bidding 2014 v102
Clarification material for morocco nis frame bidding 2014 v102
 
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0
Anguruwathota [wb klt-2106]-umts2100 swap site ssv report_v2.0
 
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみるK8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
 
Cohesive Networks Support Docs: VNS3 Trend Micro Agent
Cohesive Networks Support Docs: VNS3 Trend Micro Agent Cohesive Networks Support Docs: VNS3 Trend Micro Agent
Cohesive Networks Support Docs: VNS3 Trend Micro Agent
 
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
The Self-Contained SDR Satellite Grand Station with Raspberry Pi 3
 
phan phoi airlive camera
phan phoi airlive cameraphan phoi airlive camera
phan phoi airlive camera
 
Prevent ssh-tunneling
Prevent ssh-tunnelingPrevent ssh-tunneling
Prevent ssh-tunneling
 
How to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFWHow to prevent ssh-tunneling using Palo Alto Networks NGFW
How to prevent ssh-tunneling using Palo Alto Networks NGFW
 
SBM Orchestrations - Beginners Guide (FUG Presentation)
SBM Orchestrations - Beginners Guide (FUG Presentation)SBM Orchestrations - Beginners Guide (FUG Presentation)
SBM Orchestrations - Beginners Guide (FUG Presentation)
 
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...
AutoIP -A mechanism for IPv6 migration and IPv4 sunsetting by Shishio Tsuchiy...
 
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...
HITCON 2015: Your Lightbulb Is Not Hacking You: Observation from a Honeypot B...
 
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
Autoscaling Cloud Foundry with BOSH (Cloud Foundry Summit 2014)
 
CPU
CPUCPU
CPU
 
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...
Automated SDTM Creation and Discrepancy Detection Jobs: The Numbers Tell The ...
 
Ficstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to OptimizationFicstar Software: Cassandra Installation to Optimization
Ficstar Software: Cassandra Installation to Optimization
 
SIP Pap2 T Sip 1 SETTING
SIP Pap2 T Sip 1 SETTINGSIP Pap2 T Sip 1 SETTING
SIP Pap2 T Sip 1 SETTING
 
Verilog lab mauual
Verilog lab mauualVerilog lab mauual
Verilog lab mauual
 
June 2004 IPv6 – Hands on
June 2004 IPv6 – Hands on June 2004 IPv6 – Hands on
June 2004 IPv6 – Hands on
 

More from Giacomo Vacca

Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresGiacomo Vacca
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresGiacomo Vacca
 
Kamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-testsKamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-testsGiacomo Vacca
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTCGiacomo Vacca
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To RunningGiacomo Vacca
 
Automatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With PuppetAutomatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With PuppetGiacomo Vacca
 

More from Giacomo Vacca (9)

STUN protocol
STUN protocolSTUN protocol
STUN protocol
 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructures
 
RIPP Notes
RIPP NotesRIPP Notes
RIPP Notes
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern Infrastructures
 
Kamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-testsKamailio World 2018 - Workshop: kamailio-tests
Kamailio World 2018 - Workshop: kamailio-tests
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
 
Automatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With PuppetAutomatic Kamailio Deployments With Puppet
Automatic Kamailio Deployments With Puppet
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Top 5 Challenges to Add Web Calls to Truphone VoIP Platform

  • 1. Top 5 Challenges to Add Web Calls to Truphone VoIP Platform Giacomo Vacca Senior Network Applications Developer
  • 2. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 labs.truphone.com 2
  • 3. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 3 WebRTC is not for VoIP devs
  • 4. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 4 The “Traditional Architecture”
  • 5. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • Follow standards • Use Open Source products • Think scalability since the beginning • Don’t compromise on security • Change often, keep technical debt low • Deploy automatically 5 Design Principles
  • 6. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • JS client (JsSIP-based) • WebSockets • Authentication • Media relay for p2p sessions • FreeSWITCH out of the media path • Web/VoIP/PSTN interaction –Support for DTLS 6 Changes Required
  • 7. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Websocket support 7 Challenge 1
  • 8. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 8 Adding WebSocket support…
  • 9. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 9 … with Kamailio
  • 10. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Kamailio websocket module loadmodule "websocket.so" … event_route[xhttp:request] { set_reply_close(); set_reply_no_connect(); … if ($hdr(Upgrade)=~"websocket" && $hdr(Connection)=~"Upgrade" && $rm=~"GET") { if (ws_handle_handshake()) { exit; } } } 10 WebSockets support
  • 11. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 v=0 o=- 2700277954018656518 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 m=audio 63529 RTP/SAVPF 111 103 104 0 8 106 105 13 126 c=IN IP4 162.243.255.49 a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 11 Gigantic SDP 1/10
  • 12. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000 a=rtpmap:126 telephone-event/8000 a=rtcp:63529 IN IP4 162.243.255.49 a=candidate:1867667642 1 udp 2122260223 192.168.254.1 58603 typ host generation 0 a=candidate:1867667642 2 udp 2122260223 192.168.254.1 58603 typ host generation 0 a=candidate:2448668656 1 udp 2122194687 192.168.142.1 58604 typ host generation 0 a=candidate:2448668656 2 udp 2122194687 192.168.142.1 58604 typ host generation 0 12 Gigantic SDP 2/10
  • 13. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=candidate:882550992 1 udp 2122129151 10.2.129.202 58605 typ host generation 0 a=candidate:882550992 2 udp 2122129151 10.2.129.202 58605 typ host generation 0 a=candidate:567387210 1 tcp 1518280447 192.168.254.1 0 typ host generation 0 a=candidate:567387210 2 tcp 1518280447 192.168.254.1 0 typ host generation 0 a=candidate:3748678400 1 tcp 1518214911 192.168.142.1 0 typ host generation 0 a=candidate:3748678400 2 tcp 1518214911 192.168.142.1 0 typ host generation 0 a=candidate:2048480288 1 tcp 1518149375 10.2.129.202 0 typ host generation 0 13 Gigantic SDP 3/10
  • 14. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=candidate:2048480288 2 tcp 1518149375 10.2.129.202 0 typ host generation 0 a=candidate:3427568147 1 udp 41754367 162.243.255.49 63529 typ relay raddr 195.110.37.225 rport 48569 generation 0 a=candidate:3427568147 2 udp 41754367 162.243.255.49 63529 typ relay raddr 195.110.37.225 rport 48569 generation 0 a=ice-ufrag:JuWsZDrjSjaP91bz a=ice-pwd:QUc3SJ/aJe+FLa658U5y2qJp a=ice-options:google-ice a=fingerprint:sha-256 C0:42:EE:16:BF:BD:87:76:A4:0F:F6:A9:48:C8:BA:45:2E:0E:AD:1F:41:AA: C3:3C:99:45:CA:FE:50:9D:E4:32 a=setup:actpass a=mid:audio 14 Gigantic SDP 4/10
  • 15. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=rtcp-mux a=maxptime:60 a=ssrc:2566549015 cname:TdImtoO7ee/QmnJN a=ssrc:2566549015 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 d7516c7a-7f81-4598-a2e6-aa71b7ceb8db a=ssrc:2566549015 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 a=ssrc:2566549015 label:d7516c7a-7f81-4598-a2e6-aa71b7ceb8db m=video 63529 RTP/SAVPF 100 116 117 96 c=IN IP4 162.243.255.49 a=rtpmap:100 VP8/90000 a=rtpmap:116 red/90000 a=rtpmap:117 ulpfec/90000 15 Gigantic SDP 5/10
  • 16. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=rtpmap:96 rtx/90000 a=fmtp:96 apt=100 a=rtcp:63529 IN IP4 162.243.255.49 a=candidate:1867667642 1 udp 2122260223 192.168.254.1 58603 typ host generation 0 a=candidate:1867667642 2 udp 2122260223 192.168.254.1 58603 typ host generation 0 a=candidate:2448668656 1 udp 2122194687 192.168.142.1 58604 typ host generation 0 a=candidate:2448668656 2 udp 2122194687 192.168.142.1 58604 typ host generation 0 a=candidate:882550992 1 udp 2122129151 10.2.129.202 58605 typ host generation 0 a=candidate:882550992 2 udp 2122129151 10.2.129.202 58605 typ host generation 0 16 Gigantic SDP 6/10
  • 17. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=candidate:567387210 1 tcp 1518280447 192.168.254.1 0 typ host generation 0 a=candidate:567387210 2 tcp 1518280447 192.168.254.1 0 typ host generation 0 a=candidate:3748678400 1 tcp 1518214911 192.168.142.1 0 typ host generation 0 a=candidate:3748678400 2 tcp 1518214911 192.168.142.1 0 typ host generation 0 a=candidate:2048480288 1 tcp 1518149375 10.2.129.202 0 typ host generation 0 a=candidate:2048480288 2 tcp 1518149375 10.2.129.202 0 typ host generation 0 a=candidate:3427568147 1 udp 41754367 162.243.255.49 63529 typ relay raddr 195.110.37.225 rport 48569 generation 0 a=candidate:3427568147 2 udp 41754367 162.243.255.49 63529 typ relay raddr 195.110.37.225 rport 48569 generation 0 17 Gigantic SDP 7/10
  • 18. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=ice-ufrag:JuWsZDrjSjaP91bz a=ice-pwd:QUc3SJ/aJe+FLa658U5y2qJp a=ice-options:google-ice a=fingerprint:sha-256 C0:42:EE:16:BF:BD:87:76:A4:0F:F6:A9:48:C8:BA:45:2E:0E:AD:1F:41:AA: C3:3C:99:45:CA:FE:50:9D:E4:32 a=setup:actpass a=mid:video a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=rtcp-mux a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=rtcp-fb:100 goog-remb 18 Gigantic SDP 8/10
  • 19. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 a=ssrc-group:FID 1964375756 3405612694 a=ssrc:1964375756 cname:TdImtoO7ee/QmnJN a=ssrc:1964375756 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 fb4cdb67-4167-4f63-a934-fa49977f955a a=ssrc:1964375756 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 a=ssrc:1964375756 label:fb4cdb67-4167-4f63-a934-fa49977f955a a=ssrc:3405612694 cname:TdImtoO7ee/QmnJN a=ssrc:3405612694 msid:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 fb4cdb67-4167-4f63-a934-fa49977f955a a=ssrc:3405612694 mslabel:e8hFvtt1SQ9FiqpbYbOhN19wvpp21flszxZ4 a=ssrc:3405612694 label:fb4cdb67-4167-4f63-a934-fa49977f955a 19 Gigantic SDP 9/10
  • 20. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 20 Gigantic SDP 10/10 Increase tcp_rd_buf_size!
  • 21. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 WebRTC/VoIP and WebRTC/PSTN 21 Challenge 2
  • 22. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • FreeSWITCH to the rescue – session:execute("export", "media_webrtc=true") – session:setVariable("bypass_media", "true") • Certs for DTLS – /etc/freeswitch/tls/dtls-srtp.crt • Transcoding (mod_opus) – <load module="mod_opus"/> 22 WebRTC/VoIP (and PSTN)
  • 23. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 23 WebRTC/VoIP - WebRTC/PSTN
  • 24. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Authentication 24 Challenge 3
  • 25. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 25 Ephemeral Authentication
  • 26. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Kamailio auth_ephemeral module loadmodule "auth.so“ loadmodule "auth_ephemeral.so“ … modparam("auth_ephemeral", "secret", AUTH_EPHEMERAL_SECRET) … if (!autheph_proxy("$fd")) { auth_challenge("$fd", "0"); exit; } 26 Ephemeral Authentication
  • 27. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Media relay for p2p 27 Challenge 4
  • 28. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • rfc-5766-turn-server –Open Source –Easy to set up (e.g. Puppet) –Ephemeral auth. applies here too! • JsSIP configuration easy: – turn_servers: { urls: [“turn:myturn.com”], username: “u”, credentials: “c”} 28 Media relay (TURN + STUN)
  • 29. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 29 Media relay (TURN + STUN)
  • 30. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Testing 30 Challenge 5
  • 31. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • From sipp & PJSUA to… Selenium? • Chrome and FF change –A lot –Often • JsSIP master vs develop (re-INVITEs) • FreeSWITCH 1.5 or 1.4? 31 5. Testing
  • 32. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Dealing with Web Developers  32 Bonus challenge
  • 33. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • Different tools/processes • Bleeding edge libs/apps • Automating deployment of non-stock apps? • Don’t care about signalling/media 33 Web Development
  • 34. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 34 findable.io
  • 35. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 • Big shift to web technologies • No need to revolutionize your VoIP platform • SIP can do the job, but… –verto endpoint for FreeSWITCH? • (Automated) Testing is hard • chrome://webrtc-internals is cool 35 Wrapping up
  • 36. © 2014 Truphone Limited. All Rights Reserved.05 August 2014 Q&A Giacomo Vacca - @giavac labs@truphone.com https://labs.truphone.com/about/ 36