Cover image for FreeSWITCH 1.2.
FreeSWITCH 1.2.
Title:
FreeSWITCH 1.2.
Author:
Minessale, Anthony.
ISBN:
9781782161011
Personal Author:
Physical Description:
1 online resource (496 pages)
Contents:
FreeSWITCH 1.2 -- Table of Contents -- FreeSWITCH 1.2 -- Credits -- About the Authors -- About the Reviewers -- www.PacktPub.com -- Support files, eBooks, discount offers, and more -- Why Subscribe? -- Free Access for Packt Publishing account holders -- Preface -- What this book covers -- What you need for this book -- Who this book is for -- Conventions -- Reader feedback -- Customer support -- Downloading the example code -- Errata -- Piracy -- Questions -- 1. Architecture of FreeSWITCH -- A revolution has begun and secrets have been revealed -- The FreeSWITCH design - modular, scalable, and stable -- Important modules - Endpoint and Dialplan -- Complex applications made simple -- Voicemail -- Multi-party conferencing -- The FreeSWITCH API (FSAPI) -- The XML registry -- Language modules -- The demonstration configuration -- Summary -- 2. Building and Installation -- Setting up the FreeSWITCH environment -- Operating system -- Operating system prerequisites -- Linux/Unix -- Mac OS X -- Windows -- Text editors and XML -- Downloading the source -- Building from the latest code -- Compiling FreeSWITCH for Linux/Unix/Mac OS X -- Compiling FreeSWITCH -- Step 1 - edit modules.conf -- Step 2 - run the configure script -- Step 3 - run the make and make install utilities -- Step 4 - edit modules.conf.xml -- Step 5 - install sound and music files -- Compiling FreeSWITCH for Windows -- Important considerations for Windows users -- Building the solution with MSVC/MSVCEE -- Starting FreeSWITCH -- Running FreeSWITCH in the background -- Summary -- 3. Test Driving the Example Configuration -- Important concepts to understand -- Putting FreeSWITCH to work -- Controlling FreeSWITCH with the CLI -- Configuring a SIP phone to work with FreeSWITCH -- SIP settings -- X-Lite soft phone -- Hard phones -- Aastra phones -- Polycom phones -- Snom phones.

Testing the example Dialplan -- Test calls for a single phone -- The Tetris extension -- Echo test -- Music on hold -- Demonstration IVR -- The information application -- Test calls for two or more phones -- Calling another telephone -- Parking a call -- Calling a conference -- Example Dialplan quick reference -- Summary -- 4. SIP and the User Directory -- Understanding the FreeSWITCH user directory -- Working with the FreeSWITCH user directory -- User features -- Adding a user -- Testing voicemail -- Groups of users -- Connecting to the world with gateways -- Setting up a new gateway -- Making calls -- Receiving calls -- Making calls without a gateway -- SIP profiles and user agents -- Summary -- 5. Understanding the XML Dialplan -- FreeSWITCH XML Dialplan elements -- Contexts -- Default -- Public -- Features -- Extensions -- Conditions -- Call legs and channel variables -- Accessing channel variables -- Regular expressions -- Actions and anti-actions -- How Dialplan processing works -- Creating a new extension -- Important Dialplan applications -- bridge -- playback -- say -- play_and_get_digits -- ivr -- sleep -- answer -- pre_answer -- hangup -- set -- transfer -- Dialstring formats -- Summary -- 6. Using XML IVRs and Phrase Macros -- IVR engine overview -- IVR XML configuration file -- IVR engine overview -- IVR menu definitions -- greet-long -- greet-short -- invalid-sound -- exit-sound -- timeout -- inter-digit-timeout -- max-failures -- max-timeouts -- digit-len -- tts-voice -- tts-engine -- confirm-key -- confirm-macro -- IVR menu destinations -- menu-exec-app -- menu-play-sound -- menu-back -- menu-top -- Routing calls to your IVR -- Nesting IVRs -- Using phrases with IVRs -- Calling Phrase Macros -- Phrase Macro examples - voicemail -- Advanced routing -- Summary -- 7. Dialplan Scripting with Lua -- Getting started with Lua.

