Real-Time Communications Quick Start Guide
Total Page:16
File Type:pdf, Size:1020Kb
Real-Time Communications Quick Start Guide Daniel Pocock [http://danielpocock.com] Real-Time Communications Quick Start Guide Daniel Pocock [http://danielpocock.com] Copyright © 2013, 2014, 2015 Daniel Pocock Table of Contents Preface ........................................................................................................................ x 1. Introduction .............................................................................................................. 1 Federation ............................................................................................................ 1 Independent and decentralized alternatives to federation ............................................... 1 Private networks ........................................................................................... 1 Decentralized networks .................................................................................. 1 Conclusion ................................................................................................... 2 Choosing between SIP and XMPP ........................................................................... 2 Choice of operating system ..................................................................................... 3 Using a ready-to-run or turn-key solution .......................................................... 3 Using a generic GNU/Linux distribution ........................................................... 3 Use latest software versions .................................................................................... 3 Using IPv6 ........................................................................................................... 4 Example network used in the documentation .............................................................. 4 2. Architecture overview ................................................................................................ 5 The big picture ..................................................................................................... 5 TLS is essential ............................................................................................ 5 All SIP connectivity through a SIP proxy .......................................................... 5 SIP federation between two autonomous sites ............................................................ 6 Routing calls within a site ...................................................................................... 6 WebRTC peer-to-peer calling .................................................................................. 7 WebRTC calling to call centers ............................................................................... 7 3. User Experience ........................................................................................................ 8 First time setup and provisioning ............................................................................. 8 Dialing ................................................................................................................ 8 Usernames or phone numbers? ........................................................................ 8 Dial plans .................................................................................................... 8 Dialing Internet addresses ............................................................................... 9 4. Optimizing Connectivity ........................................................................................... 10 Codec selection ................................................................................................... 10 Recommendations ........................................................................................ 11 Media stream encryption compatibility .................................................................... 12 Supporting multiple schemes ......................................................................... 13 Recommendations for maximizing connectivity ................................................ 13 Recommendations for security ....................................................................... 13 Use ICE and a TURN server ................................................................................. 14 Use the TLS transport for SIP signalling ................................................................. 14 Getting through firewalls ...................................................................................... 14 5. DNS setup .............................................................................................................. 16 Using non-standard ports ...................................................................................... 16 Sample DNS zone file .......................................................................................... 17 Testing the DNS settings ...................................................................................... 17 6. Firewall rules .......................................................................................................... 18 Overview of firewall ports .................................................................................... 18 NAT considerations ............................................................................................. 18 Setup with iptables on Linux ........................................................................... 19 7. User and credential storage ........................................................................................ 20 Credentials ......................................................................................................... 20 Personal account names or extension numbers .................................................. 20 Password encryption .................................................................................... 21 HA1 in detail .............................................................................................. 21 Databases ........................................................................................................... 21 RADIUS .................................................................................................... 21 LDAP ........................................................................................................ 22 SQL databases ............................................................................................ 22 iii Real-Time Communica- tions Quick Start Guide Product-specific file formats .......................................................................... 23 Conclusion ......................................................................................................... 23 8. Server setup ............................................................................................................ 25 9. TLS certificate creation ............................................................................................. 26 Certificate Common Name .................................................................................... 26 Install the OpenSSL utility .................................................................................... 27 Install the Let's Encrypt certbot utility ................................................................ 27 Install a TLS certificate using Let's Encrypt (certbot) ................................................. 27 Install a TLS certificate manually ........................................................................... 28 10. ICE/STUN/TURN server installation ......................................................................... 30 Choosing a TURN server ...................................................................................... 30 reTurnServer from reSIProcate ............................................................................... 30 Installation .................................................................................................. 30 Configuration .............................................................................................. 31 Provisioning users ........................................................................................ 31 Testing the TURN server ...................................................................................... 32 11. SIP proxy server installation .................................................................................... 33 Choose your SIP proxy ........................................................................................ 33 repro SIP proxy ................................................................................................... 33 Package installation ...................................................................................... 33 Configuration .............................................................................................. 33 Testing with s_client .............................................................................. 36 Login to web administration .......................................................................... 37 User management ........................................................................................ 37 Adding a user ............................................................................................. 37 Adding routes for numeric dialing .................................................................. 37 Kamailio SIP proxy ............................................................................................. 38 Package installation