Building Telephony Systems with Opensips Second Edition
Total Page:16
File Type:pdf, Size:1020Kb
[ 1 ] Building Telephony Systems with OpenSIPS Second Edition Build high-speed and highly scalable telephony systems using OpenSIPS Flavio E. Goncalves Bogdan-Andrei Iancu BIRMINGHAM - MUMBAI Building Telephony Systems with OpenSIPS Second Edition Copyright © 2016 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: January 2010 Second edition: January 2016 Production reference: 1250116 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78528-061-0 www.packtpub.com Credits Authors Project Coordinator Flavio E. Goncalves Suzanne Coutinho Bogdan-Andrei Iancu Proofreader Reviewers Safis Editing Saúl Ibarra Corretgé Vyacheslav Kobzar Indexer Monica Ajmera Mehta Mfawa Alfred Onen Ali Pey Graphics Disha Haria Commissioning Editor Neil Alexander Production Coordinator Conidon Miranda Acquisition Editor Kevin Colaco Cover Work Conidon Miranda Content Development Editor Amey Varangaonkar Technical Editor Pranil Pathare Copy Editor Tasneem Fatehi About the Authors Flavio E. Goncalves was born in 1966 in Brazil. Having a strong interest in computers, he got his first personal computer in 1983, and since then, it has been almost an addiction. He received his degree in engineering in 1989 with a focus on computer-aided designing and manufacturing. He is also the CTO of SipPulse Routing and Billing Solutions in Brazil—a company dedicated to the implementing of small-to-medium telephone companies, VoIP providers, and large-scale new generation telephony systems. Since 1993, he has participated in a series of certification programs and been certificated as Novell MCNE/MCNI, Microsoft MCSE/MCT, Cisco CCSP/CCNP/CCDP, Asterisk dCAP, and some others. He started writing about open source software because he thinks that the way certification programs have worked is very good for learners. Some books are written by strictly technical people who sometimes do not have a clear idea on how people learn. He tried to use his 15 years of experience as an instructor to help people learn about the open source telephony software. Together with Bogdan, he created the OpenSIPS boot camp followed by the e-learning program, OpenSIPS eBootcamp. His experience with networks, protocol analyzers, and IP telephony combined with his teaching experience gave him an edge to write this book. This is the fourth book written by him. The first one was Configuration Guide for Asterisk PBX, by BookSurge Publishing, the second was Building Telephony Systems with OpenSER, by Packt Publishing, and the third was Building Telepopny Systems With OpenSIPS 1.6, by Packt Publishing. As the CTO of SipPulse, Flavio balances his time between family, work, and fun. He is the father of two children and lives in Florianopolis, Brazil—one of the most beautiful places in the world. He dedicates his free time to water sports such as surfing and sailing. Bogdan-Andrei Iancu entered the SIP world in 2001, right after graduating in computer science from the Politehnica University of Bucharest, Romania. He started as a researcher at the FOKUS Fraunhofer Institute, Berlin, Germany. For almost four years, Bogdan accumulated a quick understanding and experience of VoIP/SIP, being involved in research and industry projects and following the evolution of the VoIP world closely. In 2005, he started his own company, Voice System. The company entered the open source software market by launching the OpenSER/OpenSIPS project—a free GPL-SIP proxy implementation. As the CEO of Voice System, Bogdan pushes the company in two directions: developing and supporting. The OpenSIPS public project (Voice System being the major contributor and sponsor of the project) creates professional solutions and platforms (OpenSIPS-based) for the industry. In other words, Bogdan's interest was to create knowledge (through the work with the project) and to provide the knowledge where needed (embedded in commercial products or raw format as consultancy services). In the effort of sharing the knowledge of the SIP/OpenSIPS project, he started to run the OpenSIPS Bootcamp in 2008 together with Flavio E. Goncalves, which is intensive training dedicated to people who want to learn and get hands-on experience on OpenSIPS from experienced people. Bogdan's main concern is to research and develop new technologies or software for SIP-based VoIP (this is the reason for his strong involvement with the OpenSIPS project) and pack all these cutting-edge technologies as professional solutions for the industry. About the Reviewers Saúl Ibarra Corretgé started working in the VoIP industry over a decade ago. He has worked in many different areas and projects, from development and configuration to deployment. In 2006, when OpenSER 1.0.0 (the project where OpenSIPS was forked from) was released, Saúl began to experiment with it. Several years later, he started using it heavily and contributing with code until he became an OpenSIPS core team member in 2010. His contributions to the project have been diverse but mainly focused on improving the presence part. He also maintains several projects on GitHub (https://github.com/saghul) and you can contact him through his website (http://bettercallsaghul.com) or on Twitter (@saghul). When not in front of the computer, he likes to travel around the world. Vyacheslav Kobzar is the chief of software development at Modulis.ca Inc. He graduated from Donetsk State Technical University in 2006, where he was studying software development. Right after graduation, he started to work as a freelance developer on different projects, mostly web development. Since 2008, he started to work remotely in the Canadian company, Modulis.ca Inc. He moved to Canada in 2009 where he continued working at Modulis.ca Inc as a developer on multiple web projects. He started to work on VoIP in 2011, mostly with Asterisk. He has been working on AGI and AMI modules for different VoIP projects. He was certificated with Asterisk dCAP in 2012. In 2014, Vyacheslav participated in the OpenSIPS eBootcamp session. He has been an OpenSIPS's Foundation member since 2014. In 2013, he participated in the designing and developing of the Modulis VoIP start-up project, which was later successfully deployed in multiple companies and organizations in Quebec. OpenSIPS is the core part of the project along with other VoIP technologies and protocols (UNIStim, Skinny, and others). Being a Linux user for almost 10 years, Vyacheslav contributes to different open source projects on GitHub and also works on his own. I'd like to thank OpenSIPS developers and contributors for this amazing project. I would also like to thank the Modulis team for sharing their knowledge and ideas and always being open for new challenges. Finally, I would like to thank my wife, Anna, for her support and patience. Mfawa Alfred Onen is a system administrator with more than 6 years' experience in the field of UNIX/Linux system administration. He studied electrical and electronics engineering in his bachelor of engineering undergraduate program and has continued to venture into the area of telecommunications with a postgraduate certificate from Birmingham City University, UK. He currently resides in Nigeria and has worked with both private and education sectors, including numerous consulting jobs for clients at home and abroad. Being a software developer and having an operations background, he is heavily involved with cloud computing (DevOps) using open source software such as OpenStack, OpenShift, Docker, Asterisk, OpenSIPS, and FreeSWITCH, to name a few. He also helps to manage a Google Developer Group (GDG Bingham University), where software developers and technology enthusiasts come to learn Google developer tools and services in the form of Developer Festivals (DevFest), Hackathons, and Code labs. When Mfawa is not busy with technology, he is an avid gamer (Call of Duty, NFS, and Forza) and a blogger at http://www.maomuffy.com/ with much content on OpenShift, OpenStack, RADIUSDesk, Linux/UNIX system administration, and so on. My special thanks goes to my family (Professor Alfred Ikpi Onen, Mrs. Jummai Alfred Onen, Dr. Eno Alfred Onen, Williams Alfred Onen, and Ikpi Alfred Onen Jnr.), friends (Aderogba Otunla, Alhamdu Bello, Suzanne Coutinho, and others) and well-wishers. Ali Pey is a senior software engineer architect with more than 23 years experience in telephony, networking, and VoIP. He has an electronics engineering degree with a focus on telecommunication and software design. He has worked for companies such as Nortel, TalkSwitch, and j2 Global, and has been developing VoIP solutions since the start of the technology. He has developed software for proxy servers, registrar servers/clients, user agents, and other VoIP components in both SIP and H.323 protocols. Currently, Ali is an independent consultant and has successfully used OpenSIPS and other open source applications such as Asterisk and FreeSWITCH to provide global telephony cloud solutions. www.PacktPub.com Support files, eBooks, discount offers, and more For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.