Running Lua scripts from the Dialplan -- Basic Lua syntax -- Building voice applications -- A simple IVR - interacting with the caller -- Conditions and looping -- Even more conditions and looping -- Advanced IVR concepts -- Connecting to a database with LuaSQL -- Making a web call with curl -- Lua patterns versus regular expressions -- Scripting tips -- Summary -- 8. Advanced Dialplan Concepts -- Dialplan overview -- General Diaplan concepts -- Contexts -- Conditions -- Actions -- Putting it all together -- XML Dialplan module review -- Extensions -- Conditions -- Special condition variables -- Inline execution -- Actions and anti-actions -- The regex operator -- Nested conditions -- Pitfalls to avoid -- XML Dialplan applications -- mod_dptools -- mod_sofia -- mod_commands -- Utilizing variables -- Testing variables with regular expressions -- Caller profile fields -- Channel variables -- Channel variables and call setup -- Global variables -- Dialplan functions -- Real-time condition evaluation -- String conditioning -- Database queries -- SIP contact parameters -- Set, export, and legs -- Set versus export -- Passing variables via call headers -- XML Dialplan cookbook -- Match by IP address and call a number -- Match an IP address and Caller ID -- Match a number and strip digits -- Match a number, strip digits, and add a prefix -- Call a registered device -- Try party A, then party B -- Route DIDs to extensions -- Alternate outbound gateways -- Multiple endpoints with enterprise originate -- Summary -- 9. Moving Beyond the Static XML Configuration -- The mod_xml_curl basics -- The mod_xml_curl Dialplan -- The mod_xml_curl folder -- The mod_xml_curl configuration -- The mod_xml_curl summary -- Generating configurations dynamically with language bindings -- Making calls from the command line interface -- Using ESL to execute commands -- Summary.

10. Controlling FreeSWITCH Externally -- General overview -- Event system architecture -- Event-based modules -- mod_event_socket -- Configuring event socket settings -- Reading events -- Minimum event information -- Sending events -- Events from the Dialplan -- mod_event_multicast -- FreeSWITCH event system commands -- auth -- api -- bgapi -- event -- noevents -- divert_events -- filter -- filter delete -- nixevents -- sendevent -- sendmsg -- execute -- hangup -- nomedia -- log -- nolog -- linger -- nolinger -- FreeSWITCH Console application -- Event Socket Library -- Supported libraries -- ESLObject -- eslSetLogLevel(loglevel) -- ESLevent object -- serialize([format]) -- setPriority([number]) -- getHeader(header_name) -- getBody() -- getType() -- addBody(value) -- addHeader(header_name, value) -- delHeader(header_name) -- firstHeader() -- nextHeader() -- ESLconnection object -- new(host, port, password) -- new(fd) -- socketDescriptor() -- connected() -- getInfo() -- send(command) -- sendRecv(command) -- api(command[, arguments]) -- bgapi(command[, arguments]) -- sendEvent(send_me) -- recvEvent() -- recvEventTimed(milliseconds) -- filter(header, value) -- events(event_type,value) -- execute(app[, arg][, uuid]) -- executeAsync(app[, arg][, uuid]) -- setAsyncExecute(value) -- setEventLock(value) -- disconnect() -- Events in practice -- Event Socket Library example - running a command -- Examples of sending events to FreeSWITCH -- Setting phone lights -- Turn lights on -- Turn lights off -- Rebooting a phone -- Requesting phone reconfiguration -- Custom notify messages -- Summary -- 11. Web-based Call Control with mod_httapi -- HTTAPI syntax -- Work actions -- playback -- vmname -- record -- pause -- speak -- say -- execute -- sms -- dial -- recordCall -- conference -- hangup -- break -- log.

continue -- getVar -- voicemail -- mod_httapi configuration file -- Permissions -- Exiting -- Storing data across successive requests -- Some parameters are missing from some requests -- Making it easier -- The demo IVR - in HTTAPI -- Summary -- 12. Handling NAT -- A brief introduction to NAT -- Understanding the evolution of NAT -- The four pitfalls of NAT -- Demystifying NAT settings in FreeSWITCH -- Making media flow -- Advanced options and settings -- FreeSWITCH on the client side -- Other creative uses of FreeSWITCH in a NAT situation -- Conclusion -- Summary -- 13. VoIP Security -- Network level protection -- Separating interfaces and restricting traffic -- Sample setup - simple -- Sample setup - complex -- VLANs -- Intrusion detection -- Registration monitoring -- Fail2Ban -- Filter configurations -- Jail configurations -- Other considerations -- Encryption -- Protecting SIP signalling -- Choosing between encryption options -- Encryption with SSL -- Setting Up SSLv2/3 -- Encryption with TLS -- Protecting audio -- Encryption with SRTP -- Enabling SRTP -- Encryption with ZRTP -- Protecting passwords -- Registration passwords -- Voicemail passwords -- Summary -- 14. Advanced Features and Further Reading -- Multi-user conferencing -- Configuration -- Conference profiles -- Caller controls -- Advertise -- Sending and receiving XMPP events -- Connecting callers to the conference -- Controlling active conferences -- Nibblebill -- Use cases -- Billing (pre-pay) -- Billing (post-pay) -- Pay-per-call service billing -- Maximum credit and/or fraud prevention -- Design goals -- Installation and configuration -- Database tables -- Creating the database table for PostgreSQL -- Creating the database table for MySQL -- Billing a call -- The nibble method (default) -- An alternative to nibble billings -- Examples -- Different rates per user.

Single rate for all users.
Abstract:
This book is full of practical code examples aimed at a beginner to ease his or her learning curve.This book is written for IT professionals and enthusiasts who are interested in quickly getting a powerful telephony system up and running using the free and open source application, FreeSWITCH.Telephony experience will be helpful, but not required.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: